一种快速定位分流设备丢包的方法及系统的制作方法

文档序号:7773232阅读:242来源:国知局
一种快速定位分流设备丢包的方法及系统的制作方法
【专利摘要】本发明公开了一种快速定位分流设备丢包的方法及系统。本发明的方法包括:1)抓取分流设备处理后的数据包与PC测试机数据包;2)读取分流设备数据包,提取数据包特征;3)根据提取出的源IP、目的IP等特征,计算key值,构建分流设备数据包HASH表;4)读取PC数据包,提取数据包特征;5)根据提取出的PC数据包特征,在分流设备数据包HASH表中查找相同的结点,如果找到即进行下一个PC数据包的分析,如果没有找到,则说明分流设备有丢包。相应地,本发明的系统包括数据包抓取模块,数据包分析模块,数据包特征输出模块。本发明可快速定位分流设备丢包,并且通过多次抓取数据包快速准确地定位分流设备丢包。
【专利说明】一种快速定位分流设备丢包的方法及系统
【技术领域】
[0001]本发明涉及互联网信息采集领域,尤其是涉及一种快速定位分流设备丢包的方法及系统。
【背景技术】
[0002]分流设备主要应用于互联网信息采集领域,随着网络的扩容,分流设备处理的数据量与日俱增,40G (giga,十亿)分流设备已经成为主流。分流设备的数据完整性决定着其采集数据的完整性,而采集数据的完整性决定着业务应用的质量。在现在网络环境下大量真实数据包里查找丢包现象成为一个重要且复杂的工作。
[0003]通常信息采集业务都需要采集特定协议的数据,并非所有互联网协议都需要采集,因此需要在分流设备上配置过滤规则,选择要下放的数据包。在采集业务发现数据丢失的情况下,先要确定丢失数据是否命中过滤规则,如果不是,则要定位分流设备是否丢包。传统分流设备丢包定位方法主要有两种:
[0004]1、通过抓取经过分流设备的数据包,基于TCP(TransmissionControlProtocol,传输控制协议)、GRE (GenericRoutingEncapsulation,通用路由封装协议)等协议栈的特性,利用协议栈里序号的连续性,手工分析大量数据流,如果没有命中过滤规则,如果在连续数据包里有某序号的包丢失,则可以确定有丢包情况;
[0005]2、通过抓取原始数据包和经过分流设备的数据包,将这两种数据包中同一条数据流进行比较,这种方法需要wireshark (前称Ethereal,网络封包分析软件)等数据包分析工具的辅助,如果两种数据包中同一条数据流中数据包相同,则认为没有丢包,如果不相同,但是没有命中过滤规则,则认为分流设备有丢包情况。
[0006]发明人在实际操作中,发现这两种方法在分析数据包时,需要分析成百上千个数据包,耗费大量人力而且用时较长,丢包概率越小耗时会越长,在大数据量情况下已经不能满足需要。

【发明内容】

