通信方法及终端设备、网络设备、采集器与流程

文档序号:25884464发布日期:2021-07-16 19:04阅读:214来源:国知局
通信方法及终端设备、网络设备、采集器与流程

1.本申请涉及通信领域,尤其涉及通信方法及终端设备、网络设备、采集器。


背景技术:

2.互联网协议(internet protocol,ip)网络中通常包括大量的网络设备和终端设备,各个网络设备及终端设备的设备类型、数量、连接关系等,通常由用户及网络运营商结合实际业务需求进行部署。对于ip网络中的任意两个终端设备,可以通过由一个或多个网络设备所提供数据链路,传输两个终端设备所需交互的数据包。为了确保数据链路能够用于高效的传输相应的终端设备所需交互的数据包,需要及时发现并维护丢失数据包的设备。
3.目前,可以在每个网络设备和终端设备中,预先部署基于互联网协议流输出(internet protocol flow information export,ipfie)协议的功能模块,通过该功能模块采集各个数据流的报文数、总字节数、时间戳等流量以形成流表,并将流表发送至采集器,进而由采集器对来自每个设备的流表进行综合分析,以确定丢失数据包的设备。
4.该方案中,ip网络中的每个网络设备及终端设备,均需要向采集器发送包括大量信息的流表,网络设备和终端设备的数量也相对较大,导致采集器需要花费大量的时间资源及计算资源对各个流表进行综合分析,才能确定出丢失数据包的设备。


技术实现要素:

