CN101783715A - 监测网络丢包率的方法及系统 - Google Patents

监测网络丢包率的方法及系统 Download PDF

Info

Publication number
CN101783715A
CN101783715A CN200910237963A CN200910237963A CN101783715A CN 101783715 A CN101783715 A CN 101783715A CN 200910237963 A CN200910237963 A CN 200910237963A CN 200910237963 A CN200910237963 A CN 200910237963A CN 101783715 A CN101783715 A CN 101783715A
Authority
CN
China
Prior art keywords
packet
data message
thresholding
network
stay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910237963A
Other languages
English (en)
Other versions
CN101783715B (zh
Inventor
李文璟
王智立
孟朱丽
詹志强
刘会永
陈兴渝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN2009102379632A priority Critical patent/CN101783715B/zh
Publication of CN101783715A publication Critical patent/CN101783715A/zh
Application granted granted Critical
Publication of CN101783715B publication Critical patent/CN101783715B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种监测网络丢包率的方法及系统。该方法包括步骤:在信宿端捕获数据包;存储所述数据包的头部信息;利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照读到的数据包的标识位的值从小到大顺序存储。在信宿端根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到所述网络中来自该信源端的数据报文的丢包率。本发明的方法不会给网络带来额外的负荷,也不需要更改数据帧的结构或者内容,能实时监测丢包率,成本低。

Description

监测网络丢包率的方法及系统
技术领域
本发明涉及网络技术领域,特别涉及一种监测网络丢包率的方法及系统。
背景技术
在Internet中,IP包本身并不具有任何安全特性,很容易被仿造、修改,重播和拦截查看包内容。而IPSec(IP安全协议)提供了一种标准的、健壮的以及包容广泛的机制来为IP及上层协议提供安全保证。IPSec可以保护通信的源IP地址和目的IP地址,提供数据完整性验证,保证数据的机密性,还提供抗重播功能。
IPSec VPN是采用IPSec安全协议建立的VPN(Virtual PrivateNetwork,虚拟专用网络)隧道,可以在公网上建立安全的虚拟通道以便远程访问。而尽管IPSec VPN可以保障主机之间、网络安全网关之间或主机与安全网关之间的数据包的安全,并提供端到端的认证,但是IPSec VPN却不能避免由于所跨的网络本身可靠性低,网络性能差或者人为原因导致VPN传输受阻等原因造成的网络丢包、安全性下降等问题。因此,在IPSec VPN网络中,我们仍然需要实时地监测网络性能,了解网络运行状况,根据网络性能对网络进行管理或者与相关部门协商解决网络中存在的问题。
丢包率是体现网络性能的一个重要指标,能够反映网络对业务的服务质量,所以有必要对丢包率进行监测。在IPSec VPN网络中监测丢包率需要知道网络源端发送的报文数以及网络宿端收到的报文数。有的方案提出源端向宿端发送带有统计的报文数量的帧或者标有报文序号的帧,但是这些方法或者改变帧结构或者增加帧中填充内容,其实现都有一定的特定性,无法应用于所有的IPSec VPN网络中。同时,源端和宿端设备都要增加相应的解析功能,也导致成本的增加。也有方法提出使用网管系统监测源端发送报文数以及目的端接收报文数,而网管对数据的统计不具有实时上报的特性,所以使丢包率的监测不具有实时性。还有的方法提出在网络内部设置监测器来监测网络性能,这种方法的前提是对网络的拓扑结构比较了解,且对网络具有控制权,可以在其内部放置监测仪器,而对于IPSec VPN的使用者来说,通常所使用的网络不归自己所有,也就无法获知网络内部情况。
与上述现有技术相关的专利技术有:
技术方案1:申请号为200510058846.1的中国专利申请公开了一种在多协议标签网络中监测丢包率的方法。其中,所述方法包括以下内容:在MPLS(multi protocol label switch,多协议标签交换)连接的源节点定时发送给宿节点的连通性校验帧(CV帧)或快速故障检测帧(FFD帧)中,携带该源节点已发送的报文数;在所述MPLS连接的宿节点捕获并解析所述CV帧或FFD帧,记录源节点已发送的报文数和本节点当前时刻已接收的报文数,并根据连续两个时刻已发送的报文数和接收的报文数计算出丢包率。
技术方案2:申请号为200810210890.3的中国专利申请公开了一种基于链路层发现协议进行链路质量检测的方法及系统,网络设备以单位时间T1为周期,采集各LLDP信宿端口在单位时间T1内收到的链路层发现协议LLDP数据包数M1,并在管理信息库MIB保存当前采集的各LLDP信宿端口的LLDP数据包数M1;网络管理系统对每一待检测链路进行质量检测时,从该链路目的端口所在网络设备的MIB获取当前采集的该目的端口在单位时间T1内收到的LLDP数据包数M1的信息,并得到该链路的源端口在单位时间T1内发送的LLDP数据包数M2,计算出该链路当前的丢包率H=(1-M1/M2)×100%。该发明无需消耗额外资源,且易于实现。
技术方案3:申请号为200810115485.3的中国专利申请公开了一种基于内部监测器的链路丢包率的推测方法,该方法在初始逻辑拓扑树内部放置监测器,并收集初始逻辑树的所有观测数据,然后建立每棵子树对应的叶子节点的丢包序列,从而推测出它内部每条链路的丢包率。本发明具有低复杂度、估计出的丢包率更接近于真实丢包率的优点。
上述技术方案1的缺陷为:该方案是通过主动发送探测帧的方式将源节点在两个时刻发送的报文数分别传送给宿节点。对于主动探测本身来说,当网络中流量很大时,会增加网络负荷。同时,由于帧中需要携带报文数等信息,所以需要改变原来帧的信息,对于该专利可以将改动信息放在MPLS的预留标签中,但是对于其他网络,则会需要增加帧的字节,改变帧结构或者使用新的帧来专门传送报文数,这样会使数据包的信源端和信宿端都相应的增加帧的解析功能,而如果在很大范围内增加这种功能将造成成本的提高。除此以外,该方案中传送的帧也有可能丢失,而这种丢失的帧没有被计算在发送的报文数之内,这也导致其丢包率计算不够准确,不能真实反映网络的状况。
上述技术方案2的缺陷为:该方案采用了网管设备对源端发送数据包数和宿端接收数据包数进行了统计,由于网管本身可以实现这种统计功能,所以无需增加新的设备和资源,但是网管统计的特征是周期比较长,需要长时间的统计计算然后上报,这样无法做到实时监测网络中的丢包率,实时性比较差。
上述技术方案3的缺陷为:该方案主要用于推测网络内部各节点的丢包率,事先知道网络的树形拓扑结构,然后在网络内部安置监测器,这种丢包率算法要求在网络内部已知的情况下进行,而对于内部拓扑未知的且由于人为因素无法在网络内部设置检测器的网络则无法使用。
在其它现有方案中,一般是针对不同网络使用不同的丢包率计算方法,目前还没有一种针对IPSec VPN网络的端到端丢包率方法。而且现有方案多是从网络两端分别统计发送数据包数和接收的数据包数,而在一些网络中,普遍存在多个终端设备与一个集中式设备控制器通信,如果在多个终端都放置统计工具明显是不合理的,会增加成本。如果只在集中的设备控制器中进行统计就可以得到网络中每个终端到控制器的链路丢包率,将会节省很多的成本。
发明内容
本发明针对现有技术的不足,提出了一种成本低、效率高的网络丢包率监测方法,尤其适用于IPSec VPN网络中。
为了达到上述目的,本发明提供了一种监测网络丢包率的方法,所述方法包括以下步骤:
S1,在信宿端捕获数据包;
S2,存储所述数据包的头部信息;
S3,利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照读到的数据包的标识位identification域值从小到大顺序存储;
S4,在信宿端根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;
S5,根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到来自该信源端的数据报文的丢包率。
所述信宿端和信源端为处于IP安全协议IPSec网络中的通信节点。
所述步骤S2具体为:对所述数据包从头开始读取,首先检查该数据包是否为IP数据包,若不是,则读取下一个数据包;否则,判断该数据包的内部协议是否为封装安全负载ESP协议,若不是则读取下一个数据包,否则存储该数据包的IP头部信息及ESP头部信息。
所述步骤S4具体为:
S41,根据所述协议信息表中的信息判断该数据包使用的安全联盟SA是否经过重新协商;
S42,保存SA重新协商次数以及每次重新协商后使用的最大SA序列号MaxSA,根据每次重新协商后使用的最大SA序列号确定该次重新协商后信源端发送的完整数据报文个数;
S43,确定数据报文是否完整,计算信宿端接收到的完整数据报文个数B;
S44,将每次重新协商后信源端发送的数据报文个数求和,得到信源端发送的数据报文总数
Figure G2009102379632D0000051
其中,判断SA是否经过重新协商以及获得每次SA重新协商后使用的最大SA序列号的方法为:初始化SA协商次数SAContNum=0;读取每个数据包的SPI值,当SPI值发生改变时,代表SA重新协商;每次SA重新协商,SA协商次数加1;在每次SA重新协商后,初始化本次重新协商后SA序列号最大值MaxSA=0;每读取一个数据包,比较数据包的SA序列号与MaxSA的大小,若前者大于后者,则将当前的SA序列号赋值给MaxSA,依次操作,从而得到本次SA协商后最大的SA序列号,也即本次重新协商后信源端发送的完整数据报文个数;
确定数据报文是否完整,并计算信宿端收到的完整数据报文个数B的方法为:
①设信宿端收到的完整数据报文个数初值B=0,标识位identification初值Id=0;
②检查协议信息表中所有Identification域值为Id且未被处理过的数据包标志位Flag的域值;
③如果不存在标志位Flag域值为0的数据包,则说明标识位Identification域值为Id的数据报文不完整,没有最后一个分段,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
④否则,设协议信息表当前数据包的偏移量初值OffsetValue=0,检查所有Identification域值为Id的数据包的偏移量Offset的域值;
⑤如果不存在Offset域值等于OffsetValue的数据包,则说明标识位Identification域值为Id的数据报文不完整,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑥否则,检查该数据包的标志位Flag域值是否为0,如果为0,说明标识位Identification域值为Id的数据报文已完整收到,将收到的完整数据报文个数B增加1;将该数据包标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑦如果该数据包的标志位Flag域值不为0,将该数据包标识为已处理,同时进行如下赋值:OffsetValue=OffsetValue+TotalLen-HeadLen,其中TotalLen为数据包总长度,HeadLen为数据包的头长度,然后继续检查是否有数据包的Offset域值等于OffsetValue,重复⑤;
将所有的协议信息表都处理完成后,所得到的B值即为信宿端收到的完整数据报文个数。
所述步骤S5具体为:
根据所述步骤S43中信宿端接收到的完整数据报文个数B、所述步骤S44中信源端发送的完整数据报文总数A;从而计算出网络中来自该信源端的数据报文的丢包率
Figure G2009102379632D0000061
本发明还提供了一种监测网络丢包率的系统,所述系统包括:
数据包获取模块,用于在信宿端捕获数据包;
数据包存储模块,用于存储所述数据包的头部信息;利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照数据包的标识位identification的域值从小到大顺序存储;
数据包分析模块,用于根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;
丢包率计算模块,用于根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到所述网络中来自该信源端的数据报文的丢包率。
所述信宿端和信源端为处于IP安全协议IPSec网络中的通信节点。
所述数据包分析模块包括信源端发送数据报文计算模块,其用于:根据所述协议信息表中的信息判断数据包使用的安全联盟SA是否经过重新协商;然后保存SA重新协商次数以及每次重新协商后使用的最大SA序列号MaxSA,根据每次重新协商后使用的最大SA序列号确定该次重新协商后信源端发送的完整数据报文个数;
判断SA是否经过重新协商并计算每次重新协商后使用的最大SA序列号时,首先初始化SA协商次数SAContNum=0;读取每个数据包的SPI值,当SPI值发生改变时,代表SA重新协商;每次SA重新协商,SA协商次数加1;在每次SA重新协商后,初始化本次重新协商后SA序列号最大值MaxSA=0;每读取一个数据包,比较数据包的SA序列号与MaxSA的大小,若前者大于后者,则将当前的SA序列号赋值给MaxSA,依次操作,从而得到本次SA协商后最大的SA序列号,也即本次重新协商后信源端发送的完整数据报文个数。
所述数据包分析模块还包括信宿端接收报文计算模块,其用于:确定数据报文是否完整,并计算信宿端收到的完整数据报文个数B;
确定数据报文是否完整并计算信宿端收到的完整数据报文数时,
①设信宿端收到的完整数据报文个数初值B=0,标识位identification初值Id=0;
②检查协议信息表中所有Identification域值为Id且未被处理过的数据包标志位Flag的域值;
③如果不存在标志位Flag域值为0的数据包,则说明标识位Identification域值为Id的数据报文不完整,没有最后一个分段,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
④否则,设协议信息表当前数据包的偏移量初值OffsetValue=0,检查所有Identification域值为Id的数据包的偏移量Offset的域值;
⑤如果不存在Offset域值等于OffsetValue的数据包,则说明标识位Identification域值为Id的数据报文不完整,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑥否则,检查该数据包的标志位Flag域值是否为0,如果为0,说明标识位Identification域值为Id的数据报文已完整收到,将收到的完整数据报文个数B增加1;将该数据包标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑦如果该数据包的标志位Flag域值不为0,将该数据包标识为已处理,同时进行如下赋值:OffsetValue=OffsetValue+TotalLen-HeadLen,其中TotalLen为数据包总长度,HeadLen为数据包的头长度,然后继续检查是否有数据包的Offset域值等于OffsetValue,重复⑤;
将所有的协议信息表都处理完成后,所得到的B值即为信宿端收到的完整数据报文个数。
上述技术方案具有如下优点:本发明采用被动监测丢包率的方法,不会给网络带来额外的符合,也不需要更改数据帧的结构或者内容;实时监测丢包率,可以及时监测网络运行性能,监控网络质量;无需知道IPSec VPN网络内部拓扑结构,也无需在网络内部安置检测器即可较为准确的估算出网络丢包率;只在网络一端即可计算丢包率,无需将计算设备增设到网络的每一台设备中,可以节省成本。
附图说明
图1为本发明实施例的监测网络丢包率的方法流程图;
图2为本发明实施例的方法中过滤数据包流程图;
图3为本发明实施例的方法中存储数据包信息流程图;
图4为本发明实施例的方法中计算信源端发送的完整数据报文个数流程图;
图5为本发明实施例的方法中计算信宿端收到的完整数据报文个数流程图;
图6为对本发明实施例的方法进行仿真时的网络拓扑图;
图7为对图6所示的网络进行仿真的结果示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
依据本发明实施例的监测网络丢包率的方法流程如图1所示,
步骤101,使用网络抓包工具winpcap抓取IPSec VPN网络信宿端网卡上的数据包并存储:抓包时间可以自由确定,即可以是一直持续的,也可以选择某一个时间段;每次抓包的时间长度也是可以自由确定的,即可以每次持续时间长度不同。所有数据包的目的IP地址均为宿端的IP地址。
步骤102,读取cap文件,过滤得到IP/ESP数据包:对存储在cap文件中的数据包从头开始读取,首先检查收到的数据包是否为IP数据包,不是IP包则越过该数据包读下一个数据包。如果是IP数据包,分析其内部协议是否为ESP协议,不是ESP数据包则越过读取下一个数据包。如果是ESP数据包,则对数据包的IP头和ESP头信息进行存储之后分析。其流程参见如图2所示的步骤201~205。
步骤103,存储数据包信息的流程参见图2~3所示的步骤301~305。由于不同的信源端可能同时向同一个信宿端发送数据包,所以在存储IP/ESP信息时,应先检查数据包的源IP地址,不同信源端的数据包存储到不同的协议信息表中。
同时,由于底层网络传输数据都存在最大传输单元MTU的限制,一个完整的数据报文在IP层可能会根据MTU被分段,分成几个数据包,同一报文被分段后,各分段的IP头中Identification域值相同。
在后面计算完整报文数中,我们需要知道同一个Identification共有几个分段,而由于IP协议的无连接特性,导致数据包可能不是按照发送顺序到达目的地址的,同时源端每发送一个报文,Identification的值就会增1,因此为了方便检查数据报文的完整性,而不是每查一个分段都要在所有已存信息中检索一遍,我们在存储数据包信息时将数据包按照Identification域值从小到大顺序存储,Identification域值相同的数据包会被连续地存储在协议信息表中。
信息协议表包括以下内容:
例如,若为IPv4网络,则IPv4协议中的内容为:版本Version,头长度HeadLen,服务类型TOS,总长度TotalLen,标识位Identification,生存时间TTL,标志位Flag,偏移量Offset,协议Protocol,校验和CheckSum,源IP地址SrcIP,目的IP地址DestIP。还包括ESP协议相关信息:安全参数索引SPI,安全联盟序列号SASeq。为了便于处理信息,还包括:数据包编号PacketNum,安全联盟协商次数SAContNum,数据包是否被处理isDesposed。
步骤104,计算收到的完整报文数和发送的完整报文数。在信宿端我们接收到的都是IP数据包,每个数据包可能是完整的报文,也可能是一个报文的分段,因此我们要在宿端统计接收到的完整的报文数,就需要知道每个数据包是否是一个分段,如果是分段则需要确定该报文的所有分段是否都被接收到。通过步骤103,已经将同一个报文的所有分段都连续地存储在协议信息表中。在本步骤中我们将从协议信息表中读出每个数据包的信息,并完成以下功能:
(1)判断该数据包使用的SA是否经过重新协商;
(2)保存SA重新协商次数以及每次重新协商使用的最大SA序列号;
(3)处理分段数据包,确定报文是否完整,并计算信宿端接收到的完整数据报文个数B;
(4)将每次重新协商后信源端发送的完整数据报文个数求和,得到信源端发送的完整数据报文总数
Figure G2009102379632D0000111
其中,判断SA是否经过重新协商以及获得每次SA重新协商后使用的最大SA序列号的方法为:初始化SA协商次数SAContNum=0。读取每个数据包的SPI值,当SPI值发生改变时,代表SA重新协商。每次SA重新协商,SA协商次数加1。在每次SA重新协商后,初始化本次协商SA序列号最大值MaxSA=0。每读取一个数据包,比较数据包的SA序列号与MaxSA的大小,若前者大于后者,则将当前SA序列号赋值给MaxSA,依次操作,从而得到本次SA协商后最大的SA序列号,也即本次重新协商后信源端发送的完整数据报文总数。由此可见,信源端发送报文数的计算主要根据IP包中的ESP头信息计算,在IPSec隧道建立后,通信双方会协商SA,源端每发送一个报文,SA序列号会增加1,SA超时或者传送字节数超过阙值(由加密算法确定)时,双方会重新协商SA,此时SPI值会改变,SA的序列号会重新开始计算,Identification相同的数据包SPI和SA也相同。其流程如图4中步骤401~407所示。
确定报文是否完整,并计算信宿端收到的完整数据报文个数B的方法为:
①设信宿端收到的完整数据报文个数初值B=0,标识位初始值Id=0。
②检查协议信息表中所有Identification域值为Id且未被处理过的数据包(isDisposed域的值为未处理)的标志位Flag的域值。
③如果不存在标志位Flag域值为0的数据包,则说明标识位Identification域值为Id的数据报文不完整,没有最后一个分段,则将标识位Identification域值为Id的所有数据包均标识为已处理(isDisposed的域值设置为已处理),并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
④否则,设协议信息表当前数据包的偏移量初值OffsetValue=0,检查所有Identification域值为Id的数据包的偏移量Offset的域值。
⑤如果不存在Offset域值等于OffsetValue的数据包,则说明标识位Identification域值为Id的数据报文不完整,则将标识位Identification域值为Id的所有数据包均标识为已处理(isDisposed的域值设置为已处理),并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑥否则,检查该数据包的标志位Flag域值是否为0,如果为0,说明标识位Identification域值为Id的数据报文已完整收到,将收到的完整数据报文个数B增加1;将该数据包标识为已处理(isDisposed的域值设置为已处理),并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑦如果该数据包的标志位Flag域值不为0,将该数据包标识为已处理(isDisposed域值设置为已处理),同时进行如下赋值:OffsetValue=OffsetValue+TotalLen-HeadLen(其中TotalLen为数据包总长度,HeadLen为数据包的头长度),然后继续检查是否有数据包的Offset域值等于OffsetValue,重复⑤。
将所有的协议信息表都处理完成后,所得到的B值即为信宿端收到的完整数据报文个数。其流程如图5所示的步骤408~420。
步骤105,计算丢包率。在本步骤中,我们直接使用步骤104计算所得信宿端收到的完整数据报文总数B和信源端发送的完整数据报文总数A,最终可以计算出IPSec VPN网络中来自某一个源地址的数据报文的丢包率
Figure G2009102379632D0000131
如果需要计算全网丢包率,则需要将信宿端收到的每个源地址发来的数据报文总数求和,即∑B,同时对每个源地址发送的所有数据报文求和,即∑A,然后计算全网丢包率为
Figure G2009102379632D0000132
以下举例说明本发明实施例的方法。如图6所示,为使用GNS3仿真软件对IPSec VPN网络进行丢包率监测实验的网络拓扑图,其中,R0和R1为信源端,持续向信宿端R3发送数据包,通过在信宿端R3部署一个抓包工具,在信宿端R3的e1/0端口处抓取数据包。在控制台每五分钟抓一次cap文件,每次实验抓取十次以上,并在R2处不定时使用filter丢包命令。依据本发明上述实施例的方法对抓取到的包进行存储、解析和计算,最终得到IPSec VPN网络的丢包率。
计算结果如图7所示,图中,粗实线为标准上限;一个信源端的丢包率计算一条折线,不同信源端用不同线条区别。每个时间段计算出的丢包率值显示在该点上方。从图7中可以很明显的看出,信源端16.1.1.0发送的数据包丢包率在第4个时间段内超出了标准上限。
本发明的实施例还提供了一种监测网络丢包率的系统,该系统包括:
数据包获取模块,用于在信宿端捕获数据包;
数据包存储模块,用于存储所述数据包的头部信息;利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照数据包的标识位(identification)的域值从小到大顺序存储;
数据包分析模块,用于根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;
丢包率计算模块,用于根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到所述网络中来自该信源端的数据报文的丢包率。
由以上实施例可以看出,本发明采用被动监测丢包率的方法,不会给网络带来额外的符合,也不需要更改数据帧的结构或者内容;实时监测丢包率,可以及时监测网络运行性能,监控网络质量;无需知道IPSec VPN网络内部拓扑结构,也无需在网络内部安置检测器即可较为准确的估算出网络丢包率;只在网络一端即可计算丢包率,无需将计算设备增设到网络的每一台设备中,可以节省成本。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

Claims (9)

1.一种监测网络丢包率的方法,其特征在于,所述方法包括以下步骤:
S1,在信宿端捕获数据包;
S2,存储所述数据包的头部信息;
S3,利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照读到的数据包的标识位identification域值从小到大顺序存储;
S4,在信宿端根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;
S5,根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到来自该信源端的数据报文的丢包率。
2.如权利要求1所述的监测网络丢包率的方法,其特征在于,所述信宿端和信源端为处于IP安全协议IPSec网络中的通信节点。
3.如权利要求2所述的监测网络丢包率的方法,其特征在于,所述步骤S2具体为:对所述数据包从头开始读取,首先检查该数据包是否为IP数据包,若不是,则读取下一个数据包;否则,判断该数据包的内部协议是否为封装安全负载ESP协议,若不是则读取下一个数据包,否则存储该数据包的IP头部信息及ESP头部信息。
4.如权利要求1~3之任一项所述的监测网络丢包率的方法,其特征在于,所述步骤S4具体为:
S41,根据所述协议信息表中的信息判断该数据包使用的安全联盟SA是否经过重新协商;
S42,保存SA重新协商次数以及每次重新协商后使用的最大SA序列号MaxSA,根据每次重新协商后使用的最大SA序列号确定该次重新协商后信源端发送的完整数据报文个数;
S43,确定数据报文是否完整,计算信宿端接收到的完整数据报文个数B;
S44,将每次重新协商后信源端发送的数据报文个数求和,得到信源端发送的数据报文总数
Figure F2009102379632C0000021
其中,判断SA是否经过重新协商以及获得每次SA重新协商后使用的最大SA序列号的方法为:初始化SA协商次数SAContNum=0;读取每个数据包的SPI值,当SPI值发生改变时,代表SA重新协商;每次SA重新协商,SA协商次数加1;在每次SA重新协商后,初始化本次重新协商后SA序列号最大值MaxSA=0;每读取一个数据包,比较数据包的SA序列号与MaxSA的大小,若前者大于后者,则将当前的SA序列号赋值给MaxSA,依次操作,从而得到本次SA协商后最大的SA序列号,也即本次重新协商后信源端发送的完整数据报文个数;
确定数据报文是否完整,并计算信宿端收到的完整数据报文个数B的方法为:
①设信宿端收到的完整数据报文个数初值B=0,标识位初值Id=0;
②检查协议信息表中所有Identification域值为Id且未被处理过的数据包的标志位Flag的域值;
③如果不存在标志位Flag域值为0的数据包,则说明标识位Identification域值为Id的数据报文不完整,没有最后一个分段,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
④否则,设协议信息表当前数据包的偏移量初值OffsetValue=0,检查所有Identification域值为Id的数据包的偏移量Offset的域值;
⑤如果不存在Offset域值等于OffsetValue的数据包,则说明标识位Identification域值为Id的数据报文不完整,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑥否则,检查该数据包的标志位Flag域值是否为0,如果为0,说明标识位Identification域值为Id的数据报文已完整收到,将收到的完整数据报文个数B增加1;将该数据包标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑦如果该数据包的标志位Flag域值不为0,将该数据包标识为已处理,同时进行如下赋值:OffsetValue=OffsetValue+TotalLen-HeadLen,其中TotalLen为数据包总长度,HeadLen为数据包的头长度,然后继续检查是否有数据包的Offset域值等于OffsetValue,重复⑤;
将所有的协议信息表都处理完成后,所得到的B值即为信宿端收到的完整数据报文个数。
5.如权利要求4所述的监测网络丢包率的方法,其特征在于,所述步骤S5具体为:
根据所述步骤S43中信宿端接收到的完整数据报文个数B、所述步骤S44中信源端发送的完整数据报文总数A;从而计算出网络中来自该信源端的数据报文的丢包率
Figure F2009102379632C0000031
6.一种监测网络丢包率的系统,其特征在于,所述系统包括:
数据包获取模块,用于在信宿端捕获数据包;
数据包存储模块,用于存储所述数据包的头部信息;利用所述头部信息将每个数据包连续地存储在协议信息表中,其中,来自不同信源端的数据包存储在不同的协议信息表中,在协议信息表中按照数据包的标识位identification的域值从小到大顺序存储;
数据包分析模块,用于根据所述协议信息表中的信息计算信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数;
丢包率计算模块,用于根据所述信源端发送的完整数据报文个数以及信宿端接收到的完整数据报文个数计算得到所述网络中来自该信源端的数据报文的丢包率。
7.如权利要求6所述的监测网络丢包率的系统,其特征在于,所述信宿端和信源端为处于IP安全协议IPSec网络中的通信节点。
8.如权利要求6所述的监测网络丢包率的系统,其特征在于,所述数据包分析模块包括信源端发送数据报文计算模块,其用于:根据所述协议信息表中的信息判断数据包使用的安全联盟SA是否经过重新协商;然后保存SA重新协商次数以及每次重新协商后使用的最大SA序列号MaxSA,根据每次重新协商后使用的最大SA序列号确定该次重新协商后信源端发送的完整数据报文个数;
判断SA是否经过重新协商并计算每次重新协商后使用的最大SA序列号时,首先初始化SA协商次数SAContNum=0;读取每个数据包的SPI值,当SPI值发生改变时,代表SA重新协商;每次SA重新协商,SA协商次数加1;在每次SA重新协商后,初始化本次重新协商后SA序列号最大值MaxSA=0;每读取一个数据包,比较数据包的SA序列号与MaxSA的大小,若前者大于后者,则将当前的SA序列号赋值给MaxSA,依次操作,从而得到本次SA协商后最大的SA序列号,也即本次重新协商后信源端发送的完整数据报文个数。
9.如权利要求6所述的监测网络丢包率的系统,其特征在于,所述数据包分析模块还包括信宿端接收报文计算模块,其用于:确定数据报文是否完整,并计算信宿端收到的完整数据报文个数B;
确定数据报文是否完整并计算信宿端收到的完整数据报文数时,
①设信宿端收到的完整数据报文个数初值B=0,标识位identification初值Id=0;
②检查协议信息表中所有Identification域值为Id且未被处理过的数据包标志位Flag的域值;
③如果不存在标志位Flag域值为0的数据包,则说明标识位Identification域值为Id的数据报文不完整,没有最后一个分段,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
④否则,设协议信息表当前数据包的偏移量初值OffsetValue=0,检查所有Identification域值为Id的数据包的偏移量Offset的域值;
⑤如果不存在Offset域值等于OffsetValue的数据包,则说明标识位Identification域值为Id的数据报文不完整,则将标识位Identification域值为Id的所有数据包均标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑥否则,检查该数据包的标志位Flag域值是否为0,如果为0,说明标识位Identification域值为Id的数据报文已完整收到,将收到的完整数据报文个数B增加1;将该数据包标识为已处理,并读取下一个协议信息表信息,将标识位Identification的域值赋值给Id,重复②;
⑦如果该数据包的标志位Flag域值不为0,将该数据包标识为已处理,同时进行如下赋值:OffsetValue=OffsetValue+TotalLen-HeadLen,其中TotalLen为数据包总长度,HeadLen为数据包的头长度,然后继续检查是否有数据包的Offset域值等于OffsetValue,重复⑤;
将所有的协议信息表都处理完成后,所得到的B值即为信宿端收到的完整数据报文个数。
CN2009102379632A 2009-11-19 2009-11-19 监测网络丢包率的方法及系统 Expired - Fee Related CN101783715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102379632A CN101783715B (zh) 2009-11-19 2009-11-19 监测网络丢包率的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102379632A CN101783715B (zh) 2009-11-19 2009-11-19 监测网络丢包率的方法及系统

Publications (2)

Publication Number Publication Date
CN101783715A true CN101783715A (zh) 2010-07-21
CN101783715B CN101783715B (zh) 2011-12-28

Family

ID=42523542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102379632A Expired - Fee Related CN101783715B (zh) 2009-11-19 2009-11-19 监测网络丢包率的方法及系统

Country Status (1)

Country Link
CN (1) CN101783715B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404069A (zh) * 2010-09-07 2012-04-04 中兴通讯股份有限公司 一种数据封装链路丢包和乱序统计的方法及系统
CN102412999A (zh) * 2011-12-23 2012-04-11 华为技术有限公司 一种基于抓包的远程故障定位方法、系统及设备
CN104065518A (zh) * 2014-07-07 2014-09-24 北京市博汇科技股份有限公司 一种网络数据包丢失位置的确定方法及装置
CN105071987A (zh) * 2015-07-28 2015-11-18 中国工程物理研究院计算机应用研究所 基于流量分析的加密网络路径质量分析方法
CN103067393B (zh) * 2012-12-30 2016-01-20 四川九洲电器集团有限责任公司 一种rtp包的丢包检测和快速存取方法
CN108737221A (zh) * 2018-06-28 2018-11-02 新华三技术有限公司 丢包检测方法及通信链路系统
CN109672584A (zh) * 2018-11-30 2019-04-23 广州市百果园信息技术有限公司 一种数据包检测方法、装置、系统、设备和存储介质
CN111026324A (zh) * 2018-10-09 2020-04-17 华为技术有限公司 转发表项的更新方法及装置
CN112350941A (zh) * 2020-09-14 2021-02-09 网络通信与安全紫金山实验室 基于ESP在overlay层实现源路由的封装报文及发送方法
CN113132171A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 通信方法及终端设备、网络设备、采集器
CN113242181A (zh) * 2021-01-18 2021-08-10 网络通信与安全紫金山实验室 基于ESP封装和压缩IP在overlay层实现源路由的报文及发送方法
CN113973070A (zh) * 2020-07-22 2022-01-25 中国移动通信有限公司研究院 一种信息获取方法、装置及测试设备
CN114024923A (zh) * 2021-10-30 2022-02-08 江苏信而泰智能装备有限公司 一种多线程报文捕获方法、电子设备及计算机存储介质

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404069A (zh) * 2010-09-07 2012-04-04 中兴通讯股份有限公司 一种数据封装链路丢包和乱序统计的方法及系统
CN102404069B (zh) * 2010-09-07 2016-03-30 中兴通讯股份有限公司 一种数据封装链路丢包和乱序统计的方法及系统
CN102412999A (zh) * 2011-12-23 2012-04-11 华为技术有限公司 一种基于抓包的远程故障定位方法、系统及设备
CN102412999B (zh) * 2011-12-23 2014-12-03 华为技术有限公司 一种基于抓包的远程故障定位方法、系统及设备
CN103067393B (zh) * 2012-12-30 2016-01-20 四川九洲电器集团有限责任公司 一种rtp包的丢包检测和快速存取方法
CN104065518A (zh) * 2014-07-07 2014-09-24 北京市博汇科技股份有限公司 一种网络数据包丢失位置的确定方法及装置
CN105071987A (zh) * 2015-07-28 2015-11-18 中国工程物理研究院计算机应用研究所 基于流量分析的加密网络路径质量分析方法
CN105071987B (zh) * 2015-07-28 2018-07-24 中国工程物理研究院计算机应用研究所 基于流量分析的加密网络路径质量分析方法
CN108737221A (zh) * 2018-06-28 2018-11-02 新华三技术有限公司 丢包检测方法及通信链路系统
CN108737221B (zh) * 2018-06-28 2020-09-15 新华三技术有限公司 丢包检测方法及通信链路系统
CN111026324A (zh) * 2018-10-09 2020-04-17 华为技术有限公司 转发表项的更新方法及装置
CN111026324B (zh) * 2018-10-09 2021-11-19 华为技术有限公司 转发表项的更新方法及装置
US11316804B2 (en) 2018-10-09 2022-04-26 Huawei Technologies Co., Ltd. Forwarding entry update method and apparatus in a memory
CN109672584A (zh) * 2018-11-30 2019-04-23 广州市百果园信息技术有限公司 一种数据包检测方法、装置、系统、设备和存储介质
CN113132171A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 通信方法及终端设备、网络设备、采集器
CN113973070A (zh) * 2020-07-22 2022-01-25 中国移动通信有限公司研究院 一种信息获取方法、装置及测试设备
CN113973070B (zh) * 2020-07-22 2023-07-21 中国移动通信有限公司研究院 一种信息获取方法、装置及测试设备
CN112350941A (zh) * 2020-09-14 2021-02-09 网络通信与安全紫金山实验室 基于ESP在overlay层实现源路由的封装报文及发送方法
CN113242181A (zh) * 2021-01-18 2021-08-10 网络通信与安全紫金山实验室 基于ESP封装和压缩IP在overlay层实现源路由的报文及发送方法
CN114024923A (zh) * 2021-10-30 2022-02-08 江苏信而泰智能装备有限公司 一种多线程报文捕获方法、电子设备及计算机存储介质

Also Published As

Publication number Publication date
CN101783715B (zh) 2011-12-28

Similar Documents

Publication Publication Date Title
CN101783715B (zh) 监测网络丢包率的方法及系统
US11563771B2 (en) Network telemetry collection with packet metadata filtering
CN102082690B (zh) 一种网络拓扑的被动发现设备及其发现方法
Glatz et al. Classifying internet one-way traffic
CN102821009B (zh) 基于链路层发现协议监控环形网络的方法和装置
US20210194894A1 (en) Packet metadata capture in a software-defined network
CN100382517C (zh) 网络服务质量测试方法及系统
CN108028775A (zh) 网络环境中的触发式带内操作、管理和维护
CN102055627B (zh) 识别p2p应用连接的方法和装置
CN102739457B (zh) 一种基于dpi和svm技术的网络流量识别方法
CN103220161B (zh) 一种服务器状态的探测方法和装置
CN107645398A (zh) 一种诊断网络性能和故障的方法和装置
US9634851B2 (en) System, method, and computer readable medium for measuring network latency from flow records
CN101572701A (zh) 针对DNS服务的抗DDoS攻击安全网关系统
CN104486153B (zh) 一种基于fpga的智能变电站过程层网络传输性能监测方法
CN108737385A (zh) 一种基于dns映射ip的恶意域名匹配方法
CN102215102A (zh) 一种带有时间戳的网络监测数据包的方法及用途
CN107733713A (zh) 混合网络中网络拓扑的获取方法、系统、设备及存储介质
CN101350764B (zh) 一种网络流量控制方法
CN106789728A (zh) 一种基于NetFPGA的VoIP流量实时识别方法
CN101350765A (zh) 一种网络流量检测方法
CN110266519A (zh) 一种感知变电站网络拓扑的方法、系统、存储介质和设备
US20190199753A1 (en) Cryptographic security audit using network service zone locking
Jung et al. A first look at machine-to-machine power grid network traffic
CN206461664U (zh) 一种数据采集系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111228

Termination date: 20141119

EXPY Termination of patent right or utility model