CN116962161A - 路径检测方法、装置、系统及计算机可读存储介质 - Google Patents
路径检测方法、装置、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116962161A CN116962161A CN202210416864.6A CN202210416864A CN116962161A CN 116962161 A CN116962161 A CN 116962161A CN 202210416864 A CN202210416864 A CN 202210416864A CN 116962161 A CN116962161 A CN 116962161A
- Authority
- CN
- China
- Prior art keywords
- detection
- path
- messages
- message
- information
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 485
- 230000004044 response Effects 0.000 claims abstract description 215
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000012360 testing method Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 16
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 26
- 238000012545 processing Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 241000720945 Hosta Species 0.000 description 12
- 230000000694 effects Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 239000004744 fabric Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000004549 pulsed laser deposition Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- 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/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种路径检测方法、装置、系统及计算机可读存储介质,涉及通信技术领域。该方法包括:第一设备向第二设备发送用于检测第一设备与第二设备之间的路径的第一数量组检测报文,然后接收基于第一数量组检测报文得到的响应报文,该响应报文中包括发送响应报文的设备的设备信息和对应的检测报文的信息中的至少一种,最后基于该响应报文的数量和该响应报文包括的信息,确定第一设备与第二设备之间的路径的检测结果。由于第一设备与第二设备之间的路径的检测结果是基于接收到的响应报文的数量和响应报文包括的信息确定的,该方法确定路径的检测结果的效率较高。
Description
技术领域
本申请涉及通信技术领域,特别涉及路径检测方法、装置、系统及计算机可读存储介质。
背景技术
随着通信技术的不断发展,依托通信网络来完成业务越来越普遍。通过对网络中的路径进行检测,能够及时发现出现问题的路径。例如,在大型数据中心的场景中,当某一路径出现丢包时,需要对该大型数据中心的路径进行检测,以便快速定位到出现丢包的路径。
发明内容
本申请提供了一种路径检测方法、装置、系统及计算机可读存储介质,能够实现对路径的检测。
第一方面,提供了一种路径检测方法,该方法包括:第一设备向第二设备发送用于检测第一设备与第二设备之间的路径的第一数量组检测报文,该第一数量是基于第一设备到第二设备的跳数确定的,一组检测报文对应第一设备到第二设备的一跳;然后,第一设备接收基于第一数量组检测报文得到的响应报文,该响应报文中包括发送响应报文的设备的设备信息和对应的检测报文的信息中的至少一种;最后,第一设备基于该响应报文的数量和该响应报文包括的信息,确定第一设备与第二设备之间的路径的检测结果。
由于第一设备与第二设备之间的路径的检测结果是基于接收到的响应报文的数量和响应报文包括的信息确定的,确定路径的检测结果的效率较高。再有,在响应报文包括较为全面的信息的情况下,得到的路径检测结果所包括的信息也较为全面。在第一设备与第二设备之间的路径出现问题时,基于路径检测结果能够快速确定出现问题的路径以及该路径的具体问题,提高了确定出现问题的路径和路径的具体问题的效率。
在一种可能的实现方式中,对于任一组检测报文,所述任一组检测报文的报文数量是基于目标出接口数和路径覆盖概率确定的,所述目标出接口数为所述第一设备与所述第二设备之间各跳出接口总数中的最大值,所述路径覆盖概率是所述第一设备与所述第二设备之间的路径的覆盖概率。通过基于目标出接口数和路径覆盖概率确定任一组检测报文的报文数量,能够保证第一设备与第二设备之间的路径的尽可能的被覆盖,保证第一设备与第二设备之间的路径的检测效果。
在一种可能的实现方式中,所述任一组检测报文的报文数量按照如下公式确定:
Nmax=Max(N1,N2,…,Ni,…,Nk)0≤i≤k
其中,所述M用于表示所述任一组检测报文的报文数量,所述G用于表示所述路径覆盖概率,所述Ni用于表示第i跳的出接口总数,所述Nmax用于表示N1至Nk中的最大值,所述k用于表示所述第一设备与所述第二设备之间的跳数,所述i和所述k均为正整数。
在一种可能的实现方式中,所述任一组检测报文的报文数量为所述第一设备与所述第二设备之间各跳出接口总数中的最大值的r倍,所述r为正整数;所述任一组检测报文中的每r个检测报文用于检测所述任一组检测报文对应的设备与所述第一设备之间的一条路径。
在一种可能的实现方式中,所述任一组检测报文中的每r个检测报文的五元组相同,所述任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化。在存在ECMP的场景中,在等价路径的哈希函数均匀变化的情况下,由于任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化,使得第一数量组中的检测报文能够通过第一设备与第二设备之间的各条路径发送,实现第一设备与第二设备之间的各条路径的检测,保证路径的检测效果。再有,通过发送五元组对应的哈希值均匀变化的检测报文来进行路径检测,该方法能够适用于存在ECMP的场景。从而在保证路径检测效果的前提下,该方法的适用范围较广。
在一种可能的实现方式中,所述基于所述响应报文的数量和所述响应报文包括的信息,确定所述第一设备与所述第二设备之间的路径的检测结果,包括:对于基于任一组检测报文得到的响应报文,如果所述响应报文的数量小于所述任一组检测报文的报文数量,确定所述任一组检测报文对应的设备与所述第一设备之间存在丢包的路径;基于所述响应报文包括的信息确定存在丢包的路径对应的丢包原因,将所述存在丢包的路径的信息以及所述丢包原因作为所述第一设备与所述第二设备之间的路径的检测结果。通过将存在丢包的路径的信息和丢包原因作为第一设备与第二设备之间的路径的检测结果,能够快速确定存在丢包的路径以及丢包原因,路径检测的效率较高且效果较好。再有,在第二设备丢弃该检测报文导致丢包的情况下,第一设备能够感知到该检测报文是由第二设备丢弃的,从而能够实现丢包位置的精准定位,路径检测的效果较好。
在一种可能的实现方式中,所述第一设备向第二设备发送第一数量组检测报文之前,还包括:所述第一设备接收拨测指令,所述拨测指令用于指示所述第一设备向所述第二设备发送所述第一数量组检测报文。第一设备接收拨测指令后,能够响应于该拨测指令,向第二设备发送第一数量组检测报文,进行第一设备与第二设备之间的路径的检测。由此,检测第一设备与第二设备之间的路径的时机较为灵活。
在一种可能的实现方式中,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于所述拨测指令发送的报文。
在一种可能的实现方式中,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
在一种可能的实现方式中,所述设备信息包括设备标识和设备状态中的至少一种,所述对应的检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。在响应报文包括较为全面的信息的情况下,路径检测结果所包括的信息也较为全面。在第一设备与第二设备之间的路径出现问题时,基于路径检测结果能够快速确定出现问题的路径以及该路径的具体问题,提高了确定出现问题的路径和路径的具体问题的效率。
第二方面,提供了一种路径检测方法,该方法包括:第二设备接收第一设备发送的检测报文;然后,第二设备向第一设备发送响应报文,该响应报文包括第二设备的设备信息和对应的检测报文的信息中的至少一种,该响应报文包括的信息用于确定第一设备与第二设备之间的路径的检测结果。由于第二设备在接收到检测报文后,能够向第一设备发送响应报文,在响应报文包括较为全面的信息的情况下,基于该响应报文得到的路径检测结果能够包括较为全面的信息。在第一设备与第二设备之间的路径出现问题时,基于该路径检测结果能够快速确定出现问题的路径以及该路径的具体问题,提高了确定出现问题的路径和路径的具体问题的效率。
在一种可能的实现方式中,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于拨测指令发送的报文。
在一种可能的实现方式中,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
在一种可能的实现方式中,所述设备信息包括设备标识和设备状态中的至少一种,所述检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
第三方面,提供了一种路径检测装置,应用于第一设备,该装置包括:
发送模块,用于向第二设备发送第一数量组检测报文,所述第一数量组检测报文用于检测所述第一设备与所述第二设备之间的路径,所述第一数量基于所述第一设备到所述第二设备的跳数确定,一组检测报文对应所述第一设备到所述第二设备的一跳;
接收模块,用于接收基于所述第一数量组检测报文得到的响应报文,所述响应报文中包括发送所述响应报文的设备的设备信息和对应的检测报文的信息中的至少一种;
确定模块,用于基于所述响应报文的数量和所述响应报文包括的信息,确定所述第一设备与所述第二设备之间的路径的检测结果。
在一种可能的实现方式中,对于任一组检测报文,所述任一组检测报文的报文数量是基于目标出接口数和路径覆盖概率确定的,所述目标出接口数为所述第一设备与所述第二设备之间各跳出接口总数中的最大值,所述路径覆盖概率是所述第一设备与所述第二设备之间的路径的覆盖概率。
在一种可能的实现方式中,所述任一组检测报文的报文数量按照如下公式确定:
Nmax=Max(N1,N2,…,Ni,…,Nk)0≤i≤k
其中,所述M用于表示所述任一组检测报文的报文数量,所述G用于表示所述路径覆盖概率,所述Ni用于表示第i跳的出接口总数,所述Nmax用于表示N1至Nk中的最大值,所述k用于表示所述第一设备与所述第二设备之间的跳数,所述i和所述k均为正整数。
在一种可能的实现方式中,所述任一组检测报文的报文数量为所述第一设备与所述第二设备之间各跳出接口总数中的最大值的r倍,所述r为正整数;所述任一组检测报文中的每r个检测报文用于检测所述任一组检测报文对应的设备与所述第一设备之间的一条路径。
在一种可能的实现方式中,所述任一组检测报文中的每r个检测报文的五元组相同,所述任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化。
在一种可能的实现方式中,该确定模块,用于对于基于任一组检测报文得到的响应报文,如果所述响应报文的数量小于所述任一组检测报文的报文数量,确定所述任一组检测报文对应的设备与所述第一设备之间存在丢包的路径;基于所述响应报文包括的信息确定存在丢包的路径对应的丢包原因,将所述存在丢包的路径的信息以及所述丢包原因作为所述第一设备与所述第二设备之间的路径的检测结果。
在一种可能的实现方式中,该接收模块,还用于接收拨测指令,所述拨测指令用于指示所述第一设备向所述第二设备发送所述第一数量组检测报文。
在一种可能的实现方式中,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于所述拨测指令发送的报文。
在一种可能的实现方式中,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
在一种可能的实现方式中,所述设备信息包括设备标识和设备状态中的至少一种,所述对应的检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
第四方面,提供了一种路径检测装置,应用于第二设备,该装置包括:
接收模块,用于接收第一设备发送的检测报文;
发送模块,用于向所述第一设备发送响应报文,所述响应报文包括所述第二设备的设备信息和对应的检测报文的信息中的至少一种,所述响应报文包括的信息用于确定所述第一设备与所述第二设备之间的路径的检测结果。
在一种可能的实现方式中,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于拨测指令发送的报文。
在一种可能的实现方式中,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
在一种可能的实现方式中,所述设备信息包括设备标识和设备状态中的至少一种,所述检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
第五方面,提供了一种路径检测装置,该装置包括:处理器,所述处理器用于实现如上述第一方面或第二方面中任一的路径检测方法。
在一种可能的实现方式中,所述装置为芯片。
在一种可能的实现方式中,所述装置为网络设备,所述网络设备的类型包括以下至少一项:路由器、交换机或服务器。
第六方面,提供了一种路径检测系统,该路径检测系统包括第一设备和第二设备,第一设备用于执行上述第一方面中任一的路径检测方法,第二设备用于执行上述第二方面中任一的路径检测方法。
第七方面,提供了一种网络设备,该网络设备包括处理器,处理器与存储器耦合,存储器中存储有至少一条程序指令或代码,至少一条程序指令或代码由处理器加载并执行,以使该网络设备实现上述第一方面或第二方面中任一的路径检测方法。
第八方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行,以使计算机实现上述第一方面或第二方面中任一的路径检测方法。
第九方面,提供了一种计算机程序(产品),该计算机程序(产品)包括计算机程序,当该计算机程序被计算机运行时,使得该计算机执行上述第一方法或第二方面中任一的路径检测方法。
第十方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行上述第一方面或第二方面中任一的路径检测方法。
在一种可能的实现方式中,处理器为一个或多个,存储器为一个或多个。
在一种可能的实现方式中,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如,只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第十一方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行上述第一方面或第二方面中任一的路径检测方法。
第十二方面,提供了另一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行上述第一方面或第二方面中任一的路径检测方法
应当理解的是,本申请的第三方面至第十二方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面或第二方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种路径检测方法的实施场景示意图;
图2为本申请实施例提供的一种路径检测方法的流程图;
图3为本申请实施例提供的一种检测报文的结构示意图;
图4为本申请实施例提供的一种生成响应报文的过程示意图;
图5为本申请实施例提供的一种响应报文的结构示意图;
图6为本申请实施例提供的另一种路径检测方法的实施场景示意图;
图7为本申请实施例提供的一种路径检测方法的过程示意图;
图8为本申请实施例提供的一种路径检测装置的结构示意图;
图9为本申请实施例提供的另一种路径检测装置的结构示意图;
图10为本申请实施例提供的另一种路径检测装置的结构示意图;
图11为本申请实施例提供的一种网络设备的结构示意图;
图12为本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在大型数据中心等网络场景中,需要对该数据中心进行维护,以便当数据中心的某一路径出现问题时,能够快速定位到该出现问题的路径以及确定该路径出现的问题,从而能够及时解决该路径出现的问题,避免引发网络事故。本申请实施例提供了一种路径检测方法,以实现对网络场景中的路径的快速检测。
本申请实施例提供的方法可应用在图1所示的实施场景中,该实施场景包括第一设备101、第二设备102、第三设备103和第四设备104。其中,第一设备101、第二设备102、第三设备103和第四设备104之间均能够进行信息交互。在一种可能的实现方式中,该实施场景中还包括第五设备105,第五设备105与第一设备101、第二设备102、第三设备103和第四设备104均能够进行信息交互。示例性地,第一设备101包括第一设备101A-101B,第二设备102包括第二设备102A-102B,第三设备103包括第三设备103A-103D,第四设备104包括第四设备104A-104B。在图1所示的实施场景中,第一设备101A-101B分别与第二设备102A和第三设备103A-103D连接,第三设备103A-103D分别与第四设备104A-104B连接,第四设备104A-104B分别与第二设备102B连接。需要说明的是,图1中仅示出第五设备105与第一设备101A之间的信息交互,第五设备105与其余设备之间的信息交互未在图1中示出,但并不对实施场景进行限制。再有,图1示出的实施场景中,各个设备的数量仅为本申请实施例举例说明的数量,本申请实施例对此不加以限定。
在一种可能的实现方式中,第一设备101包括但不限于主机、路由器和交换机,第二设备102包括但不限于主机,第三设备103包括但不限于路由器和交换机,第四设备104包括但不限于路由器和交换机,第五设备105包括但不限于采集器或分析器。
示例性地,该实施场景为扁平化网络(fabric)的数据中心,其中,第一设备101为叶子设备(leaf),第二设备102为主机,第三设备103为脊设备(spine),第四设备104为叶子设备。
示例性地,第五设备105通过遥测(telemetry)与第一设备101、第二设备102、第三设备103和第四设备104进行信息交互。例如,第五设备105通过基于谷歌远程过程调用(google remote procedure call,gRPC)的网络操作接口(gRPC network operationsinterface,gNOI)与第一设备101、第二设备102、第三设备103和第四设备104进行信息的交互。需要说明的是,第一设备101、第二设备102、第三设备103、第四设备104和第五设备105均可以为网络架构中已有的设备,也即存量设备,本申请实施例对此不加以限定。
结合图1所示的实施场景,本申请实施例提供的路径检测方法如图2所示,该路径检测方法包括但不限于步骤201至步骤205。
步骤201,第一设备向第二设备发送第一数量组检测报文,第一数量组检测报文用于检测第一设备与第二设备之间的路径,第一数量基于第一设备到第二设备的跳数确定,一组检测报文对应第一设备到第二设备的一跳。
在一种可能的实现方式中,在第一设备向第二设备发送第一数量组检测报文之前,该方法还包括:第一设备获取拨测指令,该拨测指令用于指示第一设备向第二设备发送第一数量组报文。响应于获取到的拨测指令,第一设备向第二设备发送第一数量组检测报文。
在一种可能的实现方式中,第一设备获取拨测指令,包括:第一设备接收其他设备发送的拨测指令。例如,第一设备接收由第五设备发送的拨测指令。示例性地,第一设备通过gNOI接收由第五设备发送的拨测指令。关于第五设备向第一设备发送拨测指令的时机,本申请实施例不加以限定。例如,第五设备周期性地向第一设备发送拨测指令,或者第五设备响应于接收到的技术人员的指示,向第一设备发送拨测指令。
在另一种可能的实现方式中,第一设备获取拨测指令,包括:第一设备生成拨测指令。关于第一设备生成拨测指令的时机,本申请实施例不加以限定。例如,第一设备周期性地生成拨测指令,或者第一设备响应于接收到的技术人员的指示,生成拨测指令。
在一种可能的实现方式中,第一数量等于第一设备到第二设备的跳数。例如,在图1示出的实施场景中,第一设备为第一设备101A,第二设备为第二设备102B,该第一设备101A到第二设备102B的跳数为3,则第一数量为3。也即,第一设备101A向第二设备102B发送三组检测报文,一组检测报文对应第一设备101A到第二设备102B的一跳。例如,在该三组检测报文中,第一组检测报文对应第一设备101A到第三设备101A-103D,第二组检测报文对应第一设备101A到第四设备104A-104B,第三组检测报对应第一设备101A到第二设备102B。
示例性地,对于该第一数量组检测报文中的任一组检测报文,该任一组检测报文的存活时间(time to live,TTL)与该任一组检测报文对应的跳数相对应。例如,该任一组检测报文的TTL等于该任一组检测报文对应的跳数。仍以上述三组检测报文为例进行说明,对于第一组检测报文,该组检测报文的TTL为1,对于第二组检测报文,该组检测报文的TTL为2,对于第三组检测报文,该组检测报文的TTL为3。
在一种可能的实现方式中,对于该第一数量组中的任意两组检测报文,该两组检测报文所包括的信息仅在于TTL不同,其余信息均相同。仍以第一设备为第一设备101A,第二设备为第二设备102B为例进行说明,第一设备101A向第二设备102B发送一组TTL为1的检测报文,也即第一组检测报文;之后将该组检测报文的TTL变为2,得到第二组检测报文,向第二设备102B发送该组TTL为2的检测报文,也即第二组检测报文;之后将该组检测报文的TTL变为3,得到第三组检测报文,向第二设备102B发送该组TTL为3的检测报文,也即第三组检测报文。
在一种可能的实现方式,对于任一组检测报文,该任一组检测报文的报文数量是基于目标出接口数和路径覆盖概率确定的,目标出接口数为第一设备与第二设备之间各跳出接口总数中的最大值,路径覆盖概率是第一设备与第二设备之间的路径的覆盖概率。
示例性地,该任一组检测报文的报文数量按照如下公式1和公式2确定:
Nmax=Max(N1,N2,…,Ni,…,Nk)0≤i≤k (公式2)
其中,M用于表示该任一组检测报文的报文数量,G用于表示路径覆盖概率,Ni用于表示第i跳的出接口总数,Nmax用于表示N1至Nk中的最大值,k用于表示第一设备与第二设备之间的跳数,i和k均为正整数。
示例性地,各跳出接口总数是基于第一设备与第二设备之间的拓扑关系得到的。仍以第一设备为101A,第二设备为102B为例进行说明,该第一设备101A与第二设备102B之间的第一跳包括第三设备103A-103D,第二跳包括第四设备104A-104B。由于第一设备101A相对于第三设备103A-103D均存在一个出接口,因此,第一跳的出接口总数为4。由于第三设备103A-103D相对于对应于第四设备104A-104B均存在两个出接口,因此,第二跳的出接口总数为8。示例性地,第一设备与第二设备之间的拓扑关系可以预先确定。
在一种可能的实现方式中,该任一组检测报文的报文数量为第一设备与第二设备之间各跳出接口总数中的最大值的r倍,r为正整数。该任一组检测报文中的每r个检测报文用于检测该任一组检测报文对应的设备与该第一设备之间的一条路径。仍以第一设备为101A,第二设备为102B为例进行说明,第一跳的出接口总数为4,第二跳的出接口总数为8。则在路径覆盖概率为0.999的情况下,任一组检测报文可以包括64个检测报文,r为8。
示例性地,该任一组检测报文的报文数量可以为满足上述公式1且为最大出接口数的整数倍的最小值,从而能够在保证路径检测效果的前提下,尽量减少资源的占用。
在一种可能的实现方式中,该任一组检测报文中的每r个检测报文的五元组相同,该任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化。例如,任一组检测报文包括64个检测报文,其中,该64个检测报文中每8个检测报文的五元组相同,该64个检测报文中每8个检测报文的五元组对应的哈希值连续变化。关于基于检测报文的五元组得到该检测报文的五元组对应的哈希值的方式,本申请实施例不加以限定,例如基于该检测报文的五元组和哈希算法,得到该检测报文的五元组对应的哈希值。关于得到哈希值所采用的哈希算法,本申请实施例也不加以限定。
在一种可能的实现方式中,对于该任一组检测报文中的每r个检测报文,每r个检测报文的源端口号连续变化,源互联网协议(internet protocol,IP)地址、目标IP地址、目的端口号、传输协议均相同,从而使得每r个检测报文的五元组对应的哈希值均匀变化。例如,任一组检测报文包括64个检测报文,其中,8个检测报文的源端口号为1,8个检测报文的源端口号为2,8个检测报文的源端口号为3,以此类推;该64个检测报文的源IP地址、目标IP地址、目的端口号、传输协议均相同,从而该64个检测报文中的每8个检测报文的五元组对应的哈希值均匀变化。需要说明的是,上述源端口号仅为本申请实施例举例说明的源端口号,本申请实施例对此不加以限定。
示例性地,在存在等价多路径路由(equal cost multi-path,ECMP)的场景中,在等价路径的哈希函数均匀变化的情况下,由于第一数量组检测报文中包括五元组对应的哈希值均匀变化的检测报文,该第一数量组中的检测报文能够通过第一设备与第二设备之间的各条路径发送,从而能够实现第一设备与第二设备之间的各条路径的检测。通过发送五元组对应的哈希值均匀变化的检测报文来检测第一设备与第二设备之间的路径,该方法能够适用于存在ECMP的场景。从而在保证路径检测效果的前提下,该方法的适用范围较广。
在一种可能的实现方式中,检测报文包括标记(probe marker)字段,该标记字段用于指示检测报文为基于拨测指令发送的报文。
需要说明的是,该检测报文还能够包括其他字段,例如,检测报文的结构如图3所示。该检测报文还包括协议字段、端口字段、命令(command,Cmd)字段、请求序号(sequence,seq)字段和节点标识字段(node identifier,node-id)。其中,协议字段用于指示该检测报文的传输协议;端口字段用于携带物理端口号;命令字段用于携带检测报文的标识,例如在该报文为检测报文的情况下,该命令字段为1;请求序号字段用于携带该检测报文的序号;节点标识字段用于携带发送该检测报文的设备标识,例如,发送该检测报文的设备名或设备标识号(identifier,ID)。示例性地,标记字段为8字节(byte),命令字段为2byte,请求序号字段为2byte,节点标识字段为32byte。
步骤202,第二设备接收第一设备发送的检测报文。
示例性地,第二设备为实施场景中除第一设备以外的任一个设备。例如,在实施场景为数据中心的情况下,该第二设备为数据中心中除第一设备以外的任一个设备。示例性地,对于图1示出的实施场景,在第一设备为第一设备101的情况下,第二设备包括但不限于第二设备102、第三设备103和第四设备104中的任一设备。例如,第一设备为第一设备101A,第二设备为第二设备102B,该第二设备102B接收第一设备101A发送的检测报文。
步骤203,第二设备向第一设备发送响应报文,该响应报文包括第二设备的设备信息和对应的检测报文的信息中的至少一种,该响应报文包括的信息用于确定第一设备与第二设备之间的路径的检测结果。
在一种可能的实现方式中,在向第一设备发送响应报文之前,该方法还包括:第二设备获取第二设备的设备标识和设备状态中的至少一种信息,得到第二设备的设备信息;获取该检测报文的入接口信息、出接口信息、转发时延和丢包原因中的至少一种信息,得到该检测报文的信息。示例性地,第二设备的设备标识包括但不限于设备名和设备ID。
示例性地,第二设备获取检测报文的入接口信息、出接口信息、转发时延和丢包原因中的至少一种信息,包括:第二设备识别接收到的报文,响应于接收到的报文为检测报文,记录处理该检测报文的信息,处理该检测报文的信息包括检测报文的入接口信息、出接口信息、转发时延和丢包原因中的至少一种信息。例如,第二设备记录检测报文从入接口到出接口的时延,得到该检测报文的转发时延。示例性地,第二设备得到的检测报文的丢包原因包括但不限于如下三种情况。
情况1,丢包原因为路由信息错误丢包。
示例性地,第二设备将检测报文的路由信息与路由表进行匹配,响应于匹配失败,第二设备记录该检测报文的丢包原因为路由信息错误丢包。可选地,第二设备丢弃该检测报文。
情况2,丢包原因为拥塞丢包。
示例性地,在第二设备中的队列出现拥塞的情况下,第二设备丢弃队列中的报文,若丢弃检测报文,第二设备记录该检测报文的丢包原因为拥塞丢包。关于第二设备丢弃队列中的报文所采用的策略,本申请实施例不加以限定。例如,在第二设备中的队列出现拥塞的情况下,第二设备执行尾丢弃,若丢弃检测报文,第二设备记录该检测报文的丢包原因为拥塞丢包。又例如,在第二设备中的队列出现拥塞的情况下,第二设备基于丢弃算法随机丢弃报文,若丢弃检测报文,第二设备记录该检测报文的丢包原因为拥塞丢包。又例如,在第二设备的缓冲寄存器(buffer)的空间不足的情况下,第二设备丢弃报文,若丢弃检测报文,第二设备记录该检测报文的丢包原因为拥塞丢包。
情况3,丢包原因为链路故障丢包。
示例性地,第二设备获取检测报文的出接口信息,在该检测报文的出接口出现故障的情况下,第二设备记录该检测报文的丢包原因为链路故障丢包。
需要说明的是,上述丢包原因的类型以及发生丢包的场景仅为本申请实施例的举例说明,还可以存在其他类型的丢包原因,或在不同的场景中记录为上述丢包原因。例如,第二设备在情况2的举例说明以外的其他场景中,记录检测报文的丢包原因为拥塞丢包。
示例性地,第二设备获取到第二设备的设备信息和对应的检测报文的信息中的至少一种之后,基于该设备信息和该对应的检测报文的信息中的至少一种,生成响应报文。例如,第二设备接收到检测报文1和检测报文2。对于检测报文1,第二设备获取到第二设备的设备信息和检测报文1的信息中的至少一种,基于第二设备的设备信息和检测报文1的信息中的至少一种,生成响应报文1。对于检测报文2,第二设备获取到第二设备的设备信息和检测报文2的信息中的至少一种,基于第二设备的设备信息和检测报文2的信息中的至少一种,生成响应报文2。
在一种可能的实现方式中,第二设备生成响应报文的过程如图4所示,第二设备接收到检测报文,该第二设备的专用集成电路(application specific integratedcircuit,ASIC)向该第二设备的中央处理器(central processing unit,CPU)发送第二设备的设备信息和对应的检测报文的信息中的至少一种;该第二设备的CPU基于接收到的信息生成响应报文。在另一种可能的实现方式中,第二设备接收到检测报文,该第二设备的ASIC基于该第二设备的设备信息和对应的检测报文的信息中的至少一种,生成响应报文。由于仅通过ASIC生成响应报文,而无需经由CPU处理,该生成响应报文的方式能够降低CPU的压力,并提高生成响应报文的效率。
可选地,该响应报文包括的设备信息包括设备标识和设备状态中的至少一种,响应报文包括的对应的检测报文的信息包括该检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。示例性地,入接口信息包括但不限于入接口名和入接口队列,出接口信息包括但不限于出接口名和出接口队列。示例性地,入接口队列是指入接口的队列,出接口队列是指出接口的队列。
在一种可能的实现方式中,响应报文包括控制字段(bitmap)和信息字段,控制字段用于指示响应报文包括的信息的类型,信息字段用于携带响应报文包括的信息。例如,控制字段指示该响应报文包括的信息的类型包括第二设备的设备标识、检测报文的入接口信息、出接口信息、转发时延和丢包原因。示例性地,该信息字段包括节点标识部分和接口部分,该节点标识部分用于携带该第二设备的设备标识,该接口部分用于携带该第二设备的接口信息,例如第二设备的入接口信息和出接口信息。当然,该信息字段还可以包括其他部分,该其他部分用于携带该响应报文包括的信息。例如,该信息字段还包括用于携带第二设备的设备状态的部分、检测报文的转发时延的部分和检测报文的丢包原因的部分。
需要说明的是,该响应报文还能够包括其他字段,例如,响应报文的结构如图5所示。该检测报文还包括协议字段、互联网控制消息协议(internet control messageprotocol,ICMP)字段、端口字段、标记字段、命令字段和请求序号字段。其中,协议字段用于指示该响应报文的传输协议,例如,该响应报文为ICMP报文,ICMP字段用于携带ICMP信息;该端口字段用于携带第一设备的端口号,该标记字段用于单独指示该响应报文为响应于检测报文发送的报文或者与端口字段共同指示该响应报文为响应于检测报文发送的报文;命令字段用于指示该报文为响应报文,例如该命令字段为2时,指示该报文为响应报文;请求序号字段用于携带该响应报文的序号。示例性地,标记字段为8byte,命令字段为2byte,请求序号字段为2byte。
在一种可能的实现方式中,在生成响应报文之前,该方法还包括:第二设备检测接收到的检测报文的TTL;响应于TTL为第一参考值,第二设备执行生成响应报文的操作。示例性地,第一参考值为基于经验或实际需求确定的值,本申请实施例对此不加以限定。例如,第一参考值为1。
在一种可能的实现方式中,响应于接收到的检测报文的TTL为第二参考值,第二设备将检测报文的TTL减去第三参考值,向第二设备的下一跳转发TTL减去第三参考值的检测报文。示例性地,第三参考值为1。
步骤204,第一设备接收基于第一数量组检测报文得到的响应报文,该响应报文中包括发送该响应报文的设备的设备信息和对应的检测报文的信息中的至少一种。
示例性地,在各组检测报文的TTL不同的情况下,第一设备接收基于不同TTL的检测报文得到的响应报文,各个响应报文包括发送该响应报文的设备的设备信息和对应的检测报文的信息中的至少一种。例如,第一设备接收基于TTL分别为1、2、3的检测报文得到的响应报文。
步骤205,第一设备基于响应报文的数量和响应报文包括的信息,确定第一设备与第二设备之间的路径的检测结果。
示例性地,根据响应报文的数量的不同情况,基于响应报文的数量和响应报文包括的信息,确定第一设备与第二设备之间的路径的检测结果,包括但不限于如下情况A和情况B。
情况A,对于基于任一组检测报文得到的响应报文,如果响应报文的数量小于该任一组检测报文的报文数量,确定该任一组检测报文对应的设备与该第一设备之间存在丢包的路径;基于响应报文包括的信息确定存在丢包的路径对应的丢包原因,将该存在丢包的路径的信息以及丢包原因作为第一设备与第二设备之间的路径的检测结果。
示例性地,任一组检测报文对应的设备为该任一组检测报文所对应的第一设备到第二设备的一跳。仍以图1示出的实施场景为例进行说明,第一设备为第一设备101A,第二设备为第二设备102B,第一设备101A向第二设备102B发送三组检测报文。其中,第一组检测报文的TTL为1,第一组检测报文对应的设备为第三设备103A-103D;第二组检测报文的TTL为2,第二组检测报文对应的设备为第四设备104A-104B;第三组检测报文的TTL为3,第三组检测报文对应的设备为第二设备102B。
示例性地,对于任一组检测报文,若该任一组检测报文对应的设备与第一设备之间存在丢包的路径,基于该任一组检测报文得到的响应报文的数量将小于该任一组检测报文的报文数量。也就是说,在基于该任一组检测报文得到的响应报文的报文数量小于该任一组检测报文的报文数量的情况下,能够确定该任一组检测报文对应的设备与第一设备之间的路径存在丢包。由于响应报文包括发送该响应报文的设备的设备信息和对应的检测报文的信息中的至少一种,基于该响应报文包括的信息,能够确定存在丢包的路径的信息以及该存在丢包的路径对应的丢包原因。
由此,在将存在丢包的路径的信息和丢包原因作为第一设备与第二设备之间的路径的检测结果的情况下,能够快速确定存在丢包的路径以及丢包原因,提高路径检测效果。再有,由于响应报文能够包括发送对应的检测报文的丢包原因,在第二设备丢弃该检测报文导致丢包的情况下,第一设备能够感知到该检测报文是由第二设备丢弃的,实现丢包位置的精准定位,路径检测的效果较好。
仍以图1所示的实施场景为例进行说明,第一设备为第一设备101A,第二设备为第二设备102B,第一设备101A向第二设备102B发送64个TTL为1的检测报文,该64个TTL为1的检测报文对应的设备为第三设备103A-103D。示例性地,基于该64个TTL为1的检测报文得到的响应报文的数量包括但不限于如下情况一和情况二。
情况一,基于该64个TTL为1的检测报文未得到响应报文。
在该种情况下,确定第一设备101A与第三设备103A-103D之间的链路均存在丢包,也即,该第一设备101A与第三设备103A-103D之间的路径对应的丢包原因均为链路丢包,将第一设备101A与第三设备103A-103D之间的路径的信息以及该丢包原因作为第一设备101A与第二设备102B之间的路径的检测结果。
情况二,基于该64个TTL为1的检测报文得到q个响应报文,q为大于0且小于64的整数。
例如,基于该64个TTL为1的检测报文得到56个响应报文,其中,16个响应报文包括的设备名为第三设备103A,16个响应报文包括的设备名为第三设备103B,16个响应报文包括的设备名为第三设备103C,8个响应报文包括的设备名为第三设备103D,则确定第一设备101A与第三设备103D之间的路径存在丢包。示例性地,基于该8个响应报文包括的信息确定第一设备101A与第三设备103D之间的路径对应的丢包原因,将该第一设备101A与第三设备103D之间的路径的信息以及丢包原因作为第一设备101A与第二设备102B之间的路径的检测结果。
示例性地,在第一设备101A得到了8个包括的设备名为第三设备103D的响应报文的情况下,说明对于第一设备101A向第三设备103D发送的16个TTL为1的检测报文,该第一设备101A得到了基于其中8个检测报文生成的响应报文。由此,能够确定第一设备101A与第三设备103D之间的路径存在概率性丢包,也就是说,对于该第一设备101A与第三设备103D之间的路径而言,某些检测报文被丢包,某些检测报文被响应。由于该8个检测报文能够包括对应的检测报文的信息,通过查看该响应报文包括的对应的检测报文的信息,能够得到第三设备103D处理该检测报文的信息,从而能够确定该第一设备101A与第三设备103D之间的路径对应的丢包原因是第三设备103D丢包,还是第一设备101A与第三设备103D之间的链路丢包。通过确定丢包原因是设备丢包还是链路丢包,能够实现丢包位置的精准定位,路径检测的效果较好。
需要说明的是,上述响应报文的数量仅为举例说明的数量,本申请实施例对此不加以限定。
情况B,对于基于任一组检测报文得到的响应报文,如果响应报文的数量等于该任一组检测报文的报文数量,确定该任一组检测报文对应的设备与该第一设备之间不存在丢包的路径;将该任一组检测报文对应的设备与该第一设备之间不存在丢包的路径作为第一设备与第二设备之间的路径的检测结果。
示例性地,无论为上述情况A还是情况B,第一设备与第二设备之间的路径的检测结果均可以包括所有响应报文包括的信息,从而获得更为全面的第一设备与第二设备之间的路径的检测结果。
本申请实施例提供的方法,基于第一设备接收到的响应报文的数量和该响应报文包括的信息,能够确定第一设备与第二设备之间的路径的检测结果,确定第一设备与第二设备之间的路径的检测结果的效率较高。再有,由于响应报文能够包括较为全面的信息,当第一设备与第二设备之间存在出现问题的路径时,能够快速确定该存在问题的路径以及该路径的具体问题,进而有助于快速解决该路径存在的问题,避免网络事故的发生。
接下来,以实施场景为数据中心为例进行说明,以更清楚地说明本申请实施例提供的路径检测方法。图6为该实施场景的示意图,其中,叶子设备(leaf)1对应图1示出的第一设备101A,leaf2对应图1示出的第一设备101B,主机(host)A对应图1示出的第二设备102A,hostB对应图1示出的第二设备102B,脊设备(spine)1对应图1示出的第三设备103A,spine2对应图1示出的第三设备103B,spine3对应图1示出的第三设备103C,spine4对应图1示出的第三设备103D,leaf3对应图1示出的第四设备104A,leaf4对应图1示出的第四设备104B,分析器对应图1示出的第五设备105。
结合图6示出的实施场景,本申请实施例提供的路径检测方法如图7所示,该路径检测方法包括但不限于步骤701至步骤709。
步骤701,leaf1和leaf2接收由分析器发送的拨测指令。
示例性地,leaf1接收到的拨测指令用于指示leaf1向hostA发送一组检测报文,该组检测报文用于检测leaf1与hostA之间的路径;leaf1接收到的拨测指令还用于指示leaf1向hostB发送三组检测报文,该三组检测报文用于检测leaf1与hostB之间的路径。示例性地,leaf2接收到的拨测指令用于指示leaf2向hostA发送一组检测报文,该组检测报文用于检测leaf2与hostA之间的路径;leaf2接收到的拨测指令还用于指示leaf2向hostB发送三组检测报文,该三组检测报文用于检测leaf2与hostB之间的路径。
步骤702,leaf1和leaf2分别向hostA发送8个TTL为1的检测报文。
示例性地,leaf1到hostA为一跳,该跳出接口总数为1,在路径覆盖概率为0.999的情况下,leaf1向hostA发送8个TTL为1的检测报文。类似地,leaf2向hostA发送8个TTL为1的检测报文。leaf1和leaf2发送的检测报文的情况与上述步骤201中的检测报文的情况原理相同,此处不再赘述。
步骤703,leaf1和leaf2分别接收8个响应报文。
示例性地,leaf1和leaf2分别接收到由hostA发送的8个响应报文。leaf1基于接收到8个响应报文以及8个响应报文包括的信息,确定leaf1与hostA之间的路径不丢包。示例性地,leaf2基于接收到8个响应报文以及8个响应报文包括的信息,确定leaf2与hostA之间的路径不丢包。
步骤704,leaf1和leaf2分别向hostB发送64个TTL为1的检测报文。
示例性地,leaf1到hostB为三跳,该三跳出接口总数的最大值为8,在路径覆盖概率为0.999的情况下,leaf1向hostB发送三组检测报文,该三组检测报文的报文数量均为64个,且该三组检测报文的TTL分别为1、2、3。类似地,leaf2向hostB发送三组检测报文,该三组检测报文的报文数量均为64个,且该三组检测报文的TTL分别为1、2、3。
步骤705,leaf1接收64个响应报文,leaf2接收48个响应报文。
示例性地,leaf1接收到的64个响应报文包括spine1发送的16个响应报文、spine2发送的16个响应报文、spine3发送的16个响应报文和spine4发送的16个响应报文,基于接收到64个响应报文以及64个响应报文包括的信息,确定leaf1与spine1、spine2、spine3和spine4之间的路径均不丢包。示例性地,leaf2接收到的48个响应报文包括spine1发送的16个响应报文、spine2发送的16个响应报文和spine3发送的16个响应报文,基于接收到48个响应报文以及48个响应报文包括的信息,确定leaf2与spine1、spine2和spine3之间的路径均不丢包,确定leaf2与spine4之间的路径存在丢包。
步骤706,leaf1和leaf2分别向hostB发送64个TTL为2的检测报文。
示例性地,leaf1将向hostB发送的64个TTL为1的检测报文的TTL变为2,向hostB发送64个TTL为2的检测报文。类似地,leaf2将向hostB发送的64个TTL为1的检测报文的TTL变为2,向hostB发送64个TTL为2的检测报文。
步骤707,leaf1接收64个响应报文,leaf2接收48个响应报文。
示例性地,leaf1接收到的64个响应报文包括leaf3发送的32个响应报文和leaf4发送的32个响应报文,基于接收到64个响应报文以及64个响应报文包括的信息,确定leaf1与leaf3和leaf4之间的路径均不丢包。示例性地,leaf2接收到的48个响应报文包括leaf3发送的24个响应报文和leaf4发送的24个响应报文,基于接收到48个响应报文以及48个响应报文包括的信息,确定spine1与leaf3和leaf4之间的路径不丢包、spine2与leaf3和leaf4之间的路径不丢包、spine3与leaf3和leaf4之间的路径不丢包。
步骤708,leaf1和leaf2分别向hostB发送64个TTL为3的检测报文。
示例性地,leaf1将向hostB发送的64个TTL为2的检测报文的TTL变为3,向hostB发送64个TTL为3的检测报文。类似地,leaf2将向hostB发送的64个TTL为2的检测报文的TTL变为3,向hostB发送64个TTL为3的检测报文。
步骤709,leaf1接收64个响应报文,leaf2接收48个响应报文。
示例性地,leaf1接收到hostB发送的64个响应报文,基于接收到64个响应报文以及64个响应报文包括的信息,确定leaf1与hostB之间的路径均不丢包。示例性地,leaf2接收到hostB发送的48个响应报文,基于接收到48个响应报文以及48个响应报文包括的信息,确定leaf3与hostB之间的路径不丢包的路径、leaf4与hostB之间的路径不丢包。
由此,对于leaf1与hostB之间的路径,确定路径检测结果包括leaf1与hostB之间的路径均不丢包。对于leaf2与hostB之间的路径,确定leaf2与spine4之间的路径存在丢包,将该leaf2与spine4之间的路径存在丢包作为leaf2与hostB之间的路径的检测结果。
需要说明的是,关于leaf1或leaf2向hostA或hostB发送检测报文的顺序,以及leaf1或leaf2接收到响应报文的顺序,本申请实施例均不加以限定。
图8是本申请实施例提供的一种路径检测装置的结构示意图,该装置应用于第一设备,该第一设备为上述图2所示的第一设备。基于图8所示的如下多个模块,该图8所示的路径检测装置能够执行第一设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图8所示,该装置包括:
发送模块801,用于向第二设备发送第一数量组检测报文,第一数量组检测报文用于检测第一设备与第二设备之间的路径,第一数量基于第一设备到第二设备的跳数确定,一组检测报文对应第一设备到第二设备的一跳;
接收模块802,用于接收基于第一数量组检测报文得到的响应报文,响应报文中包括发送该响应报文的设备的设备信息和对应的检测报文的信息中的至少一种;
确定模块803,用于基于响应报文的数量和响应报文包括的信息,确定第一设备与第二设备之间的路径的检测结果。
在一种可能的实现方式中,对于任一组检测报文,该任一组检测报文的报文数量是基于目标出接口数和路径覆盖概率确定的,目标出接口数为第一设备与第二设备之间各跳出接口总数中的最大值,路径覆盖概率是第一设备与第二设备之间的路径的覆盖概率。
在一种可能的实现方式中,该任一组检测报文的报文数量按照如下公式确定:
Nmax=Max(N1,N2,…,Ni,…,Nk)0≤i≤k
其中,M用于表示该任一组检测报文的报文数量,G用于表示路径覆盖概率,Ni用于表示第i跳的出接口总数,Nmax用于表示N1至Nk中的最大值,k用于表示第一设备与第二设备之间的跳数,i和k均为正整数。
在一种可能的实现方式中,该任一组检测报文的报文数量为第一设备与第二设备之间各跳出接口总数中的最大值的r倍,r为正整数;该任一组检测报文中的每r个检测报文用于检测该任一组检测报文对应的设备与第一设备之间的一条路径。
在一种可能的实现方式中,该任一组检测报文中的每r个检测报文的五元组相同,该任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化。
在一种可能的实现方式中,确定模块803,用于对于基于任一组检测报文得到的响应报文,如果响应报文的数量小于该任一组检测报文的报文数量,确定该任一组检测报文对应的设备与第一设备之间存在丢包的路径;基于响应报文包括的信息确定存在丢包的路径对应的丢包原因,将存在丢包的路径的信息以及该丢包原因作为第一设备与第二设备之间的路径的检测结果。
在一种可能的实现方式中,接收模块802,还用于接收拨测指令,该拨测指令用于指示第一设备向第二设备发送第一数量组检测报文。
在一种可能的实现方式中,该检测报文包括标记字段,该标记字段用于指示该检测报文为基于该拨测指令发送的报文。
在一种可能的实现方式中,该响应报文包括控制字段和信息字段,该控制字段用于指示该响应报文包括的信息的类型,该信息字段用于携带该响应报文包括的信息。
在一种可能的实现方式中,该设备信息包括设备标识和设备状态中的至少一种,对应的检测报文的信息包括该检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
图9是本申请实施例提供的一种路径检测装置的结构示意图,该装置应用于第二设备,该第二设备为上述图2所示的第二设备。基于图9所示的如下多个模块,该图9所示的路径检测装置能够执行第二设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图9所示,该装置包括:
接收模块901,用于接收第一设备发送的检测报文;
发送模块902,用于向第一设备发送响应报文,该响应报文包括第二设备的设备信息和对应的检测报文的信息中的至少一种,该响应报文包括的信息用于确定第一设备与第二设备之间的路径的检测结果。
在一种可能的实现方式中,该检测报文包括标记字段,该标记字段用于指示该检测报文为基于拨测指令发送的报文。
在一种可能的实现方式中,该响应报文包括控制字段和信息字段,该控制字段用于指示该响应报文包括的信息的类型,该信息字段用于携带该响应报文包括的信息。
在一种可能的实现方式中,该设备信息包括设备标识和设备状态中的至少一种,该检测报文的信息包括该检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
本申请实施例提供的装置,基于第一设备接收到的响应报文的数量和该响应报文包括的信息,能够确定第一设备与第二设备之间的路径的检测结果,确定第一设备与第二设备之间的路径的检测结果的效率较高。再有,由于响应报文能够包括较为全面的信息,当第一设备与第二设备之间存在出现问题的路径时,能够快速确定该存在问题的路径以及该路径的具体问题,进而有助于快速解决该路径存在的问题,避免严重的网络事故的发生。
应理解的是,上述图8和图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参见图10,图10是本申请实施例提供的一种路径检测装置1000的结构示意图,该路径检测装置1000可为第一设备或第二设备,用于执行上述图2所示的路径检测方法中第一设备或第二设备涉及的操作。示例性地,该路径检测装置1000包括:处理器1001,该处理器1001用于实现第一设备所涉及的操作或第二设备所涉及的操作。
在一种可能的实现方式中,该装置为芯片。
在一种可能的实现方式中,该装置为网络设备,该网络设备的类型包括以下至少一项:路由器、交换机或服务器。
示例性地,处理器1001是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器1001包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic arraylogic,GAL)或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。该处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
参见图11,图11示出了本申请一个示例性实施例提供的网络设备2000的结构示意图。图11所示的网络设备2000可为第一设备或第二设备,用于执行上述图2所示的路径检测方法所涉及的操作。该网络设备2000例如是交换机、路由器等,该网络设备2000可以由一般性的总线体系结构来实现。如图11所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是CPU、DSP、NP、GPU、NPU、DPU、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括ASIC,PLD或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是,CPLD、FPGA、GAL或其任意组合。其可以实现或执行结合本申请实施例公开内容所描述的各种逻辑方框、模块和电路。该处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序指令并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area network,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(ethernet)接口、快速以太(fast ethernet,FE)接口、千兆以太(gigabit ethernet,GE)接口,异步传输模式(asynchronous transfer mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图11中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图11中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序指令2010,处理器2001可以执行存储器2003中存储的程序指令2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序指令2010,来实现方法实施例提供的路径检测方法。程序指令2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的网络设备2000可对应于上述各个路径检测方法实施例中的第一设备,网络设备2000中的处理器2001读取存储器2003中的指令,使图11所示的网络设备2000能够执行第一设备所执行的全部或部分操作。
在具体实施例中,本申请实施例的网络设备2000可对应于上述各个路径检测方法实施例中的第二设备,网络设备2000中的处理器2001读取存储器2003中的指令,使图11所示的网络设备2000能够执行第二设备所执行的全部或部分操作。
网络设备2000还可以对应于上述图8-10所示的路径检测装置,路径检测装置中的每个功能模块采用网络设备2000的软件实现。换句话说,路径检测装置中包括的功能模块为网络设备2000的处理器2001读取存储器2003中存储的程序指令2010后生成的。
其中,图2所示的路径检测方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图12,图12示出了本申请另一个示例性实施例提供的网络设备2100的结构示意图。图12所示的网络设备2100可为第一设备或第二设备,用于执行上述图2所示的路径检测方法所涉及的全部或部分操作。该网络设备2100例如是交换机、路由器等,该网络设备2100可以由一般性的总线体系结构来实现。如图12所示,网络设备2100包括:主控板2110和接口板2130。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。
接口板2130也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE Clients)。接口板2130包括:中央处理器2131网络处理器2132、转发表项存储器2134和物理接口卡(physical interface card,PIC)2133。
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。
网络处理器2132用于实现报文的转发处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(network processor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址为报文处理设备2100的地址,则将该报文上送至CPU(如中央处理器2131)处理;如果报文的目的地址不是报文处理设备2100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。
示例性地,网络设备2100包括多个接口板,例如网络设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。
示例性地,网络设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。
在逻辑上,网络设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的报文处理设备的数据接入和处理能力要大于集中式架构的报文处理设备。示例性地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态的网络设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在具体实施例中,网络设备2100对应于上述图8所示的应用于第一设备的路径检测装置。在一些实施例中,图8所示的路径检测装置中的发送模块801和接收模块802相当于网络设备2100中的物理接口卡2133;确定模块803相当于网络设备2100中的中央处理器2111或网络处理器2132。
在一些实施例中,网络设备2100还对应于上述图9所示的应用于第二设备的路径检测装置。在一些实施例中,图9所示的路径检测装置中的接收模块901相当于网络设备2100中的物理接口卡2133;发送模块902相当于网络设备2100中的中央处理器2111或网络处理器2132。
在一种可能的实现方式中,本申请实施例还提供了一种路径检测系统,该系统包括:第一设备和第二设备。示例性地,第一设备和第二设备均适用于图10示出的报文检测装置的结构。示例性地,该路径检测系统基于图11和图12示出的网络设备得到。例如,第一设备为图11所示的网络设备2000或图12所示的网络设备2100,第二设备为图11所示的网络设备2000或图12所示的网络设备2100。第一设备和第二设备所执行的路径检测方法可参见上述图2所示实施例的相关描述,此处不再加以赘述。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一设备所需执行的路径检测方法。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第二设备所需执行的路径检测方法。
应理解的是,上述处理器可以是CPU,还可以是其他通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现如上任一所述的路径检测方法。
本申请实施例还提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的路径检测方法的各个步骤和/或流程。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的路径检测方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的路径检测方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid statedisk)等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。计算机可读存储介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机可读存储介质可以是机器可读信号介质或机器可读存储介质。计算机可读存储介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。计算机可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个目标对象是指两个或两个以上的目标对象。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中的字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的多个目标对象中的各个目标对象的位置信息都是在充分授权的情况下获取的。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (20)
1.一种路径检测方法,其特征在于,所述方法包括:
第一设备向第二设备发送第一数量组检测报文,所述第一数量组检测报文用于检测所述第一设备与所述第二设备之间的路径,所述第一数量基于所述第一设备到所述第二设备的跳数确定,一组检测报文对应所述第一设备到所述第二设备的一跳;
接收基于所述第一数量组检测报文得到的响应报文,所述响应报文中包括发送所述响应报文的设备的设备信息和对应的检测报文的信息中的至少一种;
基于所述响应报文的数量和所述响应报文包括的信息,确定所述第一设备与所述第二设备之间的路径的检测结果。
2.根据权利要求1所述的方法,其特征在于,对于任一组检测报文,所述任一组检测报文的报文数量是基于目标出接口数和路径覆盖概率确定的,所述目标出接口数为所述第一设备与所述第二设备之间各跳出接口总数中的最大值,所述路径覆盖概率是所述第一设备与所述第二设备之间的路径的覆盖概率。
3.根据权利要求2所述的方法,其特征在于,所述任一组检测报文的报文数量按照如下公式确定:
Nmax=Max(N1,N2,…,Ni,…,Nk)0≤i≤k
其中,所述M用于表示所述任一组检测报文的报文数量,所述G用于表示所述路径覆盖概率,所述Ni用于表示第i跳的出接口总数,所述Nmax用于表示N1至Nk中的最大值,所述k用于表示所述第一设备与所述第二设备之间的跳数,所述i和所述k均为正整数。
4.根据权利要求2或3所述的方法,其特征在于,所述任一组检测报文的报文数量为所述第一设备与所述第二设备之间各跳出接口总数中的最大值的r倍,所述r为正整数;所述任一组检测报文中的每r个检测报文用于检测所述任一组检测报文对应的设备与所述第一设备之间的一条路径。
5.根据权利要求4所述的方法,其特征在于,所述任一组检测报文中的每r个检测报文的五元组相同,所述任一组检测报文中的每r个检测报文的五元组对应的哈希值均匀变化。
6.根据权利要求1-5任一所述的方法,其特征在于,所述基于所述响应报文的数量和所述响应报文包括的信息,确定所述第一设备与所述第二设备之间的路径的检测结果,包括:
对于基于任一组检测报文得到的响应报文,如果所述响应报文的数量小于所述任一组检测报文的报文数量,确定所述任一组检测报文对应的设备与所述第一设备之间存在丢包的路径;
基于所述响应报文包括的信息确定存在丢包的路径对应的丢包原因,将所述存在丢包的路径的信息以及所述丢包原因作为所述第一设备与所述第二设备之间的路径的检测结果。
7.根据权利要求1-6任一所述的方法,其特征在于,所述第一设备向第二设备发送第一数量组检测报文之前,还包括:
所述第一设备接收拨测指令,所述拨测指令用于指示所述第一设备向所述第二设备发送所述第一数量组检测报文。
8.根据权利要求7任一所述的方法,其特征在于,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于所述拨测指令发送的报文。
9.根据权利要求1-8任一所述的方法,其特征在于,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
10.根据权利要求1-9任一所述的方法,其特征在于,所述设备信息包括设备标识和设备状态中的至少一种,所述对应的检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
11.一种路径检测方法,其特征在于,所述方法包括:
第二设备接收第一设备发送的检测报文;
向所述第一设备发送响应报文,所述响应报文包括所述第二设备的设备信息和对应的检测报文的信息中的至少一种,所述响应报文包括的信息用于确定所述第一设备与所述第二设备之间的路径的检测结果。
12.根据权利要求11所述的方法,其特征在于,所述检测报文包括标记字段,所述标记字段用于指示所述检测报文为基于拨测指令发送的报文。
13.根据权利要求11或12所述的方法,其特征在于,所述响应报文包括控制字段和信息字段,所述控制字段用于指示所述响应报文包括的信息的类型,所述信息字段用于携带所述响应报文包括的信息。
14.根据权利要求11-13任一所述的方法,其特征在于,所述设备信息包括设备标识和设备状态中的至少一种,所述检测报文的信息包括所述检测报文的入接口信息、出接口信息、转发时延或丢包原因中的至少一种。
15.一种路径检测装置,其特征在于,包括处理器,所述处理器用于实现如权利要求1-14任一所述的路径检测方法。
16.根据权利要求15所述的装置,其特征在于,所述装置为芯片。
17.根据权利要求15所述的装置,其特征在于,所述装置为网络设备,所述网络设备的类型包括以下至少一项:路由器、交换机或服务器。
18.一种路径检测系统,其特征在于,所述路径检测系统包括第一设备和第二设备,所述第一设备用于执行如权利要求1-10中任一所述的方法,所述第二设备用于执行如权利要求11-14任一所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以使计算机实如现权利要求1-14任一所述的路径检测方法。
20.一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序由计算机加载并执行,以使所述计算机实现如权利要求1-14任一所述的路径检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210416864.6A CN116962161A (zh) | 2022-04-20 | 2022-04-20 | 路径检测方法、装置、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210416864.6A CN116962161A (zh) | 2022-04-20 | 2022-04-20 | 路径检测方法、装置、系统及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116962161A true CN116962161A (zh) | 2023-10-27 |
Family
ID=88449946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210416864.6A Pending CN116962161A (zh) | 2022-04-20 | 2022-04-20 | 路径检测方法、装置、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962161A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193272A (zh) * | 2023-11-07 | 2023-12-08 | 常州华纳电气有限公司 | 一种基于大数据的电控测试数据管理系统及方法 |
-
2022
- 2022-04-20 CN CN202210416864.6A patent/CN116962161A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193272A (zh) * | 2023-11-07 | 2023-12-08 | 常州华纳电气有限公司 | 一种基于大数据的电控测试数据管理系统及方法 |
CN117193272B (zh) * | 2023-11-07 | 2024-01-26 | 常州华纳电气有限公司 | 一种基于大数据的电控测试数据管理系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995583B (zh) | 路径探测方法、装置及计算机存储介质 | |
WO2021254500A1 (zh) | 一种转发报文的方法、设备和系统 | |
WO2021244439A1 (zh) | 网络性能的测量方法、装置、设备、系统及存储介质 | |
WO2023236858A1 (zh) | 流表规则的管理方法、流量管理方法、系统及存储介质 | |
WO2022068744A1 (zh) | 获取报文头信息、生成报文的方法、设备及存储介质 | |
CN116962161A (zh) | 路径检测方法、装置、系统及计算机可读存储介质 | |
CN109286564B (zh) | 一种报文转发方法及装置 | |
CN114697403A (zh) | 业务报文的处理方法、装置、设备、系统及存储介质 | |
WO2022042403A1 (zh) | 生成路由信息、发送位置信息及转发报文的方法及设备 | |
CN115914087A (zh) | 报文转发方法、装置、设备、系统及存储介质 | |
CN114513485A (zh) | 获取映射规则的方法、装置、设备、系统及可读存储介质 | |
CN114826898A (zh) | 跨主机通信方法、装置、设备、系统及可读存储介质 | |
WO2024113830A1 (zh) | 数据传输方法、装置、设备、系统及存储介质 | |
CN118118424A (zh) | 数据传输方法、装置、设备、系统及存储介质 | |
WO2023005817A1 (zh) | 路径确定方法、装置、设备、系统及计算机可读存储介质 | |
EP4277226A1 (en) | Packet transmission method, transmission control method, apparatus, and system | |
WO2023040729A1 (zh) | 报文处理方法、流规范传输方法、设备、系统及存储介质 | |
CN116781573A (zh) | 故障检测方法、装置、设备、系统及计算机可读存储介质 | |
CN117376259A (zh) | 负载均衡的方法、装置、设备、系统及存储介质 | |
CN115225610A (zh) | 配置地址的方法、装置、设备及计算机可读存储介质 | |
CN117097805A (zh) | 报文发送方法、装置及存储介质 | |
CN116264590A (zh) | 业务处理方法、装置及系统 | |
CN115277552A (zh) | 传输报文的方法、装置及设备 | |
CN117278451A (zh) | 随流检测方法、装置、设备、系统及存储介质 | |
CN118075221A (zh) | 数据处理方法、装置、设备、系统及可读存储介质 |
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 |