CN115208829A - 报文处理的方法及网络设备 - Google Patents
报文处理的方法及网络设备 Download PDFInfo
- Publication number
- CN115208829A CN115208829A CN202110393284.5A CN202110393284A CN115208829A CN 115208829 A CN115208829 A CN 115208829A CN 202110393284 A CN202110393284 A CN 202110393284A CN 115208829 A CN115208829 A CN 115208829A
- Authority
- CN
- China
- Prior art keywords
- path
- link
- network device
- state information
- multicast
- 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
- 238000003672 processing method Methods 0.000 title abstract description 5
- 238000000034 method Methods 0.000 claims abstract description 107
- 230000004044 response Effects 0.000 claims description 53
- 238000004422 calculation algorithm Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 44
- 230000002441 reversible effect Effects 0.000 claims description 8
- 230000010076 replication Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 24
- 239000000872 buffer Substances 0.000 description 22
- 230000006870 function Effects 0.000 description 22
- 230000002457 bidirectional effect Effects 0.000 description 19
- 230000008569 process Effects 0.000 description 16
- 230000000737 periodic effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 235000008694 Humulus lupulus Nutrition 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 239000004065 semiconductor Substances 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文处理的方法及网络设备,属于网络技术领域。本申请通过主动采用组播的方式来收集网络的链路状态信息,避免在网络拥塞发生后才触发网络链路状态信息的收集,从而更加及时地感知网络中链路的拥塞状态,有助于在网络开始存在发生拥塞的趋势时调整流量的转发路径,从而让网络拥塞发生之前提前调优具备了实现可能性。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种报文处理的方法及网络设备。
背景技术
拥塞是网络设备经常面临的事件。拥塞典型的表现包括而不限于:接口或队列的缓冲区(buffer)长度超过一定阈值、接口或队列的带宽利用率超过一定阈值等等。当网络设备发生拥塞时,会引起丢包等一系列问题。
相关技术中,当一台网络设备发生拥塞时,该拥塞的网络设备将网络的链路状态信息封装到单播报文中,向源端发送单播报文。源端接收拥塞的网络设备发送的单播报文,从单播报文获得链路状态信息。通过这种方式,源端收集到了网络的链路状态信息。
然而,上述方式在网络拥塞发生后才触发网络链路状态信息的收集。
发明内容
本申请实施例提供了一种报文处理的方法及网络设备,能够更加及时地感知网络中链路的拥塞状态。技术方案如下。
第一方面,提供了一种报文处理的方法。第一方面提供的方法从组播报文的发送端的角度来描述流程。以第一网络设备执行该方法为例,第一网络设备生成第一组播报文,第一组播报文包括第一链路的链路状态信息,第一链路为第一网络设备连接的链路;第一网络设备沿第一路径发送第一组播报文,以使得第一路径上的其他网络设备在报文中封装链路状态信息,第一路径包括第一链路。
本方案中,网络设备通过主动采用组播的方式来收集网络的链路状态信息,避免在网络拥塞发生后才触发网络链路状态信息的收集,从而更加及时地感知网络中链路的拥塞状态,有助于在网络开始存在发生拥塞的趋势时调整流量的转发路径,从而让网络拥塞发生之前提前调优具备了实现可能性。
可选地,第一网络设备采用定期的方式收集链路拥塞状态。具体来讲,第一网络设备每隔设定的时间间隔,沿第一路径发送一次第一组播报文。本方案通过周期性的链路拥塞状态收集,能及时感知链路拥塞状态,并且采用组播能节省周期性收集所占用的网络资源。
可选地,第一组播报文为位索引显示复制(bit index explicit replication,BIER)报文。
本方案通过采用BIER来收集链路拥塞状态,从而利用BIER不需要为每条组播流量建立组播转发树及保存组播流状态等优势,进一步节省收集所占用的网络资源。
可选地,第一组播报文包括BIER头,BIER头包括控制标识,控制标识指示网络设备在报文中封装链路状态信息。
本方案通过在BIER头中携带控制标识,报文接收端依据BIER头中是否携带控制标识,即可判定是否向报文封装链路状态信息,从而降低配置复杂度。
可选地,第一路径是通过双向共路算法计算出来的,双向共路算法的链路度量(metric)为正向代价(cost)与反向cost之和。
由于组播报文的转发路径是通过双向共路算法计算出来的,因此组播报文的转发路径与数据报文的转发路径是一致的,从而保证在目的端发起信息收集的情况下,收集到的链路状态信息正是数据报文的转发路径具有的信息,有助于链路拥塞状态收集行为更精确,避免由于组播报文走在非预期的路径上导致链路拥塞状态信息收集不准。
上述第一网络设备在网络中扮演的角色包括而不限于三种情况。第一种情况是,第一网络设备为第一路径的源端。例如,应用在虚拟专用网络(virtual private network,VPN)场景下,第一网络设备是与网络侧边缘(provider edge,PE)设备,第一网络设备负责将私网的数据报文导入至第一路径上转发。第二种情况是,第一网络设备为第一路径的中间节点。例如,应用在VPN场景下,第一网络设备是与PE设备相连的运营商骨干(Provider,P)设备,第一网络设备负责在第一路径上沿途转发数据报文。第三种情况是,第一网络设备为第一路径的目的端。例如,应用在VPN场景下,第一网络设备是PE设备,第一网络设备负责将接收到的数据报文转发至私网。
在上述第一网络设备为第一路径上中间节点的情况下,第一网络设备例如采用这种方式封装链路状态信息:第一网络设备接收来自于第二网络设备的第二组播报文,第二组播报文包括第一路径中第二链路的链路状态信息,第二链路为第二网络设备连接的链路;第一网络设备向第二组播报文添加第一链路的链路状态信息,以得到第一组播报文。
本方案中,组播报文的中间节点通过将本设备与邻居之间链路的拥塞状态封装到组播报文中,再将组播报文发送给下一跳,从而支持收集路径中每一跳的链路状态的功能。
在上述第一网络设备为第一路径上中间节点的情况下,第一网络设备例如采用这种方式封装链路状态信息:第一网络设备接收来自于第二网络设备的第二组播报文,第二组播报文包括第一路径中第二链路的链路状态信息;响应于第一链路的链路状态信息小于第二链路的链路状态信息,第一网络设备将第二组播报文中第二链路的链路状态信息替换为第一链路的链路状态信息,得到第一组播报文;或者,响应于第一链路的链路状态信息大于第二链路的链路状态信息,第一网络设备将第二组播报文中第二链路的链路状态信息替换为第一链路的链路状态信息,得到第一组播报文。
本方案中,组播报文的中间节点通过依据本设备与邻居之间链路的拥塞状态与组播报文携带的链路拥塞状态之间的数值关系,将组播报文携带的链路拥塞状态替换为本设备的链路拥塞状态,从而支持收集路径中链路拥塞状态的最小值或最大值的功能。
可选地,第一网络设备不仅通过上述第一组播报文收集第一路径的拥塞状态,还通过发送其他组播报文收集第二路径的拥塞状态。具体来讲,第一网络设备生成第三组播报文,第三组播报文包括第三链路的链路状态信息,第三链路为第一网络设备连接的链路;第一网络设备沿第二路径发送第三组播报文,第二路径包括第三链路,第二路径与第一路径属于不同的网络拓扑。
本方案中,网络设备通过在多个拓扑中分别发送组播报文,从而收集到多个路径(例如第一路径和第二路径)的链路拥塞状态,从而为多路径切换提供更多能参考的信息,有助于提高路径切换的精确性。
可选地,第一组播报文包括互联网协议第6版(internet protocol version 6,IPv6)扩展头,链路状态信息携带在IPv6扩展头中。
本方案中,通过使用IPv6扩展头携带链路状态信息,从而尽量兼容已有协议的报文格式,降低实现复杂度。
可选地,第一网络设备为数据报文的源端,第一网络设备沿第一路径发送第一组播报文之后,方法还包括:第一网络设备接收来自第一路径上第三网络设备发送的响应报文,响应报文为第一组播报文对应的响应报文,响应报文包括第一路径的链路状态信息;第一网络设备在响应报文中的链路状态信息满足拥塞条件的情况下,将第一路径承载的数据报文切换至第二路径。
本方案中,源端发起信息收集之后,目的端以单播的方式,将收集到的链路状态通过响应报文返回给源端,便于源端利用链路状态信息作为选路依据,从而实现拥塞控制。
可选地,响应报文包括第一路径中每条链路的链路状态信息;或者,响应报文包括第一路径中每条链路的链路状态信息中的最小值;或者,响应报文包括第一路径中每条链路的链路状态信息中的最大值。
本方案支持了收集路径中每一跳的链路状态、收集路径中链路状态的最小值或收集路径中链路状态的最小值等三种场景,应用场景更丰富。
可选地,第一网络设备为数据报文的目的端。
本方案支持了从目的端发起信息收集的场景,提高了灵活性。
第二方面,提供了一种报文处理的方法,第二方面提供的方法从组播报文的接收端的角度来描述流程。网络设备接收第一组播报文,第一组播报文包括第一路径的链路状态信息;响应于第一路径的链路状态信息满足拥塞条件,网络设备将第一路径承载的数据报文切换至第二路径。
本实施例提供的方法,网络设备通过组播报文收集到网络的链路状态信息,利用网络的链路状态信息进行拥塞控制,有助于在网络开始存在发生拥塞的趋势时调整流量的转发路径,从而让网络拥塞发生之前提前调优具备了实现可能性。
可选地,网络设备将第一路径承载的数据报文切换至第二路径之前,网络设备还接收第二组播报文,第二组播报文包括第二路径的链路状态信息;网络设备根据第二路径的链路状态信息,从至少一条候选路径中选择第二路径。
可选地,第一组播报文包括第一路径中每条链路的链路状态信息;或者,第一组播报文包括第一路径中每条链路的链路状态信息中的最小值;或者,第一组播报文包括第一路径中每条链路的链路状态信息中的最大值。
可选地,第一组播报文为BIER报文。
可选地,第一组播报文包括IPv6扩展头,链路状态信息携带在IPv6扩展头中。
第三方面,提供了一种网络设备,该网络设备具有实现上述第一方面或第一方面任一种可选方式中第一网络设备的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面任一种可选方式所提供的方法。在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第三方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第四方面,提供了一种网络设备,该网络设备具有实现上述第二方面或第二方面任一种可选方式的功能。该网络设备包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面任一种可选方式所提供的方法。在一些实施例中,网络设备中的单元通过软件实现,网络设备中的单元是程序模块。在另一些实施例中,网络设备中的单元通过硬件或固件实现。第四方面提供的网络设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第五方面,提供了一种网络设备,该网络设备包括处理器和网络接口,该处理器用于执行指令,使得该网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,所述网络接口用于接收或发送报文。第五方面提供的网络设备的具体细节可参见上述第一方面或第一方面任一种可选方式,此处不再赘述。
第六方面,提供了一种网络设备,该网络设备包括处理器和网络接口,该处理器用于执行指令,使得该网络设备执行上述第二方面或第二方面任一种可选方式所提供的方法,所述网络接口用于接收或发送报文。第六方面提供的网络设备的具体细节可参见上述第二方面或第二方面任一种可选方式,此处不再赘述。
第七方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第八方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令在计算机上运行时,使得计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十方面,提供了一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令,当所述计算机程序指令被计算机加载并运行时,使得所述计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第十二方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十三方面,提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。
第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:生成第一组播报文,所述第一组播报文包括第一链路的链路状态信息,所述第一链路为所述第一网络设备连接的链路。
第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:沿第一路径发送所述第一组播报文,以使得所述第一路径上的其他网络设备在报文中封装链路状态信息,所述第一路径包括所述第一链路。
可选地,所述网络设备包括主控板和接口板,所述中央处理器设置在所述主控板上,所述网络处理器和所述物理接口设置在接口板上,所述主控板和所述接口板耦合。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
第十四方面,提供了一种网络设备,该网络设备包括:主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。
第二存储器可以用于存储程序代码,第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:接收第一组播报文,所述第一组播报文包括第一路径的链路状态信息。
第一存储器可以用于存储程序代码,第一处理器用于调用第一存储器中的程序代码执行如下操作:响应于所述第一路径的链路状态信息满足拥塞条件,所述网络设备将所述第一路径承载的数据报文切换至第二路径。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
第十五方面,提供了一种网络系统,该网络系统包括上述第三方面所述的网络设备以及上述第四方面所述的网络设备;或者,该网络系统包括上述第五方面所述的网络设备以及上述第六方面所述的网络设备;或者,该网络系统包括上述第十三方面所述的网络设备以及上述第十四方面所述的网络设备。
附图说明
图1是本申请实施例提供的一种传统IGP算路的原理示意图;
图2是本申请实施例提供的一种双向共路算法的原理示意图;
图3是本申请实施例提供的一种SRv6网络中转发报文的示意图;
图4是本申请实施例提供的一种基于FlexAlgo算路的示意图;
图5是本申请实施例提供的一种网络架构的示意图;
图6是本申请实施例提供的一种报文处理的方法的流程图;
图7是本申请实施例提供的一种收集网络链路状态的场景示意图;
图8是本申请实施例提供的一种收集网络链路状态的场景示意图;
图9是本申请实施例提供的一种报文处理的方法的流程图;
图10是本申请实施例提供的一种收集网络链路状态的场景示意图;
图11是本申请实施例提供的一种收集网络链路状态的场景示意图;
图12是本申请实施例提供的一种SRv6 BE L3VPN的场景示意图;
图13是本申请实施例提供的一种配置多下一跳权重的示意图;
图14是本申请实施例提供的一种基于BIER收集网络拥塞链路状态的场景示意图;
图15是本申请实施例提供的一种调整多下一跳权重的示意图;
图16是本申请实施例提供的一种网络设备的结构示意图;
图17是本申请实施例提供的一种网络设备的结构示意图;
图18是本申请实施例提供的一种网络设备的结构示意图;
图19是本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请实施例涉及的一些术语概念做解释说明。
(1)路径
路径是指网络中转发报文的路径。可选地,路径是没有方向的。例如,从第一网络设备出发经过若干网络设备或链路到第二网络设备的路径、与从第二网络设备出发经过相同的网络设备或链路到第一网络设备的路径可以理解为同一条路径。
(2)链路状态信息
链路状态信息用于指示网络设备连接的链路的拥塞状态。从术语含义的角度来看,链路状态信息一定程度上反映了网络设备中转发处理资源的使用情况,或者说网络设备的负载情况。例如,链路状态信息是用来指示带宽、可分配的处理器时间、缓冲区、内存资源、队列这些转发处理资源的使用情况。从术语应用的角度来看,由于链路状态信息反映了网络设备中转发处理资源是否足够,能够使用链路状态信息来监控网络路径的质量。当网络中一条转发路径具有拥塞的趋势时,将这条转发路径原本承载的流量切换到其他路径上传输,从而实现拥塞避免以及流量调优。示例性地,链路状态信息包括而不限于带宽利用率、缓冲区(buffer,Buff)长度、剩余带宽、中央处理器(central processing unit,CPU)利用率等等。作为实例,链路状态信息为:buffer长度为3,剩余带宽为200M。
(3)满足拥塞条件
拥塞条件是用于判定路径是否发生拥塞或者具有拥塞的趋势的条件。满足拥塞条件表示网络路径中一个或多个网络设备中转发处理资源不足,路径上已经发生拥塞或者将要发生拥塞的概率较高。例如,在链路状态信息为剩余带宽的情况下,满足拥塞条件可选地为剩余带宽低于设定阈值。例如,在链路状态信息为带宽利用率的情况下,满足拥塞条件可选地为带宽利用率高于设定阈值。例如,在链路状态信息为buffer长度的情况下,满足拥塞条件可选地为buffer长度高于设定阈值。
(4)位索引显示复制(bit index explicit replication,BIER)
BIER是一种新的组播技术。和传统组播技术相比,BIER的特点是通过将组播报文目的节点的集合以比特串的方式封装在报文头部进行发送,从而使网络中间节点无需为每一个组播流(Per-flow)建立组播树及保存组播流状态,仅需根据报文头部的目的节点的集合进行复制转发。从应用的角度来看,BIER有助于支持大规模的组播业务场景:BIER不需要为每条组播流量建立组播转发树及保存组播流状态,减少对资源的占用。
(5)比特串(BIER bitmap,也称Bit String或者位串)
比特串用于标识BIER报文的目的节点集合。比特串中的每个比特的位置(也称索引)用于标识目的节点集合中的一个目的节点。网络设备当接收到BIER报文时,根据BIER报文中的比特串查询BIER路由转发表,从而将BIER报文复制发送出去。
(6)双向共路算法
双向共路算法是一种路由算法。双向共路算法中的双向是指从报文的源端到报文的目的端的方向(也称正向或去程方向),以及从报文的目的端到报文的源端的方向(也称反向或回程方向)。双向共路算法的主要作用在于保证报文从源端转发至目的端时、报文从目的端转发至源端时在同一条路径上转发。双向共路算法的实现方式例如为使用正向代价(cost)与反向cost之和作为链路度量(metric)参与算路。下面对双向共路算法的原理进行分析。
传统IGP算路的方式为按方向添加单向cost值进行算路,而这种方法无法保证双向共路。例如,请参考附图1,附图1示出了一个简化版的组网拓扑,附图1中A、B、C和D分别表示4个网络设备,附图1中箭头附近的数字表示链路对应的cost,例如附图1中的1表示从网络设备A到网络设备B的cost是1,在附图1所示的组网中采用传统IGP算路的方式算路,当计算报文从节点A出发、要到达节点B的路径,以及计算报文从节点B出发、要到达节点A的路径时,计算出的两条路径可能不相同。
采用双向共路算法时,会同时考虑链路的正向cost以及反向cost,根据正向cost和反向cost相加得到的和值进行算路,从而保证双向共路。例如,请参见附图2,附图2中的1表示从网络设备A到网络设备B的cost(正向cost)是1,附图2中的5表示从网络设备B到网络设备A的cost(反向cost)是5。当计算报文从节点A出发、要到达节点B的路径,以及计算报文从节点B出发、要到达节点A的路径时,都会将链路A->B和链路B->A的cost和(1+5=6)作为链路metric参与算路,这样能保证链路A->B和链路B->A算路的时候使用的cost值一致,从而保证双向共路。
(7)控制标识
控制标识用来指示网络设备在报文中封装链路状态信息。控制标识由发起收集网络链路状态信息的设备添加至报文中。网络设备接收到组播报文之后,如果发现组播报文携带控制标识,则会将链路状态信息封装至组播报文。在一些实施例中,控制标识携带在BIER头中。例如,在BIER头中扩展一种类型长度值(type length value,TLV),使用该TLV的值字段携带上述控制标识。又如,使用BIER头中预留的字段携带上述控制标识。在另一些实施例中,控制标识携带在BIER头之外的其他报文头中,例如携带在IPv6扩展头。
(8)互联网协议第6版段路由(internet protocol version 6for segmentrouting,SRv6)
SRv6是基于源路由(segment routing,SR)理念而设计的在网络上转发数据包的一种方法。SRv6 Segment是IPv6地址形式,通常也可以称为SRv6 SID(SegmentIdentifier)。SRv6SID有很多类型,不同类型的SRv6 SID代表不同的功能。例如,End SID表示Endpoint SID,用于标识网络中的某个目的节点(node)。End.X SID表示三层交叉连接的Endpoint SID,用于标识网络中的某条链路。例如,请参考附图3,附图3为本申请实施例提供的一种基于End SID的转发流程示意图,该转发流程包括:报文在节点A被压入SRH,该SRH中的路径信息是<Z::,F::,D::,B::>,报文的IPv6头中的目的地址是B::,SL的值为3。每当报文经过一个中间节点,例如节点B和节点D,中间节点会根据报文的IPv6 DA查询LocalSID表,中间节点判断是End类型,则中间节点会继续查询IPv6 FIB表,根据IPv6 FIB表查到的出接口下一跳转发,同时对SL减1,将IPv6 DA变换一次。当报文到节点F时,节点F根据报文中IPv6头的目的地址查询Local SID表,判断是End类型,然后继续查询IPv6 FIB表,根据IPv6FIB表查到的出接口转发。同时SL减为0,IPv6 DA变为Z::,此时路径信息<Z::,F::,D::,B::>已无实际价值,因此节点F利用PSP特性,将SRH去除,然后把去除了SRH的报文转发到节点Z。
基于互联网协议第6版(internet protocol version 6,IPv6)转发面的SR,通过在IPv6报文中插入一个路由扩展头,称为段路由头(segment routing header,SRH),在SRH中压入一个显式的IPv6地址栈,通过中间节点不断的进行更新目的地址和偏移地址栈的操作来完成逐跳转发。
(9)灵活算法(flexible algorithm,FlexAlgo)
传统互联网协议(internet protocol,IP)转发路径算法使用最短路径优先(Shortest path first,SPF)算法,只支持基于内部网关协议(internal gatewayprotocol,IGP)度量(metric)计算最短路径。FlexAlgo用于增强IP路由算法能力。参见附图4,附图4是一种基于FlexAlgo进行分布式算路的示意图。如附图4所示,SRv6网络包括8个网络设备,分别是R1、R2、R3至R8。R1的SID为B1::1。R2的SID为B2::1。R3的SID为B3::1。R4的SID为B4::1。SRv6网络通告了灵活算法定义(Flexible Algorithm Definition,FAD)128。FAD 128中度量值类型(Metric Type,也称链路指标约束)为时延。FAD 128中亲和属性(affinity,也称拓扑约束)为去掉红(exclude-all red),即算路时去掉红对应的链路。在转发报文的过程中,首先,R1接收到发往R4的报文,报文的目的地址为B4::1。R1基于FlexAlgo算路,从而确定到R4的最优下一跳为R2,然后R1将报文转发给R2。R2接收R1发送的报文。R2基于FlexAlgo算路,从而确定到R4的最优下一跳为R3,然后R2将报文转发给R3。R3基于FlexAlgo算路,从而确定到R4的最优下一跳为R4,然后R3将报文转发给R4。总结来看,FlexAlgo是一种分布式路由算法。FlexAlgo通常用来计算到目的节点的最优下一跳。
灵活算法定义(flexible algorithm definition,FAD)是为Flex-Algo扩展的子(sub)TLV(FAD sub-TLV)。FAD sub-TLV包括灵活算法标识(identity,ID)(Flex-Algo ID)、度量值类型(metric-type)、算法类型(Calc-type)以及链路约束。
Flex-Algo ID用于标识灵活算法。用户给不同的IP路由算法定义不同的FlexAlgoID。Flex-Algo ID的取值范围为128~255。例如,Flex-Algo ID的值为128。
度量值类型是路由算法因子。度量值类型包括IGP度量值(IGP metric)、链路时延(link delay)和流量工程(traffic engineering,TE)度量值(TE metric)。例如,度量值类型的值为0时,表示IGP度量值;度量值类型的值为1时,表示链路时延,即基于时延metric算路;度量值类型的值为2时,表示TE度量值,即基于TE metric算路。算法类型包括最短路径优先算法(SPF算法)和严格最短路径优先算法(strict SPF算法)。例如,算法类型的值为0时,表示SPF算法;算法类型的值为1时,表示严格最短路径优先算法。
链路约束是一种链路亲和属性。链路约束定义FlexAlgo算路拓扑。链路约束例如通过包含(include)/去掉(exclude)管理组(admin-group)颜色(color)描述。
(10)多拓扑冗余树(multi-topology redundancy tree,MRT)
MRT是一种用于计算不相交多路径的路由算法。MRT算法能同时生成两个拓扑,分别称为MRT红拓扑和MRT蓝拓扑。其中,网络设备在MRT红拓扑对应的下一跳也称红下一跳,网络设备在MRT蓝拓扑对应的下一跳也称蓝下一跳。
下面对本申请实施例的应用场景举例说明。
附图5是本申请实施例提供的一种应用场景的示意图。附图5所示的场景包括网络设备A、网络设备B至网络设备H。附图5中各个网络设备包括而不限于交换机或路由器等转发设备。附图5示出了数据报文的2条转发路径,分别是第一路径和第二路径,其中第一路径为A-B-C-D,第二路径为A-B-G-D。
网络设备A为源端节点(也称头节点或入口节点)。例如,请参考附图5,数据报文从网络设备A开始进入第一路径或者第二路径转发。在本申请的一些实施例中,网络设备A用于发起组播报文从收集网络中链路的拥塞状态。
可选地,网络设备A用于对发生拥塞或者具有拥塞趋势的转发路径进行切换,从而避免拥塞或者降低拥塞的影响,实现流量调优。例如,请参考附图5,如果第一路径具有发生拥塞的趋势,网络设备A将数据报文从第一路径切换至第二路径转发,从而避免拥塞。或者,如果第一路径已经发生拥塞,网络设备A将数据报文从第一路径切换至第二路径转发,从而降低拥塞的影响。在本申请的一些实施例中,网络设备A根据组播报文收集到的链路的拥塞状态,来执行路径切换。
网络设备B和网络设备C为第一路径上的中间节点。例如,请参考附图5,网络设备B将网络设备A发送的数据报文转发至网络设备C,网络设备C将网络设备A发送的数据报文转发至网络设备D。在本申请的一些实施例中,网络设备B和网络设备C用于在转发组播报文的过程中向组播报文封装网络链路状态信息。
网络设备D为目的端节点(也称尾节点、宿节点或出口节点),在本申请的一些实施例中,网络设备D用于发起组播报文从收集网络中链路的拥塞状态。或者,网络设备D用于将手机到的链路拥塞状态返回至网络设备A。
可选地,应用在VPN场景下,网络设备A和网络设备D为PE设备,网络设备A和网络设备D部署在网络的边界。网络设备B和网络设备C为P设备,网络设备B和网络设备C部署在网络的内部。
本申请实施例提供了采用组播的方式收集网络链路拥塞状态的方案,主要分为两种方式。一种方式是从源端发起信息收集,另一种方式是从目的端发起信息收集。下面通过附图6所示实施例对从源端发起信息收集的具体实现方式举例说明,通过附图9所示实施例对从目的端发起信息收集的具体实现方式举例说明。
附图6是本申请实施例提供的一种报文处理的方法的流程图。附图6所示方法包括以下步骤S201至步骤S210。
附图6所示方法涉及多个网络设备之间的交互。为了便于理解,下面用“网络设备A”、“网络设备B”、“网络设备C”和“网络设备D”区分描述多个不同的网络设备。应理解,也可以采用“第一”“第二”等字样对各个网络设备进行区分描述,换句话说,下述各个实施例中的“网络设备A”、“网络设备B”、“网络设备C”和“网络设备D”也可称为“第一网络设备”、“第二网络设备”、“第三网络设备”和“第四网络设备”等。
附图6示出的源端和目的端之间存在两个中间网络设备(网络设备B和网络设备C)仅是举例,本实施例对源端和目的端之间中间网络设备的数量不做限定。在另一些实施例中,源端和目的端之间中间网络设备的数量可以更多或更少。例如,源端和目的端之间中间网络设备可以仅为一个;或者,源端和目的端之间中间网络设备为几十个或几百个,或者更多数量。在源端和目的端之间存在更多或更少的中间网络设备的情况下,每个中间网络设备执行的步骤可参考附图6实施例对中间网络设备的介绍。
附图6所示方法所基于的网络部署场景可选地如上述附图5所示。例如,结合附图5来看,附图6所示方法中的网络设备A为附图5中的网络设备A,附图6所示方法中的网络设备B为附图5中的网络设备B,附图6所示方法中的网络设备C为附图5中的网络设备C,附图6所示方法中的网络设备D为附图5中的网络设备D。
附图6所示方法涉及不同网络设备之间交互的组播报文。为了区分不同网络设备发送出去的组播报文,用“组播报文A”指代网络设备A发送的组播报文,用“组播报文B”指代网络设备B发送的组播报文,用“组播报文C”指代网络设备C发送的组播报文,用“组播报文D”指代网络设备D发送的组播报文。
附图6所示方法涉及多路径的切换。为了区分不同的路径,用“第一路径”和“第二路径”区分描述不同的路径。例如,结合附图5来看,第一路径是附图5中的节点A-节点B-节点C-节点-D,第二路径是附图6中的节点A-节点B-节点G-节点D。可选地,第二路径与第一路径属于不同的网络拓扑。例如,第一路径属于MRT红拓扑,第二路径属于MRT蓝拓扑。可选地,第一路径和第二路径均为隧道。例如,第一路径和第二路径为标签交换路径(LabelSwitching Path,LSP)隧道、流量工程(Traffic Engineering,TE)隧道、策略(policy)隧道等等。可选地,第一路径和第二路径具有主备关系,第一路径为主路径,第二路径为备路径。
步骤S201、网络设备A生成组播报文A。
组播报文A包括网络设备A连接的一条或多条链路的链路状态信息。可选地,组播报文A具体包括网络设备A上数据报文出接口的与拥塞相关的状态信息,表示源端和第二跳节点之间的链路的拥塞情况或者说负载情况。例如,请参考附图5,网络设备A通过链路AB和网络设备B相连,网络设备A通过链路AE和网络设备E相连,组播报文A例如包括链路AB的链路状态信息或者链路AE的链路状态信息。
步骤S202、网络设备A沿第一路径发送组播报文A,以使得第一路径上的其他网络设备在报文中封装链路状态信息,第一路径包括第一链路。
例如,请参考附图7,网络设备A沿网络设备A与网络设备D之间的路径(第一路径)发送组播报文A,组播报文A包括链路AB(第一路径中的链路)的链路状态,以使网络设备B、网络设备C和网络设备D在组播报文A的基础上封装链路状态信息。
步骤S203、网络设备B接收来自于网络设备A的组播报文A,网络设备B在组播报文A中封装链路状态信息,以得到组播报文B。
步骤S204、网络设备B沿第一路径发送组播报文B。
下面结合两种应用场景对网络设备B执行的步骤举例说明。场景一的流程可参考附图7,场景二的流程可参考附图8。
场景一、收集路径中每一跳的链路状态
在场景一下,路径中每一跳节点当接收到组播报文之后,会将本设备的链路拥塞状态添加到组播报文中,再将添加后的组播报文发送到下一跳节点。通过这种方式,组播报文能够随着逐跳转发携带越来越多跳节点的链路拥塞状态。
可选地,每一跳节点具体将本设备和下一跳节点之间链路的链路拥塞状态(如数据报文出接口的剩余带宽、出接口队列的buffer长度)添加到组播报文中。
例如,请参考附图7,网络设备A将链路AB的拥塞状态封装到组播报文中,发给网络设备B。网络设备B将链路BC的拥塞状态封装到网络设备A发送的组播报文中,发给网络设备C。如此,网络设备B发送的组播报文B包括路径中前两跳节点的链路状态信息,即链路AB的拥塞状态和链路BC的拥塞状态。
场景二、收集路径中链路状态的最小值或最大值
在场景二下,路径中每一跳节点收到组播报文之后,会将本设备的链路拥塞状态与组播报文已携带的链路状态进行比较。路径中每一跳节点会根据本地的链路状态与组播报文已携带的链路状态之间的数值关系,判断将组播报文已携带的链路状态替换为本地的链路状态再发给下一跳,还是直接将组播报文已携带的链路状态发给下一跳。
可选地,每一跳节点具体使用本设备和下一跳节点之间链路的链路拥塞状态(如数据报文出接口的剩余带宽、出接口队列的buffer长度)来替换组播报文已携带的链路状态。
例如,在收集最小值的场景下,如果网络设备B的链路状态信息小于组播报文A携带的链路状态信息,表明网络设备B的链路状态信息在前两跳节点中最小,那么网络设备B将组播报文A中的链路状态信息替换为网络设备B的链路状态信息,得到组播报文B。如果网络设备B的链路状态信息不小于组播报文A携带的链路状态信息,网络设备B将组播报文A中的链路状态信息封装至组播报文B,或者说将组播报文中的链路状态信息保持为组播报文A携带的链路状态信息,使得组播报文A携带的链路状态信息继续从网络设备B传递到网络设备C。
以链路状态信息具体为出接口剩余带宽为例,例如,网络设备A上具有一个去往网络设备B的出接口a,网络设备B上具有一个去往网络设备C的出接口b。网络设备A将出接口a的剩余带宽封装到组播报文中,发给网络设备B。网络设备B收到组播报文之后,判断出接口b的剩余带宽是否小于组播报文携带的出接口a的剩余带宽。如果出接口b的剩余带宽小于组播报文携带的出接口a的剩余带宽,网络设备B将组播报文携带的剩余带宽从出接口a的剩余带宽替换为出接口b的剩余带宽。
在收集最大值的场景下,如果网络设备B的链路状态信息大于组播报文A携带的链路状态信息,表明网络设备B的链路状态信息在前两跳节点中最大,那么网络设备B将组播报文A中的链路状态信息替换为网络设备B的链路状态信息,得到组播报文B。如果网络设备B的链路状态信息不大于组播报文A携带的链路状态信息,网络设备B将组播报文A中的链路状态信息封装至组播报文B,或者说将组播报文中的链路状态信息保持为组播报文A携带的链路状态信息,使得组播报文A携带的链路状态信息继续从网络设备B传递到网络设备C。
例如,请参考附图8,网络设备B发送的组播报文B中包括链路AB的状态以及链路BC的状态这两条链路状态中的最小值或最大值。
步骤S205、网络设备C接收组播报文B,在组播报文B中封装链路状态信息,以得到组播报文C。
网络设备C的步骤与网络设备B的步骤同理,例如,请参考附图7,在上述场景一下,网络设备C发送的组播报文C中包括三跳节点的链路状态,即链路AB的状态、链路BC的状态以及链路CD的状态。例如,请参考附图8,在上述场景二下,网络设备C发送的组播报文C中包括三跳节点的链路状态中的最小值或最大值,即链路AB的状态、链路BC的状态以及链路CD的状态中的最小值,或链路AB的状态、链路BC的状态以及链路CD的状态中最大值。
网络设备C的技术细节请参考对网络设备B的步骤的描述,在此不做赘述。
步骤S206、网络设备C沿第一路径发送组播报文C。
步骤S207、网络设备D接收网络设备C发送的组播报文C,生成响应报文。
步骤S208、网络设备D向网络设备A发送响应报文。
网络设备D作为组播报文的目的端,网络设备D收到组播报文C之后,网络设备D将组播报文C携带的链路状态信息封装至响应报文,以便将链路状态信息通过响应报文返回给源端(网络设备A)。
响应报文为单播报文。响应报文的目的地址字段的内容和组播报文的源地址字段的内容例如是相同的。响应报文包括第一路径的链路状态信息。响应报文为组播报文对应的响应报文。
可选地,在上述场景一下,响应报文包括第一路径中每条链路的链路状态信息,以便将路径中每一跳的链路状态通过响应报文返回给源端。例如,请参考附图7,网络设备D发送的响应报文中包括三跳节点的链路状态,即链路AB的状态、链路BC的状态以及链路CD的状态。
可选地,在上述场景二下,响应报文包括第一路径中每条链路的链路状态信息中的最小值或最大值,以便将路径中每一跳的链路状态的最小值或最大值通过响应报文返回给源端。例如,请参考附图8,网络设备D发送的响应报文中包括三跳节点的链路状态中的最小值或最大值,即链路AB的状态、链路BC的状态以及链路CD的状态中的最小值或最大值。
步骤S209、网络设备A接收来自第一路径上网络设备D发送的响应报文。
通过将组播报文收集的网络链路状态信息携带在响应报文中提供给源端,网络链路状态信息能用来作为源端的选路依据,实现避免拥塞或者降低拥塞影响的效果。例如,通过组播报文收集到第一路径的链路状态信息以及第二路径的链路状态信息之后,将两条路径的链路状态信息提供给网络设备A。网络设备A在选路时,如果第一路径的链路状态信息指示第一路径发生拥塞或者具有拥塞趋势,则网络设备A将第一路径原本承载的数据报文切换至第二路径转发。
步骤S210、网络设备A在响应报文中的链路状态信息满足拥塞条件的情况下,将第一路径承载的数据报文切换至第二路径。
路径切换的具体实现方式包括很多种,下面通过两种实现方式举例说明。
实现方式(1)调整路由的下一跳
网络设备A从路由转发表中确定到达网络设备D的路由。网络设备A将路由的下一跳从第一路径中网络设备A的下一跳切换为第二路径中网络设备A的下一跳。在另一种可能的实现中,网络设备A从路由转发表中确定到达网络设备D的路由。
实现方式(2)调整路由多一跳的权重
网络设备A降低第一路径中网络设备A的下一跳的权重,或者提高第二路径中网络设备A的下一跳的权重。其中,下一跳的权重用于指示向该下一跳转发报文的比例。下一跳的权重越高,表示向该下一跳转发的报文的比例越大,使得该下一跳经过的路径承载越多的流量,该下一跳经过的路径的负载越高。
在一些实施例中,在切换路径的过程中,网络设备A会根据路径的链路拥塞状态来判断将流量切换到哪条路径。换句话说,上述第二路径是根据链路状态信息确定的。具体地,如果第一路径的链路状态信息满足拥塞条件,网络设备A根据第二路径的链路状态信息,从至少一条候选路径中选择第二路径。例如,第二路径的链路拥塞状态在至少一条候选路径中拥塞情况最轻,又如,第二路径的链路拥塞状态小于设定阈值。
可选地,第二路径的链路拥塞状态也是通过组播报文收集的。信息收集具体过程与上述第一路径的链路拥塞状态的收集过程同理。此外,本实施例对第二路径的链路拥塞状态的收集过程与第一路径的链路拥塞状态的收集过程的时间先后顺序不做限定。
本实施例提供的方法,网络设备通过主动采用组播的方式来收集网络的链路状态信息,避免在网络拥塞发生后才触发网络链路状态信息的收集,从而更加及时地感知网络中链路的拥塞状态,有助于在网络开始存在发生拥塞的趋势时调整流量的转发路径,从而让网络拥塞发生之前提前调优具备了实现可能性。
可选地,网络设备A采用定期的方式向网络发起信息收集。具体来讲,网络设备A每隔设定的时间间隔,沿第一路径发送一次组播报文,以触发从源端收集网络链路拥塞状态的流程。相应地,网络设备D每隔设定的时间间隔,生成携带链路状态信息的响应报文,并将响应报文发送至网络设备A,使得源端能定期获取网络链路拥塞状态。其中,该时间间隔例如根据实验、经验或需求设置,本实施例对此不做限定。
通过周期性地链路拥塞状态收集,能及时地感知链路拥塞状态,根据链路拥塞状态能在网络路径具有拥塞的趋势就进行路径切换,尽量避免网络已经拥塞之后才进行路径切换,从而实现提前调优。此外,由于周期性收集的动作是采用组播实现的,采用组播能节省周期性收集所占用的网络资源。
以上描述了源端发起信息收集的实现方式,下面通过附图9描述目的端发起信息收集的实现方式。附图9实施例重点说明与附图6实施例的不同之处,附图9实施例与附图6实施例之间相同相似的部分可互相参考。
附图9实施例同样涉及收集路径中每一跳的链路状态以及收集路径中链路状态的最小值或最大值这两类场景,收集每一跳链路状态的流程可参考附图10,收集链路状态最小值或最大值的流程可参考附图11。
附图9是本申请实施例提供的一种报文处理的方法的流程图。附图9所示方法包括以下步骤S301至步骤S308。
步骤S301、网络设备D生成组播报文D。
步骤S302、网络设备D沿第一路径发送组播报文D,以使得第一路径上的其他网络设备在报文中封装链路状态信息,第一路径包括第一链路。
组播报文D包括网络设备D连接的一条或多条链路的链路状态信息。可选地,组播报文D具体包括网络设备D上数据报文入接口连接的链路的拥塞相关的状态信息,表示目的端和倒数第二跳节点之间的链路的拥塞情况或者说负载情况。例如,请参考附图10,网络设备D沿网络设备A与网络设备D之间的路径(第一路径)发送组播报文D,组播报文D包括链路DC的链路状态,以使网络设备C和网络设备B在组播报文D的基础上封装链路状态信息。
步骤S303、网络设备C接收网络设备D发送的组播报文D,网络设备C在组播报文D中封装链路状态信息,以得到组播报文C。
步骤S304、网络设备C沿第一路径发送组播报文C。
步骤S305、网络设备B接收网络设备C发送的组播报文C,网络设备B在组播报文C中封装链路状态信息,以得到组播报文B。
可选地,附图9实施例中在收集每一跳链路状态的场景下,每一跳节点具体将本设备和上一跳节点之间链路的链路拥塞状态(如数据报文入接口的剩余带宽、入接口队列的buffer长度)添加到组播报文中。例如,请参考附图10,网络设备C发送的组播报文C中不仅包括链路AB的状态,也包括链路BC的状态。
可选地,附图9实施例中在收集最小值或最大值的场景下,每一跳节点具体使用本设备和上一跳节点之间链路的链路拥塞状态来替换组播报文已携带的链路状态。例如,网络设备C使用链路CB的链路状态信息去替换组播报文已携带的链路状态信息。
步骤S306、网络设备B沿第一路径发送组播报文B。
步骤S307、网络设备A接收网络设备B发送的组播报文B,网络设备A从组播报文B获得第一路径的链路状态信息。
可选地,在上述场景一下,组播报文B包括第一路径中每条链路的链路状态信息。例如,参见附图10,组播报文B包括三跳节点的链路状态,即链路DC的状态、链路CB的状态以及链路BA的状态。
可选地,在上述场景二下,组播报文B包括第一路径中每条链路的链路状态信息中的最小值或最大值。例如,参见附图11,组播报文B包括三跳节点的链路状态,即链路DC的状态、链路CB的状态以及链路BA的状态中的最小值或最大值。
步骤S308、响应于第一路径的链路状态信息满足拥塞条件,网络设备A将第一路径承载的数据报文切换至第二路径。
可选地,第二路径的链路拥塞状态也是通过组播报文收集的。例如,网络设备A接收第二组播报文,第二组播报文包括第二路径的链路状态信息。网络设备A根据第二路径的链路状态信息,从至少一条候选路径中选择第二路径。
可选地,网络设备D采用定期的方式向网络发起信息收集。具体来讲,网络设备D每隔设定的时间间隔,沿第一路径发送一次组播报文,以触发收集网络链路拥塞状态的流程,从而定期将网络链路拥塞状态通过组播报文传递给源端。
本实施例提供的方法,网络设备通过主动采用组播的方式来收集网络的链路状态信息,避免在网络拥塞发生后才触发网络链路状态信息的收集,从而更加及时地感知网络中链路的拥塞状态,有助于在网络开始存在发生拥塞的趋势时调整流量的转发路径,从而让网络拥塞发生之前提前调优具备了实现可能性。
可选地,在以上技术方案中,源端或者目的端还通过在多个拓扑或路径中分别发送组播报文,从而收集多个拓扑或路径的链路拥塞状态。例如,在附图5所示的场景中,不仅通过定期组播的方式收集第一路径的链路拥塞状态,还通过定期组播的方式收集第二路径的链路拥塞状态。示例性地,网络设备A生成第三组播报文,第三组播报文包括第三链路的链路状态信息,网络设备A沿第二路径发送第三组播报文。其中,第三链路为网络设备A连接的链路。第二路径包括第三链路。网络设备D接收到第三组播报文之后,将第二路径的链路状态信息通过响应报文,以单播的方式返回至网络设备A。或者,网络设备D生成第三组播报文,网络设备D沿第二路径发送第三组播报文,网络设备A接收到第三组播报文,从第三组播报文获得第二路径的链路状态信息。
可选地,以上技术方案中的组播报文为BIER报文。或者,以上技术方案中的组播报文为组播组管理协议(internet group management protocol,IGMP)报文、协议无关组播(protocol independent multicast,PIM)报文、组播源发现协议(multicast sourcediscovery protocol,MSDP)报文、组播边界网关协议(multiprotocol border gatewayprotocol,MBGP)报文等。当然,以上列举的各种组播方式仅是示例性地,也可以采用其他组播方式,本实施例对组播的具体方式不做限定。
可选地,以上技术方案中的组播报文包括BIER头,BIER头包括控制标识。控制标识指示网络设备在报文中封装链路状态信息。例如,在BIER头中扩展一种TLV。该TLV包括类型字段、长度字段和值字段,该TLV的值字段用于携带控制标识。携带控制标识的BIER报文可称为Bier控制消息,BIER报文的接收端如果识别出BIER报文携带控制标识,则向BIER报文中封装链路状态信息。
可选地,在以上技术方案中,第一路径或者第二路径中的至少一项是通过双向共路算法计算出来的,双向共路算法的链路metric为正向cost与反向cost之和。
由于组播报文的转发路径是通过双向共路算法计算出来的,因此组播报文的转发路径与数据报文的转发路径是一致的,从而保证在目的端发起信息收集的情况下,收集到的链路状态信息正是数据报文的转发路径具有的信息,有助于链路拥塞状态收集行为更精确。例如,请参考附图10,网络设备A与网络设备D之间存在第一路径和第二路径。在流量转发阶段,数据报文通过第一路径从网络设备A转发至网络设备D。在信息收集时,网络设备D向网络设备A发送组播报文时,由于组播报文的转发路径是通过双向共路算法计算出来的,能够保证组播报文的转发路径是第一路径而非第二路径,避免由于组播报文在第二路径上传输导致链路拥塞状态信息收集不准。
可选地,在以上技术方案中,第一路径以及第二路径分别属于MRT红拓扑和MRT蓝拓扑。例如,第一路径为MRT红拓扑中的路径,第二路径为MRT蓝拓扑中的路径。
可选地,在以上技术方案中的组播报文包括IPv6扩展头,链路状态信息携带在IPv6扩展头中。例如,在IPv6扩展头中新增一种目的选项,链路状态信息携带在目的选项中的选项数据字段中。其中,目的选项包括选项类型字段、选项长度字段和选项数据字段。选项类型字段中的类型用于标识目的选项包含链路状态信息。
下面结合一个具体的应用场景,对上述附图5所示场景、附图6实施例以及附图9实施例举例说明。
附图12示出了一个SRv6 BE三层虚拟专用网络(layer 3virtual privatenetwork,L3 VPN)场景。附图12的场景中的PE1是附图5中网络设备A(源端)的具体示例。附图12所示场景中PE3是附图5中网络设备D(目的端)的具体示例。附图12所示场景中P1和P3是附图5中网络设备B和网络设备C(中间节点)的具体示例。附图12所示场景中的第一路径是附图5中第一路径的具体示例。附图12所示场景中的第二路径是附图5中第二路径的具体示例。
在附图12场景中,PE1~PE4是L3 VPN的PE节点。P1~P4是运营商骨干(Provider,P)节点。PE3为VPN 100分配VPN SID:B2:8::B100。PE3发布私网路由2.2.2.2/24携带VPNSID。PE1收到私网路由后,PE1生成2.2.2.2私网路由表关联VPN SID:B2:8::B100。同时PE3通过IGP发布位置信息(locator)路由:B2:8::/64。全网中每个节点都生成到PE3的B2:8::/64的路由。
CE-1往CE-2发送目的地址为2.2.2.2的报文。PE1接收到CE-1发送的报文之后,PE1查私网路由表、PE1对报文进行SRv6封装,外层是IPv6头,IPv6头中的目的地址为VPN SID:B2:8::B100,内层是原始互联网协议第四版(internet protocol version 4,IPv4)报文。
网络节点根据外层IPv6目的地址B2:8::B100做最长掩码匹配查找路由转发。目的地址B2:8::B100命中B2:8::/64的路由,报文转发到PE3。PE3根据外层IPv6目的地址B2:8::B100查找SRv6本地SID表(local SID table),命中本地SID表中的End.DT4 VPN SID。PE3弹出(pop)外层IPv6头,根据内层IPv4目的地址2.2.2.2查找VPN 100私网路由表,PE3将报文转发到CE-2。
在如附图12所示的组网图中定义FlexAlgo 128。在FlexAlgo 128中使用双向共路和MRT算法。双向共路保证从源节点到目的节点的路径和从目的节点到源节点的路径是双向共路的,实现从目的节点发起收集链路状态信息时,用来收集链路状态信息传输在正确的路径上。MRT保证在任意点都有不相交分叉路径。MRT算法为可选的路由算法,MRT算法可替代为其他能实现多下一跳的算法,例如无环路备份(loop-free alternate,LFA)、不相交路径(disjoint Path)算法等。
如附图13所示,该FlexAlgo中对应的路由使用MRT红蓝拓扑作为该路由的多下一跳,并设置每一跳的初始权重值。具体地,PE1上到达前缀A1::1/64的路由具有两个下一跳,分别是下一跳A和下一跳B。下一跳A是PE1在MRT红拓扑中的下一跳,即第一路径中PE1的下一跳。下一跳B是PE1在MRT蓝拓扑中的下一跳,即第二路径中PE1的下一跳。初始权重1用于指示将数据报文通过下一跳A转发的比例,初始权重2表示将数据报文通过下一跳B转发的比例。
下面结合附图14,对附图12所示的应用场景下收集网络链路状态的过程举例说明。
请参考附图14,附图14是在附图12所示的应用场景中收集网络链路状态的举例说明。附图14关于网络节点定期基于MRT不同拓扑分别基于组播的方式获取网络链路状态信息。附图14的实现方式包括下述方式一和方式二。方式一是附图6实施例的具体示例,方式二是附图9实施例的具体示例。附图14中Bier报文是附图6实施例以及附图9实施例中组播报文的具体示例。附图14中剩余带宽以及Buffer长度是附图6实施例以及附图9实施例中链路状态信息的具体示例。附图14中PE1、P1、P3、PE3分别是附图6实施例以及附图9实施例中网络设备A、网络设备B、网络设备C和网络设备D的具体示例。
方式一,从源端发起信息收集。
如附图14所示,PE1定期以组播的方式向网络发起信息收集。例如,PE1向P1发送组播报文,PE1会把PE1指向P1的接口(报文出接口)的剩余带宽信息,Buffer长度等能反应链路拥塞状态的信息封装到组播报文里。可选地,从PE1到P1的路径中每一跳都向组播报文封装链路拥塞状态信息,从而收集每一跳的链路拥塞状态;或者,从PE1到P1的路径中每一跳在本地的链路拥塞状态小于报文中已封装的链路拥塞状态的情况下,向报文封装链路拥塞状态信息,从而收集链路拥塞状态信息的最小值;或者,从PE1到P1的路径中每一跳在本地的链路拥塞状态大于报文中已封装的链路拥塞状态的情况下,向报文封装链路拥塞状态信息,从而收集链路拥塞状态信息的最大值。
当组播报文发送到目的节点的时候,例如:PE3,PE3以单播的方式(将组播报文的源地址作为目的地址)将收集到的信息返回到PE1。
方式二、从目的端发起信息收集。
如附图14所示,PE3定期以组播的方式向网络发起信息收集。例如,PE3向P3发送组播报文时,PE3把P3指向PE3的接口(报文入接口)的剩余带宽信息,Buffer长度等能反应链路拥塞状态的信息封装到组播报文里。在一些实施例中,PE3还将PE3的前缀封装至组播报文中,以便PE1收到组播报文时根据组播报文携带的链路状态信息调整到达PE3的下一跳的权重。
例如,请参见附图15,PE3的locator(前缀)为A1:1:3,PE3上从P3指向PE3的接口的缓冲区长度为5、剩余带宽为50M,PE3上从P4指向PE3的接口的缓冲区长度为3、剩余带宽为200M。从PE3发起收集第一路径的链路状态时,PE3会将缓冲区长度为5、剩余带宽为50M这种链路状态信息,与前缀A1:1:3一起封装至组播报文中,将组播报文发送至P3。从PE3发起收集第二路径的链路状态时,PE3会将缓冲区长度为3、剩余带宽为200M这种链路状态信息,与前缀A1:1:3一起封装至组播报文中,将组播报文发送至P4。
在组播报文沿着从PE1到P1的路径转发的过程中,可选地,从PE1到P1的路径中每一跳都向组播报文封装链路拥塞状态信息,从而收集每一跳的链路拥塞状态。或者,从PE1到P1的路径中每一跳在本地的链路拥塞状态小于报文中已封装的链路拥塞状态的情况下,向报文封装链路拥塞状态信息,从而收集链路拥塞状态信息的最小值;或者,从PE1到P1的路径中每一跳在本地的链路拥塞状态大于报文中已封装的链路拥塞状态的情况下,向报文封装链路拥塞状态信息,从而收集链路拥塞状态信息的最大值。
当组播报文发送到目的节点的时候,例如:PE1,PE1可选地使用组播报文携带的链路状态信息作为选路依据。
在一些实施例中,组播报文在多个拓扑或路径分别发送,以收集不同拓扑路径的拥塞状态。可选地,组播报文还携带拓扑或路径的标识,从而标识通过组播报文收集哪条路径的拥塞状态。例如,请参考附图14,第一路径是MRT红拓扑中的路径,第二路径是MRT蓝拓扑的标识。在沿第一路径发送组播报文时,组播报文中携带拓扑:红;在沿第二路径发送组播报文时,组播报文中携带拓扑:蓝。
通过上述方式一和方式二,PE1能够收到不同路径的网络链路拥塞状态。PE1根据报文源地址查找相应的路由表,按照不同路径的网络链路拥塞状态将流量在不同的路径进行负载分担。例如:PE1根据网络链路拥塞状态确定路由不同下一跳的权重,调整路由多下一跳权重进行流量均衡,或调整多下一跳的优选关系,选择SLA最优的下一跳。
示例性地,请参考附图15,以链路状态信息为缓冲区长度和剩余带宽为例,PE1接收到PE3针对第一路径发送的组播报文或者响应报文之后,PE1从组播报文或者响应报文获得缓冲区长度:10、剩余带宽:30M、前缀A1:1:3/64、拓扑:红;此外,PE1接收到PE3针对第二路径发送的组播报文或者响应报文中之后,PE1从组播报文或者响应报文获得缓冲区长度:5、剩余带宽:200M、前缀A1:1:3/64、拓扑:蓝。由于第一路径(红拓扑路径)的剩余带宽(30M)比第二路径(蓝拓扑路径)的剩余带宽(200M)小,第一路径的缓冲区长度(10)比第二路径的缓冲区长度(5)长,可知第一路径发生拥塞的概率更高。那么,PE1调整第一路径中下一跳A的权重以及第二路径上下一跳B的权重,使得下一跳A的权重从初始权重1下降至权重11,下一跳B的权重从初始权重2提高至权重21,使得流量更大比例转发至下一跳B,从而缓解第一路径的拥塞。
上述实施例中,通过Bier定期向全网节点以组播的方式发送报文收集每一跳的链路参数,或者收集最小值或最大值,能及时感知链路拥塞状态,并且采用Bier能节省周期性收集所占用的网络资源。
下面对网络设备的基本硬件结构举例说明。
附图16是本申请实施例提供的一种网络设备的结构示意图。附图16所示的网络设备600用于实施上述报文处理的方法。
可选地,结合附图5来看,附图16所示的网络设备600是附图6中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图6来看,附图16所示的网络设备600是附图6所示方法流程图中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图9来看,附图16所示的网络设备600是附图9所示方法流程图中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图14来看,附图16所示的网络设备600是附图14中的PE1、PE3、P1或P3。
网络设备600包括至少一个处理器601、存储器602以及至少一个网络接口603。
处理器601例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器601包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器602例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器602独立存在,并通过内部连接604与处理器601相连接。或者,可选地存储器602和处理器601集成在一起。
网络接口603使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口603例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络接口或其组合等。
在一些实施例中,处理器601包括一个或多个CPU,如附图16中所示的CPU0和CPU1。
在一些实施例中,网络设备600可选地包括多个处理器,如附图16中所示的处理器601和处理器605。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,网络设备600还包括内部连接604。处理器601、存储器602以及至少一个网络接口603通过内部连接604连接。内部连接604包括通路,在上述组件之间传送信息。可选地,内部连接604是单板或总线。可选地,内部连接604分为地址总线、数据总线、控制总线等。
在一些实施例中,网络设备600还包括输入输出接口606。输入输出接口606连接到内部连接604上。
可选地,处理器601通过读取存储器602中保存的程序代码610实现上述实施例中的方法,或者,处理器601通过内部存储的程序代码实现上述实施例中的方法。在处理器601通过读取存储器602中保存的程序代码610实现上述实施例中的方法的情况下,存储器602中保存实现本申请实施例提供的方法的程序代码。
处理器601实现上述功能的更多细节请参考前面各个方法实施例中的描述,在这里不再重复。
参见附图17,附图17是本申请实施例提供的另一种网络设备的结构示意图。
可选地,结合附图5来看,附图17所示的网络设备700是附图6中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图6来看,附图17所示的网络设备700是附图6所示方法流程图中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图9来看,附图17所示的网络设备700是附图9所示方法流程图中的网络设备A、网络设备B、网络设备C或网络设备D。
可选地,结合附图14来看,附图17所示的网络设备700是附图14中的PE1、PE3、P1或P3。
网络设备700包括:主控板710和接口板730。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板710用于对网络设备700中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板710包括:中央处理器711和存储器712。
接口板730也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板730用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over sONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE clients)。接口板730包括:中央处理器731、网络处理器732、转发表项存储器734和物理接口卡(physical interface card,PIC)733。
接口板730上的中央处理器731用于对接口板730进行控制管理并与主控板710上的中央处理器711进行通信。
网络处理器732用于实现报文的转发处理。网络处理器732的形态例如是转发芯片。具体而言,网络处理器732用于基于转发表项存储器734保存的转发表转发接收到的报文,如果报文的目的地址为网络设备700的地址,则将该报文上送至CPU(如中央处理器711)处理;如果报文的目的地址不是网络设备700的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理包括:报文入接口的处理,转发表查找;下行报文的处理:转发表查找等等。
物理接口卡733用于实现物理层的对接功能,原始的流量由此进入接口板730,以及处理后的报文从该物理接口卡733发出。物理接口卡733也称为子卡,可安装在接口板730上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器732处理。在一些实施例中,中央处理器也可执行网络处理器732的功能,比如基于通用CPU实现软件转发,从而物理接口卡733中不需要网络处理器732。
可选地,网络设备700包括多个接口板,例如网络设备700还包括接口板740,接口板740包括:中央处理器741、网络处理器742、转发表项存储器744和物理接口卡743。
可选地,网络设备700还包括交换网板720。交换网板720也例如称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板730的情况下,交换网板720用于完成各接口板之间的数据交换。例如,接口板730和接口板740之间例如通过交换网板720通信。
主控板710和接口板730耦合。例如。主控板710、接口板730和接口板740,以及交换网板720之间通过系统总线与系统背板相连实现互通。在一种可能的实现方式中,主控板710和接口板730之间建立进程间通信协议(inter-process communication,IPC)通道,主控板710和接口板730之间通过IPC通道进行通信。
在逻辑上,网络设备700包括控制面和转发面,控制面包括主控板710和中央处理器731,转发面包括执行转发的各个组件,比如转发表项存储器734、物理接口卡733和网络处理器732。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器732基于控制面下发的转发表对物理接口卡733收到的报文查表转发。控制面下发的转发表例如保存在转发表项存储器734中。在有些实施例中,控制面和转发面例如完全分离,不在同一设备上。
应理解,本申请实施例中接口板740上的操作与接口板730的操作一致,为了简洁,不再赘述。应理解,本实施例的网络设备700可对应于上述各个方法实施例中的网络设备,该网络设备700中的主控板710、接口板730和/或740例如实现上述各个方法实施例中的网络设备所具有的功能和/或所实施的各种步骤,为了简洁,在此不再赘述。
值得说明的是,主控板可能有一块或多块,有多块的时候例如包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个系统的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
附图18是本申请实施例提供的一种网络设备的结构示意图。附图18所示的网络设备800例如实现附图6所示方法中网络设备A、网络设备B或网络设备C的相应功能,或附图9所示方法中网络设备D、网络设备B或网络设备C的相应功能,或附图14中PE3、P3、P1、P4或PE1的相应功能。
请参考附图18,网络设备800包括生成单元801和发送单元803。生成单元801于支持网络设备800执行附图6所示方法中S201、S203或S205,或附图9所示方法中S301、S303或S305。发送单元803用于支持网络设备800执行附图6所示方法中S202、S204或S206,或附图9所示方法中S302、S304或S306。
可选地,网络设备800还包括接收单元,接收单元用于支持网络设备800执行附图6所示方法中S209以及接收组播报文的步骤,或附图9所示方法中接收组播报文的步骤。
可选地,网络设备800还包括切换单元,切换单元用于支持网络设备800执行附图6所示方法中S210或附图9所示方法中S308。
网络设备800中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。附图18所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。附图18中上述各个单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。例如,采用软件实现时,上述生成单元801和切换单元可以是由附图16中的至少一个处理器601读取存储器602中存储的程序代码后,生成的软件功能单元来实现。附图18中上述各个单元也可以由网络设备中的不同硬件分别实现,例如生成单元801由附图16中的至少一个处理器601中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而切换单元由附图16中至少一个处理器601中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。接收单元和发送单元803由附图16中的网络接口603实现。显然上述功能单元也可以采用软件硬件相结合的方式来实现,例如生成单元801由硬件可编程器件实现,而切换单元是由CPU读取存储器中存储的程序代码后,生成的软件功能单元。
附图19是本申请实施例提供的一种网络设备的结构示意图。附图19所示的网络设备900例如实现附图6所示方法中网络设备A的相应功能,或附图9所示方法中网络设备A的相应功能,或附图14中PE1的相应功能。
请参考附图19,网络设备900包括接收单元901和切换单元902。接收单元901用于支持网络设备900执行附图6或附图9方法实施例中接收组播报文的步骤。切换单元902用于支持网络设备900执行附图6所示方法中S210或附图9所示方法中S308。可选地,网络设备900还包括选择单元。选择单元用于支持网络设备900选择所述第二路径。
附图19所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。附图19中上述各个单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。例如,采用软件实现时,上述切换单元902和选择单元可以是由附图16中的至少一个处理器601读取存储器602中存储的程序代码后,生成的软件功能单元来实现。附图19中上述各个单元也可以由网络设备中的不同硬件分别实现,例如切换单元902由附图16中的至少一个处理器601中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而选择单元由附图16中至少一个处理器601中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成。接收单元901和发送单元903由附图16中的网络接口603实现。显然上述功能单元也可以采用软件硬件相结合的方式来实现,例如切换单元902由硬件可编程器件实现,而选择单元是由CPU读取存储器中存储的程序代码后,生成的软件功能单元。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。其中,A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一组播报文和第二组播报文用于区别不同的组播报文,而不是用于描述组播报文的特定顺序,也不能理解为第一组播报文比第二组播报文更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个路径是指两个或两个以上的路径。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (24)
1.一种报文处理的方法,其特征在于,所述方法包括:
第一网络设备生成第一组播报文,所述第一组播报文包括第一链路的链路状态信息,所述第一链路为所述第一网络设备连接的链路;
所述第一网络设备沿第一路径发送所述第一组播报文,以使得所述第一路径上的其他网络设备在报文中封装链路状态信息,所述第一路径包括所述第一链路。
2.根据权利要求1所述的方法,其特征在于,所述第一网络设备沿所述第一路径发送所述第一组播报文,包括:
所述第一网络设备每隔设定的时间间隔,沿所述第一路径发送一次所述第一组播报文。
3.根据权利要求1或2所述的方法,其特征在于,所述第一组播报文为位索引显示复制BIER报文。
4.根据权利要求3所述的方法,其特征在于,所述第一组播报文包括BIER头,所述BIER头包括控制标识,所述控制标识指示网络设备在报文中封装链路状态信息。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一组播报文包括互联网协议第六版IPv6扩展头,所述链路状态信息携带在所述IPv6扩展头中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述第一路径是通过双向共路算法计算出来的,所述双向共路算法的链路度量metric为正向代价cost与反向cost之和。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一网络设备生成第一组播报文,包括:
所述第一网络设备接收来自于第二网络设备的第二组播报文,所述第二组播报文包括所述第一路径中第二链路的链路状态信息,所述第二链路为所述第二网络设备连接的链路;
所述第一网络设备向所述第二组播报文添加所述第一链路的链路状态信息,以得到所述第一组播报文。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一网络设备生成第一组播报文,包括:
所述第一网络设备接收来自于第二网络设备的第二组播报文,所述第二组播报文包括所述第一路径中第二链路的链路状态信息;
响应于所述第一链路的链路状态信息小于所述第二链路的链路状态信息,所述第一网络设备将所述第二组播报文中第二链路的链路状态信息替换为所述第一链路的链路状态信息,得到所述第一组播报文;或者,
响应于所述第一链路的链路状态信息大于所述第二链路的链路状态信息,所述第一网络设备将所述第二组播报文中第二链路的链路状态信息替换为所述第一链路的链路状态信息,得到所述第一组播报文。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
所述第一网络设备生成第三组播报文,所述第三组播报文包括第三链路的链路状态信息,所述第三链路为所述第一网络设备连接的链路;
所述第一网络设备沿第二路径发送所述第三组播报文,所述第二路径包括所述第三链路,所述第二路径与所述第一路径属于不同的网络拓扑。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述第一网络设备为所述第一路径的源端,所述第一网络设备沿所述第一路径发送所述第一组播报文之后,所述方法还包括:
所述第一网络设备接收来自所述第一路径上第三网络设备发送的响应报文,所述响应报文为所述第一组播报文对应的响应报文,所述响应报文包括第一路径的链路状态信息;
所述第一网络设备在所述响应报文中的链路状态信息满足拥塞条件的情况下,将所述第一路径承载的数据报文切换至第二路径。
11.根据权利要求10所述的方法,其特征在于,所述响应报文包括所述第一路径中每条链路的链路状态信息;或者,
所述响应报文包括所述第一路径中每条链路的链路状态信息中的最小值;或者,
所述响应报文包括所述第一路径中每条链路的链路状态信息中的最大值。
12.根据权利要求1至9中任一项所述的方法,其特征在于,所述第一网络设备为所述第一路径的目的端。
13.一种报文处理的方法,其特征在于,所述方法包括:
网络设备接收第一组播报文,所述第一组播报文包括第一路径的链路状态信息;
响应于所述第一路径的链路状态信息满足拥塞条件,所述网络设备将所述第一路径承载的数据报文切换至第二路径。
14.根据权利要求13所述的方法,其特征在于,所述网络设备将所述第一路径承载的数据报文切换至第二路径之前,所述方法还包括:
所述网络设备接收第二组播报文,所述第二组播报文包括所述第二路径的链路状态信息;
所述网络设备根据所述第二路径的链路状态信息,从至少一条候选路径中选择所述第二路径。
15.根据权利要求13或14所述的方法,其特征在于,所述第一组播报文包括所述第一路径中每条链路的链路状态信息;或者,
所述第一组播报文包括所述第一路径中每条链路的链路状态信息中的最小值;或者,
所述第一组播报文包括所述第一路径中每条链路的链路状态信息中的最大值。
16.根据权利要求13至15中任一项所述的方法,其特征在于,所述第一组播报文为位索引显示复制BIER报文。
17.根据权利要求13至16中任一项所述的方法,其特征在于,所述第一组播报文包括互联网协议第六版IPv6扩展头,所述链路状态信息携带在所述IPv6扩展头中。
18.一种网络设备,其特征在于,所述网络设备为第一网络设备,所述网络设备包括:
生成单元,用于生成第一组播报文,所述第一组播报文包括第一链路的链路状态信息,所述第一链路为所述第一网络设备连接的链路;
发送单元,用于沿第一路径发送所述第一组播报文,以使得所述第一路径上的其他网络设备在报文中封装链路状态信息,所述第一路径包括所述第一链路。
19.根据权利要求18所述的网络设备,其特征在于,所述第一网络设备为所述第一路径的源端,所述网络设备还包括:
接收单元,用于接收来自所述第一路径上第三网络设备发送的响应报文,所述响应报文为所述第一组播报文对应的响应报文,所述响应报文包括第一路径的链路状态信息;
切换单元,用于在所述响应报文中的链路状态信息满足拥塞条件的情况下,将所述第一路径承载的数据报文切换至第二路径。
20.根据权利要求18或19所述的网络设备,其特征在于,所述第一网络设备为所述第一路径的目的端。
21.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收第一组播报文,所述第一组播报文包括第一路径的链路状态信息;
切换单元,用于响应于所述第一路径的链路状态信息满足拥塞条件,将所述第一路径承载的数据报文切换至第二路径。
22.根据权利要求21所述的网络设备,其特征在于,
所述接收单元,还用于接收第二组播报文,所述第二组播报文包括所述第二路径的链路状态信息;
所述网络设备还包括:选择单元,用于根据所述第二路径的链路状态信息,从至少一条候选路径中选择所述第二路径。
23.一种网络系统,其特征在于,所述网络系统包括如权利要求18至20中任一项所述的网络设备以及如权利要求21至22中任一项所述的网络设备。
24.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,当所述程序代码被计算机执行时,使得计算机执行如权利要求1至权利要求17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110393284.5A CN115208829A (zh) | 2021-04-13 | 2021-04-13 | 报文处理的方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110393284.5A CN115208829A (zh) | 2021-04-13 | 2021-04-13 | 报文处理的方法及网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115208829A true CN115208829A (zh) | 2022-10-18 |
Family
ID=83570280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110393284.5A Pending CN115208829A (zh) | 2021-04-13 | 2021-04-13 | 报文处理的方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865796A (zh) * | 2023-03-03 | 2023-03-28 | 深圳市欣博跃电子有限公司 | 路由器标签交换的路径规划方法 |
-
2021
- 2021-04-13 CN CN202110393284.5A patent/CN115208829A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115865796A (zh) * | 2023-03-03 | 2023-03-28 | 深圳市欣博跃电子有限公司 | 路由器标签交换的路径规划方法 |
CN115865796B (zh) * | 2023-03-03 | 2023-04-21 | 深圳市欣博跃电子有限公司 | 路由器标签交换的路径规划方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113395210B (zh) | 一种计算转发路径的方法及网络设备 | |
US7525919B2 (en) | Packet communication method with increased traffic engineering efficiency | |
CN113347091B (zh) | 灵活算法感知边界网关协议前缀分段路由标识符 | |
CN115552861B (zh) | 生成转发表项的方法、发送报文的方法、网络设备及系统 | |
WO2021000752A1 (zh) | 一种在数据中心网络中转发报文的方法及相关装置 | |
US8472313B2 (en) | System and method for optical bypass routing and switching | |
WO2020173198A1 (zh) | 一种报文的处理方法、报文转发装置以及报文处理装置 | |
US9118592B2 (en) | Switch and/or router node advertising | |
CN114465946A (zh) | 获取转发表项的方法、装置以及系统 | |
WO2022127698A1 (zh) | 拥塞控制方法及网络设备 | |
WO2022194023A1 (zh) | 报文处理的方法、网络设备及控制器 | |
CN115865769A (zh) | 报文处理方法、网络设备及系统 | |
CN115208829A (zh) | 报文处理的方法及网络设备 | |
CN116094987A (zh) | 转发路径的确定方法及装置 | |
US11240164B2 (en) | Method for obtaining path information of data packet and device | |
CN113572685A (zh) | 一种信息上报方法、信息处理方法、装置及设备 | |
WO2023040783A1 (zh) | 获取能力、发送能力信息的方法、装置、系统及存储介质 | |
EP4277226A1 (en) | Packet transmission method, transmission control method, apparatus, and system | |
WO2023130957A1 (zh) | 一种路由选路的方法及相关设备 | |
WO2022213830A1 (zh) | 确定路径的方法和装置 | |
WO2022037330A1 (zh) | 传输虚拟专用网的段标识vpn sid的方法、装置和网络设备 | |
CN113691446B (zh) | 一种报文发送的方法和装置 | |
WO2023231438A1 (zh) | 报文发送的方法、网络设备及系统 | |
WO2023160124A1 (zh) | 确定路径的方法和装置 | |
CN115150329A (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 |