[0007]本发明的一个目的在于提供一种快速定位分流设备丢包的方法,利用对数据包比较算法的优化,从而解决传统分流设备丢包定位方法效率低下的问题。
[0008]本发明的另一目的在于提供一种快速定位分流设备丢包的系统。
[0009]本发明的快速定位分流设备丢包的方法,其步骤包括:
[0010]I)抓取分流设备处理后的数据包与PC测试机上的数据包;
[0011]2)在PC测试机上产生测试流量;
[0012]3)先停止PC测试机抓包,保存数据包,即PC数据包;再停止分流设备处理后的数据包抓包,保存数据包,即分流设备数据包;
[0013]4)数据包分析程序先读取分流设备数据包,提取出每个分流设备数据包的特征值;[0014]5)将每个分流设备数据包的特征值存放在HASH表中,形成分流设备数据包HASH表;
[0015]6)数据包分析程序然后读取PC数据包,提取出每个PC数据包的特征值;
[0016]7)在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果没有查找到相同的结点,则说明分流设备有丢包。
[0017]进一步地,步骤I)中,通过tcpdump (linux、unix系统抓包工具)手段抓取分流设备处理后的数据包;通过wireshark (windows系统抓包工具)手段抓取PC(personalcomputer,个人计算机)测试机上的数据包,该数据包为PC测试机上网卡上所有数据包;
[0018]进一步地,分流设备通过过滤规则对数据进行采集,过滤不需要的数据包,经分流设备处理后的数据包流入到一台服务器进行业务处理,在服务器上用tcpdump进行抓包。
[0019]进一步地,步骤2)中所述PC测试机为普通PC机。
[0020]进一步地,步骤3)中产生的测试流量经过路由及分流设备。
[0021]为了测试结果可靠有效,所述测试流量为真实流量,如发送、接收电子邮件、浏览网页、论坛发帖、观看在线视频等。
[0022]进一步地,步骤4)中,根据 TCP/IP (transmissioncontrolprotocol/internetprotocol,传输控制协议/因特网互联协议)协议栈将每个分流设备数据包进行解析,提取出每个分流设备数据包的特征值。
[0023]进一步地,步骤4)中,所述分流设备数据包的特征值包括:源IP,源端口,目的IP,目的端口,TCP序列号(UDP (userdatagramprotocol,用户数据报协议)赋值为0), TCP确认序列号(M)P赋值为0),IP标识,IP头里的数据包长度,TCP的窗口大小(UDP赋值为0),协议类型,这些特征值可以确定唯一标识的一个数据包。
[0024]进一步地,步骤5)中,根据提取出的每个分流设备数据包的特征值中的源IP,目的IP计算key值,组建成HASH表。
[0025]进一步地,所述HASH表的key值由数据包的源IP,目的IP经过jhash算法(jhash算法是Iinux内核开源代码,对IP类数值散列较好)运行所得,从而起到优化存储,加速数据查询速度的作用。
[0026]进一步地,步骤6)中根据TCP/IP协议栈将每个PC数据包进行解析,提取出每个PC数据包的特征值。
[0027]进一步地,步骤6)中提取的PC数据包特征值与步骤4)提取的分流设备数据包特
征值一致。
[0028]进一步地,步骤7)中,如果查找到有相同数据包特征值的结点,则说明分流设备数据包有相应数据包,循环进行下一个PC数据包的分析。
[0029]进一步地,步骤7)中还包括,将丢失的数据包的特征格式化输出,便于分流设备人员进行定位原因。
[0030]进一步地,为方便后续相关人员定位具体问题,尽可能地输出丢失数据包的信息,格式化输出格式如下例所述:
[0031]sip=192.168.3.120,sport=23120, dip=10.0.0.123,dport=80, seq=322212,ack=221421,len=1322,proto=tcp[0032]其中,sip为源IP地址,sport为源端口,dip为目的IP地址,dport为目的端口,seq为TCP序列号,ack为TCP确认序列号,Ien为IP头里的长度值,proto为协议类型。
[0033]一种快速定位分流设备丢包的系统,包括数据包抓取模块,数据包分析模块,数据包特征输出模块。
[0034]所述数据包抓取模块主要负责数据包抓取工作,同时抓取分流设备处理后的数据包与PC测试数据包。
[0035]所述数据包分析模块是用来负责将分流设备丢失的数据包找出来。它先读取分流设备数据包,提取分流设备数据包特征值,并将上述特征值加入到HASH表中,接着读取PC数据包、提取数据包特征值,从分流设备数据包HASH表中查找相同结点,如果能找到,则说明此包没有丢失,如果找不到,则说明此包有丢失。
[0036]所述数据包特征输出模块用于格式化输出丢失数据包的特征信息。
[0037]与现有技术相比,本发明的有益效果在于:
[0038]传统分流设备定位方法只适用于网络流量小且丢包严重的环境。本发明所述方法及系统不但适用于网络流量小且丢包严重的环境,还适用于现代高速、大流量的网络环境,利用特征提取与查找实现高性能数据包分析,它使数个G的数据包查找在秒级内完成。利用本发明,不但可以在真实采集环境下完成丢包情况的测试;而且大大地提高了定位人员的效率,将枯燥的数据包分析工作,变为高效率的工作。
【专利附图】

