CN116319535A - 路径切换方法、装置、网络设备、以及网络*** - Google Patents

路径切换方法、装置、网络设备、以及网络*** Download PDF

Info

Publication number
CN116319535A
CN116319535A CN202210139157.7A CN202210139157A CN116319535A CN 116319535 A CN116319535 A CN 116319535A CN 202210139157 A CN202210139157 A CN 202210139157A CN 116319535 A CN116319535 A CN 116319535A
Authority
CN
China
Prior art keywords
path
message
network device
forwarding
packet
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
Application number
CN202210139157.7A
Other languages
English (en)
Inventor
赵笑可
李久勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/CN2022/139756 priority Critical patent/WO2023116580A1/zh
Publication of CN116319535A publication Critical patent/CN116319535A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/247Multipath using M:N active or standby paths

Abstract

一种路径切换方法、装置、网络设备、以及网络***,涉及通信领域。该通信方法包括:在第一网络设备转发报文的过程中,第一网络设备可以根据第二网络设备发送的异常信息确定报文所对应的第一路径为异常状态,避免了第一网络设备无法感知下游设备的异常状态(如拥塞或丢包)。而且第一网络设备确定的ECMP组还包括与第一路径的目的标识一致的其他等价转发路径,如第二路径,因此,第一网络设备还可以通过第二路径转发前述的报文,避免了报文无法被转发至目的标识对应的设备,提高了数据通信的准确率,以及降低了路径的状态处于异常状态导致的传输时延,提高了报文的传输效率。

Description