5.本申请中提供了一种通信方法及终端设备、网络设备、采集器,能够更为高效的确定出 ip网络中丢失数据包的设备。
6.第一方面,提供了一种应用于网络设备的通信方法,该方法包括:从第一节点接收数据包,并确定所述数据包所属的数据流,所述第一节点为所述网络设备的上一跳,所述第一节点包括第一终端设备或第一网络设备;确定所述网络设备已接收的属于所述数据流的数据包的第一统计数量;确定所述数据包中是否包括第一头部,所述第一头部包括所述第一节点的设备标识、所述第一节点已发送的属于所述数据流的数据包的第二统计数量;在所述数据包中包括所述第一头部的情况下,确定所述第二统计数量和所述第一统计数量的差值是否大于设定数值;在所述差值大于设定数值的情况下,向采集器发送包括第二头部的所述数据包,所述第二头部中包括所述第一统计数量和所述网络设备的设备标识。
7.如此,网络设备可以在作为其上一跳的第一节点丢失属于一个数据流的数据包的情况下,向采集器发送包括该第一节点的设备标识的数据包,使得采集器可以根据其接收的数据包中包括的第一节点的设备标识,确定该第一节点丢失数据包。采集器无需花费大量的时间资源及计算资源对大量的信息进行综合分析,能够更为高效的确定出ip网络中丢失数据包的设备。
8.在一种可能的实施方式中,所述方法还包括:在所述数据包中包括所述第一头部的情况下,向第二节点发送包括所述第二头部的所述数据包,所述第二节点为所述网络设
备的下一跳,所述第二节点包括第二终端设备或第二网络设备。如此,可确保作为该网络设备的下一跳的第二节点,能够得知该网络设备接收/发送的并且属于相应的数据流的数据包的统计数量,以便发现该网络设备是否丢失属于相应的数据流的数据包。
9.在一种可能的实施方式中,所述第二头部位于所述数据包中包括的所述第一头部和有效负荷之间。如此,对于采集器以及作为该网络设备的下一跳的第二节点,可以根据其接收的数据包中包括的各个头部各自在该数据包中的位置,更为快速的确定由该网络设备向数据包中插入的头部。
10.在一种可能的实施方式中,所述确定所述数据包中是否包括第一头部,包括:根据预设标识符确定所述数据包中是否包括第一头部,所述第一头部中包括所述预设标识符。
11.在一种可能的实施方式中,所述确定所述数据包中是否包括第一头部,包括:根据指示信息确定所述数据包中是否包括第一头部,所述指示信息位于所述数据包的传输层协议头部所包括的可选项(option)中。
12.在一种可能的实施方式中,在所述确定所述第二统计数量和所述第一统计数量的差值是否大于设定数值之后,所述方法还包括:将所述第一统计数量置为初始数值。如此,对属于同一个数据流的数据包进行分段统计,避免ip网络中的一个网络设备在丢失属于该数据流的一个数据包之后,作为该网络设备的下一跳的第二节点在每次接收到属于该数据流的数据包时,均向采集器发送相应的数据包而增加第二节点的负荷。
13.在一种可能的实施方式中,在所述确定所述网络设备已接收的属于所述数据流的数据包的第一统计数量之前,所述方法还包括:确定所述数据包中是否包括另一头部,所述另一头部指示了所述数据包为第一终端设备发送的属于所述数据流的首个数据包;在所述数据包中包括所述另一头部的情况下,向所述采集器和第二节点分别发送所述数据包,并记录所述网络设备已接收的属于所述数据流的数据包的当前统计数量为1,所述第二节点为所述网络设备的下一跳,所述第二节点包括第二终端设备或第二网络设备。如此,有利于网络设备更为高效的确定出ip网络中丢失属于一个数据流的首个数据包的设备。
14.第二方面,提供了一种应用于终端设备的通信方法,该方法包括:获取待发送的数据包,并确定所述数据包所属的数据流;确定所述终端设备已发送的属于所述数据流的数据包的当前统计数量;在所述当前统计数量满足预设条件的情况下,向网络设备发送包括第一头部的所述数据包,所述第一头部包括所述终端设备的设备标识、所述终端设备已发送的属于所述数据流的数据包的第一统计数量,所述第一统计数量与所述当前统计数量的差值为1。
15.如此,终端设备并不需要向属于同一个数据流的每个数据包中均插入相应的头部,可以实现在更为高效的确定出ip网络中丢失数据包的同时,尽可能的降低终端设备以及网络设备的负荷,提高终端设备和网络设备的性能。
16.在一种可能的实施方式中,所述第一头部位于所述数据包中包括的传输层协议头部和有效负荷之间。如此,对于采集器以及作为该网络设备的下一跳的第二节点,可以根据其接收的数据包中包括的各个头部各自在该数据包中的位置,更为快速的确定由该网络设备向数据包中插入的头部。
17.在一种可能的实施方式中,所述方法还包括:在所述当前统计数量不满足预设条件的情况下,向所述网络设备发送所述数据包,并将所述当前统计数量加1。
18.在一种可能的实施方式中,在所述向网络设备发送包括第一头部的所述数据包之后,所述方法还包括:将所述当前统计数量置为初始数值。如此,对属于同一个数据流的数据包进行分段统计,避免终端设备在丢失属于该数据流的一个数据包之后,作为该终端设备的下一跳的网络设备在每次接收到属于该数据流的数据包时,均向采集器发送相应的数据包而增加该网络设备的负荷。
19.在一种可能的实施方式中,所述第一头部中还包括预设标识符,所述预设标识符用于指示所述数据包包括所述第一头部。如此,对于采集器以及作为该网络设备的下一跳其它网络设备或第二终端设备,可以根据该预设标识符,更为快速的确定出由该网络设备向数据包中插入的头部。
20.在一种可能的实施方式中,所述数据包中还包括指示信息,所述指示信息位于所述数据包的传输层协议头部所包括的可选项中,所述指示信息用于指示所述数据包中是否包括所述第一头部。如此,网络设备无需全面解析其接收的数据包中包括的所有头部,即可得知该数据包中是否包括作为该网络设备的上一跳的第一节点向该数据包中插入的头部。
21.在一种可能的实施方式中,所述方法还包括:在所述确定所述终端设备已发送的属于所述数据流的数据包的当前统计数量之前,所述方法还包括:确定所述数据包是否为所述终端设备发送的属于所述数据流的首个数据包;在所述数据包为所述终端设备发送的属于所述数据流的首个数据包的情况下,向网络设备发送包括另一头部的所述数据包,并记录所述网络设备已发送的属于所述数据流的数据包的当前统计数量为1,所述另一头部用于指示所述数据包为所述终端设备发送的属于所述数据流的首个数据包。
22.如此,使得各网络设备能够在接收到属于一个数据流的首个数据包的情况下,根据该数据包中包括的另一头部的指示,向采集器发送该数据包,以便采集器根据该数据包确定ip网络中丢失丢数据包的网络设备。
23.第三方面,提供了一种应用于采集器的通信方法,该方法包括:从网络设备接收第一数据包;从所述第一数据包中确定出第一头部,所述第一头部中包括第一节点的设备标识,所述第一节点为所述网络设备的上一跳,所述第一节点包括第一终端设备或第一网络设备;根据所述第一节点的设备标识,确定所述第一节点丢失数据包。如此,采集器可以根据其接收的数据包中包括的第一节点的设备标识,确定该第一节点丢失数据包,无需花费大量的时间资源及计算资源对大量的信息进行综合分析,能够更为高效的确定出ip网络中丢失数据包的设备。
24.这里,采集器可以根据其接收的数据包中包括的第一节点的设备标识,确定该第一节点丢失数据包,采集器无需花费大量的时间资源及计算资源对大量的信息进行综合分析,能够更为高效的确定出ip网络中丢失数据包的设备。
25.在一种可能的实施方式中,所述从所述第一数据包中确定出第一头部,包括:根据预设标识符从所述第一数据包包括的有效负荷中确定出至少两个头部,各个所述头部中均包括所述预设标识符;根据所述至少两个头部分别在所述有效负荷中的位置,从所述至少两个头部中确定出第一头部。
26.在一种可能的实施方式中,该方法还包括:从多个网络设备分别接收第二数据包,并记录接收各个所述数据包时分别对应的接收时刻,所述第二数据包的有效负荷中包括另一头部,该另一头部用于指示该有效负荷为所述第一终端设备发送的属于一个数据流的首
个数据包;在未接收到来自第二终端设备的指示的情况下,从各个所述网络设备中确定出目标网络设备,所述采集器从所述目标网络设备接收所述第二数据包时对应的接收时刻为各个所述接收时刻中的最大值;其中,所述指示信息由第二终端设备在接收到所述第一终端设备向第二终端设备发送的所述有效负荷之后向采集器发送,所述指示信息用于指示所述第二终端设备已经接收到所述第一终端设备向第二终端设备发送的所述有效负荷;确定所述目标网络设备丢失数据包。这里,采集器可以更为高效的确定出ip网络中丢失属于一个数据流的首个数据包的设备。
27.第四方面,提供了一种计算机可读存储介质,用于存储指令,当所述指令被计算设备的处理器执行时,使得所述计算设备实现第一方面、第二方面或第三方面中任一项所述的方法。
28.第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算设备上运行时,使得计算设备实现第一方面、第二方面或第三方面中任一项所述的方法。
29.第六方面,提供了一种网络设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中任一项所述的方法。
30.第七方面,提供了一种终端设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面中任一项所述的方法.
31.第八方面,提供了一种采集器,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第三方面中任一项所述的方法。
32.第九方面,提供了一种通信装置,所述通信装置具有上述各个方面中网络设备/终端设备 /采集器的功能。
33.第十方面,提供了一种通信装置,所述通信装置可以为上述各个方面中所述的网络设备/ 终端设备/采集器,或者为设置在所述网络设备/终端设备/采集器中的芯片。该通信装置包括存储器、通信接口以及处理器,其中,该存储器用于存储计算机程序或指令,处理器与存储器、通信接口耦合,当处理器执行所述计算机程序或指令时,使得通信装置执行上述第一方面/第二方面/第三方面中任一项所述的方法。
34.第十一方面,提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各个方面中所述的网络设备/终端设备/处理器的功能,例如,接收或处理上述第一方面/第二方面/第三方面的方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据。该芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
35.根据本申请中提供的技术方案,网络设备可以在作为其上一跳的第一节点丢失属于一个数据流的数据包的情况下,向采集器发送包括该第一节点的设备标识的数据包,使得采集器可以根据其接收的数据包中包括的第一节点的设备标识,确定该第一节点丢失数据包。采集器无需花费大量的时间资源及计算资源对大量的信息进行综合分析,能够更为高效的确定出 ip网络中丢失数据包的设备。
附图说明
36.图1为本申请实施例中提供的示例性的ip网络的系统框架图;
37.图2为本申请实施例中提供的一种应用于终端设备的通信方法的流程示意图;
38.图3为本申请实施例中由终端设备向数据包中插入的第一头部的报文结构示意图;
39.图4为本申请实施例中提供的另一种应用终端设备的通信方法的流程示意图;
40.图5为本申请实施例中由终端设备向数据包中插入的另一头部的报文结构示意图;
41.图6为本申请实施例中提供的一种应用于网络设备的通信方法的流程示意图;
42.图7为示例性的ip网络对属于一个数据流的数据包进行处理的过程示意图;
43.图8为示例性的数据包的结构示意图;
44.图9为本申请实施例中提供的另一种应用于网络设备的通信方法的流程示意图;
45.图10为本申请实施例中提供的一种应用于采集器的通信方法的流程示意图;
46.图11为示例性的ip网络对属于一个数据流的首个数据包进行处理的过程示意图;
47.图12为本申请实施例中提供的一种应用于终端设备的通信装置的结构示意图;
48.图13为本申请实施例中提供的一种应用于网络设备的通信装置的结构示意图;
49.图14为本申请实施例中提供的一种应用于采集器的通信装置的结构示意图。
具体实施方式
50.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
51.本申请实施例中,终端设备(terminal device,td)可以是移动设备(mobile device)、用户设备(user equipment,ue)、终端(terminal)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、个人计算机、服务器等。本申请实施例中,网络设备是用于连接通信线路的设备,具体可以是中继器、集线器、交换机、路由器或者基站设备。其中,通信线路是保证信息传递的通路,具体可以是光缆或电缆等有线线路,还可以是各种无线通信技术中的无线线路。
52.可以理解,对于ip网络中任意的终端设备,该终端设备可以通过若干网络设备所提供的数据链路,向ip网络中的另一个终端设备发送的数据包。示例性的,请参考图1,可以通过网络设备1、网络设备3、网络设备4、网络设备6所提供的数据链路,传输终端设备1向终端设备 2发送的数据包;还可以通过网络设备1、网络设备2、网络设备4、网络设备5所提供的数据链路,传输终端设备1向终端设备3或终端设备4发送的数据包。
53.可以理解,终端设备发送的数据包至少包含ip头部和传输层协议头部;通常的,该数据包还可以包含有效负荷和/或用于辅助完成特定业务的其它头部。其中,ip头部至少包括源ip 地址、目的ip地址和传输层协议类型;传输层协议头部可以是至少包括源端口号和目的端口号的传输控制协议(transmission control protocol,tcp)头部/用户数据报协议(user datagram protocol,udp)头部。
54.在一种可能的实施方式中,对于一个数据包,可以将该数据包划分到该数据包包括的源 ip地址和目的ip地址所标识的数据流。也就是说,终端设备1向终端设备2发送的各个数据包将被划分到一个数据流,终端设备1向终端设备3发送的各个数据包将被划分到另一个数据流。
55.在一种可能的实施方式中,对于一个数据包,可以将该数据包划分到该数据包的
五元组所标识的数据流。也就是说,终端设备1向终端设备2发送的多个数据包可能被划分到不同的数据流,其中,属于同一个数据流的每个数据包各自包含的源ip地址相同、各自包含的目的 ip地址相同、各自包含的传输层协议类型相同、各自包含的源端口号相同且各自包含的目的端口号相同。
56.本申请实施例中,通过前述两种可能的实施方式之一,划分终端设备发送的若干数据包各自所属的数据流,由一个终端设备发送的并且属于同一个数据流的多个数据包会被相同的数据链路传输至另一个终端设备。也就是说,如果通过网络设备1、网络设备3、网络设备4、网络设备6所提供的数据链路,传输终端设备1向终端设备2发送的属于一个数据流的首个数据包,那么对于终端设备1向终端设备2发送的属于该数据流的其它数据包,也将通过网络设备1、网络设备3、网络设备4、网络设备6所提供的数据链路来进行传输。
57.相应的,针对数据链路上通过相应的通信线路直接连接的任意两个网络设备,如果该任意两个网络设备分别接收的属于同一个数据流的数据包的统计数量并不完全相同,则说明对应统计数量较大的网络设备丢失了属于该数据流的数据包。
58.相应的,为了更加高效的确定ip网络中丢失数据包的设备,本申请实施例中至少提供了一种或多种通信方法及设备。其中,网络设备从作为其上一跳的第一节点接收到属于一个数据流的数据包之后,可以确定其自身已接收的属于该数据流的数据包的第一统计数量;如果该数据包中包括第一头部,该第一头部包括第一节点的设备标识和第一节点已发送属于该数据流的数据包的第二统计数量,并且该第二统计数量与第一统计数量的差值大于设定数值,则说明第一节点丢失了属于该数据流的数据包。相应的,包含第二头部信息的数据包可以被该网络设备发送到采集器,该第二头部包含该网络设备的设备标识和第一统计数量。
59.换而言之,网络设备可以在作为其上一跳的第一节点丢失属于一个数据流的数据包的情况下,向采集器发送包括该第一节点的设备标识的数据包,使得采集器可以根据其接收的数据包中包括的第一节点的设备标识,确定该第一节点丢失数据包,无需花费大量的时间资源及计算资源对大量的信息进行综合分析即可发现ip网络中丢失数据包的设备。
60.下面对本申请实施例中,终端设备、网络设备以及采集器等设备在通信过程中各自需要执行的步骤进行更加详细的描述。
61.图2为本申请实施例中提供的一种应用于网络设备的通信方法的流程示意图。如图2所示,该方法可以包括如下步骤21~步骤25。
62.首先,在步骤21,获取待发送的数据包,并确定所述数据包所属的数据流。
63.在一种可能的实施方式中,终端设备可以根据其获取的数据包packet-n的源ip地址和目的 ip地址,确定packet-n所属的数据流。也就是说,packet-n所属的数据流可以是packet-n的源ip 地址和目的ip地址所标识的数据流。
64.在一种可能的实施方式中,终端设备可以根据其获取的数据包packet-n的五元组,确定 packet-n所属的数据流。也就是说,packet-n所属的数据流可以是packet-n的五元组所标识的数据流。
65.需要说明的是,终端设备获取的数据包packet-n中,还可以包括有效负荷,该有效负荷可以是来自部署在该终端设备上的应用程序的业务数据。
66.需要说明的是,终端设备可以自动的或者在用户的触发下,确定是否需要对其获
取的 packet-n所属的数据流进行丢包测量;在确定出需要对packet-n所属的数据流进行丢包测量的情况下,针对packet-n执行如下步骤22以及与步骤22相关的业务处理流程。
67.在步骤22,确定所述数据包是否为所述终端设备发送的属于所述数据流的首个数据包。
68.在一个较为具体的示例中,对于终端设备获取的数据包packet-n,终端设备可以查询其维护的各条统计信息中是否存在包括packet-n的五元组的目标统计信息,如果并不存在目标统计信息,则确定packet-n为该终端设备获取/发送的并且属于packet-n的五元组所标识数据流的首个数据包;反之,如果存在目标统计信息,则确定packet-n不是该终端设备获取/发送的并且属于packet-n的五元组所标识数据流的首个数据包。
69.其中,在所述数据包并不是所述终端设备发送的属于所述数据流的首个数据包的情况下,该终端设备可以进一步执行如下步骤23。
70.在步骤23,确定终端设备已发送的属于所述数据流的数据包的当前统计数量。
71.可以理解,终端设备可以记录其已发送的并且属于各个数据流的数据包的当前统计数量。
72.以属于同一个数据流的各个数据包具有相同的五元组为例,ip网络中任意的终端设备1,可以维护与如下表1相同或相似的流量统计表,通过在流量统计表中维护若干统计信息,记录该终端设备1已发送的并且属于各个数据流的数据包的当前统计数量。
73.表1
[0074][0075]
如上表1所示,除了各个字段名称所在的行以外的任意一行,各自记录了一条统计信息;其中,ip_1为ip网络中任意的终端设备1的ip地址、ip_2为ip网络中任意的终端设备2的ip地址、 ip_3为ip网络中任意的终端设备3的ip地址。对于终端设备1获取的数据包packet-n,终端设备1 可以进一步获取packet-n的五元组,并根据packet-n的五元组查询上述表1中记录的各条统计信息,得到终端设备1已发送的并且属于packet-n的五元组所标识的数据流的数据包的当前统计数量。具体地,packet-n的五元组中,源ip地址为ip_1、目的ip地址为ip_2、传输层协议类型为tcp、源端口号为c11、目的端口号为c21,终端设备1则可通过查询上述表1确定当前统计数量为x1;packet-n的五元组中,源ip地址为ip_1、目的ip地址为ip_2、传输层协议类型为tcp、源端口号为c12、目的端口号为c22,终端设备1则可通过查询上述表1,确定当前统计数量为 x2;在packet-n的五元组中,源ip地址为ip_1、目的ip地址为ip_3、传输层协议类型为tcp、源端口号为c13、目的端口号为c31,终端设备1则可通过查询上述表1确定当前统计数量为x3。
[0076]
相应的,如果上述表1中并不存在包括了packet的五元组的目标统计信息,即终端设备1 并未在上述表1中查询到packet-n的五元组,终端设备1则可确定packet为终端设备1发送的并且属于packet-n的五元组所标识的数据流的首个数据包。
[0077]
接着,在步骤24,确定当前统计数量是否满足预设条件。
[0078]
这里,预设条件可以结合实际业务需求进行设置。其中,包括但不限于将预设条件设置为:当前统计数量与预设数值的商为正整数;比如,还可以将预设条件设置为(x+1)与预设数值的商为正整数,x表征在步骤23确定的当前统计数量。
[0079]
这里,在当前统计数量满足预设条件的情况下,终端设备可以进一步执行如下步骤25和/ 或与步骤25相关的业务处理流程。也就是说,在当前统计数量并不满足预设条件的情况下,终端设备并不需要对其获取的数据包执行如下步骤25和/或与步骤25相关的较为复杂的业务处理流程,从而可以降低终端设备的负荷,提升终端设备的性能。
[0080]
在步骤25,向网络设备发送包括第一头部的所述数据包。
[0081]
其中,对于终端设备向网络设备发送的数据包packet-n中包括的第一头部,该第一头部中至少可以包括该终端设备的设备标识、该终端设备已发送的并且属于该数据流的数据包的第一统计数量,该第一统计数量与步骤23中确定的当前统计数量的差值为1。也就是说,终端设备可以在步骤23确定的当前统计数量满足预设条件的情况下,向其获取的数据包packet-n中插入第一头部,并向作为该终端设备的下一跳的网络设备发送包括该第一头部的packet-n。
[0082]
为了方便描述,以下将终端设备向其获取的packet-n中插入的第一头部记为header-0。
[0083]
在一种可能的实施方式中,终端设备向packet-n中插入的header-0可以位于packet-n包括的传输层协议头部和有效负荷之间,以便网络设备根据header-0在packet-n中的位置,快速确定由终端设备向packet-n中插入的header-0。
[0084]
在一种可能的实施方式中,终端设备向packet-n中插入的header-0还可以包括预设标识符,以便网络设备根据该预设标识符,快速确定由终端设备向packet-n中插入的header-0。
[0085]
在一个较为具体的示例中,请参考图3,终端设备向packet-n中插入的header-0所对应的报文,可以包括用于表征预设标识符的子报文1、用于表征该终端设备的设备标识的子报文2和用于表征第一统计数量的子报文3;其中,子报文1的长度可以是预设长度a、子报文2的长度可以是预设长度b、子报文3的长度可以是预设长度c。
[0086]
为了方便网络设备快速确定其接收的packet-n中是否包括由终端设备插入的header-0,在一种可能的实施方式中,终端设备还可以向其获取的packet-n中插入指示信息,该指示信息可以位于packet-n的传输层协议头部所包括的可选项中,用于指示网络设备接收的packet-n中是否包括由终端设备向packet-n中插入的header-0。
[0087]
在一个较为具体的示例中,如果终端设备向网络设备发送的packet-n中包括header-0,该终端设备则向packet-n的传输层协议头部所包括的可选项中插入取值为1的指示信息;如果终端设备向网络设备发送的packet-n中并不包括由终端设备向packet-n中插入的header-0,该终端设备则向packet-n的传输层协议头部所包括的可选项中插入取值为0的指示信息。
[0088]
为了方便网络设备确定其接收的packet-n所属的数据流,在一种可能的实施方式中,终端设备还可以根据其获取的packet-n的五元组,确定能够用于唯一标识packet-n所属的数据流的流标识,并向packet-n中插入该流标识。即终端设备向网络设备发送的packet-n中,还可以包含packet-n所属的数据流的流标识。
[0089]
在一个较为具体的示例中,ip网络中任意的终端设备1可以在上述表1的基础上增加流标识字段,即终端设备1可以维护如下表2所示的流量统计表。
[0090]
表2
[0091][0092]
其中,对于由源ip地址ip_1、目的ip地址ip_2、传输层协议类型tcp、源端口号c11、目的端口号c21组成的五元组所标识的数据流,终端设备1发送的属于该数据流的数据包中可以包含流标识l1。对于由源ip地址ip_1、目的ip地址ip_2、传输层协议类型tcp、源端口号c12、目的端口号c22组成的五元组所标识的数据流,终端设备1发送的属于该数据流的数据包中可以包含流标识l2。对于由源ip地址ip_1、目的ip地址ip_3、传输层协议类型tcp、源端口号 c13、目的端口号c31组成的五元组所标识的数据流,终端设备1发送的属于该数据流的数据包中可以包含流标识l3。
[0093]
在一个更为具体的示例中,对于包括header-0的packet-n,流标识可以位于header-0中。比如,流标识可以位于header-0所包括的预设标识符之后的任意位置。
[0094]
进一步的,在如图2所示实施例的基础上,在一种可能的实施方式中,如图4所示,在所述数据包是所述终端设备发送的属于所述数据流的首个数据包的情况下,终端设备还可以执行步骤41,向网络设备发送包括另一头部的所述数据包,并记录所述终端设备已发送属于所述数据流的数据包的当前统计数量为1;其中,所述另一头部用于指示所述数据包为所述终端设备发送的属于所述数据流的首个数据包。也就是说,终端设备可以向其获取的属于一个数据流的首个数据包中插入另一头部,并向作为该终端设备的下一跳的网络设备发送包括该另一头部的数据包。
[0095]
为了方便描述,以下将终端设备向其获取的数据包packet-n中插入的另一头部记为header。
[0096]
在一个较为具体的示例中,header可以和header-0具有相似的数据结构。请参考图5,header所对应的报文可以包括用于表征预设标识符的子报文1、用于表征设备标识的子报文2 和用于表征特征值的子报文3;其中,子报文1的长度可以是预设长度a、子报文2的长度可以是预设长度b、子报文3的长度可以是预设长度c。特征值用于指示包括该header的packet-n为终端设备发送的属于相应的数据流的首个数据包;示例性的,特征值的取值可以为0或其它预设数值。
[0097]
在一个较为具体的示例中,header可以具有与header-0完全不同的数据结构。比如,header 中可以包括另一个预设标识符,而该另一个预设标识符用于指示包括该header的packet-n为终端设备发送的属于相应的数据流的首个数据包。
[0098]
在一个较为具体的示例中,对于包括header的packet-n,header可以位于packet-n包括的传输层协议头部和有效负荷之间。
[0099]
在一个更为具体的示例中,对于包括header的packet-n,packet-n中还可以包括packet-n所属的数据流的流标识,该流标识可以位于header中。
[0100]
在一个较为具体的示例中,终端设备可以在其维护的流量统计表中,新增一条统计信息,该统计信息中包括终端设备获取的packet-n的五元组和packet-n所属的数据流的流标识,并且该统计信息中包括取值为1的当前统计数量。
[0101]
进一步的,为了避免网络设备在丢失属于一个数据流的数据包之后,作为该网络设备的下一跳的第二节点在接收到属于该数据流的每个数据包时,均向采集器发送用于通知该网络设备丢失数据包的数据包,在一种可能的实施方式中,如果当前统计数量满足预设条件,终端设备还可以在步骤24或步骤25之后进一步执行步骤42,将所述当前统计数量置为初始数值。
[0102]
举例来说,如果预设条件为(x+1)与预设数值“100”的商为正整数,x表征步骤23中确定的当前统计数量。那么,对于流标识l1所标识的数据流,终端设备在获取到第100个属于 l1所标识的数据流的数据包packet-n,并向相应的网络设备发送包含header-0的packet-n之后,则可将步骤23中确定的当前统计数量“99”重置为初始数值,比如重置为0。
[0103]
相应的,在如图2所示实施例的基础上,在一种可能的实施方式中,如图4所示,在步骤 23确定的当前统计数量不满足预设条件的情况下,终端设备还可以执行步骤43,向网络设备发送所述数据包,并将当前统计数量加1。
[0104]
可以理解,对于终端设备获取的packet-n,无论终端设备是否向其获取的packet-n中插入 header/header-0,该终端设备均可向packet-n的传输层协议头部所包括的可选项中,插入 packet-n所属的数据流的流标识。换而言之,由终端设备发送的packet-n中,其传输层协议头部所包括的可选项中可以包括packet-n所属的数据流的流标识。
[0105]
与应用于ip网络中任意的终端设备的通信方法相对应的,本申请实施例中还提供了一种应用于ip网络中任意的网络设备的通信方法。如图6所示,该方法可以包括如下步骤61
[0106]
在步骤61,从第一节点接收数据包,并确定所述数据包所属的数据流,所述第一节点为网络设备的上一跳,所述数据包属于一个数据流。
[0107]
需要说明的是,第一节点是向该网络设备发送数据包并且通过相应的通信线路与该网络设备直接连接的第一终端设备或第一网络设备。
[0108]
请参考图1,网络设备1、网络设备3、网络设备4和网络设备5所提供的数据链路,用于传输终端设备1向终端设备2发送的数据包packet-n。如果执行步骤61的网络设备是通过一个通信线路与终端设备1直接连接的网络设备1,则终端设备1通常被称为网络设备1的上一跳,终端设备1是相对于网络设备1的第一终端设备;如果执行步骤61的网络设备并不是通过一个通信线路与终端设备1直接连接的网络设备,比如执行步骤61的网络设备是网络设备4,则通过一个通信线路与网络设备4直接连接的网络设备3通常被称为网络设备4的上一跳,网络设备3是相对于网络设备4的第一网络设备。
[0109]
可以理解,网络设备通常采用与终端设备相同或相似的方法,确定其从第一节点接收的数据包packet-n所属的数据流。
[0110]
接着,在步骤62,确定所述网络设备已接收的属于所述数据流的数据包的第一统计数量。
[0111]
可以理解,网络设备可以采用与终端设备相同或相似的方法,记录其已接收的并且属于各个数据流的数据包的当前统计数量。相应的,网络设备在确定其接收的数据包
packet-n所属的数据流之后,可以查询其已接收的并且属于该数据流的数据包的当前统计数量,然后将查询的当前统计数量加1,得到网络设备实际接收的属于该数据流的数据包的第一统计数量。
[0112]
以属于同一个数据流的各个数据包具有相同的五元组为例,对于ip网络中任意的网络设备,可以维护与如下表3相同或相似的流量统计表,通过在流量统计表中维护若干统计信息,记录该网络设备已接收的并且属于各个数据流的数据包的当前统计数量。
[0113]
表3
[0114][0115]
如上表3所示,除了各个字段名称所在的行以外的任意一行,各自记录了一条统计信息。
[0116]
示例性的,ip_1为终端设备1的ip地址、ip_2为终端设备2的ip地址、ip_3为终端设备3的 ip地址,网络设备4可以从网络设备1、网络设备2、网络设备3、网络设备5或者网络设备6接收数据包packet-n。在网络设备4接收到数据包packet-n之后,网络设备4可以进一步确定 packet-n的五元组;然后,网络设备4可以根据该五元组查询由网络设备4维护的上述表3,确定网络设备4已接收的属于该五元组所标识的数据流的数据包的当前统计数量。其中,如果 packet-n的五元组中,源ip地址为ip_1、目的ip地址为ip_2、传输层协议类型为tcp、源端口号为c11、目的端口号为c21,网络设备4则可通过查询上述表3,确定网络设备4在接收到 packet-n之前,已接收的并且属于packet-n的五元组所标识的数据流的数据包的当前统计数量为y1,进而将当前统计数量y1加1,得到网络设备4已接收的并且属于packet-n的五元组所标识的数据流的数据包的第一统计数量为(y1+1);如果packet-n的五元组中,源ip地址为ip_1、目的ip地址为ip_3、传输层协议类型为tcp、源端口号为c13、目的端口号为c31,网络设备4 则可通过查询上述表3,确定网络设备4在接收到packet-n之前,已接收的并且属于packet-n的五元组所标识的数据流的数据包的当前统计数量为y3,进而将当前统计数量y3加1,得到网络设备4已接收的并且属于packet-n的五元组所标识的数据流的数据包的第一统计数量为 (y3+1)。
[0117]
如前所述,网络设备从第一节点接收的数据包packet-n中还可以包括流标识,该流标识用于唯一标识该数据包的五元组所标识的数据流;相应的,网络设备还可以在上述表3的基础上增加流标识字段。
[0118]
相应的,网络设备可以确定其接收的数据包packet-n中包括的流标识,并根据该流标识查询其维护的流量统计表,以确定网络设备在接收packet-n之前,已经接收并且属于该流标识所标识的数据流的数据包的当前统计数量,将当前统计数量加1以得到第一统计数量。如此,网络设备无需花费过多的时间和资源对其接收的数据包packet-n进行全面的解析以得到packet-n 的五元组。
[0119]
接着,在步骤63,确定所述数据包中是否包括第一头部。其中,第一头部包括所述第一节点的设备标识、所述第一节点已发送的属于所述数据流的数据包的第二统计数量。
[0120]
可以理解,在第一节点为第一终端设备的情况下,该第一头部可以包括终端设备向网络设备接收的数据包packet-n中插入的header-0;在第一节点为第一网络设备的情况下,该第一头部可以包括第一网络设备向packet-n中插入的头部。
[0121]
可以理解,第一节点已发送的并且属于所述数据流的数据包的第二统计数量,相等于该第一节点已接收的并且属于所述数据流的数据包的第一统计数量。
[0122]
在一种可能的实施方式中,网络设备可以从其接收的数据包packet-n的传输层协议头部所包括的可选项中获取指示信息,根据该指示信息的取值确定packet-n中是否包括第一头部。比如,指示信息的取值为1则确定packet-n中包括第一头部,指示信息的取值为0则确定packet-n 中并不包括第一头部。
[0123]
在一种可能的实施方式中,网络设备可以根据预设标识符确定所述数据包中是否包括第一头部。比如,终端设备可以对其接收的packet-n进行解析,以确定packet-n的传输层协议头部和有效负荷之间是否存在包括预设标识符的若干头部;如果是,则确定packet-n中包括第一头部。
[0124]
其中,在网络设备接收的数据包中包括该第一头部的情况下,网络设备可以执行如下64。
[0125]
在步骤64,确定所述第二统计数量和所述第一统计数量的差值是否大于设定数值。
[0126]
这里,设定数值可以是经验值,通常可以为0或者大于0的自然数。
[0127]
其中,在差值大于设定数值的情况下,网络设备可以执行如下步骤65。
[0128]
在步骤65,向采集器发送包括第二头部的所述数据包。其中,所述第二头部中包括所述第一统计数量和所述网络设备的设备标识。
[0129]
可以理解,网络设备向采集器发送包括第二头部的数据包packet-n时,网络设备可以对包括第二头部的数据包packet-n进行进一步的封装以形成能够被传输至采集器的第一数据包p1,包括第二头部的packet-n被封装为p1的有效负荷。
[0130]
可以理解,对于网络设备接收的属于一个数据流的数据包packet-n,如果第一节点向该网络设备发送的属于该数据流的数据包的统计数量,与该网络设备从第一节点接收的属于该数据流的数据包的统计数量并不相同,说明第一节点丢失了属于该数据流的数据包。
[0131]
也就是说,这里是在网络设备发现第一节点丢失了属于相应的数据流的数据包,网络设备则向采集器发送包括第二头部的packet-n,以通知采集器第一节点丢失了数据包。
[0132]
在一个较为具体的示例中,第二头部位于第一节点向packet-n中插入的第一头部和有效负荷之间。示例性的,请参考图7,在网络设备1从作为其上一跳的第一节点(终端设备1)接收到包括第一头部header-0的packet-n之后,网络设备1可以向其接收的packet-n中插入一个第二头部header-1,header-1位于packet-n包括的header-0和有效负荷payload之间;对于网络设备3 从作为其上一跳的第一节点(网络设备1)接收的packet-n,packet-n包括的第一头部是指网络设备1向packet中插入的第二头部header-1,网络设备3可以向packet-n包括的header-1和 payload之间插入第二头部header-2。
[0133]
可以理解,网络设备向其接收的数据包中插入的第二头部,与终端设备向其获取
的数据包中插入的第一头部header-0可以具有相同的数据结构。
[0134]
示例性的,请参考图7、图8,对于网络设备3向网络设备4发送的属于一个数据流l的数据包packet-n,可以包括终端设备1向packet-n中插入的头部header-0、网络设备1向packet-n中插入的头部header1以及网络设备3向packet-n中插入的头部header2。其中,header-0、header1 和header2均包括预设标识符,header-0中还包括终端设备1的设备标识a和终端设备1已发送的属于一个数据流的数据包的统计数量x,header-1中还包括网络设备1的设备标识b和网络设备1已发送的属于该数据流的数据包的统计数量y,header2中还包括网络设备3的设备标识c 和网络设备3已发送的属于该数据流的数据包的统计数量z。
[0135]
相应的,为了确保网络设备接收的数据包能够被传输到相应的终端设备,且该网络设备的下一跳能够得知该网络设备已发送的并且属于相应的数据流的数据包的统计数量,在如图6 所示实施例的基础上,在一种可能的实施方式中,如图9所示,无论第二统计数量与第一统计数量的差值是否大于0,网络设备均可以进一步执行步骤91,向第二节点发送包括所述第二头部的所述数据包,所述第二节点为所述网络设备的下一跳。
[0136]
需要说明的是,第二节点是通过一个通信线路与该网络设备直接连接的第二终端设备或第二网络设备。示例性的,请参考图1,网络设备1、网络设备3、网络设备4和网络设备6所提供的数据链路,用于传输终端设备1向终端设备2发送的数据包packet-n。那么,如果执行步骤 91的网络设备是通过一个通信线路与终端设备2直接连接的网络设备6,则终端设备2通常被称为网络设备6的下一跳,终端设备2也就是相对于网路设备6的第二终端设备。如果执行步骤91 的网络设备并不是通过一个通信线路与终端设备2直接连接的网络设备6,比如是网络设备4,则通过一个通信线路与网络设备4直接连接的网络设备6通常被称为网络设备4的下一跳,网络设备6也就是相对于网络设备4的第二网络设备。
[0137]
为了避免在该网络设备丢失属于一个数据流的数据包之后,导致作为该网络设备下一跳的第二节点在接收属于该数据流的每个数据包时,均向采集器发送包括第二头部的数据包而增加第二节点的负荷,在一种可能的实施方式中,在网络设备完成执行步骤64之后,网络设备还可以执行步骤92,将所述第一统计数量置为初始数值。具体而言,网络设备可以将其记录的已接收并且属于该数据流的数据包的当前统计数量重置为0。
[0138]
为了发现ip网络中丢失属于一个数据流的首个数据包的网络设备,在一种可能的实施方式中,网络设备在执行步骤62之前还可以执行如下步骤93以及与步骤93相关的其它业务处理流程。
[0139]
具体地,在步骤93,确定所述数据包中是否包括另一头部。其中,所述另一头部用于指示包括所述另一头部的所述数据包为第一终端设备发送的属于所述数据流的首个数据包。
[0140]
如前所述,另一头部是指终端设备向其获取的数据包packet-n中插入的header。在网络设备接收的数据包中包括header的情况下,网络设备可执行步骤62;反之,在网络设备接收的数据包并没有包括header的情况下,网络设备可以进一步执行如下步骤94。
[0141]
在步骤94,向所述采集器和第二节点分别发送所述数据包,并记录所述网络设备已接收属于所述数据流的数据包的当前统计数量为1,所述第二节点为所述网络设备的下一跳。
[0142]
需要说明的是,网络设备向采集器发送包括另一头部header的数据包packet-n时,网络设备可以对包括header的packet-n进行进一步的封装以形成能够被传输至采集器的第二数据包 p2,该第二数据包p2的有效负荷为包括header的packet-n。
[0143]
进一步的,为了确保网络设备从第一节点接收的数据包能够被传输到相应的终端设备,并准确统计网络设备实际接收/发送的属于一个数据流的数据包的当前统计数量,在一种可能的实施方式中,如图9所示,在网络设备从第一节点接收的数据包并不包括第一节点向该数据包插入的第一头部header-0的情况下,网络设备还可以进一步执行步骤95,向第二节点发送所述数据包,并将所述网络设备已接收的属于所述数据流的数据包的当前统计数量更新为所述第一统计数量。
[0144]
换而言之,在网络设备从第一节点接收的属于一个数据流的数据包中,并不包括由第一节点向该数据包中插入的第一头部的情况下,网络设备可以向作为其下一跳的第二节点直接转发该数据包,并在该网络设备中将其记录的已接收并且属于该数据流的数据包的当前统计数量加1。
[0145]
与网络设备执行的通信方法相对应的,本申请实施例中还提供了一种应用于采集器的通信方法。如图10所示,该方法可以包括如下步骤101~步骤102。
[0146]
在步骤101,从网络设备接收第一数据包。
[0147]
如前所述,第一数据包p1的有效负荷为,该网络设备针对从作为其上一跳的第一节点接收到属于一个数据流的数据包packet-n,向packet-n中插入第二头部之后所形成的包括第二头部的packet-n。
[0148]
接着,在步骤102,从所述第一数据包中确定出第一头部,所述第一头部中包括第一节点的设备标识,所述第一节点为所述网络设备的上一跳。
[0149]
可以理解,采集器需要对其接收的第一数据包进行解析以得到第一数据包中包括的有效负荷,然后从该有效负荷中确定出该第一头部。
[0150]
在一种可能的实施方式中,采集器可以根据预设标识符从所述第一数据包包括的有效负荷中确定出至少两个头部,根据所述至少两个头部分别在所述第一数据包中的位置,从所述至少两个头部中确定出所述第一头部。
[0151]
示例性的,请参考图7,对于采集器从网络设备6接收的第一数据包p1,采集器可以对p1 进行解析以得到网络设备6向终端设备发送的packet-n,即得到网络设备6向来自网络设备5的 packet-n插入第二头部header-4之后所得到的packet-n。然后,采集器可以从其得到的packet-n 中识别出包括预设标识符的header-0、header-1、header-2、header-3以及header-4等多个头部,并确定header-0、header-1、header-2、header-3以及header-4在packet-n中的位置分别与payload 在packet-n中的位置之间的距离,按照由小到大的顺序对各个距离所分别对应的头部进行排序以形成序列[header-4、header-3、header-2、header-1、header-0],在该序列中选择排在第二位的头部header3作为第一头部。
[0152]
如前所述,终端设备和网络设备分别向其获取/接收的数据包中插入的头部均具有一定的数据结构,采集器仅需要根据预先得知的头部的数据结构,对确定的第一头部进行进一步的解析以得到第一节点的设备标识。
[0153]
之后,在步骤103,根据所述第一节点的设备标识,确定所述第一节点丢失数据包。
[0154]
进一步的,为了发现ip网络中丢失属于一个数据流的首个数据包的设备,在一种
可能的实施方式中,网络设备还可以执行:从多个网络设备分别接收第二数据包,并记录接收各个所述第二数据包时分别对应的接收时刻;在未接收到来自第二终端设备的指示的情况下,从各个所述网络设备中确定出目标网络设备,所述采集器从所述目标网络设备接收所述第二数据包时对应的接收时刻为各个所述接收时刻中的最大值;以及确定所述目标网络设备丢失数据包。
[0155]
如前所述,该第二数据包p2的有效负荷为第一终端设备发送的数据包packet-n,packet-n 中包括由第一终端设备向packet-n中插入的另一头部header,该header用于指示包括该header 的packet-n为第一终端设备发送的属于一个数据流的首个数据包。
[0156]
其中,指示信息可以由第二终端设备在接收到所述第一终端设备向第二终端设备发送的所述有效负荷之后向采集器发送,即指示信息用于指示所述第二终端设备已经接收到所述第一终端设备向第二终端设备发送的包括另一头部header的packet-n。
[0157]
下面结合前述各个实施例,示例性描述针对ip网络中的设备进行丢包测量的具体过程。
[0158]
如图1所示,ip网络中任意的终端设备1和终端设备2之间可以建立tcp连接,终端设备1 可以基于该tcp连接向终端设备2发送多个数据包packet。可以理解,终端设备1基于该tcp连接向终端设备2发送的多个具有完全相同的五元组的packet,并且多个packet将会被相同的数据链路传输到终端设备2;因此,多个packet将会被划分到同一个数据流,且该数据流由针对该数据流分配的流标识(比如,流标识为l)进行标识。这里具体以通过网络设备1、网络设备3、网络设备4、网络设备6提供的数据链路,传输终端设备1基于该tcp连接向终端设备2发送的属于数据流l的多个packet,并且以终端设备1发送的属于数据流l的数据包每增加设定数量n的情况下,触发网络设备检测作为其上一跳的设备是否丢失数据包为例。
[0159]
首先,如图11所示,针对终端设备1中生成并需要基于该tcp连接发送至终端设备2的首个数据包packet-1,终端设备1可以向packet-1包括的tcp头部和payload之间插入另一头部 header,向作为其下一跳的网络设备1发送包括header的packet-1,且在终端设备1中记录其已发送属于数据流l的数据包的当前统计数量为1。
[0160]
相应的,对于接收到packet-1的任意的网络设备,均可在packet-1中包括的header的指示下,得知packet-1为终端设备1发送的属于数据流l的首个数据包,然后向作为其下一跳的其它网络设备或终端设备2直接转发其接收的packet-1;同时该网络设备还可以对包括header的 packet-1进行进一步的封装,形成有效负荷为包括header的packet-1的第二数据包p2之后发送到采集器,记录其已接收的并且属于数据流l的数据包的当前统计数量为1。
[0161]
可以理解,如果网络设备1、网络设备3、网络设备4、网络设备6均未丢失其接收的包括 header的packet-1,则包括header的packet-1最终将被传输到终端设备2,终端设备2可以向采集器发送指示信息,告知采集器“终端设备2已经接收到p2中包括的packet-1”。
[0162]
相反地,如果网络设备1、网络设备3、网络设备4、网络设备6中存在一个目标网络设备丢失其接收的packet-1,则packet-1无法被传输至终端设备2,采集器无法接受到来自终端设备 2的指示信息。采集器可以按照其接收各个p2时各自对应的接收时刻,将最后一个向其发送p2 的网络设备确定为丢失数据包packet-1的网络设备。
[0163]
接着,针对终端设备1中生成并需要基于该tcp连接发送至终端设备2的第2个~第n-1个数据包中的每个数据包packet-m,终端设备1可以向作为其下一跳的网络设备1直接转发其获取的packet-m,并将其记录的已发送并且属于数据流l的数据包的当前统计数量加1。
[0164]
相应的,对于接收到packet-m的任意的网络设备,均可向作为其下一跳的其它网络设备或终端设备2直接转发packet-m;并将其记录的已接收的并且属于数据流l的数据包的当前统计数量加1。
[0165]
进一步的,请再次参考图7,针对终端设备1中生成并需要基于该tcp连接发送至终端设备2的第n个数据包packet-n,终端设备1可以确定出已发送的并且属于数据流l的数据包的当前统计数量(n-1)满足预设条件,然后向packet-n的tcp头部和payload之间插入第一头部header-0,向网络设备1发送包括header-0的packet-n,并将其记录的已发送的属于数据流l的数据包的当前统计数量重置为0。
[0166]
相应的,对于接收到packet-n的任意的网络设备,可以得知作为其上一跳的第一节点向packet-n中插入的第一头部,在该第一头部之后插入第二头部,并且将其记录的已接收属于数据流l的数据包的当前统计数量重置为0。如图7所示,网络设备1、网络设备3、网络设备4和网络设备6可依次向其接收的packet-n中插入header-1、header-2、header3和header4,如果网络设备1、网络设备3、网络设备4和网络设备6均未丢失其各自接收的packet-n,则packet-n最终将被传输到终端设备2。
[0167]
可以理解,对于接收到packet-m的任意的网络设备,如果作为该网络设备的上一跳的第一节点已发送属于数据流l的数据包的第二统计数量,大于该网络设备已接的属于数据流l的数据包的第一统计数量,则说明该第一节点丢失属于数据流l的一个或多个数据包,该网络设备可以对由其自身插入第二头部之后的packet-n进行进一步的封装,以形成能够被传输至采集器的数据包p1,p1包括的有效负荷为插入第二头部之后的packet-n。
[0168]
示例性的,对于终端设备1发送的packet-n,packet-n所包括header-0中的第二统计数量应当为n,如果网络设备1中记录的已接收的并且属于数据流l的数据包的当前统计数量为小于 (n-1)的s1,则说明终端设备1丢失了(n-1-s1)个属于数据流l的数据包,网络设备1可以将其向网络设备2发送的packet-n封装为p1后发送至采集器。如果header-3所包括的网络设备4 已发送的并且属于数据流l的数据包的第二统计数量为s2,网络设备6中记录的已接收的并且属于数据流l的数据包的当前统计数量为小于(s2-1)的s3,则说明网络设备4丢失了(s2-1-s1) 个属于数据流l的数据包,网络设备6可以将其向终端设备2发送的packet-n封装为p1后发送至采集器。
[0169]
如此,采集器在接收到来自某个网络设备(比如,网络设备1或网络设备4)的p1的情况下,则可从来自该网络设备的p1所包括的有效负荷packet-n中,得到作为该网络设备的上一跳的第一节点向packet-n中插入的头部,进而从该头部中得到丢失数据包的第一节点的设备标识,并根据该设备标识定位到丢失属于数据流l的数据包的第一节点。
[0170]
与前述各个方法实施例对应的,本申请实施例中还提供了一种应用于终端设备的通信装置,如图12所示,该通信装置包括:
[0171]
获取单元121,用于获取待发送的数据包;
[0172]
确定单元122,用于确定所述数据包所属的数据流;
[0173]
发送单元123,用于在所述当前统计数量满足预设条件的情况下,向网络设备发送包括第一头部的所述数据包,所述第一头部包括所述终端设备的设备标识、所述终端设备已发送的属于所述数据流的数据包的第一统计数量,所述第一统计数量与所述当前统计数量的差值为1。
[0174]
在一种可能的实施方式中,所述第一头部位于所述数据包中包括的传输层协议头部和有效负荷之间。
[0175]
在一种可能的实施方式中,所述通信装置还包括处理单元,用于在所述当前统计数量不满足预设条件的情况下,向所述网络设备发送所述数据包,并将所述当前统计数量加1。
[0176]
在一种可能的实施方式中,所述通信装置还包括处理单元,用于将所述当前统计数量置为初始数值。
[0177]
在一种可能的实施方式中,所述第一头部中还包括预设标识符,所述预设标识符用于指示所述数据包包括所述第一头部。
[0178]
在一种可能的实施方式中,所述数据包中还包括指示信息,所述指示信息位于所述数据包的传输层协议头部所包括的可选项中,所述指示信息用于指示所述数据包中是否包括所述第一头部。
[0179]
在一种可能的实施方式中,所述确定单元122,还用于确定所述数据包是否为所述终端设备发送的属于所述数据流的首个数据包;
[0180]
所述发送单元123,还用于在所述数据包为所述终端设备发送的属于所述数据流的首个数据包的情况下,向网络设备发送包括另一头部的所述数据包,并记录所述网络设备已发送的属于所述数据流的数据包的当前统计数量为1,所述另一头部用于指示所述数据包为所述终端设备发送的属于所述数据流的首个数据包。
[0181]
本申请实施例中还提供了应用于网络设备的通信装置,如图13所示,该通信装置包括:
[0182]
接收单元131,用于从第一节点接收数据包,所述第一节点为所述网络设备的上一跳,所述第一节点包括第一终端设备或第一网络设备;
[0183]
第一确定单元132,用于确定所述数据包所属的数据流;
[0184]
第二确定单元133,用于确定所述网络设备已接收的属于所述数据流的数据包的第一统计数量;
[0185]
第三确定单元134,用于确定所述数据包中是否包括第一头部,所述第一头部包括所述第一节点的设备标识、所述第一节点已发送的属于所述数据流的数据包的第二统计数量;
[0186]
第四确定单元135,用于在所述数据包中包括所述第一头部的情况下,确定所述第二统计数量和所述第一统计数量的差值是否大于设定数值;
[0187]
发送单元136,用于在所述差值大于设定数值的情况下,向采集器发送包括第二头部的所述数据包,所述第二头部中包括所述第一统计数量和所述网络设备的设备标识。
[0188]
在一种可能的实施方式中,所述发送单元136,还用于在所述数据包中包括所述第一头部的情况下,向第二节点发送包括所述第二头部的所述数据包,所述第二节点为所述网络设备的下一跳,所述第二节点包括第二终端设备或第二网络设备。
[0189]
在一种可能的实施方式中,所述第二头部位于所述数据包中所述第一头部和有效负荷之间。
[0190]
在一种可能的实施方式中,所述第三确定单元134,具体用于根据预设标识符确定所述数据包中是否包括第一头部,所述第一头部中包括所述预设标识符。
[0191]
在一种可能的实施方式中,所述第三确定单元134,具体用于根据指示信息确定所述数据包中是否包括第一头部,所述指示信息位于所述数据包的传输层协议头部所包括的可选项中。
[0192]
在一种可能的实施方式中,所述通信装置还包括记录处理单元,用于将所述第一统计数量置为初始数值。
[0193]
在一种可能的实施方式中,所述通信装置还包括第五确定单元和记录处理单元;其中,
[0194]
所述第五确定单元,用于确定所述数据包中是否包括另一头部,所述另一头部指示了所述数据包为第一终端设备发送的属于所述数据流的首个数据包;
[0195]
所述发送处理单元,还用于在所述数据包中包括所述另一头部的情况下,向所述采集器和第二节点分别发送所述数据包,所述第二节点为所述网络设备的下一跳,所述第二节点包括第二终端设备或第二网络设备;
[0196]
所述记录处理单元,用于记录所述网络设备已接收的属于所述数据流的数据包的当前统计数量为1。
[0197]
本申请实施例中还提供了应用于采集器的通信装置,如图14所示,该通信装置包括:
[0198]
接收单元141,用于从网络设备接收第一数据包;
[0199]
第一确定单元142,用于从所述第一数据包中确定出第一头部,所述第一头部中包括第一节点的设备标识,所述第一节点为所述网络设备的上一跳,所述第一节点包括第一终端设备或第一网络设备;
[0200]
第二确定单元143,用于根据所述第一节点的设备标识,确定所述第一节点丢失数据包。
[0201]
在一种可能的实施方式中,所述第一确定单元142,具体用于根据预设标识符从所述第一数据包包括的有效负荷中确定出至少两个头部,各个所述头部中均包括所述预设标识符;根据所述至少两个头部分别在所述有效负荷中的位置,从所述至少两个头部中确定出第一头部。
[0202]
在一种可能的实施方式中,所述通信装置还包括记录处理单元
[0203]
所述接收单元141,还用于从多个网络设备分别接收第二数据包,所述第二数据包的有效负荷中包括另一头部,该另一头部用于指示该有效负荷为所述第一终端设备发送的属于一个数据流的首个数据包;
[0204]
所述记录处理单元,用于记录接收各个所述数据包时分别对应的接收时刻;
[0205]
第三确定单元,用于在未接收到来自第二终端设备的指示的情况下,从各个所述网络设备中确定出目标网络设备,所述采集器从所述目标网络设备接收所述第二数据包时对应的接收时刻为各个所述接收时刻中的最大值;其中,所述指示信息由第二终端设备在接收到所述第一终端设备向第二终端设备发送的所述有效负荷之后向采集器发送,所述指
示信息用于指示所述第二终端设备已经接收到所述第一终端设备向第二终端设备发送的所述有效负荷;
[0206]
第四确定后单元,用于确定所述目标网络设备丢失数据包。
[0207]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
[0208]
应当理解的是,在本申请实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0209]
可以理解,以上所描述的装置实施例是示意性的,例如,所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0210]
本申请实施例中还提供了一种计算机可读存储介质,用于存储指令,当所述指令被计算设备的处理器执行时,使得所述计算设备实现本申请任意一个实施例中提供的通信方法。
[0211]
本申请实施例中还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算设备上运行时,使得计算设备实现本申请任意一个实施例中提供的通信方法。
[0212]
本申请实施例中还提供了一种网络设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本申请任意一个实施例中提供的应用于网络设备的通信方法。
[0213]
本申请实施例中还提供了一种终端设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本申请任意一个实施例中提供的应用于终端设备的通信方法。
[0214]
本申请实施例中还提供了一种采集器,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本申请任意一个实施例中提供的应用于采集器的通信方法。
[0215]
本申请实施例中还提供了一种通信装置,所述通信装置具有本申请任意一个实施例中提供的网络设备/终端设备/采集器的功能。
[0216]
本申请实施例中还提供了一种通信装置,所述通信装置可以为本申请任意一个实施例中所述的网络设备/终端设备/采集器,或者为设置在所述网络设备/终端设备/采集器中的芯片。该通信装置包括存储器、通信接口以及处理器,其中,该存储器用于存储计算机程序或指令,处理器与存储器、通信接口耦合,当处理器执行所述计算机程序或指令时,使得通信装置执行本申请任意一个实施例中提供的应用于网络设备/终端设备/采集器的通信方法。
[0217]
本申请实施例中提供了一种芯片系统,该芯片系统包括处理器,用于实现本申请任意一个实施例中所述的网络设备/终端设备/处理器的功能,例如,接收或处理上述应用于网络设备 /终端设备/采集器的通信方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据。该芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
[0218]
以上仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内
[0219]
最后需要说明的是,以上实施例仅用以说明本申请的技术方案,而未对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解,依然可以对前述各个实施例中所提供的技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或替换,并不使相应技术方案的本质脱离本申请各个实施例中所提供技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1