【附图说明】
[0039]图1为本发明整体拓扑方案示意图。
[0040]图2为本发明数据包抓取流程图。
[0041]图3为本发明数据包分析流程图。
[0042]图4为本发明分流设备数据包HASH表结构图。
[0043]图5为传统方法与本发明方法耗时对比图。
【具体实施方式】
[0044]下面结合附图,进一步详细描述本发明的实施例:
[0045]整个系统需要普通PC机一台,现在网络上运行的分流设备,安装有Iinux操作系统的服务器一台,分流设备处理后的流量需要定向到服务器上。操作人员在PC机与服务器上抓包,数据包分析程序可以运行在服务器上,通过运行数据包分析程序,即可输出被丢包的数据包特征。本发明的整体拓扑方案如图1所示。具体的实施过程包括如下步骤:
[0046]( I)安装数据包分析程序
[0047]在服务器上安装数据包分析程序,建立两个数据包存放目录用于程序读包,分别为:PC数据包目录与分流设备数据包目录。
[0048]( 2 )在PC机与服务器上抓包
[0049]操作人员需要在PC机与服务器上同时开始抓包,抓包流程如图2所示。
[0050]其中,分流设备采集数据并通过过滤规则过滤不需要的数据包,经分流设备处理后的数据包流入到服务器上进行业务处理,在服务器上用tcpdump进行抓包;同时,通过wireshark手段抓取PC机上的数据包。[0051]接着,在PC机上进行如发送、接收电子邮件,浏览网页,论坛发帖,观看在线视频等操作,产生真实的流量,作为测试流量。
[0052]之后按以下顺序停止抓包:先停止PC机抓包,再停止分流设备处理后的数据包抓包。
[0053](3)将数据包放入到相应目录
[0054]将PC机上抓取的数据包放入到服务器的PC数据包目录,将服务器上抓取的数据包放入到服务器的分流设备数据包目录。
[0055](4)启动数据包分析程序
[0056]启动数据包分析程序,对数据包进行分析的过程,如图3所示。
[0057]数据包分析程序先读取分流设备数据包,根据TCP/IP协议栈将每个分流设备数据包进行解析,提取出每个分流设备数据包的特征值。该特征值包括:源IP,源端口,目的IP,目的端口,TCP序列号(UDP赋值为0),TCP确认序列号(UDP赋值为0),IP标识,IP头里的数据包长度,TCP的窗口大小(UDP赋值为0),协议类型,这些特征值可以确定唯一标识的一个数据包。
[0058]根据提取出的每个分流设备数据包的特征值中的源IP,目的IP经过jhash算法(jhash算法是Iinux内核开源代码,对IP类数值散列较好)计算key值,组建成HASH表,如图4所示。
[0059]数据包分析程序然后读取PC数据包,根据TCP/IP协议栈将每个PC数据包进行解析,提取出每个PC数据包的特征值,该特征值同样包括:源IP,源端口,目的IP,目的端口,TCP序列号(UDP赋值为0),TCP确认序列号(UDP赋值为0),IP标识,IP头里的数据包长度,TCP的窗口大小(UDP赋值为O)和协议类型。
[0060]最后,数据包分析程序在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果查找到有相同数据包特征值的结点,则说明分流设备数据包有相应数据包,循环进行下一个PC数据包的分析;如果没有查找到相同的结点,则说明分流设备有丢包。
[0061](5)将丢失数据包的特征格式化输出
[0062]为方便后续相关人员定位丢包的原因,本发明快速定位分流设备丢包的系统还设有数据包特征输出模块,用于将丢失的数据包的特征格式化输出,格式化可以定制,其中一种格式化输出格式如下例所述:
[0063]sip=192.168.3.120, sport=23120, dip=10.0.0.123, dport=80, seq=322212,ack=221421, len=1322,proto=tcp
[0064]其中,sip为源IP地址,sport为源端口,dip为目的IP地址,dport为目的端口,seq为TCP序列号,ack为TCP确认序列号,Ien为IP头里的长度值,proto为协议类型。
[0065]上述丢失数据包的特征一般以文件的形式输出到本地磁盘。
[0066]到此,快速定位分流设备丢包的发明实施完毕,如果想再次定位分流设备丢包,只需将抓取的数据包分别放入到PC数据包目录与分流设备数据包目录里即可。
[0067]另外,为了验证本发明的技术效果,发明人对本发明及传统分析方法耗时情况进行了对比,如图5所示。以数据量为4G时为例,利用传统定位分析方法,进行定位所需时间为2小时,而利用本发明的定位方法,仅需要20秒便能实现分流设备丢包的准确定位。
【权利要求】
1.一种快速定位分流设备丢包的方法,其步骤包括: 1)抓取分流设备处理后的数据包与PC测试机上的数据包; 2)在PC测试机上产生测试流量; 3)先停止PC测试机抓包,保存数据包,即PC数据包;再停止分流设备处理后的数据包抓包,保存数据包,即分流设备数据包; 4)数据包分析程序先读取分流设备数据包,提取出每个分流设备数据包的特征值; 5)将每个分流设备数据包的特征值存放在HASH表中,形成分流设备数据包HASH表; 6)数据包分析程序然后读取PC数据包,提取出每个PC数据包的特征值; 7)在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果没有查找到相同的结点,则说明分流设备有丢包。
2.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,通过tcpdump手段抓取分流设备处理后的数据包;通过wireshark手段抓取PC测试机上的数据包。
3.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤3)中产生的测试流量经过路由及分流设备。
4.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤5)中,根据提取出的每个分流设备数据包的特征值中的源IP,目的IP计算key值,组建成HASH表。
5.如权利要求4所述的快速定位分流设备丢包的方法,其特征在于,所述HASH表的key值由数据包的源IP,目的IP经过jhash算法运行所得。
6.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤4)和6)中根据TCP/IP协议栈分别将每个分流设备数据包和每个PC数据包进行解析,提取出每个分流设备数据包和每个PC数据包的特征值。
7.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤4)和6)中,所述分流设备数据包的特征值分别包括:源IP,源端口,目的IP,目的端口,TCP序列号,TCP确认序列号,IP标识,IP头里的数据包长度,TCP的窗口大小和协议类型。
8.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤7)中,如果查找到有相同数据包特征值的结点,则说明分流设备数据包有相应数据包,循环进行下一个PC数据包的分析。
9.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤7)中还包括,将丢失的数据包的特征格式化输出。
10.一种快速定位分流设备丢包的系统,包括数据包抓取模块,数据包分析模块,数据包特征输出模块; 所述数据包抓取模块同时抓取分流设备处理后的数据包与PC测试数据包; 所述数据包分析模块先读取分流设备数据包,提取分流设备数据包特征值,并将上述特征值加入到HASH表中,接着读取PC数据包,提取数据包特征值,从分流设备数据包HASH表中查找相同特征值结点,如果找不到,则说明此包有丢失; 所述数据包特征输出模块用于格式化输出丢失数据包的特征信息。
【文档编号】H04L12/26GK103532779SQ201310471344
【公开日】2014年1月22日 申请日期:2013年10月10日 优先权日:2013年10月10日
【发明者】冯建业 申请人:北京锐安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1