路径切换方法、装置、网络设备、以及网络***
本申请要求于2021年12月21日提交国家知识产权局、申请号为202111572470.1、申请名称为“一种路径调整方法和相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种路径切换方法、装置、网络设备、以及网络***。
背景技术
等价路径负载分担(equal-cost multi-path,ECMP)路径是指到达同一个目标互联网协议(Internet Protocol,IP)地址或者目标网段存在多条价值相等、但中间节点不同的路径。当网络设备支持ECMP功能时,发往同一目标IP地址或者目标网段的数据流就可以通过不同的路径发送。通常,网络设备基于目标IP地址和预设的流量模型,对ECMP组包括的多条路径所传输的业务数据进行流量负载分担。然而,若该ECMP组包括的等价转发路径发生拥塞或丢包等问题时,网络设备无法感知该等价转发路径中的下游设备发生的异常状态,导致该等价转发路径的传输时延较高,也无法将报文的路由路径切换到ECMP组包括的其他等价转发路径,从而,业务数据在ECMP组中的传输时延增大,数据传输效率降低。因此,如何在ECMP组中的转发路径异常的情况下提供一种高效的路径切换方法成为目前亟需解决的问题。
发明内容
本申请提供一种路径切换方法、装置、网络设备、以及网络***,解决了当ECMP组中的等价转发路径发生异常时,业务数据在ECMP组中的传输时延增大,数据传输效率降低的问题。
本申请采用如下技术方案。
第一方面,本申请的实施例提供一种路径切换方法,该方法可应用于包括第一网络设备和第二网络设备的网络***,或者支持实现该路径切换方法的网络设备,例如该网络设备包括芯片或者芯片***。示例的,该路径切换方法由第一网络设备执行,该路径切换方法包括:第一网络设备接收第一报文,并根据该第一报文的目的标识获取对应的ECMP组,该ECMP组包括对应目的标识的多条等价转发路径;进而,第一网络设备从前述ECMP组中确定第一报文对应的第一路径;当第一网络设备根据第二网络设备发送的异常信息确定第一路径处于异常状态时,第一网络设备通过ECMP组中的第二路径转发第一报文。
在第一网络设备转发报文的过程中,由于第一网络设备可以根据第二网络设备发送的异常信息确定第一报文所对应的第一路径为异常状态,避免了第一网络设备无法感知下游设备(如第二网络设备)的异常状态(如拥塞或丢包),而且ECMP组还包括与第一路径的目的标识一致的其他等价转发路径,如第二路径,因此,第一网络设备还可以通过第二路径转发前述的第一报文,避免了第一报文无法被转发至目的标识对应的设备,提高了数据通信的准确率,降低了路径的状态处于异常状态导致的传输时延,提高了第一报文的传输效率。
在一种可选的示例中,第二网络设备发送的异常信息指示通过第一路径接收的报文影响了第二网络设备的转发效率。第二网络设备的转发效率可以由以下任意一种或几种的组合来表示:第一路径的带宽、第一路径的传输时延、第一路径中数据报文的丢包率等。在第一网络设备确定ECMP组包括的一条或多条等价转发路径处于异常状态时,可将原来由异常等价转发路径转发的报文切换到ECMP组中的正常等价转发路径进行转发,解决了第一网络设备无法感知下游设备的异常状态的问题,提高了数据流在ECMP组中的传输效率。
在另一种可选的示例中,第一路径处于异常状态,包括:第一路径被标记为异常,如该第一路径被标记为不可用的状态;或第一路径被删除,如第一网络设备将第一路径移出ECMP组包括的等价转发路径;或第一路径的参数超过设定的阈值,例如,ECMP组所包括的每条等价转发路径对应一个路径参数值,在一个ECMP组中,路径参数值的最大值和最小值是确定的,若第一路径对应的路径参数值被设置为不属于ECMP组所对应的路径参数值,则确定第一路径的参数超过设定的阈值,进而确定第一路径被标记为异常。在本实施例中,由于网络设备可根据下游设备反馈的异常信息,确定ECMP组中处于异常状态的等价转发路径,进而,网络设备可将该处于异常状态的等价转发路径所需传输的报文切换到正常的等价转发路径(或是空闲的等价转发路径),降低了报文在网络***中的传输时延,提高了网络***的传输效率。
在又一种可选的示例中,第一路径被删除,包括:第一网络设备提供给第一路径的端口被置为无效,或者,第二网络设备在第一路径中的下一跳路由被删除。
在一种可选的实现方式中,第一网络设备通过ECMP组中的第二路径转发第一报文,包括:第一网络设备将第一路径偏移设定的值,以得到第二路径;进而,第一网络设备通过第二路径转发第一报文。网络设备可通过设定偏移值的方式来确定报文转发的等价转发路径,提高了路径调整的精准性,在多个报文属于同一数据流的情况下,实现了数据流的精准调控。示例的,网络设备或者源端设备可针对特定的字段设置偏移值,从而调整ECMP组中内部的路径选择,实现了源端设备到目的设备之间的路由路径的精准调整。
在另一种可选的实现方式中,前述的路径切换方法还包括:第一网络设备接收第二报文,第二报文属于第一流,第二报文中包括偏移值;进而,第一网络设备根据第二报文中的偏移值,通过第二路径转发第二报文。由于第一网络设备是在获取到异常信息后迅速对ECMP组中的路径进行调整,因此,在提高网络***的数据传输效率的基础上,提高了ECMP组中路径调整的及时性。
在一种可能的情形中,前述的偏移值包括在第二报文的报文头中。
在一种可行的示例中,若第一报文为***互联网协议(Internet Protocolversion 4,IPv4)报文,IPv4报文包括的扩展选项头或互联网协议标识IP ID字段存储有偏移值。或者,
在另一种可行的示例中,若第一报文为第六代互联网协议(Internet Protocolversion 6,IPv6)报文,IPv6报文包括的扩展选项头或流标签(flow label)字段存储有偏移值。
值得注意的是,当前述的第一报文和第二报文为基于其他协议的数据报文时,偏移值也可以设置在报文头的其他位置,不予限定。另外,偏移值可以是第一网络设备设置的,或者,偏移值也可以是与第一网络设备通信的源端设备设置的,不予限定。
在另一种可选的实现方式中,第一报文包括优先级信息。第一网络设备根据第一报文的目的标识获取对应的等价路径负载分担ECMP组,包括:步骤1,第一网络设备根据第一报文的目的标识获取多个ECMP组,多个ECMP组对应不同的优先级。步骤2,第一网络设备根据优先级信息从多个ECMP组中确定第一报文对应的ECMP组。由于网络设备可为一个目的标识提供多个不同的ECMP组,且这多个不同的ECMP组具有不同的转发效率,在网络***所需服务的用户量较大的情况下,网络设备可优先为有低时延、或大流量传输等的需求的用户提供转发效率更高的ECMP组,从而实现数据通信的低时延与大流量传输。另外,针对于一个用户而言,网络设备可以为该用户提供更优质(如时延更低、带宽更大)的ECMP组,有利于提高数据通信的QoE。
在一种可能的情形中,优先级信息为差分服务代码点(differentiated servicescode point,DSCP)值。在本实施例中,网络设备可根据DSCP值的不同,为不同的业务类型提供时延和带宽存在差异的ECMP组,即网络设备可针对差异化的目标群体提供更优质的通信服务,从而避免不同类型的业务共用相同的ECMP组,导致网络***的处理时延提高和数据传输效率较低等问题。例如,网络设备可以向高优先级业务提供更优质的通信服务,提高QoE。
第二方面,提供了一种路径切换装置,该路径切换装置应用于第一网络设备,该路径切换装置包括用于执行第一方面或第一方面任一种可能实现方式中的路径切换方法的各个模块。示例的,路径切换装置包括:接收单元、获取单元、确定单元和转发单元。
接收单元用于接收第一报文,该第一报文属于第一流。获取单元用于根据第一报文的目的标识获取对应的ECMP组,该ECMP组包括对应前述目的标识的多条等价转发路径。确定单元用于从ECMP组中确定第一报文对应的第一路径,以及,确定第一路径是否处于异常状态。其中,确定单元根据第二网络设备发送的异常信息确定第一路径处于异常状态。转发单元用于当确定单元确定第一路径处于异常状态时,通过ECMP组中的第二路径转发第一报文。
有益效果可以参见第一方面中任一方面的描述,此处不再赘述。所述路径切换装置具有实现上述第一方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可选的示例中,第二网络设备发送的异常信息指示通过第一路径接收的报文影响了第二网络设备的转发效率。
在另一种可选的示例中,第一路径处于异常状态,包括:第一路径被标记为异常,或第一路径被删除,或第一路径的参数超过设定的阈值。
在又一种可选的示例中,第一路径被删除,包括:第一网络设备提供给第一路径的端口被置为无效,或者,第二网络设备在第一路径中的下一跳路由被删除。
在一种可选的实现方式中,转发单元具体用于:将第一路径偏移设定的值,以得到第二路径;以及,通过第二路径转发第一报文。
在一种可选的实现方式中,接收单元,还用于接收第二报文,该第二报文属于第一流,该第二报文中包括偏移值。此外,转发单元,还用于根据第二报文中的偏移值,通过第二路径转发第二报文。
在一种可能的情形中,偏移值包括在第二报文的报文头中。
在一种可行的示例中,若第一报文为IPv4报文,IPv4报文包括的扩展选项头或互联网协议标识IP ID字段存储有偏移值。
在另一种可行的示例中,若第一报文为IPv6报文,IPv6报文包括的扩展选项头或流标签字段存储有偏移值。
在另一种可选的实现方式中,第一报文包括优先级信息。获取单元,具体用于根据第一报文的目的标识获取多个ECMP组,多个ECMP组对应不同的优先级。确定单元,还用于根据优先级信息从多个ECMP组中确定第一报文对应的ECMP组。在一种可能的情形中,优先级信息为DSCP值。
第三方面,提供了一种网络设备,包括存储器和处理器,其中:存储器用于存储程序代码;处理器用于调用程序代码实现第一方面中任一方面的方法的操作步骤。
第四方面,提供了一种网络***,包括:第一网络设备和第二网络设备。在该网络***中,第一网络设备接收第一报文,第一报文属于第一流。其次,第一网络设备根据第一报文的目的标识获取对应的ECMP组,该ECMP组包括对应目的标识的多条等价转发路径。之后,第一网络设备从ECMP组中确定第一报文对应的第一路径。最后,当第一路径处于异常状态时,第一网络设备通过ECMP组中的第二路径,向第二网络设备转发第一报文。其中,第一网络设备根据第二网络设备发送的异常信息确定第一路径处于异常状态。
在一种可选的实现方式中,网络***还包括:源端设备。该源端设备向第一网络设备发送第二报文,该第二报文属于第一流,该第二报文中包括偏移值。进而,第一网络设备根据第二报文中的偏移值,通过第二路径向第二网络转发第二报文。在一种可能的情形中,偏移值包括在第二报文的报文头中。有益效果可以参见第一方面中任一方面的描述,此处不再赘述。
第五方面,提供了一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被处理器执行时,实现第一方面中任一方面的方法的操作步骤。
第六方面,本申请提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在处理器或计算设备上运行时,使得处理器或计算设备执行该指令,以实现第一方面和第一方面中任一种可能实现方式中的方法。
第七方面,本申请提供一种芯片,包括:接口电路和控制电路。接口电路用于接收来自处理器之外的其它设备的数据并传输至控制电路,或将来自控制电路的数据发送给处理器之外的其它设备,控制电路通过逻辑电路或执行代码指令用于实现第一方面中任一方面中任一种可能实现方式的方法。有益效果可以参见第一方面中任一方面的描述,此处不再赘述。本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种通信***的架构示意图;
图2为本申请提供的一种叶脊网络的架构示意图;
图3为本申请提供的一种路径切换方法的流程示意图一;
图4为本申请提供的一种路径切换方法的流程示意图二;
图5为本申请提供的一种路径切换方法的流程示意图三;
图6为本申请提供的ECMP组中的路径调整过程示意图;
图7为本申请提供的一种IPv4报文的结构示意图;
图8为本申请提供的一种路径切换方法的流程示意图四;
图9为本申请提供的一种路径切换装置的结构示意图;
图10为本申请提供的一种网络设备的结构示意图;
图11为本申请提供的另一种网络设备的结构示意图。
具体实施方式
本申请的实施例提供了一种路径切换方法,该路径切换方法包括:第一网络设备接收第一报文,并根据该第一报文的目的标识获取对应的ECMP组,该ECMP组包括对应目的标识的多条等价转发路径;进而,第一网络设备从前述ECMP组中确定第一报文对应的第一路径;当第一网络设备根据第二网络设备发送的异常信息确定第一路径处于异常状态时,第一网络设备通过ECMP组中的第二路径转发第一报文。在第一网络设备转发报文的过程中,由于第一网络设备可以根据第二网络设备发送的异常信息确定第一报文所对应的第一路径为异常状态,避免了第一网络设备无法感知下游设备(如第二网络设备)的异常状态(如拥塞或丢包),而且ECMP组还包括与第一路径的目的标识一致的其他等价转发路径,如第二路径,因此,第一网络设备还可以通过第二路径转发前述的第一报文,避免了第一报文无法被转发至目的标识对应的设备,提高了数据通信的准确率,降低了路径的状态处于异常状态导致的传输时延,提高了第一报文的传输效率。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
图1为本申请提供的一种通信***的架构示意图。如图1所示,该通信***包括源端设备110和目的设备130,以及用于向源端设备110和目的设备130提供通信服务的网络***120。该网络***120可以是指因特网、蜂窝网络、数据中心网络,或其他网络等。例如,该网络***120是互联网服务提供商(Internet service provider,ISP)网络。ISP是指向广大用户提供互联网接入业务、信息业务和增值业务的运营商。
该网络***120可以包括至少一个网络设备,如图1中所示的网络设备121至网络设备126。示例的,该网络设备可以是路由器或交换机等路由传输设备,如网络设备121是无线接入点(access point,AP),如无线路由器,网络设备122可以是与无线路由器连接的交换机。在一些可能的其他情形中,该网络***120包括的网络设备也可以是具有数据传输功能的其他网络设备,例如服务器或者具有数据传输功能的基站设备等。
源端设备110是指发送数据的设备,如该源端设备110为存储有数据的应用服务器或存储设备等,该源端设备110可以利用网络***120向其他设备(如图1所示出的目的设备130)发送数据。源端设备110存储的数据可以包括,但不限于:音频、视频、文本或其他类型的数据。当源端设备110发送的数据为视频、音频或者其他多媒体文件时,源端设备110可以利用流式传输的方式来传输这些数据,如媒体流(media stream),目的设备130播放前并不下载媒体流的整个流媒体文件,以减少目的设备130播放该媒体流所对应的流媒体的时延,提高用户体验质量(quality of experience,QoE)。
请继续参见图1,上述的目的设备130可以是指请求数据的设备,如该目的设备130是指终端,终端可以是手机、平板电脑、带无线收发功能的电脑、个人通信业务(personalcommunication service,PCS)电话、台式计算机、个人数字助手(personal digitalassistant,PDA)、可穿戴设备、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
值得注意的是,上述的源端设备110和目的设备130仅为本实施例提供的示例,不应理解为对本申请的限定,本申请对通信***中源端设备110、目的设备130的具体形态和数量不做限定。
在数据传输过程中,若源端设备110发送的多个报文的目的IP地址相同,为提高网络***120的传输效率,一般采用路由负载分担技术来转发该多个报文。路由负载分担是指在网络节点(或网络设备)之间,去往同一个目的地存在多条路由转发路径,流量被分担到多条路由转发路径上进行转发。示例的,在网络设备的转发信息库(forwardinginformation base,FIB)中,如果存在多条目的地址和掩码相同,但下一跳路由(如IP地址)、出接口、或隧道标识(tunnel ID)的属性不同的表项所对应的路由路径,网络设备可基于该多条路由路径实现流量在网络***中的路由负载分担。
在一些可选的情况中,FIB也可称为转发路由表或转发表,FIB存储于路由器(或其他网络设备)的数据平面,FIB的表项被称为转发表项,每条转发表项都指定要到达的某个目的地,所需要通过的出接口及下一跳IP地址等信息。在硬件实现上,FIB中数据(如前述的转发表项)可以被存储在一个专用集成电路(application-specific integratedcircuit,ASIC)中,这使得网络设备(如路由器)在FIB中进行数据查询时,可以实现相当高的速度。当然,FIB所能使用的存储空间是有限的,因此,大型网络***中要关注网络设备的路由表规模,在保证数据可达的前提下,通过各种机制及手段来减小FIB的规模。
如图1所示,网络***120为目的IP地址相同的数据提供了多条不同的路由路径,如图1所示出的源端设备110-网络设备121-网络设备122-网络设备126-目的设备130,源端设备110-网络设备121-网络设备123-网络设备126-目的设备130,源端设备110-网络设备121-网络设备124-网络设备125-网络设备126-目的设备130,或者是其他可能的路由路径等。在这多条路由路径中,开销(cost)相等、但中间节点不同的至少两条路由路径可以称为互相的等价转发路径。其中,开销是指到达某个路由所指的目的地址的代价。由于多条等价换发路径的目的地址相同,且这多条等价换发路径的开销相同、转发路由不同,因此,该多条等价换发路径可以实现网络***120中的路由负载分担。另外,前述多条等价转发路径也可以称为到达一个目的地址的ECMP组。
下面以图1所示出的网络***120是叶脊网络(spine-leaf network)为例,对网络***进行说明,图2为本申请提供的一种叶脊网络的架构示意图,该叶脊网络200包括多个交换机,如脊交换机211至脊交换机214,以及叶交换机221至叶交换机223。
叶交换机(leaf switch)可以实现接入交换机的功能,用于连接与叶脊网络200通信的物理服务器,如图2所示出的服务器231至服务器233。例如,叶交换机221与服务器231连接,以将服务器231接入叶脊网络200。
脊交换机(spine switch)可以实现核心路由器(core router,CR)的功能,用于转发来自叶交换机的数据。示例的,两个叶交换机所连接的服务器需要通信,需要经由脊交换机转发数据。如图2所示,服务器231和服务器232在通信时,数据需经过叶交换机221、叶交换机222,以及同时与叶交换机221、叶交换机222通信的脊交换机(如脊交换机212)的转发。
在叶脊网络200中,数据的通信可以由叶交换机和脊交换机之间基于ECMP选择等价转发路径来实现。如图2所示,叶交换机221至脊交换机211、脊交换机212、脊交换机213的3条路由路径(图2中以虚线表示),互为叶交换机221至目标IP地址指示的设备(如服务器232)的等价转发路径。
值得注意的是,在叶脊网络中,脊交换机的下行端口数量决定了叶交换机的数量,而叶交换机的上行端口数量决定了脊交换机的数量,叶脊网络的规模由脊交换机的下行端口数量和叶交换机的上行端口数量共同决定。关于叶脊网络的更多内容可以参考通常技术的相关阐述,在此不予赘述。
可以理解的是,规模化、虚拟化、云计算已成为网络的发展方向,来整合信息技术(information technology,IT)资源、提升资源利用效率、降低维护成本。因此,图2所示出的服务器中可以部署有虚拟机(virtual machine,VM),VM是指通过虚拟化技术将物理的计算资源、存储资源和网络资源进行虚拟获得的虚拟设备,亦称为逻辑计算机。运行虚拟机的物理设备称为宿主机,如服务器231是VM1和VM2的宿主机,服务器232是VM3和VM4的宿主机,服务器234是VM5和VM6的宿主机。
在一种可能的示例中,VM所需的计算资源来源于服务器本地的处理器和内存,而VM所需的存储资源既可以来源于服务器本地的硬盘。例如,虚拟机231A(上述的VM2)包括虚拟处理器231A1、虚拟内存231A2和虚拟网卡231A3,虚拟处理器231A1所需的计算资源由处理器提供、虚拟内存231A2所需的存储资源由内存(或硬盘)提供,虚拟网卡231A3所需的网络资源由服务器包括的网卡提供。此外,VM中可运行各种应用程序,用户可通过VM中的应用程序触发数据访问(包括读数据、写数据,以及迁移数据等)、流媒体传输与播放等业务。
请继续参见图2,在叶脊网络200为任意两个服务器提供通信服务的过程中,叶脊网络200可以提供多条价值相等、中间路由不同的等价转发路径来转发数据。另外,该叶脊网络200中还可以包括其它路由设备,在图2中未画出。本申请的实施例对该叶脊网络200中包括的叶交换机和脊交换机的数量不做限定。
下面将结合附图对本实施例提供的路径切换方法的具体实现方式进行详细描述。
图3为本申请提供的一种路径切换方法的流程示意图一,该路径切换方法可以应用于图1所示出的通信***,示例的,图3所示出的路径切换方法可以由图2所示出的叶脊网络200包括的任一个交换机来实现。这里以源端设备300由图2中服务器231实现,网络设备310由图2中的叶交换机221实现,网络设备321至网络设备325由图2中的脊交换机实现为例进行说明,在本申请的实施例中,网络设备310也可以称为第一网络设备,网络设备321也可以称为第二网络设备。
如图3所示,本实施例提供的路径切换方法包括步骤S310至S340。
S310,源端设备300向网络设备310发送第一报文。
对应的,网络设备310接收该第一报文。
其中,第一报文属于第一流。第一流是指源端设备300依据业务请求发送的数据流,示例的,若业务请求为视频播放请求,则该数据流是指视频流,第一报文是指视频流中的一个图像帧数据。另外,业务请求也可以是音频播放请求、文本资料迁移请求或者其他请求等,不予限定。
在一些情形中,同属于第一流的多个报文的目的标识相同。如第一流还包括第二报文,该第二报文的目的标识和第一报文的目的标识一致。示例的,目的标识是指第一报文包括的目的IP地址或目的MAC地址,或者第一报文所要发送到的目标网段等。
S320,网络设备310根据第一报文的目的标识获取对应的ECMP组。
ECMP组包括对应目的标识的多条等价转发路径。如图3所示,第一报文的目的标识所对应的ECMP组为ECMP组1,该ECMP组1提供了到达目的标识的多条等价转发路径,如图3所示出的路径1至路径3。值得注意的是,路径1至路径3可以是指ECMP组包括的不同的等价转发路径,其在图3中的示例不应理解为对本申请的限定。在本申请的实施例中,路径1也可以称为第一路径,路径2也可以称为第二路径。
可选的,网络设备310可以为第一报文的目的标识提供多个ECMP组,如图3所示出的ECMP组1和ECMP组2。
在一种可能的情形中,ECMP组1和ECMP组2的转发效率不同。ECMP组的转发效率可以由以下任意一种或几种的组合来表示:ECMP组包括的等价转发路径的带宽、等价转发路径的传输时延、等价转发路径中数据的丢包率等。
示例的,ECMP组1包括的等价转发路径的带宽和ECMP组2包括的等价转发路径的带宽不同,如ECMP组1包括的等价转发路径(如路径2)的带宽大于ECMP组2包括的等价转发路径(如路径4)的带宽。在一些情形中,ECMP组1可以称为高优先级ECMP组、ECMP组2可以称为普通ECMP组或者默认ECMP组。值得注意的是,图3仅为本实施例提供的示例,不应理解为对本申请的限定。
由于网络设备可为一个目的标识提供多个不同的ECMP组,且这多个不同的ECMP组具有不同的转发效率,在网络***所需服务的用户量较大的情况下,网络设备可优先为有低时延、或大流量传输等的需求的用户提供转发效率更高的ECMP组,从而实现数据通信的低时延与大流量传输。另外,针对于一个用户而言,网络设备可以为该用户提供更优质(如时延更低、带宽更大)的ECMP组,有利于提高数据通信的QoE。
可选的,上述的第一报文包括优先级信息。该优先级信息用于指示第一报文所对应的业务的类型。在一些可行的实现方式中,业务的类型不同,传输该业务的报文所需的ECMP组也不同。
在一种可能的示例中,第一报文包括的优先级信息为DSCP值。举例来说,若第一报文是基于第四版互联网协议(internet protocol version 4,IPv4)的数据报文(IPv4报文),则DSCP值可以设置在IP报文头的服务类型(type of service)标识字段。例如,DSCP利用服务类型标识字段中已使用的6位(bit)和未使用的2bit确定编码值,并通过该编码值来区分业务的优先级。
在一种可行的具体示例中,DSCP使用6个bit,DSCP值的取值范围为0至63。值得注意的是,每一个DSCP编码值都被映射到一个已定义的逐跳行为(per hop behavior,PHB)标识码,该PHB标识码指示了业务的类型。
前述的第一报文包括的DSCP值可以是由源端设备300确定的。在第一报文的通信过程中,源端设备300通过在第一报文中键入DSCP值,通信过程中的中间设备(如电话、Windows客户和服务器等终端设备)也可对包含第一报文的数据流(如前述的第一流)进行标识,从而对该数据流进行流量负载分担。
在本实施例中,网络设备可根据优先级信息的不同,为不同的业务类型提供时延和带宽存在差异的ECMP组,即网络设备可针对差异化的目标群体提供更优质的通信服务,从而避免不同类型的业务共用相同的ECMP组,导致网络***的处理时延提高和数据传输效率较低等问题。例如,网络设备可以向高优先级业务提供更优质的通信服务,提高QoE。
下面以第一报文包括优先级信息为例,对网络设备310根据第一报文的目的标识获取对应的ECMP组进行说明。
第一,网络设备310可以根据第一报文的目的标识获取多个ECMP组。其中,多个ECMP组对应不同的优先级。例如,图3所示出的ECMP组1的优先级高于ECMP组2的优先级。
第二,网络设备310根据第一报文的优先级信息从多个ECMP组中确定第一报文对应的ECMP组1。
在一种可能的示例中,网络设备310可以依据第一报文的优先级信息确定第一报文所对应的业务类型,并查询访问控制列表(access control list,ACL)中该业务类型所对应的一个或多个转发端口,进而,网络设备310将该一个或多个转发端口所对应的路径作为前述的等价转发路径,并将这一个或多个转发端口对应的等价转发路径作为ECMP组1。
在一种可能的具体情形中,若该优先级信息为DSCP值,在携带DSCP值的报文到达网络设备310后,网络设备310基于DSCP值查询ACL确定转发第一报文的出接口,如一个DSCP值对应一个或多个出接口,该出接口是指网络设备310提供给DSCP值所对应的业务的转发端口。进而,网络设备310通过DSCP值对应的出接口确定前述的等价转发路径,并将所有的出接口对应的等价转发路径作为前述的EMCP组1。
值得注意的是,图3仅示出了网络设备310为第一报文的目的标识提供的2个ECMP组,但是在网络设备310所属的网络***的网络规模足够大的情况下,针对于第一报文的目的标识,网络设备310还可以提供更多的ECMP组,本申请对此不予限定。反之,在网络设备310所属的网络***的网络规模较小的情况下,针对于第一报文的目的标识,网络设备310也可以仅提供图3所示出的ECMP组1或ECMP组2。
请继续参见图3,本申请的实施例提供的路径切换方法还包括步骤S330和S340。
S330,网络设备310从ECMP组1中确定第一报文对应的第一路径。
如图3所示,ECMP组1包括3条等价转发路径,该第一路径可以是指图3所示出的路径1。
在第一种可能的示例中,网络设备310确定第一报文的初始路径的方式可以是:网络设备310从ECMP组1中随机选择一条等价转发路径作为第一报文的第一路径。
在第二种可能的示例中,网络设备310确定第一报文的初始路径的方式可以是:网络设备310对ECMP组1中多条等价转发路径进行编号后排序,依据多条等价转发路径的排列顺序、以及数据流中报文的先后顺序,匹配第一报文对应的第一路径。
在第三种可能的示例中,网络设备310确定第一报文的初始路径的方式可以是:网络设备310从ECMP组1中随机选择一条等价转发路径作为第一报文的第一路径。
在第四种可能的示例中,网络设备310确定第一报文的初始路径的方式可以是:网络设备310解析第一报文的报文头中的信息,并确定该第一报文在ECMP组1中的等价转发路径。关于第四种可能的示例的具体实现方式可以参考下述图5的描述,在此不予赘述。
S340,当路径1处于异常状态时,网络设备310通过ECMP组1包括的路径2转发第一报文。
其中,网络设备310根据网络设备321发送的异常信息确定路径1处于异常状态。
示例的,网络设备321发送的异常信息指示:通过路径1接收的报文影响了网络设备321的转发效率。网络设备321的转发效率可以由以下任意一种或几种的组合来表示:路径1的带宽、路径1的传输时延、路径1中数据报文的丢包率等。
本申请的实施例所提供的路径切换方法,在第一网络设备(如上述的网络设备310)转发报文的过程中,由于第一网络设备可以根据第二网络设备(如上述的网络设备321)发送的异常信息确定第一报文所对应的第一路径为异常状态,因此,避免了第一网络设备无法感知下游设备的异常状态(如拥塞或丢包)等问题。而且,第一网络设备还可以通过ECMP组中与第一路径的目的标识一致的其他等价转发路径,如第二路径,转发前述的第一报文,避免了第一报文无法被转发至目的标识对应的设备,提高了数据通信的准确率,降低了路径的状态处于异常状态导致的传输时延,提高了第一报文的传输效率。
下面在图3给出的网络设备310和网络设备321的基础上,本申请的实施例提供一种网络设备确定等价转发路径为异常状态的可能实现方式,如图4所示,图4为本申请提供的一种路径切换方法的流程示意图二,端口1至端口3是ECMP组1提供的针对于第一报文的目的标识的等价转发路径的端口,例如,网络设备310通过端口1与网络设备321建立有用于传输第一报文的路径1。
值得注意的是,图4仅示出了ECMP组1所包括的路径1,但网络设备310还可以与其他网络设备建立有与路径1的目的标识一致的其他等价转发路径。如网络设备310通过端口2与前述的网络设备322建立有用于传输报文的路径2;又如网络设备310通过端口3与前述的网络设备323建立有用于传输报文的路径3。
网络设备321中可以部署有用于检测网络设备321的转发效率的分析引擎,该分析引擎可以是指网络设备321包括的处理器,也可以是指网络设备321利用虚拟化技术提供的虚拟机、容器(container)或管理节点(manage node),并由虚拟机、容器或管理节点检测网络设备321的转发效率。
如图4所示,本申请的实施例提供的路径切换方法包括步骤S410至S450。
S410,网络设备310向网络设备321发送第一报文。
S420,网络设备321判断网络设备321的转发效率是否异常。
例如,网络设备321判断网络设备321中与端口1连接的端口是否有效,若与端口1连接的端口有效,则指示该网络设备321的转发效率正常;若与端口1连接的端口无效,则指示该网络设备321的转发效率发生异常。
又如,网络设备321判断网络设备321中待处理的消息队列是否拥塞。其中,消息队列包括一组队列对(queue pair,QP),QP包括发送队列(send queue,SQ)和接收队列(receive queue,RQ),如网络设备中用于发送数据的消息队列是发送队列,网络设备中用于接收数据的消息队列是接收队列。关于消息队列更多的内容可以参考通常技术的相关描述,在此不予赘述。
还如,网络设备321判断在历史统计周期内的丢包率。丢包率是指数据通信中丢失数据报文的数量占总发送数据报文的数量的比例。如网络设备321可以依据路径1在10秒内的丢包率是否大于阈值,来判断网络设备321的转发效率是否发生异常,如丢包率大于或等于1‰,则确定网络设备321的转发效率发生异常。
另外,网络设备321还可以根据路径1中的数据流,或者,路径1的传输时延来检测网络设备321的转发效率。
例如,若路径1中的数据流大于或等于第一阈值,则确定网络设备321的转发效率发生异常;若路径1中的数据流小于第一阈值,则确定网络设备321的转发效率处于正常状态。
又如,若路径1的传输时延大于或等于第二阈值,则确定网络设备321的转发效率发生异常;若路径1的传输时延小于第二阈值,则确定网络设备321的转发效率处于正常状态。如该第二阈值为10毫秒(milli second,ms)、15ms或其他时间等。
值的注意的是,上述丢包率的阈值、数据流对应的第一阈值、传输时延对应的第二阈值可以是预设的,也可以是根据网络设备的处理能力、网络***提供的网络资源大小或者其他信息确定的,不予限定。
若网络设备321的转发效率未发生异常,则执行步骤S430。
S430,网络设备321向其他设备转发第一报文。
该其他设备可以是指路径1中,在网络设备321之后的下一条路由地址所指示的设备。该其他设备可以是第一报文的目的标识指示的目的设备,也可以是路径1中转发该第一报文的其他网络设备。
若网络设备321的转发效率发生异常,则执行步骤S440。
S440,网络设备321向网络设备310发送异常信息。
示例性的,网络设备321在确定网络设备321的转发效率发生异常后,生成一个异常信息,并将该异常信息发送至网络设备310。关于异常信息的具体内容可以参考上述S340的相关描述,在此不予赘述。
S450,网络设备310根据网络设备321发送的异常信息确定路径1处于异常状态。
可选的,路径1处于异常状态,可以包括,但不限于:路径1被标记为异常,或路径1被删除,或路径1的参数超过设定的阈值等。下面对前述的异常状态进行示例性的说明。
在第一种可能的情形中,路径1被标记为异常是指:路径1被标记为异常。如该路径1被标记为不可用的状态。
在第二种可能的情形中,路径1被标记为异常是指:路径1被删除。示例的,网络设备310将路径1移出ECMP组1包括的等价转发路径。如网络设备310提供给路径1的端口1被置为无效,或者,网络设备321在路径1中的下一跳路由(或者IP地址)被删除或取消等等。
在第三种可能的情形中,路径1被标记为异常是指:路径1的参数超过设定的阈值。例如,ECMP组1所包括的每条等价转发路径对应一个路径参数值,在一个ECMP组中,路径参数值的最大值和最小值是确定的,若路径1对应的路径参数值被设置为不属于ECMP组1所对应的路径参数值,则确定路径1的参数超过设定的阈值,进而确定路径1被标记为异常。
在本实施例中,由于网络设备可根据下游设备(如网络设备321)反馈的异常信息,确定ECMP组中处于异常状态的等价转发路径。进而,网络设备可将该处于异常状态的等价转发路径所需传输的报文切换到正常的等价转发路径(或是空闲的等价转发路径),降低了报文在网络***中的传输时延,提高了网络***的传输效率。
值得注意的是,以上三种可能的情形仅为本实施例提供的示例,不应理解为对本申请的限定。
上述实施例所提供的路径切换方法中,网络设备310确定路径1,以及在路径1处于异常状态时通过路径2转发报文,这里提供了一种可能的实现方式,如图5所示,图5为本申请提供的一种路径切换方法的流程示意图三,该路径切换方法可以由上述的网络设备310执行,该路径切换方法中等价转发路径的确定过程包括以下步骤1至步骤5。
步骤1,网络设备310根据ECMP组1的配置信息选择的哈希(hash)因子,并提取报文中的与路径选择相关的字段中的数据作为路径计算过程的输入信息。
该ECMP组1的配置信息可以包括但不限于:源IP地址、目的IP地址、源MAC地址、虚拟MAC地址、虚拟局域网(virtual local area network,VLAN)、传输层源端口、传输层目的端口、IP协议、流标签和物理源端口中一种或几种信息。
步骤2,网络设备310根据网络设备310包括的处理器的处理能力,选择相应算法、加扰项(盐值)、有效位选择(通用的计算值选出需要的若干位,8bit),输出对应的hash计算结果。例如,该算法为循环冗余码校验(cyclic redundancy check,CRC)算法,具体的,如CRC32算法。
步骤3,网络设备310根据hash计算结果,对可用路径N取模得到初始路径取模结果,选择ECMP组1中与该初始路径取模结果对应的等价转发路径(如路径1),转发报文。其中,N是指ECMP组1包括的等价转发路径的数量。
步骤4,在步骤3中确定的路径处于异常状态时,网络设备310在报文的路径计算结果中添加偏移因子,以调整报文的路径取模结果。该偏移因子也可以称为偏移值。
步骤5,网络设备310根据调整后的路径取模结果,确定报文的转发路径(如前述的路径2)。
如图6所示,图6为本申请提供的ECMP组中的路径调整过程示意图,该目的设备330可以由图1所示出的目的设备130实现,或者由图2所示出的任意一个服务器实现。图6所示出的路径1至路径3是网络设备310与目的设备330通信的3条等价转发路径,若网络设备310确定来自源端设备300的报文的路径(如路径1)处于异常状态时,网络设备310在报文的初始路径取模结果中添加偏移因子,如偏移因子对应的值为2,网络设备310将报文的等价转发路径从路径1切换为路径3。
在一种可能的情形中,网络设备310也可以对报文(如前述实施例中的第一报文)对应的第一路径(如图6所示出的路径1)偏移设定的值,获得第二路径(如图6所示出的路径2);进而,网络设备310通过第二路径转发报文。
示例的,每个路径对应一个设定的路径值,网络设备310对路径1设定的路径值进行偏移,使得偏移后的路径值为路径2所对应的路径值,进而,网络设备310依据该路径2所对应的路径值查找路径2,并通过路径2发送第一报文。如路径1的路径值为“0001”,路径2的路径值为“0002”,若第一报文需由路径1切换到路径2,则上述的偏移因子(或称偏移值)可以是“0001”,则网络设备310依据偏移因子和路径1的路径值获得路径2的路径值,进而,网络设备310通过路径2转发第一报文。
在本实施例中,网络设备可以根据路径计算获得的路径取模结果,在该路径取模结果对应的等价转发路径处于异常状态时,网络设备对该路径取模结果添加偏移因子,从而实现对路径取模结果对应的等价转发路径(如第一路径)偏移设定的值,得到第二路径。另外,网络设备还可以利用偏移后的路径取模结果对应第二路径转发报文,从而实现报文的转发,提高了网络***的转发效率。
本申请的实施例提供的路径切换方法,由于在路径计算的过程中,无论ECMP组包括的等价转发路径是否出现异常,网络设备无需对等价转发路径重新编号,仅需在路径计算确定的路径处于异常状态时,网络设备将该异常的路径偏移设定的值,从而确定转发报文的路径为另一正常的路径,并通过正常的路径转发报文,避免了报文的传输时延较高的问题,提高了网络***的数据传输效率。
下面针对于上述的报文,提供了一种可行的实现方式,如图7所示,图7为本申请提供的一种IPv4报文的结构示意图,IPv4报文包括报文头(首部)和数据部分,结合图7所示出的IPv4报文,以下表1给出了IPv4报文的报文头所包括的部分字段的说明。
表1
Figure BDA0003505927160000131
其中,服务类型字段也可以称为区分服务字段。服务类型字段可用于存储前述实施例提供的优先级信息,如DSCP值。
IPv4报文的报文头中的标识字段也可以称为该IPv4报文的IP ID字段。IP ID字段可用于存储前述实施例提供的偏移值。示例的,由于IP ID字段的长度为8bit,可选择该IPID字段的头部4bit或者尾部4bit,或者中间任意连续的4bit来设置偏移值。例如,报文的IPID字段的头部4bit被设置为“0x02”,则在该报文的路径计算结果对应的等价转发路径为路径1(处于异常状态)时,由于该偏移值为“0x02”,该报文的实际转发路由路径会被偏移到路径3,避免了报文被通过异常的路径转发,提高了报文转发的效率。
另外,选项字段也称为报文头的扩展选项头,扩展选项头也可用于存储前述实施例提供的偏移值。
在数据通信过程中,若网络***所需传输的数据量较大,属于同一数据流的报文可从异常路径调整到ECMP组包括的正常路径中,实现了ECMP组中路径调整的及时性。另外,由于网络设备可通过设定偏移值的方式来确定报文转发的等价转发路径,提高了路径调整的精准性,在多个报文属于同一数据流的情况下,实现了数据流的精准调控。
如图8所示,图8为本申请提供的一种路径切换方法的流程示意图四,本申请的实施例提供的路径切换方法还包括以下步骤S810和S820。
S810,源端设备300向网络设备310发送第二报文。
对应的,网络设备310接收第二报文。
其中,第二报文和前述实施例中的第一报文同属于第一流,且第二报文中包括偏移值。属于同一数据流的多个报文的目的标识相同,如上述第一报文的目的标识和第二报文的目的标识相同。
在一种可行的实现方式中,该偏移值包括在第二报文的报文头中。
在一种示例中,若该第二报文为IPv4报文,该偏移值可以设置在报文头所包括的IP ID字段、或者选项字段。
在另一种示例中,若该第二报文为IPv6报文,该偏移值可以设置在IPv6报文的报文头所包括的流标签(flow label)字段、或者选项字段。
值得注意的是,当前述的第一报文和第二报文为基于其他协议的数据报文时,偏移值也可以设置在报文头的其他位置,不予限定。
在第一种可选的实现方式中,第二报文包括的偏移值是由源端设备300设置的。示例的,在网络设备310确定传输第一报文的路径1处于异常状态时,源端设备300获取到该路径1处于异常状态的异常信息,并在第一流的其他报文(如上述的第二报文)的传输过程中,为第一流的其他报文添加偏移值。
在一些可选的情形中,ECMP组包括的每条路径具有各自的路径值(或序号、编号、路径标志等),如路径1的路径值为“0001”,路径2的路径值为“0002”,若第二报文需由路径1切换到路径2,则上述的偏移值可以是由路径2的路径值和路径1的路径值之间的差值确定的,如偏移值为“0001”。另外,偏移值也可以是由ECMP组1包括的任一条其他正常路径(如路径3)的路径值和路径1的路径值之间的差值确定的。需要说明的是,本示例是以十进制为例对路径的路径值进行说明的,但在另一些可选的情形中,路径的路径值和偏移值也可以是以二进制、八进制、十六进制或者其他进制来表示的,不予限定。
在第二种可选的实现方式中,第二报文包括的偏移值是由网络设备310设置的。示例的,在网络设备310确定传输第一报文的路径1处于异常状态时,网络设备310对路径1所需传输的所有数据流的报文均设置偏移值。
值得注意的是,一个数据流包括的报文较多,多个报文可以添加不同的偏移值,以便将该多个报文分配到不同的等价转发路径上进行传输,降低数据流的传输时延,提高数据流的整体传输效率。
S820,网络设备310根据第二报文中的偏移值,通过路径2转发第二报文。
示例的,假设在预设的流量负载分担策略中,同属于第一流的多个报文均由ECMP组1包括的路径1进行转发,在网络设备310确定路径1处于异常状态后,源端设备300(或者网络设备310)为属于第一流的其他报文(如第二报文)添加指示等价转发路径的偏移值。如路径2和路径1之间的偏移值为1、路径3和路径1之间的偏移值为2,则若第二报文即将通过路径2转发时,网络设备310为该第二报文添加的偏移值为1;若第二报文即将通过路径3转发时,网络设备310为该第二报文添加的偏移值为2。应理解,上述的偏移值的具体值仅为本实施例提供的示例,任意两条等价转发路径之间的偏移值也可以是2、3或其他数值等,不予限定。
本申请的实施例提供的路径切换方法,在第一网络设备(如上述的网络设备310)确定ECMP组包括的一条或多条等价转发路径处于异常状态时,可将原来由异常等价转发路径转发的报文切换到ECMP组中的正常等价转发路径进行转发,提高了数据流在ECMP组中的传输效率。
另外,由于可通过设定偏移值的方式来确定报文转发的等价转发路径,提高了路径调整的精准性,在多个报文属于同一数据流的情况下,实现了数据流的精准调控。示例的,网络设备或者源端设备可针对特定的字段设置偏移值,从而调整ECMP组中内部的路径选择,实现了源端设备到目的设备之间的路由路径的精准调整。
在网络设备不需要修改ECMP组中取模的路径数量的情况下,或者说在网络设备无需调整ECMP组中所有的等价转发路径的情况下,网络设备可以最小的代价(如前述的开销值)解决ECMP组中路径发生异常(如拥塞、丢包或者时延较高)的问题,提高了网络***的数据传输效率。
最后,由于网络设备是在获取到异常信息后迅速对ECMP组中的路径进行调整,因此,在提高网络***的数据传输效率的基础上,还提高了ECMP组中路径调整的及时性。
本申请的上述实施例提供的路径切换方法中,是以ECMP组包括的多条等价转发路径为例进行说明的,但本申请提供的路径切换方法还可以应用在与路由负载分担相近的其他场景,如多个网络设备基于Trunk接口实现的路径通信场景中,在此不予赘述。
可以理解的是,为了实现上述实施例中功能,网络设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
如图9所示,图9为本申请提供的一种路径切换装置的结构示意图,该路径切换装置900可以用于实现上述方法实施例中网络设备的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该路径切换装置900可以是网络设备,如上述图1所示出的任一网络设备、源端设备110或目的设备130,或者图2所示出的任一交换机或服务器,或者图3所示出的源端设备300或任一网络设备,如网络设备310或网络设备321等,还可以是应用于网络设备的模块(如芯片)。
如图9所示,该路径切换装置900包括:接收单元910、获取单元920、确定单元930和转发单元940。该路径切换装置900用于实现上述附图中所示的方法实施例中网络设备的功能。在一种可能的示例中,该路径切换装置900用于实现上述路径切换方法,下面具体说明路径切换装置900的各组成部分的功能。
接收单元910用于接收第一报文,该第一报文属于第一流。
获取单元920用于根据第一报文的目的标识获取对应的ECMP组,该ECMP组包括对应前述目的标识的多条等价转发路径。
确定单元930用于从ECMP组中确定第一报文对应的第一路径,以及,确定第一路径是否处于异常状态。其中,确定单元930根据第二网络设备发送的异常信息确定第一路径处于异常状态。
转发单元940用于当确定单元930确定第一路径处于异常状态时,通过ECMP组中的第二路径转发第一报文。
当路径切换装置900用于实现图3所示的方法实施例中网络设备310的功能时,接收单元910用于执行S310,获取单元920用于执行S320,确定单元930用于执行S330,转发单元940用于执行S340。
当路径切换装置900用于实现图4所示的方法实施例中网络设备310的功能时,接收单元910用于执行S410,确定单元930用于执行S420、S440和S450,转发单元940用于执行S430。
当路径切换装置900用于实现图5所示的方法实施例时:接收单元910、获取单元920、确定单元930和转发单元940用于协同执行图5所示出的步骤1至步骤5。
当路径切换装置900用于实现图8所示的方法实施例中网络设备310的功能时,接收单元910用于执行S810,转发单元940用于执行S820。
关于上述路径切换装置900执行前述附图提供的实施例中方法的操作步骤时,有益效果可以参见前述实施例的描述,此处不再赘述。
路径切换装置900通过软件实现前述附图中任一所示的路径切换方法时,路径切换装置900及其各个模块也可以为软件模块。通过处理器调用该软件模块实现上述的路径切换方法。该处理器可以是中央处理单元(central processing unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD),上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD)、现场可编程门阵列(field programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
有关上述路径切换装置900更详细的描述可以参考前述附图所示的实施例中相关描述,这里不加赘述。
当路径切换装置900通过硬件实现时,该硬件可以通过处理器或芯片实现。芯片包括接口电路和控制电路。接口电路用于接收来自处理器之外的其它设备的数据并传输至控制电路,或将来自控制电路的数据发送给处理器之外的其它设备。
控制电路通过逻辑电路或执行代码指令用于实现上述实施例中任一种可能实现方式的方法。有益效果可以参见上述实施例中任一方面的描述,此处不再赘述。
可选的,当路径切换装置900还可以通过网络设备实现,如图10所示,图10为本申请提供的一种网络设备的结构示意图,该网络设备1000包括通信接口1010以及处理器1020。可以理解的是,通信接口1010可以为收发器或输入输出(input/output,I/O)接口。可选的,网络设备1000还可以包括存储器1030,用于存储处理器1020执行的指令或存储处理器1020运行指令所需要的输入数据,或存储处理器1020运行指令后产生的数据。该网络设备1000可以是指前述实施例中的网络设备310。
当网络设备1000用于实现前述附图所示的实施例时,处理器1020、通信接口1010和存储器1030还可以协同实现网络***中各网络设备、源端设备执行的路径切换方法中的各个操作步骤。网络设备1000还可以执行图9所示出的路径切换装置900的功能,此处不予赘述。
本申请实施例中不限定上述通信接口1010、处理器1020以及存储器1030之间的具体连接方式。
存储器1030可用于存储软件程序及模块,如本申请实施例所提供的路径切换方法对应的程序指令/模块,处理器1020通过执行存储在存储器1030内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口1010可用于与其他设备进行信令或数据的通信。在本申请中该网络设备1000可以具有多个通信接口1010。
通信接口1010可用于提供ECMP组1包括的多条等价转发路径的转发端口,如图10所示出的端口1至端口3,如该端口1为前述实施例中网络设备310为路径1提供的转发端口,端口2为前述实施例中网络设备310为路径2提供的转发端口,端口3为前述实施例中网络设备310为路径3提供的转发端口。
本申请还提供另一种可能的网络设备,如图11所示,图11为本申请提供的另一种网络设备的结构示意图,该网络设备1100包括:处理器1110、处理器1120和I/O接口1130。如该网络设备1100可以是指前述实施例中的网络设备321或者网络设备322,亦或是网络设备310的其他下游设备等。
I/O接口1130可用于接收来自于其他设备的报文。网络设备1100可包括一个或多个I/O接口1130,不予限定。
处理器1120中可以设置有分析引擎,如该分析引擎是指网络设备1100利用虚拟化技术提供的虚拟机、容器(container)或管理节点(management node),并由虚拟机、容器或管理节点检测网络设备1100的转发效率。
通过在网络设备1100中设置2个不同的处理器,其中一个处理器1120用于检测网络设备1100的转发效率,有利于快速获取到网络设备1100的异常信息,从而,处理器1110将该异常信息转发至网络设备1100的上游设备。示例性的,当网络设备1100是指上述的网络设备321时,该网络设备1100的上游设备可以是网络设备310,网络设备310在获取到网络设备1100反馈的异常信息时,将网络设备310和网络设备1100之间的流从一条等价转发路径切换到其他等价转发路径。
可以理解的是,本申请的实施例中的处理器1120可以是CPU、神经处理器(neuralprocessing unit,NPU)或图形处理器(graphic processing unit,GPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、ASIC、FPGA或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (24)

1.一种路径切换方法,其特征在于,所述方法由第一网络设备执行,所述方法包括:
接收第一报文,所述第一报文属于第一流;
根据所述第一报文的目的标识获取对应的等价路径负载分担ECMP组,所述ECMP组包括对应所述目的标识的多条等价转发路径;
从所述ECMP组中确定所述第一报文对应的第一路径;
当所述第一路径处于异常状态时,通过所述ECMP组中的第二路径转发所述第一报文;
其中,所述第一网络设备根据第二网络设备发送的异常信息确定所述第一路径处于异常状态。
2.根据权利要求1所述的方法,其特征在于,所述第二网络设备发送的异常信息指示通过所述第一路径接收的报文影响了所述第二网络设备的转发效率。
3.根据权利要求1或2所述的方法,其特征在于,所述第一路径处于异常状态,包括:所述第一路径被标记为异常,或所述第一路径被删除,或所述第一路径的参数超过设定的阈值。
4.根据权利要求3所述的方法,其特征在于,所述第一路径被删除,包括:所述第一网络设备提供给所述第一路径的端口被置为无效,或者,所述第二网络设备在所述第一路径中的下一跳路由被删除。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,
所述通过所述ECMP组中的第二路径转发所述第一报文,包括:
将所述第一路径偏移设定的值,以得到所述第二路径;
通过所述第二路径转发所述第一报文。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述方法还包括:
接收第二报文,所述第二报文属于所述第一流,所述第二报文中包括偏移值;
根据所述第二报文中的所述偏移值,通过所述第二路径转发所述第二报文。
7.根据权利要求6所述的方法,其特征在于,所述偏移值包括在所述第二报文的报文头中。
8.根据权利要求7所述的方法,其特征在于,
若所述第一报文为***互联网协议IPv4报文,所述IPv4报文包括的扩展选项头或互联网协议标识IP ID字段存储有所述偏移值;或者,
若所述第一报文为第六代互联网协议IPv6报文,所述IPv6报文包括的扩展选项头或流标签字段存储有所述偏移值。
9.根据权利要求1至8中任意一项所述的方法,其特征在于,所述第一报文包括优先级信息;
所述根据所述第一报文的目的标识获取对应的等价路径负载分担ECMP组,包括:
根据所述第一报文的目的标识获取多个ECMP组,所述多个ECMP组对应不同的优先级;
根据所述优先级信息从所述多个ECMP组中确定所述第一报文对应的ECMP组。
10.根据权利要求9所述的方法,其特征在于,所述优先级信息为差分服务代码点DSCP值。
11.一种路径切换装置,其特征在于,所述装置应用于第一网络设备,所述装置包括:
接收单元,用于接收第一报文,所述第一报文属于第一流;
获取单元,用于根据所述第一报文的目的标识获取对应的ECMP组,所述ECMP组包括对应所述目的标识的多条等价转发路径;
确定单元,用于从所述ECMP组中确定所述第一报文对应的第一路径,以及,确定所述第一路径是否处于异常状态;
转发单元,用于当所述确定单元确定所述第一路径处于异常状态时,通过所述ECMP组中的第二路径转发所述第一报文;
其中,所述确定单元根据第二网络设备发送的异常信息确定所述第一路径处于异常状态。
12.根据权利要求11所述的装置,其特征在于,所述第二网络设备发送的异常信息指示通过所述第一路径接收的报文影响了所述第二网络设备的转发效率。
13.根据权利要求11或12所述的装置,其特征在于,所述第一路径处于异常状态,包括:所述第一路径被标记为异常,或所述第一路径被删除,或所述第一路径的参数超过设定的阈值。
14.根据权利要求13所述的装置,其特征在于,所述第一路径被删除,包括:所述第一网络设备提供给所述第一路径的端口被置为无效,或者,所述第二网络设备在所述第一路径中的下一跳路由被删除。
15.根据权利要求11至14中任意一项所述的装置,其特征在于,所述转发单元具体用于:
将所述第一路径偏移设定的值,以得到所述第二路径;
通过所述第二路径转发所述第一报文。
16.根据权利要求11至14中任意一项所述的装置,其特征在于,
所述接收单元,还用于接收第二报文,所述第二报文属于所述第一流,所述第二报文中包括偏移值;
所述转发单元,还用于根据所述第二报文中的所述偏移值,通过所述第二路径转发所述第二报文。
17.根据权利要求16所述的装置,其特征在于,所述偏移值包括在所述第二报文的报文头中。
18.根据权利要求17所述的装置,其特征在于,若所述第一报文为***互联网协议IPv4报文,所述IPv4报文包括的扩展选项头或互联网协议标识IP ID字段存储有所述偏移值;或者,
若所述第一报文为第六代互联网协议IPv6报文,所述IPv6报文包括的扩展选项头或流标签字段存储有所述偏移值。
19.根据权利要求11至18中任意一项所述的装置,其特征在于,所述第一报文包括优先级信息;
所述获取单元,具体用于根据所述第一报文的目的标识获取多个ECMP组,所述多个ECMP组对应不同的优先级;
所述确定单元,还用于根据所述优先级信息从所述多个ECMP组中确定所述第一报文对应的ECMP组。
20.根据权利要求19所述的装置,其特征在于,所述优先级信息为差分服务代码点DSCP值。
21.一种网络设备,其特征在于,包括存储器和处理器,其中:
所述存储器用于存储程序代码;
所述处理器用于调用所述程序代码实现权利要求1-10中任意一项所述的方法。
22.一种网络***,其特征在于,包括:第一网络设备和第二网络设备;
所述第一网络设备接收第一报文,所述第一报文属于第一流;
所述第一网络设备根据所述第一报文的目的标识获取对应的等价路径负载分担ECMP组,所述ECMP组包括对应所述目的标识的多条等价转发路径;
所述第一网络设备从所述ECMP组中确定所述第一报文对应的第一路径;
当所述第一路径处于异常状态时,所述第一网络设备通过所述ECMP组中的第二路径,向所述第二网络设备转发所述第一报文;
其中,所述第一网络设备根据所述第二网络设备发送的异常信息确定所述第一路径处于异常状态。
23.根据权利要求22所述的***,其特征在于,还包括:源端设备;
所述源端设备向所述第一网络设备发送第二报文,所述第二报文属于所述第一流,所述第二报文中包括偏移值;
所述第一网络设备根据所述第二报文中的所述偏移值,通过所述第二路径向所述第二网络转发所述第二报文。
24.根据权利要求23所述的***,其特征在于,所述偏移值包括在所述第二报文的报文头中。
CN202210139157.7A 2021-12-21 2022-02-15 路径切换方法、装置、网络设备、以及网络*** Pending CN116319535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/139756 WO2023116580A1 (zh) 2021-12-21 2022-12-16 路径切换方法、装置、网络设备、以及网络***

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202111572470 2021-12-21
CN2021115724701 2021-12-21

Publications (1)

Publication Number Publication Date
CN116319535A true CN116319535A (zh) 2023-06-23

Family

ID=86782042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210139157.7A Pending CN116319535A (zh) 2021-12-21 2022-02-15 路径切换方法、装置、网络设备、以及网络***

Country Status (2)

Country Link
CN (1) CN116319535A (zh)
WO (1) WO2023116580A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117041140A (zh) * 2023-10-10 2023-11-10 腾讯科技(深圳)有限公司 一种数据报文的传输方法、相关装置、设备以及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018203A (zh) * 2007-01-18 2007-08-15 北京航空航天大学 航空电信网的动态负载分配方法
US7826348B2 (en) * 2007-04-26 2010-11-02 Cisco Technology, Inc. Multicast fast reroute
CN101425879B (zh) * 2008-12-12 2012-08-08 北京邮电大学 一种基于t-mpls分组传送网的tdm/pw空时分集方法
CN101420383A (zh) * 2008-12-12 2009-04-29 北京邮电大学 一种mpls-tp分组传送网络中的ecmp路径软恢复方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117041140A (zh) * 2023-10-10 2023-11-10 腾讯科技(深圳)有限公司 一种数据报文的传输方法、相关装置、设备以及存储介质
CN117041140B (zh) * 2023-10-10 2024-01-30 腾讯科技(深圳)有限公司 一种数据报文的传输方法、相关装置、设备以及存储介质

Also Published As

Publication number Publication date
WO2023116580A1 (zh) 2023-06-29

Similar Documents

Publication Publication Date Title
KR102620026B1 (ko) 패킷 처리 방법, 관련 기기 및 컴퓨터 저장 매체
US11882041B2 (en) Congestion notification packet indicating specific packet flow experiencing congestion to facilitate individual packet flow based transmission rate control
CN111669330B (zh) 一种bier报文的发送方法和装置
CN111683011B (zh) 报文处理方法、装置、设备及***
CN107819663B (zh) 一种实现虚拟网络功能服务链的方法和装置
US8848536B2 (en) Stateless load balancer in a multi-node system for transparent processing with packet preservation
US9270566B2 (en) Monitoring server load balancing
US20220078114A1 (en) Method and Apparatus for Providing Service for Traffic Flow
JP7193619B2 (ja) パケット処理方法及び装置、及び、関連するデバイス
US8213347B2 (en) Scalable IP-services enabled multicast forwarding with efficient resource utilization
JP7216120B2 (ja) Bgpメッセージ送信方法、bgpメッセージ受信方法、及びデバイス
US20220255772A1 (en) Packet sending method, apparatus, and system
EP3968580B1 (en) Method for generating multicast forwarding table entry, and access gateway
US20220174004A1 (en) Methods and apparatus for encoding local processing metadata in network headers
WO2023116580A1 (zh) 路径切换方法、装置、网络设备、以及网络***
CN112822097A (zh) 报文转发的方法、第一网络设备以及第一设备组
CN113765809A (zh) Bier组播流量的统计方法、设备以及***
WO2015039616A1 (zh) 一种报文处理方法及设备
WO2022007550A1 (zh) 一种负载均衡方法、装置、网络设备及***
US11909546B2 (en) Method and network node for sending and obtaining assert packet
CN116828024A (zh) 业务连接的标识方法、装置、***及存储介质
WO2024001701A1 (zh) 数据处理方法、装置及***
WO2023040782A1 (zh) 处理报文的方法、***、设备和存储介质
WO2022033449A1 (zh) 发送组播报文的方法、获取转发表项的方法及装置
WO2023088226A1 (zh) 转发报文的方法以及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication