CN107769988B - 信息发送及检测报文丢失的方法、装置和网络设备 - Google Patents
信息发送及检测报文丢失的方法、装置和网络设备 Download PDFInfo
- Publication number
- CN107769988B CN107769988B CN201610695385.7A CN201610695385A CN107769988B CN 107769988 B CN107769988 B CN 107769988B CN 201610695385 A CN201610695385 A CN 201610695385A CN 107769988 B CN107769988 B CN 107769988B
- Authority
- CN
- China
- Prior art keywords
- queue
- network device
- message
- statistical information
- network
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请的提供了一种检测网络报文丢失的方法,包括:获取第一队列和第二队列,第一队列中的任意一个元素均为第一网络设备上报的统计信息,第二队列中的任意一个元素均为第二网络设备上报的统计信息,并查找第一队列与第二队列中标识相同的参考统计信息,依据第一队列中的参考统计信息及第二队列中的参考统计信息,确定第一网络设备与第二网络设备之间是否发生报文丢失。因为第一队列和第二队列由网络设备通过对报文的标识取模及通过预先条件筛选的方式选择并上报,所以,不同的网络设备可以将同一个流分段的报文对应的数据流标识信息和数据流统计信息上报,所以,可以通过两个队列进行报文丢失的检测,而无需增加测试报文或者改变报文的结构。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种信息发送及检测报文丢失的方法、装置和网络设备。
背景技术
因特网协议(Internet Protocol,IP)网络是一个面向无连接的网络,其网络中传输的只有数据报文,没有与业务相关的信息,网络与业务完全割裂,这就造成了业务质量难检测、网络故障难定位的问题。
现有技术中常用间接测量技术或直接测量技术来检测网络报文是否丢失。间接测量技术通过插入检测报文,计算检测报文丢失率来间接模拟业务报文丢失率,该技术需要在数据链路中插入检测报文,因此需要消耗一定的数据链路带宽。直接测量技术虽然是基于对真实业务报文的数量统计,但是需要在数据链路上发送对业务报文的统计值,或者需要对报文进行处理以方便统计。在数据链路上发送业务报文统计值会消耗数据链路带宽且对报文的统计值要求严格,容易出错。
综上所述,在现有技术中,还没有方法能够在不影响网络性能,并且不改变报文的前提下,检测网络中报文的丢失。
发明内容
本申请提出一种信息发送及检测报文丢失的方法、装置和网络设备,可以在不影响网络性能并且不改变报文的前提下,检测网络中的报文丢失。
本申请的第一方面提供了一种信息发送方法,包括以下步骤:网络设备将第一队列中的元素对预设的数值进行取模运算,得到第二队列,所述第一队列中的元素包括与所述网络设备接收到的属于同一条数据流的报文一一对应的标识。所述网络设备第I次从所述第二队列中选择N个连续的元素,并发送目标报文的标识、以及截止到所述目标报文所述网络设备接收到的报文的总数量。其中,所述目标报文包括所述第I次选择的所述N个连续的元素中满足条件的元素对应的报文;在I=1的情况下,所述N个连续的元素中的第一个元素为所述第二队列的第一个元素;或者,在I为大于1的整数的情况下,所述N个连续的元素中的第一个元素为所述网络设备第I-1次从所述第二队列中选择的N个连续的元素中满足所述条件的元素的下一个元素,N为大于零的整数。可以看出,网络设备通过对报文的标识取模及通过预先条件筛选的方式,选择出特定的标识,从而上报此标识和具有此标识的报文的数据流统计信息,因此,即使在发生报文丢失的情况下,不同的网络设备也可以将同一个流分段的报文对应的数据流标识信息和数据流统计信息上报,因此,为针对相同的流分段分析出网络设备之间是否发生报文丢失奠定了基础。
本申请的第二方面提供了一种网络设备,包括:运算模块和发送模块。其中,运算模块用于将第一队列中的元素对预设的数值进行取模运算,得到第二队列,所述第一队列中的元素包括与所述网络设备接收到的属于同一条数据流的报文一一对应的标识。发送模块用于第I次从所述第二队列中选择N个连续的元素,并发送目标报文的标识、以及截止到所述目标报文所述网络设备接收到的报文的总数量,其中,所述目标报文包括所述第I次选择的所述N个连续的元素中满足条件的元素对应的报文;在I=1的情况下,所述N个连续的元素中的第一个元素为所述第二队列的第一个元素;或者,在I为大于1的整数的情况下,所述N个连续的元素中的第一个元素为所述网络设备第I-1次从所述第二队列中选择的N个连续的元素中满足所述条件的元素的下一个元素,N为大于零的整数。
在一个实现方式中,所述第I次选择的所述N个连续的元素中满足所述条件的元素至少有两个;则所述第I次选择的所述N个元素中满足条件的元素对应的报文的具体实现方式为:所述第I次选择的所述N个元素中、在所述第二队列中排序靠后的、满足所述条件的元素对应的报文。选择排序靠后的元素的优点在于,使得接收方能够更快地收到不同设备上报的相同的报文,从而能够更快地检测出报文丢失。
在一个实现方式中,所述预设的数值为所述N。将预先的数值设定为N,选取简单且便于后续查找相同的采样报文。
在一个实现方式中,还包括:发送所述目标报文承载的上层协议类型以及crc字段。
在一个实现方式中,所述标识包括:报文的ipid值或者报文的TCP序列号。
本申请的第三方面提供了一种检测网络报文丢失的方法,包括以下步骤:获取第一队列和第二队列,所述第一队列中的任意一个元素均为第一网络设备上报的统计信息,所述第二队列中的任意一个元素均为第二网络设备上报的统计信息,其中,任意一个网络设备的任意一个统计信息包括数量值和标识,所述数量值为截止到具有该标识的报文、该网络设备已接收到的报文的总数量。查找参考统计信息,所述参考统计信息为所述第一队列与所述第二队列中标识相同的统计信息。依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失。可见,所述方法通过查找来自于第一网络设备和第二网络设备的两个队列中的参考统计信息的方式,确定出第一网络设备与所述第二网络设备之间是否发生报文丢失,无需额外使用测试报文,且无需改变报文的结构,因此能够实现在不影响网络性能并且不改变报文的前提下,检测报文的丢失。
本申请的第四方面提供了一种检测网络报文丢失的装置,包括:获取模块、查找模块和确定模块。其中,获取模块,用于获取第一队列和第二队列,所述第一队列中的任意一个元素均为第一网络设备上报的统计信息,所述第二队列中的任意一个元素均为第二网络设备上报的统计信息,其中,任意一个网络设备的任意一个统计信息包括数量值和标识,所述数量值为截止到具有该标识的报文、该网络设备已接收到的报文的总数量。查找模块,用于查找参考统计信息,所述参考统计信息为所述第一队列与所述第二队列中标识相同的统计信息。确定模块,用于依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失。所述装置能够在不影响网络性能并且不改变报文的前提下,检测报文的丢失。
在一个实现方式中,所述确定模块依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失的具体实现方式为:计算所述第一队列中的参考统计信息中的数量值之差的绝对值,得到第一差值;计算所述第二队列中的参考统计信息的数量值之差的绝对值,得到第二差值;如果所述第一差值与所述第二差值不同,则确定所述第一网络设备与所述第二网络设备之间发生报文丢失;如果所述第一差值与所述第二差值相同,则确定所述第一网络设备与所述第二网络设备之间没有报文丢失。
在一个实现方式中,所述获取模块获取第一队列和第二队列的具体实现方式为:接收所述第一网络设备和所述第二网络设备上报的信息,所述信息包括五元组和统计信息;依据所述五元组,将所述第一网络设备上报的属于同一个数据流的统计信息构成所述第一队列,并将所述第二网络设备上报的属于所述数据流的统计信息构成所述第二队列。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。
图1是本申请实施例提供的一种IP网络架构示意图;
图2是本申请实施例提供的一种检测网络报文丢失的方法的原理示意图;
图3是本申请实施例提供的一种检测网络报文丢失的网络架构示意图;
图4是本申请实施例提供的一种检测网络报文丢失的系统的工作流程示意图;
图5是本申请实施例提供的一种检测网络报文丢失的系统中的网络设备向分析中心上报信息时的信息格式示意图;
图6是本申请实施例提供的一种检测网络报文丢失的系统中的网络设备上报统计信息的方法的示意图;
图7是本申请实施例提供的一种检测网络报文丢失的系统中的分析中心查找相同信息的方法的示意图;
图8为本申请实施例提供的一种网络设备的结构示意图;
图9为本申请实施例提供的一种检测网络报文丢失的装置的结构示意图。
具体实施方式
图1为本申请实施例适用的一种IP网络架构的示意图。
如图1所示,服务器与多个客户端之间通过多个网络设备实现通信。两个相邻的网络设备之间的物理连接,称为链路。当服务器与客户端进行数据交换时,在服务器与客户端之间的链路上传输的报文形成数据流。例如,当服务器向客户端4传送数据时,服务器首先将数据发送给网络设备1,网络设备1将数据转发给网络设备2,网络设备2再将数据转发给网络设备4,最后网络设备4将数据转发给客户端4,这样,在服务器与客户端4之间的链路上就形成了数据流。一般意义上的数据流可以认为是传输控制协议(Transmission ControlProtocol,TCP)数据流,在客户端和服务器之间的任意一条链路上都可能会有多条TCP数据流。如果在网络链路中发送的一系列报文具有相同的源IP地址、源端口、目的IP地址、目的端口及协议类型,也就是具有相同的5元组,那么就认为这些报文属于同一条数据流。同时,在本申请的实施例中,设定数据流的方向为数据流里包含的报文的源IP地址到报文的目的IP地址的方向。
在理想状态下,服务器与客户端之间传输的报文能够被发送到目的地址。但是,由于设备老化或者通信链路劣化等原因,报文在通信链路中传输时可能会被丢失。例如,参见图1所示,在服务器向客户端4发送数据时,数据流从服务器发出后,先经过网络设备1,然后经过网络设备2,再经过网络设备4,最后到达客户端4。如果网络设备1收到了某个数据报文并转发给了网络设备2,但是网络设备2没有收到这个数据报文,那么在网络设备1到网络设备2之间的链路上就丢失了这个数据报文,即发生了报文丢失故障。
本申请的实施例提供一种检测网络报文丢失的方法及系统,实现各网络设备相互协作的、基于数据流的报文丢失检测。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请实施例实现各网络设备相互协作的、基于数据流的报文丢失检测的原理如图2所示:
为先后经过网络设备1和网络设备2的一条数据流的各个报文进行编号。网络设备1和网络设备2分别统计本设备接收到的相同的流分段内的报文的数目,例如,在图2中,设定这一相同的流分段为先后经过网络设备1和网络设备2的一条数据流的编号为3的报文及编号为8的报文之间的部分。当网络设备1接收到编号为3的报文时,统计已接收到的报文的总数目total为1000,当网络设备1接收到编号为8的报文时,统计已接收到的报文的总数目total为1005,则网络设备1在该数据流的编号为3的报文及编号为8的报文之间接收到的报文数目为1005-1000=5个。这一数据流经过网络设备1后会到达网络设备2,假设在网络设备1和网络设备2之间的链路上,该数据流中的编号为5的报文丢失了。当网络设备2接收到编号为3的报文时,统计已接收到的报文的总数目total为998,当网络设备2接收到编号为8的报文时,统计已接收到的报文的总数目total为1002,则网络设备2在该数据流的编号为3的报文及编号为8的报文之间接收到的报文数目为1002-998=4个。
然后对网络设备1和网络设备2统计的结果进行比较,由于都是对同一条数据流的编号为3的报文及编号为8的报文之间的报文数目进行统计,如果网络设备1和网络设备2之间没有丢失数据报文,那么网络设备1和网络设备2统计的报文数目就应该是相同的,但是,通过比较可以发现,网络设备1和网络设备2统计的编号为3的报文及编号为8的报文之间的报文数目不同,则可以断定,在网络设备1和网络设备2之间发生了报文丢失。
根据上述报文丢失检测原理,如图3所示,在图1所示的网络架构中,本申请的实施例增加一个具有数据采集及数据分析功能的中央控制器,用来对网络设备上报的信息进行分析处理,依据上述原理确定是否发生报文丢失。中央控制器在物理或逻辑上可以是多个设备,也可以是一个设备。中央控制器可以独立设置在网络设备之外,也可以集成在网络设备中,本申请实施例中不做限定。本申请实施例中,为了说明简单,以下将中央控制器称为分析中心(Analyzer Center)。分析中心与被检测的网络设备之间逻辑上连通,即网络设备发送的信息能够通过一跳或者多跳网络链路到达分析中心。分析中心可以检测某个区域的网络中(例如企业的园区网络)的网络设备的报文丢失,也可以检测数据中心网络中的网络设备的报文丢失,被检测的网络设备可以是物理位置分开的,网络分片通过物理或者逻辑隧道连接成一个网络。
需要强调的是,仅仅增加分析中心还并不能使用上述原理检测报文丢失,因为如果发生报文的丢失,网络设备将无法确定应该上报哪个报文,才能使得分析中心能够找到相同的流分段,例如,图2中,编号为5的报文丢失后,网络设备2并不知道应该上报编号为8的报文。因此,分析中心也就无法计算相同的流分段中的报文的数目,进而,分析中心无法依据图2的原理进行报文丢失检测。所以,在本申请的实施例中提出的检测网络报文丢失方法,关键步骤用于实现不同的网络设备(例如网络设备1和网络设备2)上报的信息中包括相同的流分段的起始报文的信息和结束报文的信息。
如图4所示,本申请实施例提出的检测网络报文丢失的方法包括以下步骤:
S401、数据流中的报文经过网络设备时,网络设备对收到的报文进行计数。
在本实施例中,网络设备计数的是网络设备从检测到某条数据流开始,至目前接收到的属于本条数据流的报文数目的一个累加值。接收到的属于本条数据流的报文的计数与接收到的属于其它数据流的报文的计数是独立的,即针对每条数据流进行接收到的报文个数的统计,从数据流开始进行统计,一直持续到数据流结束,除非由人工或者其它自动指令进行统计清空。
如果网络设备识别到接收到的报文的5元组信息与之前接收到的某一报文所属的数据流的5元组信息相同,则判断该报文属于该已有的数据流,就对该数据流的计数器进行计数。当网络设备识别到接收到的报文的5元组信息与之前接收到报文所属的数据流的5元组信息都不同,则判断该报文属于一条新的数据流,就针对这条数据流新开一个计数器进行报文个数统计。
S402、网络设备提取接收到的报文的报文头中的ipid值,得到一个ipid值的队列Q1,队列Q1中每个元素为对应原始报文的ipid值。
假设在图3所示的系统中,一条数据流经过了网络设备1和网络设备2。这条数据流里面的数据报文的ipid值依次为0x61a9、0x639c、0x64c4、0x6595……则按照S402,网络设备1和网络设备2各自得到的Q1队列的元素为0x61a9、0x639c、0x64c4、0x6595……。
需要说明的是,队列Q1的元素,可以不限制于上述步骤中的ipid值。只要随着报文的发送在持续变化(可以连续增加,也可以跳跃式增加),即能够唯一标识报文的数值,就可以作为队列Q1的元素。例如,报文里承载的上层协议类型为TCP时,S402中队列Q1的元素可以采用TCP序列号。
S403、网络设备将队列Q1中的ipid值对预先设定的非零正整数值N进行取模运算,得到一个ipid值取模后的值构成的队列Q2,Q2中的每个元素为0~N-1之间的一个数值。
例如,如图5所示,假设非零正整数值N为10。网络设备1和网络设备2都将各自的队列Q1中的ipid值对10取模,网络设备1得到一个ipid值取模后的值的队列Q2:“1 0 6 5 3 27 6 5 0 5 9 1 0 6 3 9 1 6 3 4 1 6 5 4 6 1 0 9 8 4 3 0 9 8 1 8 6 0 5 4 7 4 3 51 2 6......”。网络设备2接收的报文相对于网络设备1来说,丢失了3个,网络设备2上得到的队列Q2’为:“1 0 6 5 3 2 7 6 5 0 5 9 1 01 6 3 4 1 6 5 4 6 1 0 9 8 4 3 09 8 1 8 6 0 5 4 7 4 3 5 1 2 6......”,其中,划线的6,3,9对应丢掉的报文。
S404、网络设备为队列Q2设定一个滑动窗口,所述滑动窗口中包含N个位置。
如图5中所示,以滑动窗口大小为10举例,即窗口中包含10个位置,该窗口可以一次选中队列Q2中的10个元素。
需要说明的是,滑动窗口的大小可以为任意的非零正整数,不限制于上述S403中取模所用的非零正整数N。出于选取简单且便于分析中心查找相同的采样报文的目的,本申请的实施例将滑动窗口大小设定为N。
S405、网络设备通过将滑动窗口的第一个位置覆盖队列Q2的第一个元素,使得滑动窗口覆盖队列Q2中从第一个元素开始的N个连续元素。
如图5所示,网络设备1将滑动窗口的第一个位置覆盖队列Q2的第一个元素“1”,使得滑动窗口覆盖队列Q2中从第一个元素开始的N个连续元素“1 0 6 5 3 2 7 6 5 0”。网络设备2将滑动窗口的第一个位置覆盖队列Q2’的第一个元素“1”,使得滑动窗口覆盖队列Q2’中从第一个元素开始的N个连续元素“1 0 6 5 3 2 7 6 5 0”。
S406、从S405中被滑动窗口覆盖的N个连续的元素中选择最大的一个元素,将此元素对应的数据流标识信息和数据流统计信息上报给分析中心。
如图6所示,数据流标识信息即数据流5元组,包括:源IP地址、源端口号、目的IP地址、目的端口号和网络协议类型,在同一条数据流中传送的报文具有相同的5元组信息,即对于某一条数据流来说,其数据流标识信息是不变的。最大的元素对应的数据流标识信息为最大的元素对应的报文中携带的数据流5元组。
数据流统计信息包括:最大的元素对应的报文的报文头中的ipid值、crc字段(该字段是对报文载荷内容的校验值,如果报文载荷相同,crc值就相同,反过来,如果crc值相同,则报文载荷有很大概率相同)、最大的元素对应的报文承载的上层协议类型protocol(例如TCP或者UDP)、以及网络设备截止接收到此报文时、已接收到的属于该数据流的报文的总数目total。本实施例中,将ipid值、crc字段和protocol的至少一项作为数据流统计信息的标识。
如图5所示,网络设备1上的滑动窗口内包含的队列Q2的元素为“1 0 6 5 3 2 7 65 0”,里面最大值为7,7对应的报文被采样,网络设备1将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。网络设备2上的滑动窗口内包含的队列Q2’的元素为“1 0 6 5 3 2 7 6 5 0”,里面最大值为7,7对应的报文被采样,网络设备2将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。
需要说明的是,在滑动窗口范围的队列Q2中,选择队列中最大的元素,这里“选择最大”,也可以使用“选择最小”,或者“选择中间值”等来替换。最终的目标,是从一个队列中按照某个规律找出其中的一个值,使得在不同网络设备上,只要按照这个动作,对同一个数据流分段,都能选中同一个报文。
需要说明的是,如果队列Q2位于滑动窗口中的元素有多个相同的情况,则取后进入滑动窗口的元素。这里也可以取先进入滑动窗口的元素。只要保证不同的网络设备在出现滑动窗口中的元素有多个相同的情况下,能够按照相同的规则选择元素即可。但选择后进入滑动窗口的元素的优点在于,使得分析中心能够更快地收到不同设备上报的相同的报文,从而能够更快地检测出报文丢失。
S407、滑动窗口在队列Q2中滑动,将滑动窗口的第一个位置覆盖S406选中的最大元素的下一个元素,使滑动窗口覆盖从S406选中的最大元素的下一个元素开始的N个连续元素,从被滑动窗口覆盖的N个连续元素中选择最大的一个元素,并将此元素对应的数据流标识信息和数据流统计信息上报给分析中心。
如图5所示,网络设备1上的滑动窗口开始滑动,滑动窗口的第一个位置覆盖被选择采样的Q2队列中的7的下一个,即6。窗口大小为10,所以网络设备1上滑动窗口第二次覆盖的内容为“6 5 0 5 9 1 0 6 3 9”,滑动窗口里面最大值为9,窗口中有两个9,根据S406,选择后进入滑动窗口的元素,即第二个9对应的报文被采样,网络设备1将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。同理,网络设备2上的滑动窗口的第一个位置覆盖被选择采样的Q2’队列中的7的下一个,即6。但是,由于“6”、“3”、“9”对应的报文被丢失了,而滑动窗口大小不变,所以网络设备2上滑动窗口第二次覆盖的内容相对网络设备1上滑动窗口第二次覆盖的内容,向后扩展了3个元素,为“65 0 5 9 1 0 1 6 3”。根据S407,滑动窗口中的9对应的报文被采样,网络设备2将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。
以S405~S407类推,滑动窗口在队列Q2中滑动并选择最大的元素,将此元素对应的数据流标识信息和数据流统计信息上报给分析中心,直到数据流结束或者由人工或者其它自动指令终止检测。
如图5所示,网络设备1上的滑动窗口继续滑动,得到滑动窗口第三次覆盖的内容“1 6 3 4 1 6 5 4 6 1”,根据S406,滑动窗口中第3个“6”对应的报文被采样,网络设备1将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。网络设备2上的滑动窗口继续滑动,得到滑动窗口第三次覆盖的内容“1 0 1 6 3 4 1 65 4”,根据S406,窗口中的第2个“6”对应的报文被采样,网络设备2将该报文的报文头中的ipid值和crc字段、该报文承载的上层协议类型、该报文所属数据流的数据流标识信息,以及接收到该报文时已接收到的该数据流的报文的总数目上报给分析中心。
需要说明的是,窗口滑动的方式仅为网络设备从第二队列中依次选择N个连续的元素的一种实现方式,也可以使用其它选择方式从第二队列中依次选择N个连续的元素,而并不限定于使用窗口滑动的方式。
S408、分析中心接收到多个网络设备上报的信息后,对这些信息中的流5元组信息进行处理,得到数据流的路径图,即一条数据流流经哪些网络设备。
例如,如图3所示,分析中心确定一条数据流从服务器出发,依次经过网络设备1、网络设备2以及网络设备4,最后到达客户端4。
确定数据流的路径图可能需要使用到网络设备的拓扑关系,即网络设备的标识和连接关系。分析中心可以预先从网络管理器中获取网络设备的拓扑关系。
当然,数据流的路径图也可以预先存储在分析中心中,在此情况下,跳过S408。
S409、分析中心将一条数据流流经的不同的网络设备上报的数据流统计信息存储在不同的队列中。
如图7所示,假设分析中心接收到了网络设备1上报的5次信息,则将网络设备1上报的5次数据流统计信息缓存到一个队列Q(s)中。分析中心还接收到了网络设备2上报的6次信息,则将网络设备2上报的6次数据流统计信息缓存到队列Q(r)中。
S410:分析中心查找不同的队列中标识(即ipid值、protocol及crc三个字段中的至少一个)相同的数据流统计信息。
例如,如图7所示,Q(s)的第一个元素和Q(r)的第一个元素的ipid值、protocol及crc三个字段都相同,所以分析中心确定网络设备1第1次上报的数据流统计信息与网络设备2第1次上报的数据流统计信息的标识相同。Q(s)的第二个元素同Q(r)里的所有元素都比较一遍,没有找到ipid值、protocol及crc三个字段都相同的元素,则分析中心认为网络设备1第2次上报的数据流统计信息的标识与网络设备2上报的所有的数据流统计信息的标识都不相同。Q(s)的第三个元素同Q(r)里的所有元素都比较一遍,没有找到ipid值、protocol及crc三个字段都相同的元素,则分析中心认为网络设备1第3次上报的数据流统计信息的标识与网络设备2上报的所有的数据流统计信息的标识都不相同。Q(s)的第四个元素同Q(r)里的所有元素都比较一遍,发现与Q(r)里的第五个元素的ipid值、protocol及crc三个字段都相同,则分析中心确定网络设备1第4次上报的流统计信息的标识与网络设备2第5次上报的数据流统计信息的标识相同。
需要说明的是,以上将两个队列中的数据流统计信息一一对比的方式仅为本实施例的一种示例,也可以使用其它方式查找不同队列中标识相同的数据流统计信息,这里不再一一赘述。
为了便于后续说明,本实施例中,将查找到的数据流统计信息统一称为参考数据流统计信息,基于上述原理,参考数据流统计信息分布在不同的队列中。
S411、分析中心计算任意一个队列中的参考数据流统计信息携带的总数目total之差。
需要说明的是,基于上述网络设备上报数据流统计信息的步骤,因为任意一个网络设备上报的数据流统计信息的标识为选中的实际报文中携带的数据流统计信息,所以,S410中查找到的参考数据流统计信息的标识(即ipid值、protocol及crc三个字段中的至少一个)对应的即为网络设备实际接收到的报文,因此,一个队列中的数据流统计信息的标识对应的报文确定的流分段,与另一个队列中的数据流统计信息的标识对应的报文确定的流分段,即为相同的流分段。可见,S411的目的在于计算不同的网络设备在相同的流分段内已接收到的报文的总数目。
如图7所示,分析中心用网络设备1第4次上报的信息里的total值1027,减去第1次上报的信息里的total值1000,可以计算出网络设备1在一个流分段内收到报文27个。分析中心用网络设备2第5次上报的信息里的total值1024,减去第1次上报的信息里的total值1000,可以计算出网络设备2在同一个流分段内收到24个报文。
S412、分析中心对比不同的队列中的参考数据流统计信息携带的总数目total之差的绝对值是否相同,如果相同,则确定此数据流的网络设备上没有发生报文丢失,如果不同,则确定此数据流的网络设备上发生了报文丢失。
例如,如图7所示,Q(s)中的参考数据流统计信息携带的总数目total之差为27,即网络设备1在一个流分段内收到27个报文,Q(r)中的参考数据流统计信息携带的总数目total之差为24,即网络设备2在同一个流分段内收到24个报文,则分析中心确认从网络设备1到网络设备2,数据流发生了报文丢失。
需要说明的是,以上以一条数据流流经的两个相邻的网络设备为例计算是否发生报文丢失,实际上,可以计算一条数据流流经的任意两个网络设备的参考数据流统计信息携带的总数目total之差的绝对值是否相同,以确定一条数据流流经的任意两个网络设备之间是否发生报文丢失。但显然,在报文丢失的情况下,计算一条数据流流经的两个相邻的网络设备的参考数据流统计信息携带的total之差,能够更准确地定位到具体是哪个网络设备发生报文丢失。
从上述过程可以看出,本实施例中,网络设备通过特定(对标识取模及滑动选择对比样本)的采样方式,上报数据流标识信息和数据流统计信息,按照上述实施例所述的机制,即使在发生报文丢失的情况下,不同的网络设备也可以将同一个流分段的报文对应的数据流标识信息和数据流统计信息上报分析中心,因此,分析中心能够针对相同的流分段分析出网络设备之间是否发生报文丢失。
一方面,本申请实施例提供的检测网络报文丢失的方法,不需要在数据流中插入检测报文,而是由各网络设备直接对报文数目进行统计,也不需要在数据链路中发送对报文的统计值,而是发送到分析中心进行统一处理,因此不会消耗数据链路带宽,不影响网络性能。另一方面,本申请实施例提供的检测网络报文丢失的方法,不需要改变报文的形式或内容,即可实现对网络中报文丢失的检测。
图8为图3中所示的网络设备的结构示意图,包括运算模块和发送模块。其中,运算模块用于将第一队列中的元素对预设的数值进行取模运算,得到第二队列,所述第一队列中的元素包括与所述网络设备接收到的属于同一条数据流的报文一一对应的标识。发送模块,用于第I次从所述第二队列中选择N个连续的元素,并发送目标报文的标识、以及截止到所述目标报文所述网络设备接收到的报文的总数量。
其中,所述目标报文包括所述第I次选择的所述N个连续的元素中满足条件的元素对应的报文;在I=1的情况下,所述N个连续的元素中的第一个元素为所述第二队列的第一个元素;或者,在I为大于1的整数的情况下,所述N个连续的元素中的第一个元素为所述网络设备第I-1次从所述第二队列中选择的N个连续的元素中满足所述条件的元素的下一个元素,N为大于零的整数。
图9为一种检测网络报文丢失的装置,可以设置在图3中所示的分析中心中,包括获取模块、查找模块和确定模块。
其中,获取模块用于获取第一队列和第二队列,所述第一队列中的任意一个元素均为第一网络设备上报的统计信息,所述第二队列中的任意一个元素均为第二网络设备上报的统计信息,其中,任意一个网络设备的任意一个统计信息包括数量值和标识,所述数量值为截止到具有该标识的报文、该网络设备已接收到的报文的总数量;
查找模块用于查找参考统计信息,所述参考统计信息为所述第一队列与所述第二队列中标识相同的统计信息;
确定模块用于依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失。
图8及图9中所示的各个模块功能的具体实现过程可以参见上述方法部分,这里不再赘述。
Claims (16)
1.一种信息发送方法,其特征在于,包括:
至少两个不同的网络设备分别将第一队列中的元素对预设的数值进行取模运算,得到第二队列,所述第一队列中的元素包括与所述网络设备接收到的属于同一条数据流的报文一一对应的标识;
所述至少两个不同的网络设备分别第I次从所述第二队列中选择N个连续的元素,并发送目标报文的标识、以及截止到所述目标报文所述网络设备接收到的报文的总数量至分析中心;以便所述分析中心将接收到的所述至少两个不同的网络设备发送的所述目标报文的标识和所述报文的总数量存储在不同的队列中,并分析查找所述不同的队列中标识相同的报文数量,以及计算任意一个队列中的查找到的报文数量之差,再对比不同队列中的报文数量之差的绝对值,并根据绝对值相同与否确定所述数据流中的报文在网络中的丢失情况;
其中,所述目标报文包括所述第I次选择的所述N个连续的元素中满足条件的元素对应的报文;在I=1的情况下,所述N个连续的元素中的第一个元素为所述第二队列的第一个元素;或者,在I为大于1的整数的情况下,所述N个连续的元素中的第一个元素为所述网络设备第I-1次从所述第二队列中选择的N个连续的元素中满足所述条件的元素的下一个元素,N为大于零的整数。
2.根据权利要求1所述的方法,其特征在于,所述第I次选择的所述N个连续的元素中满足所述条件的元素至少有两个;
所述第I次选择的所述N个元素中满足条件的元素对应的报文包括:
所述第I次选择的所述N个元素中、在所述第二队列中排序靠后的、满足所述条件的元素对应的报文。
3.根据权利要求1或2所述的方法,其特征在于,所述预设的数值为所述N。
4.根据权利要求1或2所述的方法,其特征在于,还包括:发送所述目标报文承载的上层协议类型以及crc字段。
5.根据权利要求1或2所述的方法,其特征在于,所述标识包括:
报文的ipid值或者报文的TCP序列号。
6.一种检测网络报文丢失的方法,其特征在于,包括:
获取第一队列和第二队列,所述第一队列中的任意一个元素均为第一网络设备上报的统计信息,所述第二队列中的任意一个元素均为第二网络设备上报的统计信息,其中,任意一个网络设备的任意一个统计信息包括数量值和标识,所述数量值为截止到具有该标识的报文、该网络设备已接收到的报文的总数量;其中,所述报文包括所述第一网络设备和所述第二网络设备分别第I次从第三队列和第四队列中选择的N个连续的元素中满足条件的元素对应的报文;所述第三队列为所述第一网络设备将包括与其接收到的属于同一条数据流的报文一一对应的标识的元素对预设的数值进行取模运算得到的;所述第四队列为所述第二网络设备将包括与其接收到的属于所述同一条数据流的报文一一对应的标识的元素对预设的数值进行取模运算得到的;
查找参考统计信息,所述参考统计信息为所述第一队列与所述第二队列中标识相同的统计信息;
依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失。
7.根据权利要求6所述的方法,其特征在于,所述依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失包括:
计算所述第一队列中的参考统计信息中的数量值之差的绝对值,得到第一差值;
计算所述第二队列中的参考统计信息的数量值之差的绝对值,得到第二差值;
如果所述第一差值与所述第二差值不同,则确定所述第一网络设备与所述第二网络设备之间发生报文丢失;
如果所述第一差值与所述第二差值相同,则确定所述第一网络设备与所述第二网络设备之间没有报文丢失。
8.根据权利要求6或7所述的方法,其特征在于,所述获取第一队列和第二队列包括:
接收所述第一网络设备和所述第二网络设备上报的信息,所述信息包括五元组和统计信息;
依据所述五元组,将所述第一网络设备上报的属于同一个数据流的统计信息构成所述第一队列,并将所述第二网络设备上报的属于所述数据流的统计信息构成所述第二队列。
9.一种网络设备,其特征在于,包括:
运算模块,用于分别将第一队列中的元素对预设的数值进行取模运算,得到第二队列,所述第一队列中的元素包括与所述网络设备接收到的属于同一条数据流的报文一一对应的标识;
发送模块,用于分别第I次从所述第二队列中选择N个连续的元素,并发送目标报文的标识、以及截止到所述目标报文所述网络设备接收到的报文的总数量至分析中心;以便所述分析中心将接收到的至少两个不同的网络设备发送的所述目标报文的标识和所述报文的总数量存储在不同的队列中,并分析查找所述不同的队列中标识相同的报文数量,以及计算任意一个队列中的查找到的报文数量之差,再对比不同队列中的报文数量之差的绝对值,并根据绝对值相同与否确定所述数据流中的报文在网络中的丢失情况;
其中,所述目标报文包括所述第I次选择的所述N个连续的元素中满足条件的元素对应的报文;在I=1的情况下,所述N个连续的元素中的第一个元素为所述第二队列的第一个元素;或者,在I为大于1的整数的情况下,所述N个连续的元素中的第一个元素为所述网络设备第I-1次从所述第二队列中选择的N个连续的元素中满足所述条件的元素的下一个元素,N为大于零的整数。
10.根据权利要求9所述的网络设备,其特征在于,所述发送模块用于第I次从所述第二队列中选择N个连续的元素包括:
所述发送模块具体用于,第I次从所述第二队列中选择N个连续的元素,所述第I次选择的所述N个连续的元素中满足所述条件的元素至少有两个;
所述发送模块还用于:
确定所述第I次选择的所述N个元素中、在所述第二队列中排序靠后的、满足所述条件的元素对应的报文为所述第I次选择的所述N个元素中满足条件的元素对应的报文。
11.根据权利要求9或10所述的网络设备,其特征在于,所述运算模块用于将第一队列中的元素对预设的数值进行取模运算包括:
所述运算模块具体用于,将第一队列中的元素对所述N进行取模运算。
12.根据权利要求9或10所述的网络设备,其特征在于,所述发送模块还用于:
发送所述目标报文承载的上层协议类型以及crc字段。
13.根据权利要求9或10所述的网络设备,其特征在于,所述标识包括:
报文的ipid值或者报文的TCP序列号。
14.一种检测网络报文丢失的装置,其特征在于,包括:
获取模块,用于获取第一队列和第二队列,所述第一队列中的任意一个元素均为第一网络设备上报的统计信息,所述第二队列中的任意一个元素均为第二网络设备上报的统计信息,其中,任意一个网络设备的任意一个统计信息包括数量值和标识,所述数量值为截止到具有该标识的报文、该网络设备已接收到的报文的总数量;其中,所述报文包括所述第一网络设备和所述第二网络设备分别第I次从第三队列和第四队列中选择的N个连续的元素中满足条件的元素对应的报文;所述第三队列为所述第一网络设备将包括与其接收到的属于同一条数据流的报文一一对应的标识的元素对预设的数值进行取模运算得到的;所述第四队列为所述第二网络设备将包括与其接收到的属于所述同一条数据流的报文一一对应的标识的元素对预设的数值进行取模运算得到的;
查找模块,用于查找参考统计信息,所述参考统计信息为所述第一队列与所述第二队列中标识相同的统计信息;
确定模块,用于依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失。
15.根据权利要求14所述的装置,其特征在于,所述确定模块用于依据所述第一队列中的参考统计信息中的数量值、以及所述第二队列中的参考统计信息中的数量值,确定所述第一网络设备与所述第二网络设备之间是否发生报文丢失包括:
所述确定模块具体用于,计算所述第一队列中的参考统计信息中的数量值之差的绝对值,得到第一差值;计算所述第二队列中的参考统计信息的数量值之差的绝对值,得到第二差值;如果所述第一差值与所述第二差值不同,则确定所述第一网络设备与所述第二网络设备之间发生报文丢失;如果所述第一差值与所述第二差值相同,则确定所述第一网络设备与所述第二网络设备之间没有报文丢失。
16.根据权利要求14或15所述的装置,其特征在于,所述获取模块用于获取第一队列和第二队列包括:
所述获取模块具体用于,接收所述第一网络设备和所述第二网络设备上报的信息,所述信息包括五元组和统计信息;依据所述五元组,将所述第一网络设备上报的属于同一个数据流的统计信息构成所述第一队列,并将所述第二网络设备上报的属于所述数据流的统计信息构成所述第二队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610695385.7A CN107769988B (zh) | 2016-08-19 | 2016-08-19 | 信息发送及检测报文丢失的方法、装置和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610695385.7A CN107769988B (zh) | 2016-08-19 | 2016-08-19 | 信息发送及检测报文丢失的方法、装置和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107769988A CN107769988A (zh) | 2018-03-06 |
CN107769988B true CN107769988B (zh) | 2021-05-04 |
Family
ID=61263253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610695385.7A Active CN107769988B (zh) | 2016-08-19 | 2016-08-19 | 信息发送及检测报文丢失的方法、装置和网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107769988B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3562094B1 (en) * | 2018-04-23 | 2020-12-02 | TTTech Computertechnik AG | Network device and method for scalable data integrity checking |
CN111026324B (zh) * | 2018-10-09 | 2021-11-19 | 华为技术有限公司 | 转发表项的更新方法及装置 |
CN113824606B (zh) * | 2020-06-19 | 2023-10-24 | 华为技术有限公司 | 一种网络测量方法及装置 |
CN115277883A (zh) * | 2022-06-27 | 2022-11-01 | 新华三技术有限公司 | 一种报文转发方法以及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1390019A (zh) * | 2001-06-05 | 2003-01-08 | 华为技术有限公司 | 通用分组无线业务网络节点向计费网关发送话单的方法 |
WO2008083046A2 (en) * | 2006-12-29 | 2008-07-10 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
CN101616037A (zh) * | 2009-07-27 | 2009-12-30 | 华为技术有限公司 | 网络通信中丢包的检测方法、装置及系统 |
CN101699786A (zh) * | 2009-10-15 | 2010-04-28 | 华为技术有限公司 | 一种丢包检测的方法、装置和系统 |
CN104518841A (zh) * | 2013-09-26 | 2015-04-15 | 北京新媒传信科技有限公司 | 数据发送方法及装置 |
CN104765754A (zh) * | 2014-01-08 | 2015-07-08 | 北大方正集团有限公司 | 数据存储方法及装置 |
CN105429822A (zh) * | 2015-11-30 | 2016-03-23 | 东南大学 | 基于软件定义网络的端到端路径上逐跳链路丢包测量方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7433319B2 (en) * | 2004-10-27 | 2008-10-07 | At&T Intellectual Property I, L.P. | System and method for collecting and presenting service level agreement metrics in a switched metro ethernet network |
CN101388757B (zh) * | 2008-09-05 | 2011-02-09 | 北京锐安科技有限公司 | 一种网络保密传输方法及系统 |
-
2016
- 2016-08-19 CN CN201610695385.7A patent/CN107769988B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1390019A (zh) * | 2001-06-05 | 2003-01-08 | 华为技术有限公司 | 通用分组无线业务网络节点向计费网关发送话单的方法 |
WO2008083046A2 (en) * | 2006-12-29 | 2008-07-10 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
CN101616037A (zh) * | 2009-07-27 | 2009-12-30 | 华为技术有限公司 | 网络通信中丢包的检测方法、装置及系统 |
CN101699786A (zh) * | 2009-10-15 | 2010-04-28 | 华为技术有限公司 | 一种丢包检测的方法、装置和系统 |
CN104518841A (zh) * | 2013-09-26 | 2015-04-15 | 北京新媒传信科技有限公司 | 数据发送方法及装置 |
CN104765754A (zh) * | 2014-01-08 | 2015-07-08 | 北大方正集团有限公司 | 数据存储方法及装置 |
CN105429822A (zh) * | 2015-11-30 | 2016-03-23 | 东南大学 | 基于软件定义网络的端到端路径上逐跳链路丢包测量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107769988A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850337B (zh) | 一种网络质量检测方法及装置 | |
CN107769988B (zh) | 信息发送及检测报文丢失的方法、装置和网络设备 | |
US8045478B2 (en) | Performance measurement in a packet transmission network | |
US8054744B1 (en) | Methods and apparatus for flow classification and flow measurement | |
JP4774357B2 (ja) | 統計情報収集システム及び統計情報収集装置 | |
US8593958B2 (en) | Network-wide flow monitoring in split architecture networks | |
TW536890B (en) | Scalable real-time quality of service monitoring and analysis of service dependent subscriber satisfaction in IP networks | |
US9391895B2 (en) | Network system and switching method thereof | |
US7898969B2 (en) | Performance measurement in a packet transmission network | |
US20150074258A1 (en) | Scalable performance monitoring using dynamic flow sampling | |
EP1583281A1 (en) | High-speed traffic measurement and analysis methodologies and protocols | |
CN106464547A (zh) | 家庭网络监测器 | |
US8270305B2 (en) | Node device, node system, and method and program for changing statistic information management table used for the node device | |
CN110740065B (zh) | 劣化故障点的识别方法、装置及系统 | |
CN1764159A (zh) | 分析数据报的处理装置和方法 | |
CN110557342A (zh) | 用于分析和减轻丢弃的分组的设备 | |
US8976689B2 (en) | Methods, systems, and computer program products for monitoring network performance | |
US7936699B2 (en) | Estimation method, device, and program, and network measuring system | |
CN109756358B (zh) | 采样频率推荐方法、装置、设备与存储介质 | |
CN112469067B (zh) | 一种网络批量业务流量监测方法和系统 | |
JP2007036839A (ja) | パケット交換網における品質劣化切り分け装置および切り分けシステム、ならびに切り分け方法 | |
KR20140051776A (ko) | 플로우 기반의 네트워크 모니터링을 위한 장치 및 네트워크 모니터링 시스템 | |
CN114465897A (zh) | 业务流中数据包的监控方法、装置和系统 | |
US11784895B2 (en) | Performance measurement in a packet-switched communication network | |
US7385930B2 (en) | Packet discard point probing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |