一种快速定位分流设备丢包的方法及系统技术方案

技术编号:9599248 阅读:158 留言:0更新日期:2014-01-23 04:03
本发明专利技术公开了一种快速定位分流设备丢包的方法及系统。本发明专利技术的方法包括:1)抓取分流设备处理后的数据包与PC测试机数据包;2)读取分流设备数据包,提取数据包特征;3)根据提取出的源IP、目的IP等特征,计算key值,构建分流设备数据包HASH表;4)读取PC数据包,提取数据包特征;5)根据提取出的PC数据包特征,在分流设备数据包HASH表中查找相同的结点,如果找到即进行下一个PC数据包的分析,如果没有找到,则说明分流设备有丢包。相应地,本发明专利技术的系统包括数据包抓取模块,数据包分析模块,数据包特征输出模块。本发明专利技术可快速定位分流设备丢包,并且通过多次抓取数据包快速准确地定位分流设备丢包。

【技术实现步骤摘要】
一种快速定位分流设备丢包的方法及系统
本专利技术涉及互联网信息采集领域,尤其是涉及一种快速定位分流设备丢包的方法及系统。
技术介绍
分流设备主要应用于互联网信息采集领域,随着网络的扩容,分流设备处理的数据量与日俱增,40G(giga,十亿)分流设备已经成为主流。分流设备的数据完整性决定着其采集数据的完整性,而采集数据的完整性决定着业务应用的质量。在现在网络环境下大量真实数据包里查找丢包现象成为一个重要且复杂的工作。通常信息采集业务都需要采集特定协议的数据,并非所有互联网协议都需要采集,因此需要在分流设备上配置过滤规则,选择要下放的数据包。在采集业务发现数据丢失的情况下,先要确定丢失数据是否命中过滤规则,如果不是,则要定位分流设备是否丢包。传统分流设备丢包定位方法主要有两种:1、通过抓取经过分流设备的数据包,基于TCP(TransmissionControlProtocol,传输控制协议)、GRE(GenericRoutingEncapsulation,通用路由封装协议)等协议栈的特性,利用协议栈里序号的连续性,手工分析大量数据流,如果没有命中过滤规则,如果在连续数据包里有某序号的包丢失,则可以确定有丢包情况;2、通过抓取原始数据包和经过分流设备的数据包,将这两种数据包中同一条数据流进行比较,这种方法需要wireshark(前称Ethereal,网络封包分析软件)等数据包分析工具的辅助,如果两种数据包中同一条数据流中数据包相同,则认为没有丢包,如果不相同,但是没有命中过滤规则,则认为分流设备有丢包情况。专利技术人在实际操作中,发现这两种方法在分析数据包时,需要分析成百上千个数据包,耗费大量人力而且用时较长,丢包概率越小耗时会越长,在大数据量情况下已经不能满足需要。
技术实现思路
本专利技术的一个目的在于提供一种快速定位分流设备丢包的方法,利用对数据包比较算法的优化,从而解决传统分流设备丢包定位方法效率低下的问题。本专利技术的另一目的在于提供一种快速定位分流设备丢包的系统。本专利技术的快速定位分流设备丢包的方法,其步骤包括:1)抓取分流设备处理后的数据包与PC测试机上的数据包;2)在PC测试机上产生测试流量;3)先停止PC测试机抓包,保存数据包,即PC数据包;再停止分流设备处理后的数据包抓包,保存数据包,即分流设备数据包;4)数据包分析程序先读取分流设备数据包,提取出每个分流设备数据包的特征值;5)将每个分流设备数据包的特征值存放在HASH表中,形成分流设备数据包HASH表;6)数据包分析程序然后读取PC数据包,提取出每个PC数据包的特征值;7)在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果没有查找到相同的结点,则说明分流设备有丢包。进一步地,步骤1)中,通过tcpdump(linux、unix系统抓包工具)手段抓取分流设备处理后的数据包;通过wireshark(windows系统抓包工具)手段抓取PC(personalcomputer,个人计算机)测试机上的数据包,该数据包为PC测试机上网卡上所有数据包;进一步地,分流设备通过过滤规则对数据进行采集,过滤不需要的数据包,经分流设备处理后的数据包流入到一台服务器进行业务处理,在服务器上用tcpdump进行抓包。进一步地,步骤2)中所述PC测试机为普通PC机。进一步地,步骤3)中产生的测试流量经过路由及分流设备。为了测试结果可靠有效,所述测试流量为真实流量,如发送、接收电子邮件、浏览网页、论坛发帖、观看在线视频等。进一步地,步骤4)中,根据TCP/IP(transmissioncontrolprotocol/internetprotocol,传输控制协议/因特网互联协议)协议栈将每个分流设备数据包进行解析,提取出每个分流设备数据包的特征值。进一步地,步骤4)中,所述分流设备数据包的特征值包括:源IP,源端口,目的IP,目的端口,TCP序列号(UDP(userdatagramprotocol,用户数据报协议)赋值为0),TCP确认序列号(UDP赋值为0),IP标识,IP头里的数据包长度,TCP的窗口大小(UDP赋值为0),协议类型,这些特征值可以确定唯一标识的一个数据包。进一步地,步骤5)中,根据提取出的每个分流设备数据包的特征值中的源IP,目的IP计算key值,组建成HASH表。进一步地,所述HASH表的key值由数据包的源IP,目的IP经过jhash算法(jhash算法是linux内核开源代码,对IP类数值散列较好)运行所得,从而起到优化存储,加速数据查询速度的作用。进一步地,步骤6)中根据TCP/IP协议栈将每个PC数据包进行解析,提取出每个PC数据包的特征值。进一步地,步骤6)中提取的PC数据包特征值与步骤4)提取的分流设备数据包特征值一致。进一步地,步骤7)中,如果查找到有相同数据包特征值的结点,则说明分流设备数据包有相应数据包,循环进行下一个PC数据包的分析。进一步地,步骤7)中还包括,将丢失的数据包的特征格式化输出,便于分流设备人员进行定位原因。进一步地,为方便后续相关人员定位具体问题,尽可能地输出丢失数据包的信息,格式化输出格式如下例所述:sip=192.168.3.120,sport=23120,dip=10.0.0.123,dport=80,seq=322212,ack=221421,len=1322,proto=tcp其中,sip为源IP地址,sport为源端口,dip为目的IP地址,dport为目的端口,seq为TCP序列号,ack为TCP确认序列号,len为IP头里的长度值,proto为协议类型。一种快速定位分流设备丢包的系统,包括数据包抓取模块,数据包分析模块,数据包特征输出模块。所述数据包抓取模块主要负责数据包抓取工作,同时抓取分流设备处理后的数据包与PC测试数据包。所述数据包分析模块是用来负责将分流设备丢失的数据包找出来。它先读取分流设备数据包,提取分流设备数据包特征值,并将上述特征值加入到HASH表中,接着读取PC数据包、提取数据包特征值,从分流设备数据包HASH表中查找相同结点,如果能找到,则说明此包没有丢失,如果找不到,则说明此包有丢失。所述数据包特征输出模块用于格式化输出丢失数据包的特征信息。与现有技术相比,本专利技术的有益效果在于:传统分流设备定位方法只适用于网络流量小且丢包严重的环境。本专利技术所述方法及系统不但适用于网络流量小且丢包严重的环境,还适用于现代高速、大流量的网络环境,利用特征提取与查找实现高性能数据包分析,它使数个G的数据包查找在秒级内完成。利用本专利技术,不但可以在真实采集环境下完成丢包情况的测试;而且大大地提高了定位人员的效率,将枯燥的数据包分析工作,变为高效率的工作。附图说明图1为本专利技术整体拓扑方案示意图。图2为本专利技术数据包抓取流程图。图3为本专利技术数据包分析流程图。图4为本专利技术分流设备数据包HASH表结构图。图5为传统方法与本专利技术方法耗时对比图。具体实施方式下面结合附图,进一步详细描述本专利技术的实施例:整个系统需要普通PC机一台,现在网络上运行的分流设备,安装有linux操作系统的服务器一台,分流设备处理后的流量需要定向到服务器上。操作人员在PC机与服务器上抓包,数据包分析程序可以本文档来自技高网
...
一种快速定位分流设备丢包的方法及系统

