CN110099000B - 一种转发报文的方法、网络设备和计算机可读介质 - Google Patents
一种转发报文的方法、网络设备和计算机可读介质 Download PDFInfo
- Publication number
- CN110099000B CN110099000B CN201910237505.2A CN201910237505A CN110099000B CN 110099000 B CN110099000 B CN 110099000B CN 201910237505 A CN201910237505 A CN 201910237505A CN 110099000 B CN110099000 B CN 110099000B
- Authority
- CN
- China
- Prior art keywords
- message
- path
- ith
- port
- 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.)
- Active
Links
Images
Classifications
-
- 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/22—Alternate routing
-
- 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
Abstract
本申请公开了转发报文的方法和网络设备。该方法包括如下步骤。网络设备接收第一报文;网络设备确定第一路径为待发送第一报文的路径。第一路径包括网络设备的第一端口。网络设备确定第一端口处于拥塞状态。网络设备基于第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径。第二路径包括网络设备的第二端口,第二路径是第一路径的无环备选路径。网络设备经由第二端口发送第一报文。采用该方法,当数据流中的报文在网络设备中的待发送端口发生拥塞时,网络设备将数据流中的后续报文通过LFA路径发送出去。通过该方法,网络设备利用现有的快速重路由机制,通过预先计算出并存储在网络设备中的LFA路径来转发报文,有助于减少丢包的发生。
Description
技术领域
本发明涉及通信领域,尤其涉及一种转发报文的方法和网络设备。
背景技术
当数据报文在网络中传输时,网络设备(例如路由器)经常会出现瞬时拥塞现象。例如在某一瞬时,需要从网络设备中的某一端口发送的数据量超出了该端口的发送能力,该端口发生拥塞。拥塞现象有可能引发丢包,影响网络传输性能。
发明内容
本申请提供了一种转发报文的方法和网络设备,有助于减少丢包的发生。
第一方面,本发明实施例提供了一种转发报文的方法。该方法包括如下步骤。网络设备接收第一报文;该网络设备确定第一路径为待发送第一报文的路径,第一路径包括该网络设备的第一端口;该网络设备确定第一端口处于拥塞状态;该网络设备基于第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径,第二路径包括该网络设备的第二端口,第二路径是第一路径的无环备选路径(Loop-Free Alternate path,LFA path);该网络设备经由第二端口发送第一报文。
采用上述方法,当数据流中的报文在网络设备中的待发送端口发生拥塞时,网络设备将数据流中的后续报文通过LFA路径发送出去。通过该方法,网络设备利用现有的快速重路由机制,通过预先确定的LFA路径来转发报文,有助于减少丢包的发生。
在一种可能的设计中,第一端口对应n个报文队列,n个报文队列分别对应n个优先级,n为大于等于1的整数;网络设备确定第一端口处于拥塞状态包括:该网络设备确定第一报文属于n个优先级中的第i优先级,i为大于等于0并且小于n的整数;网络设备确定n个报文队列中的第i报文队列处于拥塞状态,第i报文队列对应所述第i优先级;网络设备基于所述第i报文队列处于拥塞状态,确定第一端口处于拥塞状态。网络设备中的端口对应多个缓冲区队列,报文根据所属的优先级,被分配到相应的缓冲区队列。单个缓冲区队列的拥塞,就可以触发对应该队列的报文的待发送端口发生切换。上述方案可以更精细地对拥塞进行处理。
本申请中,报文队列可以保存在缓冲区(buffer)。如无相反的说明,本申请中报文队列,也称为队列,或者缓冲区队列。
在一种可能的设计中,在该网络设备确定n个报文队列中的第i报文队列处于拥塞状态之前,该方法还包括:网络设备确定第i报文队列满足拥塞状态识别规则;网络设备基于第i报文队列满足拥塞状态识别规则,对与第i优先级对应的拥塞状态标志进行置位;网络设备确定n个报文队列中的第i报文队列处于拥塞状态包括:网络设备确定与第i优先级对应的拥塞状态标志被置位;网络设备基于拥塞状态标志被置位,确定第i报文队列处于拥塞状态。网络设备预先根据拥塞状态识别规则设置拥塞状态标志。当报文到达时,通过置位的拥塞状态标志确定端口发生拥塞。上述方案有助于缩短端口拥塞的判断过程,提高报文转发效率。
在一种可能的设计中,拥塞状态识别规则包括位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于第一阈值。
在一种可能的设计中,拥塞状态识别规则包括位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长。
在一种可能的设计中,拥塞状态识别规则包括位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长小于第二阈值。
在一种可能的设计中,该方法还包括如下步骤。网络设备确定第i报文队列不满足拥塞状态识别规则;网络设备基于第i报文队列不满足拥塞状态识别规则,对被置位的与第i优先级对应的拥塞状态标志进行清除;网络设备接收第二报文;网络设备确定第一路径为待发送第二报文的路径;网络设备确定第二报文属于第i优先级;网络设备确定与第i 优先级对应的拥塞状态标志被清除;网络设备基于与第i优先级对应的拥塞状态标志被清除,确定第i报文队列处于正常状态;网络设备基于第i报文队列处于正常状态,经由第一端口发送第二报文。
上述技术方案中,网络设备实时检测端口拥塞状态。当不再拥塞时,清除拥塞状态标志,仍由原始待发送端口发送报文。
在一种可能的设计中,无环备份路径是与拓扑无关的无环备份路径(TopologyIndependent LFA path,TI-LFA path)。
第二方面,本发明实施例提供了一种网络设备。该网络设备用于执行第一方面或第一方面的任意一种可能的实现方式提供的方法。相应的,该网络设备包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法中的步骤的至少一个单元。
第三方面,本发明实施例提供了一种网络设备。该网络设备包括处理器、网络接口和存储器。网络接口可以是收发器。存储器可以用于存储程序代码,处理器用于调用存储器中的程序代码执行前述第一方面或第一方面的任意一种可能的实现方式提供的方法。此处不再赘述。
第四方面,本发明实施例提供了一种网络设备。该网络设备包括主控板和接口板。主控板包括:第一处理器和第一存储器。接口板包括:第二处理器、第二存储器和接口卡。主控板和接口板耦合。第一存储器可以用于存储程序代码。第二存储器可以用于存储程序代码。第一处理器和第二处理器可以通过合作执行第一方面或第一方面的任意一种可能的实现方式提供的方法。具体地,第一处理器用于调用第一存储器中的程序代码执行如下操作:确定第一路径为待发送第一报文的路径,该第一路径包括该网络设备的第一端口;确定第一端口处于拥塞状态;基于该第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径,第二路径包括该网络设备的第二端口,该第二路径是第一路径的LFA path。
第二处理器用于调用第二存储器中的程序代码,触发接口卡执行如下操作:接收第一报文;经由第二端口发送第一报文。
在一种可能的实现方式中,主控板和接口板之间建立进程间通信协议(inter-process communication,IPC)通道,主控板和接口板之间通过IPC通道进行通信。
第五方面,提供了一种计算机存储介质,用于储存为上述网络设备所用的计算机软件。计算机软件包括用于执行上述方法所涉及的程序。
第六方面,提供了一种计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的实现方式中提供的方法。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中使用的附图作简单地介绍。显而易见地,下面附图只是本发明的一些实施例的附图,对于本领域普通技术人员来说,在不付出创造性劳动性的前提下,还可以根据这些附图获得同样能实现本发明的其他技术方案和附图。
图1为本发明实施例提供的一种网络场景示意图;
图2为本发明实施例提供的一种转发报文的方法流程示意图;
图3为本发明实施例提供的一种网络设备的结构示意图;
图4为本发明实施例提供的一种网络设备的结构示意图;
图5为本发明实施例提供的一种网络设备的结构示意图;
图6为本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
图1示出了本发明实施例的一种可能的应用场景。该应用场景包括网络设备100,网络设备100为网络中的转发设备,例如路由器。网络设备100包括四个端口,分别为:端口A、端口B、端口C和端口D。上述四个端口分别连接四个下一跳网络设备,其中:端口A连接网络设备2,端口B连接网络设备3,端口C连接网络设备4,端口D连接网络设备5。表1为网络设备100保存的转发表。
表1网络设备100保存的转发表
例如:对于前缀1.1.1.0/24的报文,当网络状态处于正常状态时,转发前缀1.1.1.0/24 的报文的路径为主路径(即第一路径)。下一跳网络设备为网络设备2。发送端口为端口A。上述前缀的报文还对应LFA路径(即第二路径)。沿第二路径的下一跳网络设备为网络设备3。发送端口为端口B。当主路径中的下一跳网络设备2不可达时,网络设备100将采用LFA路径转发前缀1.1.1.0/24的报文。即将前缀1.1.1.0/24的报文通过端口B发送出去。当网络设备100同时接收到大量前缀1.1.1.0/24的报文时,这些报文将进入端口A的缓冲区队列中,等待由端口A发送出去。此时,虽然主路径中的下一跳网络设备2并非不可达,但是报文可能需要在端口A的缓冲区队列中等待较长时间。以上造成转发时延,影响网络传输性能。
本申请中,前缀1.1.1.0/24的报文是指目的IP地址最长匹配前缀为1.1.1.0/24。
本发明实施例提供了转发报文的方法以及基于该方法的网络设备。这些方法和网络设备基于同一发明构思。方法和网络设备解决问题的原理相似,因此,方法和网络的实施例可以相互参见,相同或类似之处不再赘述。
参阅图2,本发明实施例提供了一种转发报文的方法。该方法中网络设备在发生拥塞时就利用LFA路径进行报文转发,缓解瞬时拥塞。该方法包括:S201至S205。
S201,网络设备接收第一报文。
S202,网络设备确定第一路径为待发送第一报文的路径,第一路径包括网络设备的第一端口。
S203,网络设备确定第一端口处于拥塞状态。
S204,网络设备基于第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径,第二路径包括网络设备的第二端口,第二路径是第一路径的LFA path。
S205,网络设备经由第二端口发送第一报文。
结合图1所示的应用场景进行说明。网络设备100接收第一报文。网络设备100通过查找转发表,获得发送第一报文的主备路径信息。网络设备100确定第一路径为待发送第一报文的路径。第一路径为网络处于正常状态时用于转发报文的主路径。第一路径中包括网络设备的端口A,即第一端口。网络设备100确定端口A的状态。当网络设备100发现端口A处于拥塞状态,则确定第二路径为待发送第一报文的路径。第二路径为第一路径的 LFA路径。第二路径中包括网络设备100的端口B,即第二端口。网络设备100通过端口 B发送第一报文。从而使得第一报文在发送过程中避开了处于拥塞状态的端口A,有助于减少丢包的发生。
另外,网络设备100可以预先计算LFA路径,并保存LFA路径的信息。例如,网络设备100可以通过运行内部网关协议(Interior Gateway Protocol,IGP)计算LFA路径。具体地,网络设备100通过执行开放式最短路径优先(Open Shortest Path First,OSPF)算法,计算LFA路径。当网络设备100发现端口A处于拥塞状态时,网络设备100不需要计算LFA路径。网络设备可以根据预先保存的LFA路径的信息,确定LFA路径。上述技术方案中,发生拥塞时,网络设备不需要计算LFA路径即可确定LFA路径。因此,上述方案有助于减少丢包的同时降低转发时延。
需要指出的是,LFA路径是针对某个主路径的备份路径。例如,对于作为主路径的第一路径来说,存在与其对应的一条LFA路径,即第二路径。对于网络设备中的某个端口来说,包含该端口的路径可能有多个,这些路径所对应的LFA路径并不相同,因而这些 LFA路径所对应的发送端口可能也不相同。参见表2所示的网络设备100保存的的转发表,网络设备100转发前缀1.1.1.0/24的报文的主路径与其转发前缀2.2.2.0/24的报文的主路径并不相同,虽然这两条主路径对应的发送端口均为端口A,但是它们的LFA路径所对应的发送端口分别为端口B和端口C。当端口A发生拥塞时,前缀1.1.1.0/24的报文与前缀 2.2.2.0/24的报文将通过不同的发送端口发送出去。
表2网络设备100保存的的转发表
在一个示例中,第二路径可以是各种实现快速重路由功能的备份路径,也就是说,在具体实现时,LFA路径可以是远程无环备选路径(Remote LFA,RLFA)、直接转发的无环备选路径(Directed Forwarding LFA,DLFA)或与拓扑无关的无环备份路径(TopologyIndependent LFA,TI-LFA)等,从而在主路径中包含的端口发生拥塞时进行报文转发,缓解瞬时拥塞,提升网络转发性能。
在一个示例中,报文转发路径中每一跳的网络设备都可以在发生拥塞时利用LFA路径进行报文转发,从而在报文转发路径中的每一跳都实现降低转发时延的效果。
在一个示例中,第一端口对应n个报文队列,n个报文队列分别对应n个优先级,n为大于等于1的整数;网络设备确定第一端口处于拥塞状态包括:该网络设备确定第一报文属于n个优先级中的第i优先级,i为大于等于0并且小于n的整数;网络设备确定n 个报文队列中的第i报文队列处于拥塞状态,第i报文队列对应所述第i优先级;网络设备基于所述第i报文队列处于拥塞状态,确定第一端口处于拥塞状态。
结合图1所示的应用场景进行说明。网络设备100的各个端口可以对应多个缓冲区报文队列。多个缓冲区报文队列分别对应网络中传输报文的多个优先级。网络设备100根据待发送的报文所对应的缓冲区报文队列是否处于拥塞,判断第一端口是否处于拥塞状态。例如,端口A具有8个缓冲区队列,对应8个优先级。例如,可以采用电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)发布的IEEE 802.1p中定义的网络中传输报文的8个优先级。当第一报文到达时,网络设备100将确定第一报文所属的优先级,例如为第6优先级;再根据该优先级别,对应的缓冲区报文队列为第6报文队列。多个缓冲区报文队列之间为独立调度,因而它们的拥塞状态可能并不相同。网络设备100确定第6报文队列的状态,发现第6报文队列为拥塞状态,则认为对于第一报文来说端口 A处于拥塞状态,需要将第一报文通过LFA路径转发。网络设备100进而查找转发表,确定LFA路径为待发送第一报文的路径,将第一报文分配至LFA路径中的第二端口,等待发送。此时,对于对应其他报文队列的报文,完全可能并不采取LFA路径进行转发。例如,网络设备100同时接收第二报文,第二报文为第7优先级,对应的缓冲区报文队列为第7报文队列。网络设备100确定第7报文队列为正常状态,未发生拥塞,则认为对于第二报文来说端口A并未拥塞,将第二报文通过正常网络状态下的主路径进行转发。也就是说,单个缓冲区报文队列的拥塞,就可以触发对应该队列的报文的待发送路径发生切换,并且不影响对应其他缓冲区报文队列的报文,使得报文转发调度更加灵活。
在一个示例中,在该网络设备确定n个报文队列中的第i报文队列处于拥塞状态之前,该方法还包括:网络设备确定第i报文队列满足拥塞状态识别规则;网络设备基于第i报文队列满足拥塞状态识别规则,对与第i优先级对应的拥塞状态标志进行置位;网络设备确定n个报文队列中的第i报文队列处于拥塞状态包括:网络设备确定与第i优先级对应的拥塞状态标志被置位;网络设备基于拥塞状态标志被置位,确定第i报文队列处于拥塞状态。
表3网络设备100保存的的转发表
结合图1所示的应用场景进行说明。参见表3所示的网络设备100保存的的转发表。在网络设备100的转发表中,设置多个拥塞状态标志,与网络中传输报文的多个优先级一一对应。例如,网络设备100的端口A具有8个缓冲区报文队列,与网络中传输报文的8 个优先级一一对应。在网络设备100的转发表中设置8个拥塞状态标志,与上述8个优先级一一对应,从而也与上述8个报文队列一一对应。网络设备100预先确定端口A的各个缓冲区报文队列的状态,如果发现某个报文队列处于拥塞状态,则将转发表中与该报文队列对应的拥塞状态标志设置为1。如果发现某个报文队列未处于拥塞状态,则将该拥塞状态标志设置为0。例如,当网络设备100接收到第一报文时,确定端口A为第一报文的待发送端口,并且该第一报文的优先级为第6优先级,与第6优先级对应的拥塞状态标志为 1,即与其对应的第6报文队列处于拥塞状态,对应该队列的报文需要通过LFA路径转发。进而,网络设备100通过LFA路径所包含的端口B将第一报文发送出去。相反的,如果网络设备100确定该第一报文的优先级为第7优先级,并且查找转发表,确定转发表中与第7优先级对应的拥塞状态标志为0,即与其对应的第7报文队列处于正常状态,对应该队列的报文不需要通过LFA路径转发,则网络设备100仍然通过端口A将第一报文发送出去。通过拥塞状态标志的设置,使得当报文到达时,网络设备通过确定拥塞状态标志即可快速获得端口拥塞状态,缩短处理时长,提高报文转发效率。
网络中传输报文的优先级通常为8个,当网络设备端口缓冲区报文队列的数量小于8 个时,在一个示例中,可以将IEEE 802.1p协议中定义的网络中传输报文的8个优先级进行分组合并,从而与网络设备端口缓冲区报文队列数目相适应。举例来说,网络设备100的端口A具有4个缓冲区队列,此时可以将IEEE 802.1p协议中定义的网络中传输报文的 8个优先级两两合并。协议中定义的第0、1优先级合并为端口A的第0优先级,协议中定义的第2、3优先级合并为端口A的第1优先级,协议中定义的第4、5优先级合并为端口A的第2优先级,协议中定义的第6、7优先级合并为端口A的第3优先级。端口A的 0、1、2、3优先级与端口A的4个报文队列一一对应。
网络设备判断某个报文队列是否处于拥塞状态,是通过判断该报文队列是否满足拥塞状态识别规则来实现的。如果某个报文队列满足拥塞状态识别规则,就认为该报文队列处于拥塞状态,否则认为该报文队列未处于拥塞状态,或者说处于正常状态。
在一个示例中,拥塞状态识别规则包括位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于第一阈值;
或者拥塞状态识别规则包括位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长;
或者拥塞状态识别规则包括位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长小于第二阈值。
结合图1所示的应用场景,举例来说,拥塞状态识别规则可以为位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于第一阈值,第一阈值为50毫秒。具体的,对于第6报文队列,如果处于第6报文队列队尾的报文在第6报文队列中预计停留的时长为54毫秒(millisecond,ms),大于第一阈值,则网络设备100确定该第6报文队列处于拥塞状态,将转发表中与该第6报文队列对应的拥塞状态标志设置为1。
或者举例来说,拥塞状态识别规则可以为位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长。具体的,对于第6报文队列,如果处于第6报文队列队尾的报文在第6报文队列中预计停留的时长为54ms,而位于第二端口即端口B对应的报文队列队尾的报文在端口B对应的报文队列中预计停留的时长为24ms,则网络设备100确定该第6报文队列处于拥塞状态,将转发表中与该第6报文队列对应的拥塞状态标志设置为1。
或者举例来说,拥塞状态识别规则可以为位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于第一阈值,并且位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长小于第二阈值,第一阈值为50ms,第二阈值为30ms。具体的,对于第6报文队列,如果处于第6报文队列队尾的报文在第6报文队列中预计停留的时长为54ms,大于第一阈值,并且位于第二端口即端口B对应的报文队列队尾的报文在端口B对应的报文队列中预计停留的时长为24ms,小于第二阈值,则网络设备100确定该第6报文队列处于拥塞状态,将转发表中与该第6报文队列对应的拥塞状态标志设置为1。
或者举例来说,拥塞状态识别规则可以为位于第i报文队列队尾的报文在第i报文队列中预计停留的时长大于第一阈值,或者位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长小于第二阈值,第一阈值为50ms,第二阈值为5ms。具体的,对于第6报文队列,如果处于第6报文队列队尾的报文在第6报文队列中预计停留的时长为54ms,大于第一阈值,而位于第二端口即端口B对应的报文队列队尾的报文在端口B对应的报文队列中预计停留的时长为24ms,不小于第二阈值,网络设备100仍然确定该第6报文队列处于拥塞状态,将转发表中与该第6报文队列对应的拥塞状态标志设置为1。
或者举例来说,拥塞状态识别规则可以为将位于第i报文队列队尾的报文在第i报文队列中预计停留的时长与位于第二端口对应的报文队列队尾的报文在第二端口对应的报文队列中预计停留的时长进行减法运算,用上述前一时长减去上述后一时长,所述差值大于第一阈值,第一阈值为30ms。具体的,对于第6报文队列,如果处于第6报文队列队尾的报文在第6报文队列中预计停留的时长为54ms,而位于第二端口即端口B对应的报文队列队尾的报文在端口B对应的报文队列中预计停留的时长为22ms,两者相减所述差值为32ms,大于第一阈值,网络设备100确定该第6报文队列处于拥塞状态,将转发表中与该第6报文队列对应的拥塞状态标志设置为1。
在一个示例中,根据报文队列长度和队列速率计算得到报文队列队尾的报文在该报文队列中预计停留的时长。举例来说,网络设备100感知第6报文队列长度,该第6报文队列已经缓存了100兆字节(megabyte,Mbyte)的报文,则第6报文队列长度为100Mbyte,该报文队列对应的端口A为GE端口,且端口A具有8个缓冲区报文队列,则第6报文队列队尾的报文在该报文队列中预计停留的时长为0.8秒(second,s)。
在一个示例中,该拥塞状态识别规则可以由网络控制器生成并下发给网络中的各个网络设备。并且,针对不同的网络设备,可以设置相同或不同的拥塞状态识别规则;针对同一网络设备中不同的端口,可以设置相同或不同的拥塞状态识别规则,根据同一端口中不同的报文队列,也可以设置相同或不同的拥塞状态识别规则。举例来说,网络设备100的端口A中第6报文队列的拥塞状态识别规则可以是位于该报文队列队尾的报文在该报文队列中预计停留的时长大于第一阈值,第一阈值为50毫秒;而该端口A中第7报文队列的拥塞状态识别规则可以是位于该报文队列队尾的报文在该报文队列中预计停留的时长大于位于端口B对应的报文队列队尾的报文在端口B对应的报文队列中预计停留的时长。在一个示例中,该方法还包括:网络设备确定第i报文队列不满足拥塞状态识别规则;网络设备基于第i报文队列不满足拥塞状态识别规则,对被置位的与第i优先级对应的拥塞状态标志进行清除;网络设备接收第二报文;网络设备确定第一路径为待发送第二报文的路径;网络设备确定第二报文属于第i优先级;网络设备确定与第i优先级对应的拥塞状态标志被清除;网络设备基于与第i优先级对应的拥塞状态标志被清除,确定第i报文队列处于正常状态;网络设备基于第i报文队列处于正常状态,经由第一端口发送第二报文。
可以理解,随着时间的流逝,第i报文队列发生变化。例如,相对于t1时间,t2时间的第i报文队列中包含了新入队的报文。或者,相对于t1时间,t3时间的第i报文队列中不包含已出队的报文。因此,在一个时间,第i报文队列满足拥塞状态识别规则。在另一个时间,第i报文队列不满足拥塞状态识别规则。
结合图1所示的应用场景,网络设备100每隔一段时间就对每个报文队列的状态进行重新确认。举例来说,对于第6报文队列,网络设备100确定第6报文队列不满足拥塞状态识别规则,则对与该报文队列对应的被置位的拥塞状态标志进行清除,具体的,可以将与该报文队列对应的拥塞状态标志设置为0,表明该报文队列不再处于拥塞状态,或者说处于正常状态,与该报文队列对应的报文不需要通过LFA路径进行转发。接下来,当网络设备100再次接收到报文时,将基于清除后的拥塞状态标志进行报文转发。具体的,网络设备100接收第二报文,确定第一路径为待发送第二报文的路径,该第一路径包括端口 A。网络设备100进一步确定第二报文属于第6优先级,并且查找转发表,确定与第6优先级对应的拥塞状态标志为0,即该拥塞状态标志被清除,则认为第6报文队列处于正常状态。网络设备100基于第6报文队列处于正常状态,将第二报文经由端口A发送出去。
图3示出了上述实施例中所涉及的网络设备的一种可能的结构示意图,网络设备300 可以实现图2所示实施例中的网络设备的功能。参阅图3,该网络设备300包括:接收单元301、处理单元302和发送单元303。这些单元可以执行上述方法示例中网络设备的相应功能。例如,接收单元301,用于执行上述方法实施例中网络设备执行的报文接收;处理单元302,用于执行上述方法实施例中网络设备执行的确定待发送报文路径和确定端口状态;发送单元303,用于执行上述方法实施例中网络设备执行的报文发送。举例来说,接收单元301,用于接收第一报文;处理单元302,用于确定第一路径为待发送第一报文的路径,第一路径包括网络设备的第一端口,还用于确定第一端口处于拥塞状态,还用于基于第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径,第二路径包括所述网络设备的第二端口,第二路径是第一路径的LFA path;发送模块303,用于经由第二端口发送第一报文。
在一个示例中,网络设备300还包括设置单元,可以执行上述方法实施例中网络设备的相应功能。例如,设置单元,用于执行上述方法实施例中网络设备执行的设置拥塞状态标志的功能。举例来说,设置单元,用于确定第i报文队列满足拥塞状态识别规则,以及用于基于第i报文队列满足拥塞状态识别规则,对与第i优先级对应的拥塞状态标志进行置位。
在采用集成的单元的情况下,图4示出了上述实施例中所涉及的网络设备的另一种可能的结构示意图,该网络设备400同样可以实现图2所示实施例中的网络设备的功能。
网络设备400包括:存储单元401、处理单元402和通信单元403。处理单元402用于对网络设备400的动作进行控制管理,例如,处理单元402用于支持网络设备400执行图2中的过程S201,S202,S203,S204,S205,和/或用于本文描述的技术的其它过程。通信单元403用于支持网络设备400与其他网络实体的通信。存储单元401,用于存储网络设备400的程序代码和数据。
其中,处理单元402可以是处理器,例如可以是中央处理器(central processingunit, CPU)、通用处理器,数字信号处理器(digital signal processor,DSP)、专用集成电路 (application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP 和微处理器的组合等等。通信单元403可以是收发器,存储单元401可以是存储器。
当处理单元402为处理器,通信单元403为收发器,存储单元401为存储器时,本发明实施例所涉及的网络设备可以为图5所示的网络设备500。
参阅图5所示,图5示出上述实施例中所涉及的网络设备的另一种可能的结构示意图,网络设备500包括:处理器502、收发器503、存储器501以及总线504。其中,收发器 503、处理器502以及存储器501通过总线504相互连接;总线504可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
参阅图6所示,图6示出上述实施例中所涉及的第一网络设备的另一种可能的结构示意图。网络设备600包括:主控板601和接口板602。主控板601包括:处理器603和存储器604。接口板包括:处理器605、存储器606和接口卡607。主控板601和接口板602 耦合。
这些硬件可以实现图2方法示例中的网络设备的相应功能,例如,存储器606用于存储接口板602的程序代码,处理器605用于调用存储器606中的程序代码触发接口卡607执行上述方法实施例中网络设备执行的各种信息接收和发送。存储器604可以用于存储主控板601的程序代码,处理器603用于调用存储器604中的程序代码执行上述方法实施例中网络设备除了信息收发之外的其他处理。
举例来说,处理器605用于触发接口卡607接收和发送第一报文;处理器603用于第一路径为待发送第一报文的路径,第一路径包括网络设备的第一端口,以及确定第一端口处于拥塞状态,以及基于第一端口处于拥塞状态,确定第二路径为待发送第一报文的路径,第二路径包括网络设备的第二端口,第二路径是第一路径的无环备选路径(LFA path)。存储器604,用于存储主控板601的程序代码和数据;存储器606,用于存储接口板602 的程序代码和数据。
在一种可能的实现方式中,主控板601和接口板602之间建立IPC通道,主控板601和接口板602之间利用该IPC通道进行通信。例如,主控板601通过IPC通道从接口板 602接收第一报文。
网络设备600可以为路由器或交换器或有转发功能的网络设备,网络设备600能够实现前述方法实施例中的网络设备的功能,具体执行步骤可以参见前述方法实施例,此处不再赘述。
本发明实施例还提供了一种非易失性存储介质,用于储存前述实施例中所用的软件指令,其包括用于执行前述实施例所示的方法的程序,当其在计算机或网络设备上执行时,使得所示计算机或网络设备执行前述方法实施例中的方法。
本发明实施例还提供了一种包括计算机程序指令的计算机程序产品,当该计算机程序产品在网络设备上运行时,使得网络设备执行前述方法实施例中的方法。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的网络设备实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(readonly memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、硬盘、移动硬盘、光盘或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、或软件和硬件的组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明。所应理解的是,以上所述仅为本发明的具体实施方式而已。本领域技术人员可以根据上述实施例,得到其他实施例。
Claims (9)
1.一种转发报文的方法,其特征在于,包括:
网络设备接收第一报文;所述网络设备包括第一端口和第二端口;
所述网络设备确定第一路径为待发送所述第一报文的路径,所述第一路径包括所述网络设备的所述第一端口;所述网络设备通过查找转发表获得发送所述第一报文的主备路径信息,所述第一路径为网络处于正常状态时用于转发报文的主路径;
所述网络设备确定所述第一端口处于拥塞状态;
所述网络设备基于所述第一端口处于拥塞状态,所述网络设备根据预先保存的无环备选路径确定第二路径为待发送所述第一报文的路径,所述第二路径包括所述网络设备的所述第二端口,所述第二路径是所述第一路径的无环备选路径;所述无环备份路径是与拓扑无关的无环备份路径;
所述网络设备经由所述第二端口发送所述第一报文;
所述第一端口对应n个报文队列,所述n个报文队列分别对应n个优先级,n为大于等于1的整数;
所述网络设备确定所述第一端口处于拥塞状态包括:
所述网络设备确定所述第一报文属于所述n个优先级中的第i优先级,i为大于等于0并且小于n的整数;
所述网络设备确定所述n个报文队列中的第i报文队列处于拥塞状态,所述第i报文队列对应所述第i优先级;
所述网络设备基于所述第i报文队列处于拥塞状态,确定所述第一端口处于拥塞状态。
2.根据权利要求1所述的方法,其特征在于,在所述网络设备确定所述n个报文队列中的第i报文队列处于拥塞状态之前,所述方法还包括:
所述网络设备确定所述第i报文队列满足拥塞状态识别规则;
所述网络设备基于所述第i报文队列满足所述拥塞状态识别规则,对与所述第i优先级对应的拥塞状态标志进行置位;
所述网络设备确定所述n个报文队列中的第i报文队列处于拥塞状态包括:
所述网络设备确定与所述第i优先级对应的拥塞状态标志被置位;
所述网络设备基于所述拥塞状态标志被置位,确定所述第i报文队列处于拥塞状态。
3.根据权利要求2所述的方法,其特征在于,所述拥塞状态识别规则包括位于所述第i报文队列队尾的报文在所述第i报文队列中预计停留的时长大于第一阈值;
或者所述拥塞状态识别规则包括位于所述第i报文队列队尾的报文在所述第i报文队列中预计停留的时长大于位于所述第二端口对应的报文队列队尾的报文在所述第二端口对应的所述报文队列中预计停留的时长;
或者所述拥塞状态识别规则包括位于所述第二端口对应的报文队列队尾的报文在所述第二端口对应的所述报文队列中预计停留的时长小于第二阈值。
4.根据权利要求2所述的方法,其特征在于,所述网络设备基于所述第i报文队列满足所述拥塞状态识别规则,对与所述第i优先级对应的拥塞状态标志进行置位之后,所述方法还包括:
所述网络设备确定所述第i报文队列不满足所述拥塞状态识别规则;
所述网络设备基于所述第i报文队列不满足所述拥塞状态识别规则,对被置位的与所述第i优先级对应的所述拥塞状态标志进行清除;
所述网络设备接收第二报文;
所述网络设备确定所述第一路径为待发送所述第二报文的路径;
所述网络设备确定所述第二报文属于所述第i优先级;
所述网络设备确定与所述第i优先级对应的所述拥塞状态标志被清除;
所述网络设备基于与所述第i优先级对应的所述拥塞状态标志被清除,确定所述第i报文队列处于正常状态;
所述网络设备基于所述第i报文队列处于正常状态,经由所述第一端口发送所述第二报文。
5.一种网络设备,其特征在于,所述网络设备包括第一端口和第二端口,所述网络设备还包括:
接收模块,用于接收第一报文;
处理模块,用于确定第一路径为待发送所述第一报文的路径,所述第一路径包括所述网络设备的所述第一端口;所述网络设备通过查找转发表获得发送所述第一报文的主备路径信息,所述第一路径为网络处于正常状态时用于转发报文的主路径;
所述处理模块,还用于确定所述第一端口处于拥塞状态;
所述处理模块,还用于基于所述第一端口处于拥塞状态,所述网络设备根据预先保存的无环备选路径确定第二路径为待发送所述第一报文的路径,所述第二路径包括所述网络设备的所述第二端口,所述第二路径是所述第一路径的无环备选路径;所述无环备份路径是与拓扑无关的无环备份路径;
发送模块,用于经由所述第二端口发送所述第一报文;
所述第一端口对应n个报文队列,所述n个报文队列分别对应n个优先级,n为大于等于1的整数;
所述处理模块,还用于确定所述第一报文属于所述n个优先级中的第i优先级,i为大于等于0并且小于n的整数;
所述处理模块,还用于确定所述n个报文队列中的第i报文队列处于拥塞状态,所述第i报文队列对应所述第i优先级;
所述处理模块,还用于基于所述第i报文队列处于拥塞状态,确定所述第一端口处于拥塞状态。
6.根据权利要求5所述的设备,其特征在于,所述网络设备还包括设置模块,
所述设置模块,用于确定所述第i报文队列满足拥塞状态识别规则;
所述设置模块,还用于基于所述第i报文队列满足所述拥塞状态识别规则,对与所述第i优先级对应的拥塞状态标志进行置位;
所述处理模块,还用于确定与所述第i优先级对应的拥塞状态标志被置位;
所述处理模块,还用于基于所述拥塞状态标志被置位,确定所述第i报文队列处于拥塞状态。
7.根据权利要求6所述的设备,其特征在于,所述拥塞状态识别规则包括位于所述第i报文队列队尾的报文在所述第i报文队列中预计停留的时长大于第一阈值;
或者所述拥塞状态识别规则包括位于所述第i报文队列队尾的报文在所述第i报文队列中预计停留的时长大于位于所述第二端口对应的报文队列队尾的报文在所述第二端口对应的所述报文队列中预计停留的时长;
或者所述拥塞状态识别规则包括位于所述第二端口对应的报文队列队尾的报文在所述第二端口对应的所述报文队列中预计停留的时长小于第二阈值。
8.根据权利要求6所述的设备,其特征在于,
所述设置模块,还用于对与所述第i优先级对应的拥塞状态标志进行置位之后,确定所述第i报文队列不满足所述拥塞状态识别规则;
所述设置模块,还用于基于所述第i报文队列不满足所述拥塞状态识别规则,对被置位的与所述第i优先级对应的所述拥塞状态标志进行清除;
所述接收模块,还用于接收第二报文;
所述处理模块,还用于确定所述第一路径为待发送所述第二报文的路径;
所述处理模块,还用于确定所述第二报文属于所述第i优先级;
所述处理模块,还用于确定与所述第i优先级对应的所述拥塞状态标志被清除;
所述处理模块,还用于基于与所述第i优先级对应的所述拥塞状态标志被清除,确定所述第i报文队列处于正常状态;
所述发送模块,还用于基于所述第i报文队列处于正常状态,经由所述第一端口发送所述第二报文。
9.一种计算机可读介质,包括指令,当所述指令在计算机上执行时,使得所述计算机执行如权利要求1-4任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237505.2A CN110099000B (zh) | 2019-03-27 | 2019-03-27 | 一种转发报文的方法、网络设备和计算机可读介质 |
PCT/CN2020/077149 WO2020192358A1 (zh) | 2019-03-27 | 2020-02-28 | 一种转发报文的方法和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237505.2A CN110099000B (zh) | 2019-03-27 | 2019-03-27 | 一种转发报文的方法、网络设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110099000A CN110099000A (zh) | 2019-08-06 |
CN110099000B true CN110099000B (zh) | 2021-11-19 |
Family
ID=67443982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910237505.2A Active CN110099000B (zh) | 2019-03-27 | 2019-03-27 | 一种转发报文的方法、网络设备和计算机可读介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110099000B (zh) |
WO (1) | WO2020192358A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110099000B (zh) * | 2019-03-27 | 2021-11-19 | 华为技术有限公司 | 一种转发报文的方法、网络设备和计算机可读介质 |
EP4072084A4 (en) * | 2019-12-25 | 2022-12-28 | Huawei Technologies Co., Ltd. | MESSAGE BUFFERING METHOD, INTEGRATED CIRCUIT SYSTEM AND STORAGE MEDIA |
CN113141311A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 一种用于获取转发信息的方法及装置 |
CN113507431B (zh) * | 2021-05-17 | 2024-02-09 | 新华三信息安全技术有限公司 | 一种报文管理方法、装置、设备及机器可读存储介质 |
CN113992588B (zh) * | 2021-10-21 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN116192777A (zh) * | 2022-12-30 | 2023-05-30 | 中国联合网络通信集团有限公司 | 路径学习方法、装置及存储介质 |
CN115955447B (zh) * | 2023-03-13 | 2023-06-27 | 微网优联科技(成都)有限公司 | 一种数据传输方法、交换机及交换机系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893560B (zh) * | 2011-05-16 | 2015-11-25 | 华为技术有限公司 | 一种数据流传送方法及网络设备 |
CN105991427A (zh) * | 2015-01-27 | 2016-10-05 | 杭州迪普科技有限公司 | 备份路径确定及切换的方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710876A (zh) * | 2009-12-09 | 2010-05-19 | 中兴通讯股份有限公司 | 快速重路由的保护方法及装置 |
US8644157B2 (en) * | 2011-03-28 | 2014-02-04 | Citrix Systems, Inc. | Systems and methods for handling NIC congestion via NIC aware application |
CN103179032B (zh) * | 2011-12-20 | 2016-03-30 | 华为技术有限公司 | 一种路由备份方法及装置 |
US20150016242A1 (en) * | 2013-07-12 | 2015-01-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method and Apparatus for Optimized LFA Computations by Pruning Neighbor Shortest Path Trees |
US9438472B2 (en) * | 2013-07-19 | 2016-09-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Extended remote LFA fast reroute |
CN105516184B (zh) * | 2015-12-31 | 2018-07-27 | 清华大学深圳研究生院 | 一种基于增量部署sdn网络的链路洪泛攻击的防御方法 |
CN110099000B (zh) * | 2019-03-27 | 2021-11-19 | 华为技术有限公司 | 一种转发报文的方法、网络设备和计算机可读介质 |
-
2019
- 2019-03-27 CN CN201910237505.2A patent/CN110099000B/zh active Active
-
2020
- 2020-02-28 WO PCT/CN2020/077149 patent/WO2020192358A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102893560B (zh) * | 2011-05-16 | 2015-11-25 | 华为技术有限公司 | 一种数据流传送方法及网络设备 |
CN105991427A (zh) * | 2015-01-27 | 2016-10-05 | 杭州迪普科技有限公司 | 备份路径确定及切换的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110099000A (zh) | 2019-08-06 |
WO2020192358A1 (zh) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110099000B (zh) | 一种转发报文的方法、网络设备和计算机可读介质 | |
CN113395210B (zh) | 一种计算转发路径的方法及网络设备 | |
US20210409321A1 (en) | Method and System for Determining Packet Forwarding Path, and Network Node | |
US20230388239A1 (en) | Packet sending method, network node, and system | |
CN110474853B (zh) | 一种报文发送的方法、网络节点和系统 | |
KR100693058B1 (ko) | 패킷의 유실을 방지하기 위한 라우팅 방법 및 장치 | |
US7978682B2 (en) | Methods, systems, and computer-readable media for optimizing the communication of data packets in a data network | |
US20170048144A1 (en) | Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks | |
US20180006950A1 (en) | Technologies for adaptive routing using aggregated congestion information | |
CN111585911B (zh) | 数据中心网络流量负载的均衡方法 | |
CN111654437B (zh) | 基于数据中心的报文转发方法及装置 | |
US11258723B2 (en) | Data processing method and apparatus, and switching device using footprint queues | |
US7518996B2 (en) | Fast credit system | |
CN113852547B (zh) | 一种报文转发方法、装置、线卡及存储介质 | |
US10305787B2 (en) | Dropping cells of a same packet sent among multiple paths within a packet switching device | |
CN112311685A (zh) | 一种处理网络拥塞的方法以及相关装置 | |
CN110365580B (zh) | 服务质量调度方法、装置、电子设备及计算机可读存储介质 | |
WO2023246161A1 (zh) | 策略路由实现方法、设备及存储介质 | |
Nithin et al. | Efficient load balancing for multicast traffic in data center networks using SDN | |
CN108337181B (zh) | 一种交换网拥塞管理方法和装置 | |
CN114513440A (zh) | 一种报文传输的方法、发送端和网络设备 | |
CN113765796B (zh) | 流量转发控制方法及装置 | |
WO2020248634A1 (zh) | 一种光网络的故障保护方法、设备和系统 | |
JP2018093335A (ja) | 通信装置 | |
JP2002077230A (ja) | パケット転送方法およびipルータ |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |