CN114531398A - 一种报文转发的方法及相关装置 - Google Patents
一种报文转发的方法及相关装置 Download PDFInfo
- Publication number
- CN114531398A CN114531398A CN202011200672.9A CN202011200672A CN114531398A CN 114531398 A CN114531398 A CN 114531398A CN 202011200672 A CN202011200672 A CN 202011200672A CN 114531398 A CN114531398 A CN 114531398A
- Authority
- CN
- China
- Prior art keywords
- current
- network device
- network equipment
- address
- message
- 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
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
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文转发的方法及相关装置。该方法通过拥塞标志位来判断当前网络设备到候选网络设备的传输路径是否拥塞,从而找出不拥塞的传输路径,能够实时地检测链路状态并及时进行路径探测和切换。并且,本申请实施例可以通过候选网络设备的标识来避免环路问题。报文在转发过程中实时响应网络拥塞和故障状态,自动探测无拥塞路径转发,提高报文转发可靠性。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种报文转发的方法及相关装置。
背景技术
图1为传统报文转发过程中网络设备丢包的示意图。用户通过终端连接若干个网络设备,网络设备将终端上传的报文/数据包转发至各个服务器,完成终端与服务器之间的数据交互。由于网络设备转发性能有限,部分报文在转发过程中被丢弃。主要原因就是网络设备缓存溢出(buffer overflow),如多个端口进入的报文从一个端口出去,或者高速端口进入大量报文由低速端口转发,出端口无法及时将报文转发出去,大量报文在出端口缓存,导致出端口buffer溢出,无法缓存的报文被丢包。
网络设备丢包是一个非常严重的网络问题,可能导致严重的后果。例如用户在通过网络观看世界杯直播,视频数据的丢弃会导致画面延迟和卡顿,影响用户体验。
发明内容
本申请实施例提供了一种报文转发的方法及相关装置,能够主动寻找不拥塞路径,并避免环路问题。
第一方面,本申请实施例提供一种报文转发的方法,包括:若当前报文包含标识字段,则当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备,所述标识字段包括所述候选网络设备的标识,所述预设条件包括所述候选网络设备的拥塞标志位为第一预设值且所述候选网络设备的标识为第二预设值,所述拥塞标志位为第一预设值表示到所述候选网络设备的传输路径不拥塞,所述候选网络设备的标识为第二预设值表示所述当前报文没有被所述候选网络设备转发过;所述当前网络设备向所述下一跳网络设备转发所述当前报文。
结合第一方面,在本申请实施例的一种实现方式中,所述方法还包括:若所述候选网络设备中没有符合预设条件的所述下一跳网络设备,则所述当前网络设备向上一跳网络设备转发所述当前报文,所述当前报文来自所述上一跳网络设备。
结合第一方面,在本申请实施例的一种实现方式中,所述当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备之后,所述方法还包括:所述当前网络设备根据所述当前报文的目标互联网协议IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址增加引流表项;或所述当前网络设备根据所述当前报文的目标IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址修改引流表项;其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述当前网络设备修改为与选择的所述下一跳网络设备的地址相同,以使得所述当前网络设备根据所述引流表项中的所述下一跳网络设备地址向所述下一跳网络设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
结合第一方面,在本申请实施例的一种实现方式中,所述当前网络设备向上一跳网络设备转发所述当前报文之后,所述方法还包括:所述当前网络设备根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址增加引流表项;或所述当前网络设备根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址修改引流表项;其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述当前网络设备修改为与所述上一跳网络设备的地址相同,以使得所述当前网络设备根据所述引流表项中的所述下一跳网络设备地址向所述上一跳设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
结合第一方面,在本申请实施例的一种实现方式中,所述方法还包括:若所述当前报文不包含标识字段,则所述当前网络设备查找与所述当前报文的目标IP地址前缀匹配的引流表项;若所述引流表项中的下一跳网络设备的拥塞标志位为第一预设值,则所述当前网络设备向下一跳网络设备发送所述当前报文;若所述引流表项中的下一跳网络设备的拥塞标志位为第三预设值,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备;其中,所述当前网络设备对应的标识设置为第四预设值表示所述当前报文被所述当前网络设备转发。
结合第一方面,在本申请实施例的一种实现方式中,所述方法还包括:若没有与所述当前报文的目标IP地址前缀匹配的所述引流表项,则所述当前网络设备判断最短路下一跳网络设备的拥塞标志位是否为所述第一预设值,所述最短路下一跳网络设备为转发表中的第一个所述候选网络设备;若是,则所述当前网络设备向所述最短路下一跳网络设备转发所述当前报文;若否,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备。
结合第一方面,在本申请实施例的一种实现方式中,所述候选网络设备的地址设置在转发表中,所述转发表建立的流程包括:所述当前网络设备从所述候选网络设备中选择一个作为最短路下一跳网络设备,所述最短路下一跳网络设备到达目标节点的路径最短;所述当前网络设备模拟到所述最短路下一跳网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个排序到所述最短路下一跳网络设备之后;所述当前网络设备模拟到当前排序的所有候选网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个进行排序,直到所有候选网络设备排序完毕。
第二方面,本申请实施例提供一种报文转发的装置,包括:接收模块,用于接收当前报文;处理模块,用于当所述当前报文包含标识字段时,从候选网络设备中选择符合预设条件的下一跳网络设备,所述标识字段包括所述候选网络设备的标识,所述预设条件包括所述候选网络设备的拥塞标志位为第一预设值且所述候选网络设备的标识为第二预设值,所述拥塞标志位为第一预设值表示到所述候选网络设备的传输路径不拥塞,所述候选网络设备的标识为第二预设值表示所述当前报文没有被所述候选网络设备转发过;发送模块,用于向所述下一跳网络设备转发所述当前报文。
结合第二方面,在本申请实施例的一种实现方式中,所述发送模块,还用于若所述候选网络设备中没有符合预设条件的所述下一跳网络设备,则向上一跳网络设备转发所述当前报文,所述当前报文来自所述上一跳网络设备。
结合第二方面,在本申请实施例的一种实现方式中,所述处理模块,还用于根据所述当前报文的目标互联网协议IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址增加引流表项;或所述处理模块,还用于根据所述当前报文的目标IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址修改引流表项;其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述处理模块修改为与选择的所述下一跳网络设备的地址相同,以使得所述发送模块根据所述引流表项中的所述下一跳网络设备地址向所述下一跳网络设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
结合第二方面,在本申请实施例的一种实现方式中,所述处理模块,还用于根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址增加引流表项;或所述处理模块,还用于根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址修改引流表项;其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述处理模块修改为与所述当前报文的所述上一跳网络设备的地址相同,以使得所述发送模块根据所述引流表项中的所述下一跳网络设备地址向所述上一跳设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
结合第二方面,在本申请实施例的一种实现方式中,所述处理模块,还用于:若所述当前报文不包含标识字段,则所述当前网络设备查找与所述当前报文的目标IP地址前缀匹配的引流表项;若所述引流表项中的下一跳网络设备的拥塞标志位为第一预设值,则所述当前网络设备向下一跳网络设备发送所述当前报文;若所述引流表项中的下一跳网络设备的拥塞标志位为第三预设值,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备;其中,所述当前网络设备对应的标识设置为第四预设值表示所述当前报文被所述当前网络设备转发。
结合第二方面,在本申请实施例的一种实现方式中,所述处理模块,还用于:若没有与所述当前报文的目标IP地址前缀匹配的所述引流表项,则判断最短路下一跳网络设备的拥塞标志位是否为所述第一预设值,所述最短路下一跳网络设备为转发表中的第一个所述候选网络设备;若是,则向所述最短路下一跳网络设备转发所述当前报文;若否,则将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备;其中,所述当前网络设备对应的标识设置为第四预设值表示所述当前报文被所述当前网络设备转发。
结合第二方面,在本申请实施例的一种实现方式中,所述候选网络设备的地址设置在转发表中,所述处理模块,还用于通过以下步骤建立所述转发表:从所述候选网络设备中选择一个作为最短路下一跳网络设备,所述最短路下一跳网络设备到达目标节点的路径最短;模拟到所述最短路下一跳网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个排序到所述最短路下一跳网络设备之后;模拟到当前排序的所有候选网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个进行排序,直到所有候选网络设备排序完毕。
第三方面,本申请实施例提供一种网络设备,所述网络设备包括一个以上处理器、存储器以及通信接口;所述存储器中存储有程序代码;所述处理器执行所述存储器中所述程序代码时实现第一方面的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求1至7任一所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例通过拥塞标志位来判断当前网络设备到候选网络设备的传输路径是否拥塞,从而找出不拥塞的传输路径,能够实时地检测链路状态并及时进行路径探测和切换。并且,本申请实施例可以通过候选网络设备的标识来避免环路问题。报文在转发过程中实时响应网络拥塞和故障状态,自动探测无拥塞路径转发,提高报文转发可靠性。
附图说明
图1为传统报文转发过程中网络设备丢包的示意图;
图2为本申请实施例的其中一个应用场景示意图;
图3为本申请实施例提供的报文转发的方法的示意图;
图4为本申请实施例中的网络设备名称关系示意图;
图5a为本申请实施例提供的网络设备传输示意图一;
图5b为本申请实施例提供的网络设备传输示意图二;
图6为本申请实施例报文计划转发的一种示意图;
图7为基于图6的实施例的一种传输路径图;
图8为基于图6的实施例的另一种传输路径图;
图9为本申请实施例中图8对应的信令图;
图10为本申请实施例提供的一种报文转发的方法的流程图;
图11为本申请实施例的原理解释图;
图12为本申请实施例提供的应用例示意图;
图13为本申请实施例提供的一种报文转发的装置的示意图;
图14为本申请实施例提供的一种网络设备结构示意图。
具体实施方式
本申请实施例提供了一种报文转发的方法及相关装置,能够主动寻找不拥塞路径,并避免环路问题。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
网络设备丢包是一个非常严重的网络问题,可能导致严重的后果。例如用户在通过网络观看世界杯直播,视频数据的丢弃会导致画面延迟和卡顿,影响用户体验。车间操作工人通过网络操作机器人完成某项工作,网络丢包导致操作工人的指令下发失败,机器人工作异常或效率降低。所以,本申请实施例主要目的是尽可能合理利用网络资源,避免buffer溢出,防止网络丢包。
当前防止网络丢包的方案有两种,一种是静态预规划,另一种是集中式规划。以下将对两种方案进行简单的描述。
静态预规划是指网络设备(网络节点)根据用户需求对某些关键链路、关键业务进行预留网络资源,生成备份链路,当主链路有丢包时切换到备份链路。基于多协议标签交换技术(multi-protocol label switching,MPLS)的流量工程(traffic engineering,TE)或者基于其他技术的流量工程就是一种静态预规划的实例,基于资源预留协议(resourcereservation protocol,RSVP)对现有网络资源进行调配和规划,对关键业务预留带宽等资源,提供服务质量(quality of service,QoS)保障。该方案通过监控网络中的流量和设备负载,调整流量管理参数、路由参数和资源约束参数等,优化网络资源的使用,避免负载不均衡导致的拥塞,解决网络中的流量拥塞以及资源分配不均问题。
然而,基于静态预留的方式只能提前规划路径,预留资源,不能根据网络中流量的实时变化进行动态调整,备份链路中网络无拥塞时是空载的,网络资源的利用率不高。
而集中式规划是指在软件定义网络(software-defined networking,SDN)场景中,控制器集中监控收集网络中所有节点拥塞信息,基于网络拓扑集中规划业务路径。控制器和数据转发设备协调完成拓扑及节点状态收集、路径规划和下发。控制器负责收集和汇总拓扑及状态信息,规划路径,完成路径下发,同时记录当前网络中所有转发设备的资源状态等。转发设备一方面通过扩展内部网关协议(interior gateway protocol,IGP)协议收集网络拓扑信息,上报到控制器;另一方面扩展IGP协议负责分配标签(节点标签、邻接标签等),并将分配的标签上报给控制器;同时,当控制器规划好路径后,转发器根据控制器规划的路径转发报文。
然而,集中式规划的实时性不能满足需求,很多的网络拥塞是瞬时的,通过控制器集中收集,规划和下发,拥塞状态可能已经发生变化,无法及时调整。另外,集中收集信息需要占用带宽,控制器端的网络带宽会成为瓶颈。
有鉴于此,本申请实施例提供一种报文转发的方法及相关装置,能够主动寻找不拥塞路径,并指导后续报文按照不拥塞路径进行后续报文的转发。以下将对本申请实施例提供的报文转发的方法进行详细的描述。
图2为本申请实施例的其中一个应用场景示意图。在本申请实施例的其中一个应用场景中,用户终端连接到网络设备A后,经过因特网内容提供商(internet contentprovider,ICP)网络,访问软件定义网络(software-defined networking,CDN)服务器。该ICP网络中包括有网络设备A、网络设备B、网络设备C、网络设备D、网络设备E、网络设备F、网络设备G、网络设备H、网络设备J、网络设备K等,在实际应用中,还可能包括其他网络设备,本申请实施例对网络设备的数量不做限定。这些网络设备也可以称为网络节点、节点等,具体可以是路由器、交换机等能够转发报文的设备。本申请实施例实际上可以应用到各种不同类型的数据通信网路场景中,例如广域网、城域网、企业内部局域网络、移动通信等网络,本申请实施例对此不做限定。
如图2所示,示例性的,报文从网络设备A开始转发,经过网络设备B和网络设备C,发现从网络设备C到网络设备D的传输路径拥塞,则在传统技术中,报文无法按时转发,甚至导致buffer溢出和网络丢包。因此,此时需要应用本申请实施例提供的报文转发方法,重新搜索不拥塞的传输路径。本申请实施例提供的方法可以使得网络设备C将报文返回转发至网络设备B。然后网络设备B寻找到网络设备G的传输路径不拥塞,并将报文转发至网络设备G。以此类推报文依次经过网络设备B、网络设备G、网络设备F、网络设备E,最后转发到SDN服务器。
为了实现图2类似的技术效果,网络设备接收到报文后,可以执行本申请实施例提供的报文转发的方法,从而将报文转发至SDN服务器。图3为本申请实施例提供的报文转发的方法的示意图。该方法流程包括:
301、当前网络设备接收来自上一跳网络设备的当前报文。
图4为本申请实施例中的网络设备名称关系示意图。在本申请实施例中,三个网络设备之间传输报文,以一个报文的传输过程为例,当该报文传输到图4中间的网络设备时,该网络设备处理该报文,则该网络设备可以称为当前网络设备,该报文可以称为当前报文。向当前网络设备发送报文的网络设备可以称为上一跳网络设备,而当前网络设备准备转发报文的目标可以称为下一跳网络设备。
本申请实施例实际上可以应用于所有数据的转发,转发报文仅是其中一种应用场景,本申请实施例还可以适用于转发数据包、转发数据单元等,本申请实施例对此不做限定。为方便描述,本申请实施例以转发报文为例进行描述。
当前网络设备接收到来自上一跳网络设备的当前报文后,可以执行步骤302。
302、若当前报文包含标识字段,则当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备。
在本申请实施例中,标识字段(N bit bitmap段)包括若干个候选网络设备的标识,候选网络设备的标识为预设值(本申请实施例以0为例)表示当前报文没有被候选网络设备转发。示例性的,[010100000000]的标识字段表示对应传输路径的网络设备的标识分别为0、1、0、1、0、0、0、0、0、0、0、0。因此,示例性的,传输路径的第一个网络设备的标识为0,表示该第一个网络设备没有转发过当前报文。第二个网络设备的标识为1,标识该第二个网络设备转发过当前报文。为了防止报文传输出现环路问题,当前网络设备不向转发过当前报文的网络设备发送当前报文,因此预设条件中包括:候选网络设备的标识为预设值(即0,表示网络设备没有转发过当前报文)。
在实际应用中,标识字段中的标识还可以根据实际情况具体设定,例如采用候选网络设备的ID、IP地址等来表示该候选网络设备转发过当前报文,又例如没有某一候选网络设备的标识来表示该候选网络设备没有转发过当前报文,本申请实施例对此不做限定。
图5a为本申请实施例提供的网络设备传输示意图一。若当前报文的传输路径为从网络设备1依次传输到网络设备8,则当前报文携带的标识字段[01010000]中的标识分别是网络设备1至8的标识。
图5b为本申请实施例提供的网络设备传输示意图二。当前报文的传输路径为网络设备1、网络设备2、网络设备3和网络设备4,且该ICP网络中共有10个网络设备(即网络设备1至10)。因此当前报文的标识字段可以是[0100000000],表示网络设备1至10对应的标识。
可以理解的是,网络设备可以建立标识字段中的标识与对应的网络设备地址之间的映射,以确定该标识属于哪个网络设备。如图5b的示例中,标识字段[0100000000]的第一个标识与网络设备1的地址可以建立映射关系,从而表示该第一个标识是网络设备1对应的标识。在实际应用中也可以采用其他方式来确定标识字段中的标识属于哪个网络设备,例如通过目标IP地址前缀等,本申请实施例对此不做限定。
可以理解的是,标识所对应的预设值的具体设定值及其含义可以根据实际需要进行不同的设定,本申请实施例对此不做限定。
在本申请实施例中,预设条件除了可以包括上述的“候选网络设备的标识为预设值”之外,该预设条件还可以包括“候选网络设备的拥塞标志位为预设值”。可以理解的是,两个预设条件中的预设值是含义不同的预设值,可以分别进行不同的设定,本申请实施例对此不做限定。
拥塞标志位(Blocking flag)为预设值(本申请实施例以0为例)表示当前网络设备到该候选网络设备的传输路径不拥塞。同理,拥塞标志位为非预设值(例如1)则表示当前网络设备到该候选网络设备的传输路径拥塞。在实际应用中,拥塞标志位也可以用其他预设值及其含义来表达,例如Yes代表拥塞,No代表不拥塞。
当前网络设备可以从拓展的转发表(forwarding info base,FIB)中找到拥塞标志位的值。图6为本申请实施例报文计划转发的一种示意图。该报文从节点3开始转发,目的是转发到节点7。则节点2接收到当前报文后,可以从如表1的拓展的转发表找到目的IP地址前缀(DIP prefix;destination IP address,DIP;internet protocol,IP)。可以理解的是,在一个拓扑中,网络设备的控制面可以统一对拓扑中的所有网络设备进行统一编号,从而得到节点0、节点1、节点2……。表1为本申请实施例提供的拓展转发表的一种示例。该拓展转发表存储在节点2中,因此节点2可以直接读取获得。在实际应用中,该拓展转发表可以以其他形式存储,本申请实施例对此不做限定。
表1
DIP prefix | Next-hop | Blocking flag | K backup next-hop |
7 | 6 | 1 | 9/1 |
8 | 9 | 0 | 6/1 |
0 | 1 | 0 | 6/9 |
… | … | … | … |
由表1可见以节点7为目标的当前报文的下一跳是节点6,但是节点6的拥塞标志位是1,说明当前网络设备(节点2)到节点6的传输路径拥塞,报文应该另外寻找其他的不拥塞路径。表1中,最短路下一跳(Next-hop)和K个备份下一跳(K backup next-hop)都属于候选网络设备,节点2首先判断最短路下一跳是否符合预设条件,若不符合条件再继续依次判断备份下一跳是否符合预设条件。图7为基于图6的实施例的一种传输路径图。如图7所示,节点2判断节点6不符合预设条件后,节点2继续判断节点9是否符合预设条件。从表1可以看出,节点9的拥塞标志位为0,说明节点2到节点9的传输路径不拥塞,则节点2可以确定节点9为下一跳网络设备。下一步节点2可以将当前报文转发至节点9。
可以理解的是,表1为基于传统转发表拓展的转发表。网络设备可以对传统转发表进行扩展,为每个DIP Prefix增加1bit拥塞标志位和k个备份下一跳。备份下一跳计算方法是:节点首先模拟最短路下一跳故障,基于SPF算法计算生成第1个备份下一跳;再模拟最短路下一跳和第1个备份下一跳均故障,计算生成第2个备份下一跳;依次类推,直至生成第k个备份下一跳。因此,备份下一跳和最短路下一跳实际上可以按照到目标节点的路径长短进行排序。该路径越短,在转发表中的排序越靠前,则当前网络设备从靠前的路径开始搜寻不拥塞路径,以减少寻找路径过程中的时延。在实际应用中,当前网络设备还可以通过其他算法以实现上述排序,本申请实施例对此不做限定。
转发表的最短路下一跳和k个备份下一跳由网络设备的控制面同时计算并下发。此外,网络设备还可以实时更新转发表。
在一些实施例中,若当前报文没有标识字段,则当前网络设备可以从引流表中寻找匹配的引流表项,并按照引流表项对应的下一跳网络设备来转发当前报文。若引流表项对应的网络设备拥塞(根据拥塞标志位判断),则当前网络设备可以将初始化的标识字段(初始化即所有标识初始化为0)插入当前报文中,并按照步骤302处理。若没有相匹配的引流表项,则当前网络设备可以判断最短路下一跳网络设备是否拥塞(根据拥塞标志位判断),若是拥塞,则当前网络设备可以将初始化的标识字段(初始化即所有标识初始化为0)插入当前报文中,并按照步骤302处理。
在另一些实施例中,若当前报文没有标识字段,则当前网络设备可以直接将初始化的标识字段插入当前报文中,并按照步骤302处理。在另一些实施例中,若当前报文没有标识字段,则当前网络设备可以按照传统的报文转发方式进行转发。在实际应用中,这两种实现方式效果不好,一般不会采用,但也可以为了节省系统资源进行实施,本申请实施例对此不做限定。
303、当前网络设备向下一跳网络设备转发当前报文。
如图7所示,当前网络设备(节点2)向节点9发送当前报文后,节点9继续执行本申请实施例提供的报文转发的方法,找到节点8为下一跳网络设备。节点8继续找到节点6符合预设条件,节点6继续找到节点7符合预设条件,最终将当前报文转发至节点7。
在实际应用中,节点2将当前报文转发至节点9后,实际上已经躲开了拥塞路径,因此节点9实际上也可以按照本申请实施例以外的其他方式将当前报文转发至节点7,本申请实施例对此不做限定。
在一些实施例中,当前网络设备向下一跳网络设备转发当前报文之前,当前网络设备还可以将当前报文携带的标识字段中,与当前网络设备对应的标识修改为1,表示该当前报文被当前网络设备转发过。则当前报文之后到达的网络设备将认为当前网络设备不符合预设条件(因为标识为1),因此避免了环路问题的发生。
本申请实施例通过拥塞标志位来判断当前网络设备到候选网络设备的传输路径是否拥塞,从而找出不拥塞的传输路径。并且,本申请实施例可以通过候选网络设备的标识来避免环路问题。
在一些实施例中,当前网络设备对于每个当前报文接收后,可以执行如前述图3对应的步骤301、步骤302以及步骤303。在另一些实施例中,当前网络设备接收到的后续报文一般没有标识字段,则当前网络设备可以从引流表中寻找匹配的引流表项,并按照引流表项对应的下一跳网络设备来转发当前报文。若引流表项对应的网络设备拥塞(根据拥塞标志位判断),则当前网络设备可以将初始化的标识字段(初始化即所有标识初始化为0)插入当前报文中,并按照步骤302处理。若没有相匹配的引流表项,则当前网络设备可以判断最短路下一跳网络设备是否拥塞(根据拥塞标志位判断),若是拥塞,则当前网络设备可以将初始化的标识字段(初始化即所有标识初始化为0)插入当前报文中,并按照步骤302处理。因此,在该实施例中,当前网络设备执行步骤302时,当前网络设备还可以增加或修改引流表项,以指导后续报文的转发,具体如下:
若当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备,则当前网络设备可以先从引流表中查找当前报文对应的引流表项,然后修改对应的引流表项。示例性的,表2为本申请实施例提供的引流表的一种示例。可以理解的是,引流表中的每一行表示一个引流表项,其中一个引流表项包括三个参数,分别是DIP prefix、Next-hop和Last-hop的具体值。
表2
DIP prefix | Next-hop | Last-hop |
7 | 6 | 3 |
8 | 9 | 3 |
… | … | … |
对于以节点7为目标的当前报文,原定其下一跳为节点6,从而到达节点7,如图6所示。然而,当前网络设备(节点2)接收到该当前报文后,发现到节点6的传输路径拥塞,重新寻找了节点9作为下一跳。那么,当前网络设备则可以在其引流表中找到当前报文对应的引流表项,并将下一跳(Next-hop)修改为节点9,使得后续报文到达当前网络设备(节点2)时,由于其没有携带标识字段,因此后续报文会按照引流表的指示直接判断到节点9的传输路径是否拥塞,若不拥塞则向节点9传输该后续报文。在另一些实施例中,当前网络设备在引流表中没有找到当前报文匹配的引流表项,则当前网络设备可以新增该当前报文对应的引流表项,并将下一跳(Next-hop)修改为节点9。在一些情况中,当前网络设备中没有引流表,则当前网络设备可以创建引流表并创建引流表项,本申请实施例对此不做限定。
对于后续报文,在一些可能的情况中,当前网络设备(节点2)检测到节点9的传输路径同样拥塞,则当前网络设备(节点2)可以将初始化的标识字段(初始化即所有标识初始化为0)插入后续报文中,并按照步骤302处理。
对于后续报文,在一些可能的情况中,当前网络设备(节点2)没有在引流表中找到后续报文对应的引流表项时,当前网络设备(节点2)可以根据转发表判断最短路下一跳网络设备是否拥塞(根据拥塞标志位判断),若是拥塞,则当前网络设备可以将初始化的标识字段(初始化即所有标识初始化为0)插入后续报文中,并按照步骤302处理。若是不拥塞,则当前网络设备可以向最短路下一跳网络设备转发该后续报文。
在通常情况下,如图7所示,当前报文在节点2遇到了到节点6拥塞的情况下,可以按照本申请实施例的方法自动依次找到节点9、节点8和节点6,最后到达节点7。而在网络出现多处拥塞的时候,节点9周围的节点传输路径都出现了拥塞,则节点9可以将当前报文回退至节点2,具体步骤如下:
节点9接收到当前报文后,确定当前报文包含标识字段(由节点2插入到当前报文中的),则节点9可以将标识字段中节点9对应的标识设置为1(本步骤在当前报文从节点9转发出去之前执行即可),然后节点9可以根据节点9的拓展转发表,逐个判断候选网络设备(包括最短路下一跳网络设备以及所有备份下一跳网络设备)是否拥塞。当节点9查找到不拥塞的节点后,可以将当前报文转发至该不拥塞的节点。当节点9没有找到不拥塞的节点,说明节点9所对应的所有传输路径都拥塞了,则节点9可以将当前报文返回至节点2,如图8所示,图8为基于图6的实施例的另一种传输路径图。同时,节点9还可以新增/修改引流表项,将引流表项中的下一跳设置为节点2,使得后续报文到达节点9时可以回退到节点2。
因此,根据图8所示的报文转发路径示意图可知,当前报文到达节点2后,节点2发现到节点6的传输路径拥塞,并将当前报文转发至不拥塞的节点9。节点9接收到当前报文后,发现节点9到节点8的传输路径也拥塞,并且节点9没有其他不拥塞的路径可以转发该当前报文,因此节点9将该报文转发回到节点2。节点2重新找到不拥塞的节点1来传输该当前报文。具体流程如图9所示。图9为本申请实施例中图8对应的信令图。包括以下流程:
901、节点2接收报文P。
在本申请实施例中,报文P需要从图8中的节点3传输到节点7,因此报文P首先从节点3传输到节点2。节点2接收到该报文P后,可以进行相应的处理。
902、节点2检测到节点6的传输路径拥塞,将N bit bitmap段添加到报文P,并将节点2对应的bit置1,查找符合θ条件的下一跳。
在本申请实施例中,节点2接收到报文P之后,可以首先检查报文P中是否包括Nbit bitmap段(即上述实施例的标识字段)。由于报文P时由节点3畅通无阻地到达节点2,其没有携带N bit bitmap段,因此节点2寻找是否有报文P对应的引流表项。假设报文P是向节点7传输的首个报文,那么引流表中没有该报文P对应的引流表项。然后,节点2继续根据拓展的转发表确定最短路下一跳(节点6)的传输路径是否拥塞。
在本申请实施例中,节点2检测到节点6的传输路径拥塞,则节点2将N bit bitmap段(初始化,全部置0)添加到报文P,并将节点2对应的bit(即标识字段中节点2对应的标识)置1,因此,除了节点2对应的bit外,其他bit都是0。可以理解的是,N bit bitmap段具体可以是一段字段,包括N个位,每个位对应一个节点,这N个位可以是0或者1,其中,0表示报文P没有在对应的节点转发过,1表示报文P在对应的节点转发过。
然后,节点2可以在转发表中逐个判断备份下一跳(或称候选网络设备)是否符合θ条件。此处,θ条件为该备份下一跳对应的bit为0(或者不为1)且拥塞标志位为0。表1实际上可以为节点2的转发表示例。可见看出,节点6对应的拥塞标志位为1,说明节点2到节点6的传输路径拥塞。并且,报文P是要传输到节点7的,因此与DIP prefix为7的行(即第一行)对应,其对应的备份下一跳是9和1,因此节点2继续检测节点9是否符合θ条件。
903、节点2检测到节点9符合θ条件,新建报文P对应的引流表项。
在本申请实施例中,在节点2首次处理报文P时,节点9对应的bit为0,且拥塞标志位为0,因此节点9符合θ条件。
并且,节点2可以新建报文P对应的引流表项(步骤902中没有报文P对应的引流表项,因此需要建立)。示例性的,该引流表项为DIP prefix等于7,Next-hop为9,Last-hop为3。后续相同目标的报文到达节点2时,能够直接按照引流表转发。
904、节点2向节点9转发报文P。
在本申请实施例中,节点2可以根据节点9的IP地址向节点9转发报文P。
905、节点9接收到报文P后,继续查找不拥塞的传输路径。
在本申请实施例中,节点9接收到报文P后,检查到报文P携带有N bit bitmap段,则节点9将N bit bitmap段中节点9对应的bit置1。然后节点9根据节点9的拓展转发表查找备份下一跳(节点8)是否拥塞。根据图8的示意图可以看出,节点9到节点8的传输路径拥塞,不符合θ条件。因此节点9实际上没有找到符合θ条件的下一跳。
当节点9没有找到符合θ条件的下一跳时,节点9在节点9的引流表中增加报文P对应的引流表项,该引流表项为DIP prefix等于7,Next-hop为2,Last-hop为2。并且,节点9可以向节点2回退该报文P。
906、节点9向节点2回退报文P。
在本申请实施例中,节点9可以根据节点2的IP地址将报文回退至节点2。可以理解的是,由于节点9没有找到不拥塞的路径,因此节点9实际上是“死胡同”,要找到不拥塞的路径,节点9可以将报文P回退至节点2,因为节点2中还有没有检查过的传输路径(即节点2到节点1的传输路径)。
907、节点2重新查找符合θ条件的下一跳。
在本申请实施例中,节点2实际上是第二次接收到了报文P。节点2可以先检查报文P是否携带N bit bitmap段。可知,该报文P携带N bit bitmap段,并且N bit bitmap段中节点2和节点9对应的bit都是1。
然后,节点2可以根据节点2的拓展转发表依次寻找报文P的符合θ条件的下一跳。具体地,节点2首先检查最短路下一跳(节点6)的拥塞标志位为1,不符合θ条件。然后检查备份下一跳(节点9)的bit为1,不符合θ条件。最后检查备份下一跳(节点1)的拥塞标志位为0且bit为0,因此节点2选择符合θ条件的下一跳为节点1。
908、节点2向节点1转发报文P。
在本申请实施例中,节点2可以根据节点1的IP地址向节点1转发报文P。
909、节点1检测到节点0符合θ条件。
在本申请实施例中,节点1接收到报文P后,检查到该报文P携带N bit bitmap段,并且N bit bitmap段中节点2和节点9对应的bit都是1。此时节点1可以将报文P的N bitbitmap段中,节点1对应的bit置1。
然后,节点1可以根据节点1的拓展转发表依次寻找报文P的符合θ条件的下一跳。而节点0是符合θ条件的下一跳。因此,节点1可以确定符合θ条件的下一跳为节点0。
并且,节点1可以查找节点1的引流表中是否有该报文P匹配的引流表项,若有,则将其下一跳修改为节点0,若没有,则增加引流表项,该引流表项的下一跳为节点0。
910,、节点1向节点0转发报文P。
可以理解的是,节点1可以根据节点0的IP地址向节点0转发报文P。
在本申请实施例中,节点0接收到报文P后,同样检查报文P是否携带N bit bitmap段,具体与步骤909和步骤910类似,此处不再赘述。最终报文P依次经过节点4、节点6到达节点7。
因此,综合上述节点2和节点9的步骤,本申请实施例提供的一种报文转发的方法的一种最佳实现方式如图10所示。图10为本申请实施例提供的一种报文转发的方法的流程图。该方法由当前网络设备执行,包括以下步骤:
1001、当前网络设备接收当前报文,检查当前报文是否携带标识字段。
在本申请实施例中,当前网络设备接收到当前报文后,首先检查当前报文是否携带标识字段(N bit bitmap段)。该标识字段与前述实施例类似,此处不再赘述。携带标识字段,表示该当前报文处于“正在寻找不拥塞路径”的状态。不携带标识字段,表示该当前报文处于“按照引流表或转发表进行转发”的状态。
根据当前报文是否携带标识字段,分为以下两种处理流程:
一、当前报文没有携带标识字段,则执行步骤1002及后续步骤:
1002、当前网络设备查找引流表中是否有与当前报文匹配的引流表项。
可以理解的是,匹配的含义可以是指引流表项的DIP prefix与当前报文的参数相同。若能够查找到匹配的引流表项,则当前网络设备可以执行步骤1003。若不能够查找到匹配的引流表项,则当前网络设备可以执行步骤1003。
1003、当前网络设备检测引流表项对应的传输路径是否拥塞。
当前网络设备可以根据匹配到的引流表项中的Next-hop确定下一跳。然后当前网络设备根据转发表中该下一跳对应的拥塞标志位,确定当前网络设备到达下一跳的传输路径是否拥塞。若拥塞,则执行步骤1006,若不拥塞,则执行步骤1004。
1004、当前网络设备按照确定的下一跳对当前报文进行转发。
一种情况下,当前网络设备根据匹配的引流表项的Next-hop,且该Next-hop对应的拥塞标志位为0,确定下一跳为Next-hop。则当前网络设备可以向Next-hop转发该当前报文。
另一种情况下,当前网络设备确定最短路下一跳不拥塞,则当前网络设备可以向最短路下一跳转发该当前报文。
1005、当前网络设备检测最短路下一跳是否拥塞。
当前网络设备可以根据拓展的转发表来确定最短路下一跳是否拥塞。具体地,最短路下一跳和拥塞标志位都能在转发表中查到,且拥塞标志位能够通过当前网络设备的控制面进行实时更新或者间隔时间段更新,本申请实施例对此不做限定。
若当前网络设备检测到最短路下一跳不拥塞,则可以执行步骤1004,否则执行步骤1006。
1006、当前网络设备将标识字段添加到当前报文中。
具体地,当前网络设备可以将标识字段添加到当前报文的头部。在实际应用中,当前网络设备也可以将标识字段添加到当前报文的尾部等,本申请实施例对标识字段在当前报文中具体位置不做限定。
标识字段添加到当前报文时的状态是初始化的。即标识字段中的所有标识都是初始值0。
当前网络设备将标识字段添加到当前报文中之后,可以执行步骤1007,即按照当前报文携带标识字段的方式进行处理。
二、当前报文携带标识字段,则执行步骤1007及后续步骤;
1007、当前网络设备将标识字段中当前网络设备对应的标识置1。
在本申请实施例中,当前网络设备将其对应的标识置1,说明该当前报文在当前网络设备执行“寻找不拥塞路径”的步骤,那么当前报文在其他网络设备执行该“寻找不拥塞路径”的步骤时,认为当前网络设备不符合θ条件,从而防止了环路问题。
1008、当前网络设备查找符合θ条件的下一跳。
在本申请实施例中,当前网络设备可以根据拓展的转发表来查找符合θ条件的下一跳。一般地,符合θ条件即下一跳的拥塞标志位为0且bitmap标识为0。其中,拥塞标志位可以在拓展的转发表中查询,下一跳对应的标识可以在当前报文的标识字段中找到。
若当前网络设备能够查找到符合条件的下一跳,则执行步骤1009,否则执行步骤1012。
1009、当前网络设备在引流表中查找与当前报文匹配的引流表项。
为了指示后续报文的传输,当前网络设备还会查找与当前报文匹配的引流表项,通过新增/修改引流表项的方式指示后续报文的传输。
在本申请实施例中,当前网络设备确定符合θ条件的下一跳后,查找与当前报文匹配的引流表项。具体地,当前网络设备可以检查引流表项的DIP prefix是否与当前报文的目标节点匹配。
若当前网络设备能够查找到匹配的引流表项,则执行步骤1010,否则执行步骤1011。
1010、当前网络设备修改匹配的引流表项,向该符合θ条件的下一跳转发当前报文。
在本申请实施例中,当前网络设备找到了匹配的引流表项后,由于重新确定了符合θ条件的下一跳,因而可以对引流表项进行更新,使得后续的报文可以按照更新后的引流表项向符合θ条件的下一跳转发。
具体修改可以为,当前网络设备将匹配的引流表项的Next-hop修改为符合θ条件的下一跳。
然后,当前网络设备可以向符合θ条件的下一跳转发当前报文,完成本次流程。
1011、当前网络设备增加引流表项,向该符合θ条件的下一跳转发当前报文。
在本申请实施例中,当前网络设备可以新增引流表项,使得后续的报文可以按照更新后的引流表项向符合θ条件的下一跳转发。其中,该新增的引流表项Next-hop可以为符合θ条件的下一跳。
然后,当前网络设备可以向符合θ条件的下一跳转发当前报文,完成本次流程。
1012、当前网络设备在引流表中查找与当前报文匹配的引流表项。
在本申请实施例中,当没有满足θ条件的下一跳时,该节点实际上到其他节点的传输路径都拥塞或是环路,因此该节点实际上无法完成不拥塞的传输。本申请实施例的方法规定其将报文回退至上一跳,以重新寻找其他不拥塞的传输路径。
在一些实施例中,若报文无法回退至上一跳,或者回退次数达到某阈值,又或者是其他规定的情况,则当前网络设备可以继续按照拥塞路径传输报文,以防止系统出现错误宕机或卡顿。
为了指示后续报文的传输,当前网络设备还会查找与当前报文匹配的引流表项,通过新增/修改引流表项的方式指示后续报文的传输。
若当前网络设备能够查找到匹配的引流表项,则执行步骤1014,否则执行步骤1013。
1013、当前网络设备增加引流表项,将当前报文回退至上一跳。
在本申请实施例中,当前网络设备可以新增引流表项,使得后续的报文可以按照更新后的引流表项向上一跳转发。示例性的,当前网络设备可以将新增的引流表项的Next-hop指定为与Last-hop相同。
然后,当前网络设备可以向上一跳转发当前报文,完成本次流程。
1014、当前网络设备修改匹配的引流表项,将当前报文回退至上一跳。
在本申请实施例中,当前网络设备找到了匹配的引流表项后,由于确定了需要将当前报文回退至上一跳,因而可以对引流表项进行更新,使得后续的报文可以按照更新后的引流表项向上一跳转发。
具体修改可以为,当前网络设备将匹配的引流表项的Next-hop修改为与Last-hop相同。
然后,当前网络设备可以向上一跳转发当前报文,完成本次流程。
综合上述流程可知,当每个网络设备都执行上述流程时,当前报文可以自动往不拥塞的路径转发。因此本申请实施例提供的方案实际上是实时路径探测,保证报文可靠转发。本申请实施例提供的方案不需要提前预规划路径,预留网络资源,提高了网络资源利用率。并且,本申请实施例能更加实时地检测链路状态并及时进行路径探测和切换,避免丢包。
报文在转发过程中实时响应网络拥塞和故障状态,自动探测无拥塞/故障路径转发,提高报文转发可靠性。全网分布式利用网络buffer资源,提高buffer资源利用率,提升全网吞吐量。
图11为本申请实施例的原理解释图。为方便理解,下面结合图11解释本申请方案的原理。本申请方案的理论基础是基于图深度优先遍历算法,报文转发时优先沿着一个方向一直走到头,然后沿原路回退找到新方向,再沿着新方向一直走到底。如图11所示,以A为源点的遍历顺序为:A->B->C->B->E->A->D->F->G。本方法选择深度优先遍历,同时采用沿着最短路径往下搜索,可以最大化减少因报文回退产生的时延。
报文转发过程中,当检测到最短路径拥塞时,首包报文在网络中进行无环遍历,寻找不拥塞路径,并在沿途设备创建快速转发表指导后续报文转发。首包报文头携带bitmap记录所经过设备,遍历不在bitmap中的设备,防止报文环路。遍历顺序是优先沿着最短路径,最短路径拥塞时按照次短、次次短顺序依次遍历,尽量减少因绕路增加的时延。
图12为本申请实施例提供的应用例示意图。在SRv6场景中,报文基于SRv6转发。示例性的,某些报文的源节点为1,目的节点为9,数据流的原SR标签栈为[1,2,3,4,8,9],2-3段为严格路径,4-8段为松散路径。因此,无拥塞下的默认转发路径为:1-2-3-4-5-6-7-8-9。当首个报文(首包)到达节点2时,节点2依次执行步骤1001、步骤1002和步骤1005,检测到节点2到节点3的路径拥塞,则节点2在首包的报文头中SRH进行扩展携带bitmap,并将节点2对应的标识置1,得到携带标识字段为[0100000000000]的首包。然后节点2在SR栈顶插入备份下一跳10,即SR标签栈更新为[10,3,4,8,9]。此时节点2实际上执行了步骤1006、步骤1007、步骤1008、步骤1009、步骤1011。新增了引流表,用于指示后续报文转发至节点10。
节点10接收到该首包后,依次执行步骤1001、步骤1007、步骤1008、步骤1009和步骤1011,从而建立引流表项,并将首包转发到节点3。此时由于节点10执行了步骤1007,将节点10对应的标识置1,因此首包的标识字段为[0100000001000],即图12中节点3接收到的示例。
节点3和节点4执行的步骤与节点10所执行的步骤类似,此处不再赘述。
节点5首次接收到该首包后,依次执行步骤1001、步骤1007、步骤1008、步骤1009和步骤1011,从而建立引流表项,并将首包转发到节点6。此时首包的标识字段为[0111100001000],即图12中节点6接收到的示例。
节点6接收到该首包后,依次执行步骤1001、步骤1007、步骤1008,发现节点6到节点7的传输路径也拥塞,节点7不符合θ条件。因此节点6进一步执行步骤1012、步骤1013,将首包回退至节点5。此时首包的标识字段为[0111110001000]。
节点5第二次接收到该首包后,依次执行步骤1001、步骤1007、步骤1008,此时由于节点6执行了步骤1007,因而节点6对应的标识为1,使得节点6不符合θ条件,防止了首包再次转发到节点6。然后节点5在SR栈顶插入备份下一跳11,即SR标签栈更新为[11,8,9]。节点5实际上执行了步骤1001、步骤1007、步骤1008、步骤1009和步骤1010,将引流表项的Next-hop从节点6修改为节点11。然后节点5将该首包转发至节点11。此时首包的标识字段为[0111110001000],即图12中节点11接收到的示例。
节点11接收到该首包后,依次执行步骤1001、步骤1007、步骤1008、步骤1009和步骤1011,从而建立引流表项,并将首包转发到节点12。与前述节点10所执行的步骤类似,此处不再赘述。
节点12、节点14和节点8执行的步骤与节点10所执行的步骤类似,此处不再赘述。
最后,节点8将首包转发到节点9。
对于后续报文(后续包),节点2接收到该后续包后,依次执行步骤1001、步骤1002、步骤1003、步骤1004,即可按照引流表项的指示将后续包从节点2转发到节点10。同理节点10、节点3、节点4、节点5、节点11、节点12、节点13、节点8也能按照引流表项顺利完成转发。
当拓扑中某一节点的传输路径突然发生拥塞时,根据图10对应的处理流程,网络设备会对某个后续包按照类似上述首包的处理方式重新寻找不拥塞的路径,寻找到不拥塞的路径后即可通过引流表项指示后续包按照该不拥塞路径转发。
图13为本申请实施例提供的一种报文转发的装置的示意图。该报文转发的装置包括:
接收模块1301,用于执行如前述图3对应的各个实施例中的步骤301,或执行前述图9对应的各个实施例中的步骤901。
处理模块1302,用于执行如前述图3对应的各个实施例中的步骤302,或执行前述图9对应的各个实施例中的步骤902、步骤903、步骤905、步骤907、步骤909,或执行前述图10对应的各个实施例中的所有步骤;
发送模块1303,用于执行如前述图3对应的各个实施例中的步骤303,或执行前述图9对应的各个实施例中的步骤904、步骤906、步骤908、步骤910。
图14为本申请实施例提供的一种网络设备结构示意图,该网络设备1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1401(例如,一个或一个以上处理器)和存储器1402,一个或一个以上存储应用程序1433或数据1432的存储介质1403(例如一个或一个以上海量存储设备)。其中,存储器1402和存储介质1403可以是短暂存储或持久存储。存储在存储介质1403的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备中的一系列指令操作。更进一步地,中央处理器1401可以设置为与存储介质1403通信,在网络设备1400上执行存储介质1403中的一系列指令操作。
网络设备1400还可以包括一个或一个以上电源1404,一个或一个以上有线或无线网络接口1405,一个或一个以上输入输出接口1406,和/或,一个或一个以上操作系统1431,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由网络设备(或节点)所执行的步骤可以基于该图14所示的网络设备结构。具体地,CPU1401可以执行上述图3对应的实施例中的所有步骤。在一些实施例中,CPU1401中的模块可以包括如上述图13对应的实施例中的接收模块1301、处理模块1302以及发送模块1303等,本申请实施例对此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种报文转发的方法,其特征在于,包括:
若当前报文包含标识字段,则当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备,所述标识字段包括所述候选网络设备的标识,所述预设条件包括所述候选网络设备的拥塞标志位为第一预设值且所述候选网络设备的标识为第二预设值,所述拥塞标志位为第一预设值表示到所述候选网络设备的传输路径不拥塞,所述候选网络设备的标识为第二预设值表示所述当前报文没有被所述候选网络设备转发过;
所述当前网络设备向所述下一跳网络设备转发所述当前报文。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述候选网络设备中没有符合预设条件的所述下一跳网络设备,则所述当前网络设备向上一跳网络设备转发所述当前报文,所述当前报文来自所述上一跳网络设备。
3.根据权利要求1或2所述的方法,其特征在于,所述当前网络设备从候选网络设备中选择符合预设条件的下一跳网络设备之后,所述方法还包括:
所述当前网络设备根据所述当前报文的目标互联网协议IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址增加引流表项;或
所述当前网络设备根据所述当前报文的目标IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址修改引流表项;
其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述当前网络设备修改为与选择的所述下一跳网络设备的地址相同,以使得所述当前网络设备根据所述引流表项中的所述下一跳网络设备地址向所述下一跳网络设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
4.根据权利要求2所述的方法,其特征在于,所述当前网络设备向上一跳网络设备转发所述当前报文之后,所述方法还包括:
所述当前网络设备根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址增加引流表项;或
所述当前网络设备根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址修改引流表项;
其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述当前网络设备修改为与所述当前报文的所述上一跳网络设备的地址相同,以使得所述当前网络设备根据所述引流表项中的所述下一跳网络设备地址向所述上一跳设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述当前报文不包含标识字段,则所述当前网络设备查找与所述当前报文的目标IP地址前缀匹配的引流表项;
若所述引流表项中的下一跳网络设备的拥塞标志位为第一预设值,则所述当前网络设备向下一跳网络设备发送所述当前报文;
若所述引流表项中的下一跳网络设备的拥塞标志位为第三预设值,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备;
其中,所述当前网络设备对应的标识设置为第四预设值表示所述当前报文被所述当前网络设备转发。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若没有与所述当前报文的目标IP地址前缀匹配的所述引流表项,则所述当前网络设备判断最短路下一跳网络设备的拥塞标志位是否为所述第一预设值,所述最短路下一跳网络设备为转发表中的第一个所述候选网络设备;
若是,则所述当前网络设备向所述最短路下一跳网络设备转发所述当前报文;
若否,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备。
7.根据权利要求1所述的方法,其特征在于,所述候选网络设备的地址设置在转发表中,所述转发表建立的流程包括:
所述当前网络设备从所述候选网络设备中选择一个作为最短路下一跳网络设备,所述最短路下一跳网络设备到达目标节点的路径最短;
所述当前网络设备模拟到所述最短路下一跳网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个排序到所述最短路下一跳网络设备之后;
所述当前网络设备模拟到当前排序的所有候选网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个进行排序,直到所有候选网络设备排序完毕。
8.一种报文转发的装置,其特征在于,包括:
接收模块,用于接收当前报文;
处理模块,用于当所述当前报文包含标识字段时,从候选网络设备中选择符合预设条件的下一跳网络设备,所述标识字段包括所述候选网络设备的标识,所述预设条件包括所述候选网络设备的拥塞标志位为第一预设值且所述候选网络设备的标识为第二预设值,所述拥塞标志位为第一预设值表示到所述候选网络设备的传输路径不拥塞,所述候选网络设备的标识为第二预设值表示所述当前报文没有被所述候选网络设备转发过;
发送模块,用于向所述下一跳网络设备转发所述当前报文。
9.根据权利要求8所述的装置,其特征在于,
所述发送模块,还用于若所述候选网络设备中没有符合预设条件的所述下一跳网络设备,则向上一跳网络设备转发所述当前报文,所述当前报文来自所述上一跳网络设备。
10.根据权利要求8或9所述的装置,其特征在于,
所述处理模块,还用于根据所述当前报文的目标互联网协议IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址增加引流表项;或
所述处理模块,还用于根据所述当前报文的目标IP地址前缀、上一跳网络设备地址和所述下一跳网络设备的地址修改引流表项;
其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述处理模块修改为与选择的所述下一跳网络设备的地址相同,以使得所述发送模块根据所述引流表项中的所述下一跳网络设备地址向所述下一跳网络设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
11.根据权利要求8或9所述的装置,其特征在于,
所述处理模块,还用于根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址增加引流表项;或
所述处理模块,还用于根据所述当前报文的目标IP地址前缀和所述上一跳网络设备的地址修改引流表项;
其中,所述引流表项包括目标IP地址前缀、上一跳网络设备地址和下一跳网络设备地址,所述引流表的所述下一跳网络设备地址被所述处理模块修改为与所述当前报文的所述上一跳网络设备的地址相同,以使得所述发送模块根据所述引流表项中的所述下一跳网络设备地址向所述上一跳设备转发后续报文,所述后续报文的目标IP地址前缀与所述引流表项中的目标IP地址前缀相同,所述后续报文不包含所述标识字段。
12.根据权利要求8或9所述的装置,其特征在于,所述处理模块,还用于:
若所述当前报文不包含标识字段,则所述当前网络设备查找与所述当前报文的目标IP地址前缀匹配的引流表项;
若所述引流表项中的下一跳网络设备的拥塞标志位为第一预设值,则所述当前网络设备向下一跳网络设备发送所述当前报文;
若所述引流表项中的下一跳网络设备的拥塞标志位为第三预设值,则所述当前网络设备将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中所述当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备;
其中,所述当前网络设备对应的标识设置为第四预设值表示所述当前报文被所述当前网络设备转发。
13.根据权利要求12所述的装置,其特征在于,所述处理模块,还用于:
若没有与所述当前报文的目标IP地址前缀匹配的所述引流表项,则判断最短路下一跳网络设备的拥塞标志位是否为所述第一预设值,所述最短路下一跳网络设备为转发表中的第一个所述候选网络设备;
若是,则向所述最短路下一跳网络设备转发所述当前报文;
若否,则将初始化的标识字段插入所述当前报文,将插入所述当前报文后的标识字段中当前网络设备对应的标识设置为第四预设值,并从所述候选网络设备中选择符合预设条件的下一跳网络设备。
14.根据权利要求8所述的装置,其特征在于,所述候选网络设备的地址设置在转发表中,所述处理模块,还用于通过以下步骤建立所述转发表:
从所述候选网络设备中选择一个作为最短路下一跳网络设备,所述最短路下一跳网络设备到达目标节点的路径最短;
模拟到所述最短路下一跳网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个排序到所述最短路下一跳网络设备之后;
模拟到当前排序的所有候选网络设备的传输路径拥塞,从剩下的所述候选网络设备中选择一个进行排序,直到所有候选网络设备排序完毕。
15.一种网络设备,其特征在于,所述网络设备包括一个以上处理器、存储器以及通信接口;
所述存储器中存储有程序代码;
所述处理器执行所述存储器中所述程序代码时实现权利要求1至7任意一项所述的方法。
16.一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011200672.9A CN114531398A (zh) | 2020-10-30 | 2020-10-30 | 一种报文转发的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011200672.9A CN114531398A (zh) | 2020-10-30 | 2020-10-30 | 一种报文转发的方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114531398A true CN114531398A (zh) | 2022-05-24 |
Family
ID=81619779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011200672.9A Pending CN114531398A (zh) | 2020-10-30 | 2020-10-30 | 一种报文转发的方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114531398A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134303A (zh) * | 2022-07-11 | 2022-09-30 | 中国电信股份有限公司 | 业务流量处理方法及装置、电子设备、存储介质 |
-
2020
- 2020-10-30 CN CN202011200672.9A patent/CN114531398A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115134303A (zh) * | 2022-07-11 | 2022-09-30 | 中国电信股份有限公司 | 业务流量处理方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108512760B (zh) | 基于SDN保障业务QoS的路由方法 | |
US11159432B2 (en) | Data transmission method, and switch and network control system using the method | |
EP2911348B1 (en) | Control device discovery in networks having separate control and forwarding devices | |
US20200014614A1 (en) | SDN Controller, Data Center System, and Routing Connection Method | |
US6778531B1 (en) | Multicast routing with service-level guarantees between ingress egress-points in a packet network | |
CN100596102C (zh) | 最小化路径抢占代价的标签交换路径建立方法 | |
US11522786B2 (en) | Packet forwarding path determining method, device, and system | |
Tomovic et al. | Performance comparison of QoS routing algorithms applicable to large-scale SDN networks | |
CN112118181B (zh) | 一种流量调度方法及装置 | |
CN101841487A (zh) | 聚合链路服务流的配置方法及包交换装置 | |
US20080165685A1 (en) | Methods, systems, and computer program products for managing network bandwidth capacity | |
US20130028094A1 (en) | Fiber chanel device | |
US20220124023A1 (en) | Path Switching Method, Device, and System | |
CN103166848A (zh) | 选择多协议标签交换流量工程旁路隧道的方法及节点 | |
CN106850422A (zh) | 一种基于路由反射器的路径优选方法和系统 | |
CN111865789B (zh) | 一种基于段路由的sr路径约束方法 | |
Oh et al. | Fault restoration and spare capacity allocation with QoS constraints for MPLS networks | |
CN114531398A (zh) | 一种报文转发的方法及相关装置 | |
CN104917677A (zh) | 数据流转发的控制方法及系统 | |
Nithin et al. | Efficient load balancing for multicast traffic in data center networks using SDN | |
CN116319549B (zh) | 分布式流量调度方法及装置 | |
El-Darieby et al. | A Hierarchical Distributed Protocol for MPLS path creation | |
Tajedin et al. | DTE: Dynamic traffic engineering in software defined data center networks | |
EP4243368A1 (en) | Data obtaining method and apparatus, device, and storage medium | |
CN103004149B (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 |