【技术保护点】
一种快速定位分流设备丢包的方法,其步骤包括:1)抓取分流设备处理后的数据包与PC测试机上的数据包;2)在PC测试机上产生测试流量;3)先停止PC测试机抓包,保存数据包,即PC数据包;再停止分流设备处理后的数据包抓包,保存数据包,即分流设备数据包;4)数据包分析程序先读取分流设备数据包,提取出每个分流设备数据包的特征值;5)将每个分流设备数据包的特征值存放在HASH表中,形成分流设备数据包HASH表;6)数据包分析程序然后读取PC数据包,提取出每个PC数据包的特征值;7)在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果没有查找到相同的结点,则说明分流设备有丢包。

【技术特征摘要】
1.一种快速定位分流设备丢包的方法,其步骤包括:1)分别先后抓取分流设备处理后的数据包与PC测试机上的数据包;2)在PC测试机上产生经过路由及分流设备的测试流量;3)先停止PC测试机抓包,保存数据包,即PC数据包;再停止分流设备处理后的数据包抓包,保存数据包,即分流设备数据包;4)数据包分析程序先读取分流设备数据包,提取出每个分流设备数据包的特征值,所述每个分流设备数据包的特征值包括:源IP,源端口,目的IP,目的端口,TCP序列号,TCP确认序列号,IP标识,IP头里的数据包长度,TCP的窗口大小和协议类型;5)根据步骤4)提取出的每个分流设备数据包的特征值经过jhash算法计算key值,形成分流设备数据包HASH表;6)数据包分析程序然后读取PC数据包,提取出每个PC数据包的特征值,所述每个PC数据包的特征值分别包括:源IP,源端口,目的IP,目的端口,TCP序列号,TCP确认序列号,IP标识,IP头里的数据包长度,TCP的窗口大小和协议类型;7)在分流设备数据包HASH表中根据PC数据包特征值查找是否有相同数据包特征值的结点,如果没有查找到相同的结点,则说明分流设备有丢包。2.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,通过tcpdump手段抓取分流设备处理后的数据包;通过wireshark手段抓取PC测试机上的数据包。3.如权利要求1所述的快速定位分流设备丢包的方法,其特征在于,步骤4)和6)中根据TCP/IP协议栈...

【专利技术属性】
技术研发人员:冯建业
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1