CN115604169A - 报文转发方法、线卡、主控卡、设备及计算机存储介质 - Google Patents
报文转发方法、线卡、主控卡、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN115604169A CN115604169A CN202110766119.XA CN202110766119A CN115604169A CN 115604169 A CN115604169 A CN 115604169A CN 202110766119 A CN202110766119 A CN 202110766119A CN 115604169 A CN115604169 A CN 115604169A
- Authority
- CN
- China
- Prior art keywords
- routing
- port
- forwarding
- line card
- queue
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000013441 quality evaluation Methods 0.000 claims abstract description 143
- 238000001303 quality assessment method Methods 0.000 claims description 164
- 239000004744 fabric Substances 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 18
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 102100021984 C-C motif chemokine 4-like Human genes 0.000 description 1
- 241001643392 Cyclea Species 0.000 description 1
- 101000777471 Homo sapiens C-C motif chemokine 4 Proteins 0.000 description 1
- 101000737602 Homo sapiens Ceramide synthase 1 Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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
-
- 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/02—Topology update or discovery
-
- 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/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种报文转发方法,所述方法包括:根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关;将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员;通过所述符合转发需求的路由成员转发报文。提高了选择符合转发需求的路由成员的效率,节省了网络资源。本公开还提供一种线卡、主控卡、框式设备、电子设备及计算机存储介质。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种报文转发方法、线卡、主控卡、框式设备、电子设备及计算机存储介质。
背景技术
随着网络规模的不断扩大以及网络业务的可靠性要求越来越高,LAG(LinkAggregation,链路聚合)和ECMP(Equal-cost Multipath Routing,等价多径路由)负载均衡技术已经在网络设备上广泛应用。无论是LAG和ECMP,当实现负载分担时,传统技术一般采用静态哈希hash选路技术,即根据配置的hash因子(比如选取五元组:源地址、目的地址、源端口、目的端口、协议)进行hash及求余计算。对于同一个LAG组或ECMP组,hash计算求余值不同的数据流,会选择不同的成员端口或不同的等价路径成员进行转发,从而实现负载分担。该传统的静态hash选路有一个明显缺陷,就是对于hash结果相同的流,最后都选择了相同的成员端口或等价路径成员转发。这在网络数据流hash分布不均匀的场景,尤其是在像数据中心网络中同时存在多个大象流和老鼠流的场景就有明显的问题。举个例子,如果多个大象流hash到了同一条端口链路上,就很容易造成LAG组或ECMP组的这个成员链路出口拥塞甚至丢包。
DLB(Dynamic Load Balance,动态负载均衡)技术是解决上述静态hash选路缺陷的一种新的技术。DLB的主要原理是根据LAG/ECMP成员链路的负载情况来选取负载轻的成员,以进行当前报文的转发。然而,DLB在分布式设备上实施还存在一些技术难点,例如实时采集分布在不同线卡的LAG/ECMP成员端口的负载数据难度较大、大量实时负载数据消息对带外带宽的消耗较大、符合转发需求的路由成员的选举性能低导致负载分担效果不好等等,导致当前芯片及设备厂家的DLB技术还只是局限在集中式设备中实现,在分布式框式设备中因为实现技术上的难度尚无法很好的支持DLB功能。
发明内容
本公开针对现有技术中存在的上述不足,提供一种报文转发方法、线卡、主控卡、框式设备、电子设备及计算机存储介质。
第一方面,本公开实施例提供一种报文转发方法,其中,所述方法包括至少一个转发周期,每个转发周期都包括:
根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关;
将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员;
通过所述符合转发需求的路由成员转发报文。
在一些实施例中,所述负载数据包括额定负载数据和实际负载数据,所述根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息包括:
根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数;
根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数;
根据所述路由结构在当前转发周期的最终平均负载指数和所述额定负载数据确定所述路由结构在当前转发周期的质量评估信息。
在一些实施例中,所述路由结构包括端口,所述端口的额定负载数据包括端口带宽,所述端口的实际负载数据包括端口发包数量,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤中,利用以下公式计算所述端口在当前转发周期的初始平均负载指数:
Lp=Sp(N,t)/Bwp;
其中,Lp为所述端口在当前转发周期的初始平均负载指数;
Sp(N,t)为所述端口在当前转发周期的端口发包速率;
N为所述端口在当前转发周期的端口发包数量;
t为所述转发周期的时长;
Bwp为所述端口的端口带宽。
在一些实施例中,所述路由结构还包括队列,所述队列的额定负载数据包括队列丢包门限,所述队列的实际负载数据包括队列深度,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤中,利用以下公式计算所述队列的初始平均负载指数:
Lq=Dq/Mq,
其中,Lq为所述队列在当前转发周期的初始平均负载指数;
Dq为所述队列在当前转发周期的队列深度;
Mq为所述队列的队列丢包门限。
在一些实施例中,所述队列包括:下行流量管理ETM队列,或,上行流量管理FTM队列。
在一些实施例中,在所述根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数的步骤中,利用以下公式计算所述路由结构在当前转发周期的最终平均负载指数:
We为预设的权重。
在一些实施例中,所述当前线卡的路由成员为链路聚合LAG组中的端口,和/或,等价多径路由ECMP组中的路径。
在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系。
第二方面,本公开实施例提供一种报文转发方法,其中,所述方法包括至少一个转发周期,每个转发周期都包括:
接收各个线卡发送的相应路由结构的质量评估信息;
根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡所发送的所述对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的质量评估值;
根据各所述质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系包括:所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系。
在一些实施例中,所述路由结构还包括ETM队列,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系还包括:所述ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系。
在一些实施例中,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口和FTM队列,所述质量评估信息包括所述端口所对应的端口标识与所述端口的端口质量评估值之间的第一对应关系以及所述FTM队列所对应的端口标识与所述FTM队列的FTM队列质量评估值之间的第三对应关系。
在一些实施例中,所述根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡发送的所述第一对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值;
根据所述待计算的线卡发送的所述第三对应关系以及所述其他线卡发送的所述第三对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的FTM队列质量评估值;
根据所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值和各FTM队列质量评估值,确定所述待计算的线卡中符合转发需求的路由成员。
第三方面,本公开实施例提供一种线卡,其中,所述线卡包括:
处理模块,用于根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关;
发送模块,用于将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员;
转发模块,用于通过所述符合转发需求的路由成员转发报文。
第四方面,本公开实施例提供一种主控卡,其中,所述主控卡包括:
接收模块,用于接收各个线卡发送的相应路由结构的质量评估信息;
处理模块,用于根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
第五方面,本公开实施例提供一种框式设备,包括如前所述的主控卡和至少一个如前所述的线卡。
第六方面,本公开实施例一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前所述的报文转发方法。
第七方面,本公开实施例一种计算机存储介质,其上存储有计算机程序,其中,所述程序被执行时实现如前所述的报文转发方法。
本公开实施例所提供的报文转发方法,线卡直接根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,并将质量评估信息发送至主控卡,以供主控卡直接根据所述质量评估信息确定当前线卡中符合转发需求的路由成员,线卡直接通过所述符合转发需求的路由成员转发报文即可。无需主控卡先分别采集不同线卡的负载数据再根据负载数据为各个线卡确定符合转发需求的路由成员,合理并均衡地利用线卡及主控卡的数据处理资源和网络资源,提高了选择符合转发需求的路由成员的效率,节省了网络资源。实现了动态地根据路由结构的负载情况来选取路由成员进行报文转发,在线卡的各路由成员之间动态高效地实现了负载均衡。也无需通过静态hash的方法从各路由成员中选取路由成员进行报文转发,有效地避免了由于为hash结果相同的不同报文选择相同的路由成员进行转发而导致的路由成员拥塞、丢包的问题,减小了路由成员的拥塞丢包频率,提高了报文转发效率。
附图说明
图1是本公开实施例提供的报文转发系统的结构示意图;
图2是本公开实施例提供的线卡侧报文转发方法的流程示意图;
图3是本公开实施例提供的根据负载数据确定质量评估信息的流程示意图;
图4是本公开实施例提供的一种报文格式示意图;
图5是本公开实施例提供的另一种报文格式示意图;
图6是本公开实施例提供的主控卡侧报文转发方法的流程示意图一;
图7是本公开实施例提供的根据质量评估信息确定符合转发需求的路由成员的流程示意图一;
图8是本公开实施例提供的主控卡侧报文转发方法的流程示意图二;
图9是本公开实施例提供的根据质量评估信息确定符合转发需求的路由成员的流程示意图二;
图10是本公开实施例提供的线卡的模块示意图;
图11是本公开实施例提供的主控卡的模块示意图。
具体实施方式
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
本公开实施例所提供的报文转发方法,可以应用于如图1所示的包括主控卡及多张线卡的报文转发系统,多张线卡均可以与主控卡进行数据交互,线卡至少包括转发芯片。
如图2所示,本公开实施例提供一种报文转发方法,所述报文转发方法包括至少一个转发周期,当所述报文转发方法应用于线卡时,每个转发周期都可以包括如下步骤:
在步骤S11中,根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关。
在步骤S12中,将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员。
在步骤S13中,通过所述符合转发需求的路由成员转发报文。
其中,转发周期可以预先设定,其时长可以被设定为数秒、数毫秒、数微秒、数纳秒等等。路由结构可以包括当前线卡上已进行过DLB配置的路由结构,还可以包括当前线卡上还未进行过DLB配置的路由结构;路由结构可以与当前线卡的路由成员相关,还可以与当前线卡所在的报文转发系统中的其他线卡的路由成员相关。负载数据可以包括相应路由结构的配置信息以及表征相应路由结构的负载性能的数据。质量评估信息可用以表征相应路由结构的质量(或可称空闲程度等等)。符合转发需求的路由成员可以是当前不存在拥塞或拥塞程度最低的路由成员。
线卡可以主动将质量评估信息发送至主控卡,也可以响应于接收到主控卡发送的获取请求而将质量评估信息发送至主控卡。主控卡则可以直接根据质量评估信息为当前线卡确定出符合转发需求的路由成员,无需主控卡先分别采集不同线卡的负载数据再根据负载数据为各个线卡确定符合转发需求的路由成员,合理并均衡地利用线卡及主控卡的数据处理资源和网络资源,提高了选择符合转发需求的路由成员的效率,节省了网络资源。
在根据质量评估信息确定出当前线卡中符合转发需求的路由成员之后,主控卡可以主动将该符合转发需求的路由成员通知给当前线卡,也可以响应于接收到线卡发送的获取请求而将该符合转发需求的路由成员通知给当前线卡。当前线卡可以将主控卡通知的符合转发需求的路由成员更新至本地的目标路由成员表项,当需要进行报文转发时,线卡可以直接查询本地的目标路由成员表项,以确定当前符合转发需求的路由成员,通过该符合转发需求的路由成员转发报文。需要说明的是,若存在报文流还未被转发完毕,且目标路由成员表项发生变化导致线卡查询到的符合转发需求的路由成员发生变化,则线卡可以在保证报文流不乱序的情况下,通过更新后的符合转发需求的路由成员继续转发报文。
线卡根据路由结构的负载数据确定路由结构的质量评估信息,主控卡根据线卡发送的路由结构的质量评估信息确定当前线卡中符合转发需求的路由成员,当路由结构的负载数据发生变化时,符合转发需求的路由成员也将发生变化。在每个转发周期中,线卡均通过主控卡确定出的符合转发需求的路由成员转发报文,能够确保所有的报文均是通过当前的符合转发需求的路由成员转发的,实现了动态地根据路由结构的负载情况来选取路由成员进行报文转发,在线卡的各路由成员之间动态高效地实现了负载均衡。并且,线卡是通过主控卡确定出的符合转发需求的路由成员转发报文,而不是通过静态hash的方法从各路由成员中选取路由成员进行报文转发,有效地避免了由于为hash结果相同的不同报文选择相同的路由成员进行转发而导致的路由成员拥塞、丢包的问题,减小了路由成员的拥塞丢包频率,提高了报文转发效率。
通过上述步骤S11-S13可以看出,本公开实施例所提供的报文转发方法,线卡直接根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,并将质量评估信息发送至主控卡,以供主控卡直接根据所述质量评估信息确定当前线卡中符合转发需求的路由成员,线卡直接通过所述符合转发需求的路由成员转发报文即可。无需主控卡先分别采集不同线卡的负载数据再根据负载数据为各个线卡确定符合转发需求的路由成员,合理并均衡地利用线卡及主控卡的数据处理资源和网络资源,提高了选择符合转发需求的路由成员的效率,节省了网络资源。实现了动态地根据路由结构的负载情况来选取路由成员进行报文转发,在线卡的各路由成员之间动态高效地实现了负载均衡。也无需通过静态hash的方法从各路由成员中选取路由成员进行报文转发,有效地避免了由于为hash结果相同的不同报文选择相同的路由成员进行转发而导致的路由成员拥塞、丢包的问题,减小了路由成员的拥塞丢包频率,提高了报文转发效率。
为路由结构所配置的负载上限越大、路由结构本身的负载性能越高,则与路由结构相关的路由成员的可用性程度也将越高。负载数据可以包括相应路由结构的配置信息以及表征相应路由结构的负载性能的数据,则主控卡可以根据路由结构的负载数据来对路由结构的质量进行综合评估计算,以得到可以表征路由结构的质量的质量评估信息。相应的,在一些实施例中,所述负载数据可以包括额定负载数据和实际负载数据,额定负载数据可以为相应路由结构的配置信息,实际负载数据课可以用以表征相应路由结构的负载性能。
如图3所示,在一些实施例中,所述根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息(即步骤S11)可以包括如下步骤:
在步骤S111中,根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数。
在步骤S112中,根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数。
在步骤S113中,根据所述路由结构在当前转发周期的最终平均负载指数和所述额定负载数据确定所述路由结构在当前转发周期的质量评估信息。
初始平均负载指数已经能够表征路由结构在当前转发周期的质量,但由于路由结构通常处于持续工作的状态,路由结构的负载情况在具体工作过程中是不断发生变化的,当前转发周期的负载情况与历史转发周期的负载情况具有一定的关联,若仅根据路由结构的额定负载数据和路由结构在当前转发周期的实际负载数据确定路由结构在当前转发周期的质量评估信息,则具有一定的局限性,未考虑到上一转发周期的负载情况对当前转发周期的负载情况的影响,可能会影响质量评估信息的准确性。为了进一步提高质量评估信息的准确性,线卡可以考虑上一转发周期的负载情况对当前转发周期的负载情况的影响,根据路由结构在上一转发周期的最终平均负载指数和在当前转发周期的初始平均负载指数确定路由结构在当前转发周期的最终平均负载指数。
最终平均负载指数也已经能够表征路由结构在当前转发周期的质量,最终平均负载指数越高,说明路由结构的剩余负载容量越低,路由结构的质量也越低。但在最终平均负载指数相同的情况下,负载能力相对较高的路由结构,其可用性明显高于负载能力相对较低的路由结构的可用性。若仅将最终平均负载指数作为质量评估信息,则未考虑到路由结构的负载能力对于路由结构质量的影响,可能会影响质量评估信息的准确性。为了更进一步提高质量评估信息的准确性,在评估计算路由结构的质量时,线卡还可以考虑路由结构的负载能力。路由结构的负载能力可以从路由结构的配置信息(即额定负载数据)上体现出来,线卡可以根据路由结构在当前转发周期的最终平均负载指数和额定负载数据来计算路由结构在当前转发周期的质量评估信息。
通过上述步骤S111-S113可以看出,本公开实施例提供的确定路由结构的质量评估信息的方法,根据路由结构的额定负载数据、路由结构在当前转发周期的实际负载数据以及路由结构在上一转发周期的最终平均负载指数来确定路由结构的质量评估信息,综合考虑了路由结构的当前负载情况、历史负载情况和负载能力,能够得到较为准确客观的质量评估信息,由于主控卡根据指令评估信息为线卡确定符合转发需求的路由成员,也将提高选择路由成员的准确性。
在一些实施例中,所述路由结构包括端口,所述端口的额定负载数据包括端口带宽,所述端口的实际负载数据包括端口发包数量,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤(即步骤S111)中,利用以下公式计算所述端口在当前转发周期的初始平均负载指数:
Lp=Sp(N,t)/Bwp;
其中,Lp为所述端口在当前转发周期的初始平均负载指数;
Sp(N,t)为所述端口在当前转发周期的端口发包速率;
N为所述端口在当前转发周期的端口发包数量;
t为所述转发周期的时长;
Bwp为所述端口的端口带宽。
端口即为线卡上的物理出端口。端口带宽即为端口的配置信息,线卡可以使用等比数值来表示端口带宽,例如,10G、40G、100G的端口带宽可以分别表示为10、40、100,当然,也可以分别表示为1、4、10或分别表示为0.1、0.4、1等等。端口在当前转发周期的端口发包速率Sp(N,t)是关于端口在当前转发周期的端口发包数量N和转发周期的时长t的函数,本公开实施例对具体如何根据端口发包数量和时长t计算端口发包速率并不做具体限定。以端口在当前转发周期的端口发包速率是8G而端口的端口带宽是10G为例,此时端口在当前转发周期的初始平均负载指数为0.8。
根据端口的质量评估信息来选取符合转发需求的路由成员进行报文转发,相较于通过静态hash的方法来选取路由成员进行报文转发,能够有效避免由于为hash结果相同的不同报文选择相同的路由成员进行转发而导致的路由成员拥塞、丢包的问题,从而减小路由成员的拥塞丢包频率以及提高报文转发效率。但仅根据端口的质量来选取符合转发需求的路由成员,考虑到当在转发芯片上行TM(Traffic Manage,流量管理)完成QoS(Qualityof Service,服务质量)时,可能存在选取的路由成员对突发流量不敏感的问题,无法适用于流量突发场景,因此,除可以根据端口的质量选取择符合转发需求的路由成员之外,还可以结合端口的质量以及队列的质量选取符合转发需求的路由成员。
相应的,在一些实施例中,所述路由结构还包括队列,所述队列的额定负载数据包括队列丢包门限,所述队列的实际负载数据包括队列深度,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤(即步骤S111)中,利用以下公式计算所述队列的初始平均负载指数:
Lq=Dq/Mq,
其中,Lq为所述队列在当前转发周期的初始平均负载指数;
Dq为所述队列在当前转发周期的队列深度;
Mq为所述队列的队列丢包门限。
队列即为在本线卡上为本线卡的端口或者报文转发系统中的所有端口(既包括本线卡上的端口,也包括其他线卡上的端口)所配置的出队列。队列丢包门限即为队列的配置信息,指的是能够进入队列的最大报文长度。线卡可以使用等比数值来表示队列丢包门限,例如,10K字节、40K字节、100K字节的队列丢包门限可以分别表示为10、40、100,当然,也可以分别表示为1、4、10或分别表示为0.1、0.4、1等等。以队列在当前转发周期的队列深度是8K字节而队列丢包门限是10K字节为例,此时队列在当前转发周期的初始平均负载指数为0.8。
本公开实施例提供的报文转发方法,结合端口的质量以及队列的质量来选取符合转发需求的路由成员,能够适用于流量突发场景,进一步提高DLB技术的选取路由成员的效率和准确性。
在一些实施例中,所述队列可以包括:ETM(Egress Traffic Manage,下行流量管理)队列,或,FTM(Fabric Traffic Manage,上行流量管理)队列。
其中,ETM队列可以包括当前线卡的转发芯片的ETM为当前线卡的端口所配置的下行ETM队列。FTM队列可以包括当前线卡的转发芯片的FTM为当前线卡的端口所配置的上行FTM队列,还可以包括当前线卡的转发芯片的FTM为报文转发系统中的其他线卡的端口所配置的上行FTM队列。FTM队列是在转发芯片上行的TM用于缓存出口报文的队列,每个线卡的转发芯片的FTM均为系统所有端口分配有出队列。
在转发芯片上行TM完成QoS(Quality of Service,服务质量)的场景下,线卡能够合理全面地评估TM队列质量,根据端口的质量以及TM队列的质量来选取符合转发需求的路由成员,能够适用于流量突发场景,提高选取路由成员的准确性。
在一些实施例中,在所述根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数的步骤(即步骤S112)中,利用以下公式计算所述路由结构在当前转发周期的最终平均负载指数:
We为预设的权重。
T可用以标识当前转发周期,T-1可用以标识上一转发周期。当路由结构为端口时,线卡可以根据端口在上一转发周期的最终平均负载指数和在当前转发周期的初始平均负载指数确定端口在当前转发周期的最终平均负载指数。当路由结构包括队列时,线卡还可以根据队列在上一转发周期的最终平均负载指数和在当前转发周期的初始平均负载指数确定队列在当前转发周期的最终平均负载指数。
需要说明的是,在第一个转发周期中,由于不存在路由结构在上一转发周期的最终平均负载指数,线卡可以将路由结构在当前转发周期的初始平均负载指数作为路由结构在当前转发周期的最终平均负载指数。
在一些实施例中,所述当前线卡的路由成员为LAG组中的端口,和/或,ECMP组中的路径。其中,ECMP组中的每一路径均具有端口。
在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系。线卡的路由结构通常情况下为多个,对于任一路由结构,线卡可以根据该路由结构的负载数据来确定该路由结构的质量评估信息,在所述根据所述路由结构在当前转发周期的最终平均负载指数和所述额定负载数据确定所述路由结构在当前转发周期的质量评估信息的步骤(即步骤S113)中,线卡可以先根据该路由结构在当前转发周期的最终平均负载指数和额定负载数据确定该路由结构在当前转发周期的质量评估值,再生成该路由结构对应的端口标识与质量评估值之间的对应关系。
当路由结构为端口时,路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,可以包括端口对应的端口标识与端口质量评估值之间的第一对应关系,线卡可以先根据端口在当前转发周期的最终平均负载指数和额定负载数据确定该端口在当前转发周期的端口质量评估值,再生成该端口对应的端口标识与端口质量评估值之间的第一对应关系。
在一些实施例中,线卡可以利用以下公式计算端口在当前转发周期的端口质量评估值:
其中,Qp为端口在当前转发周期的端口质量评估值;
Bwp为端口的端口带宽(即额定负载数据);
We(Bwp)为根据端口带宽确定的权重。
当路由结构为ETM队列时,路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,还可以包括ETM队列对应的端口标识与ETM队列质量评估值之间的第二对应关系,线卡可以先根据ETM队列在当前转发周期的最终平均负载指数和额定负载数据确定该ETM队列在当前转发周期的ETM队列质量评估值,再生成该ETM队列对应的端口标识与ETM队列质量评估值之间的第二对应关系。
在一些实施例中,线卡可以利用以下公式计算ETM队列在当前转发周期的ETM队列质量评估值:
其中,Qeq为ETM队列在当前转发周期的ETM队列质量评估值;
Meq为ETM队列的队列丢包门限(即额定负载数据);
We(Meq)为根据ETM队列的队列丢包门限确定的权重。
当路由结构为FTM队列时,路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,还可以包括FTM队列对应的端口标识与FTM队列质量评估值之间的第三对应关系,线卡可以先根据FTM队列在当前转发周期的最终平均负载指数和额定负载数据确定该FTM队列在当前转发周期的FTM队列质量评估值,再生成该FTM队列对应的端口标识与FTM队列质量评估值之间的第三对应关系。
其中,Qfq为FTM队列在当前转发周期的FTM队列质量评估值;
Mfq为FTM队列的队列丢包门限(即额定负载数据);
We(Mfq)为根据FTM队列的队列丢包门限确定的权重。
在一些实施例中,所述将所述质量评估信息发送至主控卡(即步骤S12中所述)可以包括:线卡主动将质量评估信息发送至主控卡,或者,线卡响应于主控卡的获取请求而将质量评估信息发送至主控卡。也就是说,可以由线卡主动向主控卡发送路由结构的质量评估信息,也可以由主控卡主动向线卡获取路由结构的质量评估信息。
线卡可以通过以太网通道或PCI-E通道等将质量评估信息发送至主控卡,本公开实施例对此并不做具体限定。在线卡主动发送质量评估信息的情况下,线卡可以采用如图4所示的报文格式发送质量评估信息,该格式包括消息头、槽位号、芯片号和质量评估信息。在主控卡主动获取质量评估信息的情况下,线卡可以采用如图5所示的报文格式发送质量评估信息,该格式包括槽位号、芯片号和质量评估信息。
消息头可以包括消息类型字段、消息子类型字段和消息长度字段,消息类型字段用于指示本报文为质量评估信息通知消息,消息子类型用于指示本报文通知的为以下任一:端口的质量评估信息、端口的质量评估信息及ETM队列的质量评估信息、端口的质量评估信息及FTM队列的质量评估信息。端口的质量评估信息可以包括端口标识与端口质量评估值之间的第一对应关系,ETM队列的质量评估信息可以包括端口标识与ETM队列质量评估值之间的第二对应关系,FTM队列的质量评估信息可以包括端口标识与FTM队列质量评估值之间的第三对应关系。
如图6所示,本公开实施例提供一种报文转发方法,所述报文转发方法包括至少一个转发周期,当所述报文转发方法应用于主控时,每个转发周期都可以包括如下步骤:
在步骤S21中,接收各个线卡发送的相应路由结构的质量评估信息。
在步骤S22中,根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
通过上述步骤S21-S22可以看出,本公开实施例所提供的报文转发方法,线卡直接根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,并将质量评估信息发送至主控卡,以供主控卡直接根据所述质量评估信息确定当前线卡中符合转发需求的路由成员,线卡直接通过所述符合转发需求的路由成员转发报文即可。无需主控卡先分别采集不同线卡的负载数据再根据负载数据为各个线卡确定符合转发需求的路由成员,合理并均衡地利用线卡及主控卡的数据处理资源和网络资源,提高了选择符合转发需求的路由成员的效率,节省了网络资源。实现了动态地根据路由结构的负载情况来选取路由成员进行报文转发,在线卡的各路由成员之间动态高效地实现了负载均衡。也无需通过静态hash的方法从各路由成员中选取路由成员进行报文转发,有效地避免了由于为hash结果相同的不同报文选择相同的路由成员进行转发而导致的路由成员拥塞、丢包的问题,减小了路由成员的拥塞丢包频率,提高了报文转发效率。
如图7所示,在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员(即步骤S22)可以包括如下步骤:
在步骤S221中,根据所述待计算的线卡所发送的所述对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的质量评估值。
在步骤S222中,根据各所述质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
其中,路由成员可以包括:LAG组中的端口,或,ECMP组中的路径,而ECMP组中的每一路径均具有端口。针对任一待计算的线卡,主控卡可以确定该待计算的线卡的各路由成员的端口标识,对于该待计算的线卡的任一LAG组,主控卡可以获取本地保存的该LAG组的所有端口的端口标识,例如LAG1组共有三个端口,端口标识分别为port1、port2、port100。对于该待计算的线卡的某一ECMP组,主控卡可以获取并记录该ECMP组的所有路径的端口的端口标识,若多条路径的端口相同,则该端口的端口标识只记录一次,最终记录该ECMP组的所有路径的端口的端口标识。例如最终记录该ECMP1组共有三个端口,端口标识分别为port1、port2、port100。进一步的,主控卡可以根据该待计算的线卡的各路由成员的端口标识,查询该待计算的线卡所发送的端口标识与质量评估值之间的对应关系,以分别确定该待计算的线卡的各路由成员所对应的质量评估值。
该待计算的线卡的每一路由成员所对应的质量评估值可以为一个,主控卡可以确定在各路由成员所对应的质量评估值中的最高值,将该最高值所对应的路由成员确定为该待计算的线卡中符合转发需求的路由成员;该待计算的线卡的每一路由成员所对应的质量评估值也可以为多个,对于每一路由成员,主控卡可以根据其所对应的多个质量评估值确定其所对应的综合质量评估值,然后确定在各路由成员所对应的综合质量评估值中的最高值,将该最高值所对应的路由成员确定为该待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系包括:所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系。
相应的,步骤S221可以包括:根据所述待计算的线卡所发送的所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值。步骤S222可以包括:根据各所述端口质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构还包括ETM队列,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系还包括:所述ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系。
其中,ETM队列可以包括当前线卡的转发芯片的ETM为当前线卡的端口所配置的下行ETM队列。当路由结构同时包括端口和ETM队列时,相应的,线卡发送的质量评估信息即端口标识与质量评估值之间的对应关系,除包括端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系之外,还将包括ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系。
相应的,步骤S221可以包括:根据所述待计算的线卡所发送的所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系和所述ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值和ETM队列质量评估值。步骤S222可以包括:根据各所述端口质量评估值和各所述ETM队列质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
对于待计算的线卡的每一路由成员,主控卡可以根据其所对应的端口质量评估值和ETM队列质量评估值确定其所对应的综合质量评估值,例如,在一些实施例中,线卡可以利用以下公式计算综合质量评估值:
Q=Qp*We(p)+Qeq*We(eq);
其中,Q为综合质量评估值;
Qp为端口质量评估值;
We(p)为预设的端口权重;
Qeq为ETM队列质量评估值;
We(eq)为预设的ETM队列权重。
最后,主控卡可以确定在各路由成员对应的综合质量评估值中的最高值,将该最高值所对应的路由成员确定为符合转发需求的路由成员。
对于任一待计算的线卡,各个线卡中的其他线卡上可能为该待计算的线卡的各路由成员(包括端口)配置有FTM队列,因此,为了全面地评估该待计算的线卡中各路由成员的可用性程度,还需结合各个线卡中其他线卡发送的质量评估信息,来为该待计算的线卡选取符合转发需求的路由成员。
相应的,如图8所示,在一些实施例中,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员(即步骤S22)可以包括如下步骤:在步骤S22’中,根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口和FTM队列,所述质量评估信息包括所述端口所对应的端口标识与所述端口的端口质量评估值之间的第一对应关系以及所述FTM队列所对应的端口标识与所述FTM队列的FTM队列质量评估值之间的第三对应关系。
其中,FTM队列可以包括当前线卡的转发芯片的FTM为当前线卡的端口所配置的上行FTM队列,还可以包括当前线卡的转发芯片的FTM为报文转发系统中的其他线卡的端口所配置的上行FTM队列。FTM队列是在转发芯片上行的TM用于缓存出口报文的队列,每个线卡的转发芯片的FTM均为系统所有端口分配有出队列。
相应的,如图9所示,在一些实施例中,所述根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员(即步骤S22’)可以包括如下步骤:
在步骤S221’中,根据所述待计算的线卡发送的所述第一对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值。
在步骤S222’中,根据所述待计算的线卡发送的所述第三对应关系以及所述其他线卡发送的所述第三对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的FTM队列质量评估值。
在步骤S223’中,根据所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值和各FTM队列质量评估值,确定所述待计算的线卡中符合转发需求的路由成员。
针对任一待计算的线卡,主控卡可以确定任一LAG组或ECMP组中各路由成员的端口标识,根据各路由成员的端口标识,查询该待计算的线卡所发送的端口标识与端口质量评估值之间的第一对应关系,以分别确定各路由成员所对应的端口质量评估值。进一步的,主控卡可以根据各路由成员的端口标识,查询该待计算的线卡所发送的以及各个线卡中其他线卡所发送的端口标识与FTM队列质量评估值之间的第三对应关系,以分别确定各路由成员所对应的各FTM队列质量评估值。
对于每一路由成员,主控卡可以根据其所对应的各FTM队列质量评估值确定其所对应的FTM队列综合质量评估值。例如,在一些实施例中,主控卡可以根据如下公式确定FTM队列综合质量评估值:FTM队列综合质量评估值=线卡1发送的port1FTM队列质量评估值+线卡2发送的port1FTM队列质量评估值+……+线卡n发送的port1FTM队列质量评估值,其中,port1为当前路由成员的端口标识;其中,port1为路由成员的端口标识。进一步的,主控卡可以根据其所对应的端口质量评估值和ETM队列确定其所对应的综合质量评估值,例如,在一些实施例中,线卡可以利用以下公式计算综合质量评估值:
Q=Qp*We(p)+Qfq*We(fq);
其中,Q为综合质量评估值;
Qp为端口质量评估值;
We(p)为预设的端口权重;
Qfq为FTM队列综合质量评估值;
We(fq)为预设的FTM队列权重。
最后,主控卡可以确定在各路由成员对应的综合质量评估值中的最高值,将该最高值所对应的路由成员确定为符合转发需求的路由成员。
基于相同的技术构思,本公开实施例提供一种线卡,如图10所示,所述线卡包括:
处理模块101,用于根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关。
发送模块102,用于将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员。
转发模块103,用于通过所述符合转发需求的路由成员转发报文。
在一些实施例中,所述负载数据包括额定负载数据和实际负载数据,所述处理模块101用于:
根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数;
根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数;
根据所述路由结构在当前转发周期的最终平均负载指数和所述额定负载数据确定所述路由结构在当前转发周期的质量评估信息。
在一些实施例中,所述路由结构包括端口,所述端口的额定负载数据包括端口带宽,所述端口的实际负载数据包括端口发包数量,所述处理模块101利用以下公式计算所述端口在当前转发周期的初始平均负载指数:
Lp=Sp(N,t)/Bwp;
其中,Lp为所述端口在当前转发周期的初始平均负载指数;
Sp(N,t)为所述端口在当前转发周期的端口发包速率;
N为所述端口在当前转发周期的端口发包数量;
t为所述转发周期的时长;
Bwp为所述端口的端口带宽。
在一些实施例中,所述路由结构还包括队列,所述队列的额定负载数据包括队列丢包门限,所述队列的实际负载数据包括队列深度,所述处理模块101利用以下公式计算所述队列的初始平均负载指数:
Lq=Dq/Mq,
其中,Lq为所述队列在当前转发周期的初始平均负载指数;
Dq为所述队列在当前转发周期的队列深度;
Mq为所述队列的队列丢包门限。
在一些实施例中,所述队列包括:下行流量管理ETM队列,或,上行流量管理FTM队列。
在一些实施例中,所述处理模块101利用以下公式计算所述路由结构在当前转发周期的最终平均负载指数:
We为预设的权重。
在一些实施例中,所述当前线卡的路由成员为链路聚合LAG组中的端口,和/或,等价多径路由ECMP组中的路径。
在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系。
基于相同的技术构思,本公开实施例提供一种主控卡,如图11所示,所述主控卡包括:
接收模块201,用于接收各个线卡发送的相应路由结构的质量评估信息。
处理模块202,用于根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
在一些实施例中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,针对任一待计算的线卡,所述处理模块202用于:
根据所述待计算的线卡所发送的所述对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的质量评估值;
根据各所述质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系包括:所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系。
在一些实施例中,所述路由结构还包括ETM队列,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系还包括:所述ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系。
在一些实施例中,针对任一待计算的线卡,所述处理模块202用于:根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员。
在一些实施例中,所述路由结构包括端口和FTM队列,所述质量评估信息包括所述端口所对应的端口标识与所述端口的端口质量评估值之间的第一对应关系以及所述FTM队列所对应的端口标识与所述FTM队列的FTM队列质量评估值之间的第三对应关系。
在一些实施例中,所述处理模块202用于:
根据所述待计算的线卡发送的所述第一对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值;
根据所述待计算的线卡发送的所述第三对应关系以及所述其他线卡发送的所述第三对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的FTM队列质量评估值;
根据所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值和各FTM队列质量评估值,确定所述待计算的线卡中符合转发需求的路由成员。
基于相同的技术构思,本公开实施例还提供了一种框式设备,所述框式设备包括如前所述的主控卡和至少一个如前所述的线卡。
以下结合三个具体实施例来对本公开提供的报文转发方法进行详细说明。
实施例一:基于端口的负载数据选择路由成员。
在每个转发周期中:
线卡获取本线卡上所有端口的负载数据,该负载数据包括端口带宽和端口发包数量。具体的,线卡采集各端口的端口发包数量,获取预先配置的各端口的端口带宽。
对于每一端口,线卡根据该端口的端口发包数量计算端口发包速率,根据端口发包速率和端口带宽计算该端口在当前转发周期的初始平均负载指数;根据该端口在当前转发周期的初始平均负载指数以及该端口在当前转发周期的所述初始平均负载指数计算该端口在当前转发周期的最终平均负载指数;根据该端口在当前转发周期的最终平均负载指数和端口带宽计算该端口的端口质量评估值,并生成该端口的端口标识与端口质量评估值之间的第一对应关系(即端口的质量评估信息)。
线卡将质量评估信息采用如图4所示的报文格式发送至主控卡,其中,消息头包括消息类型字段、消息子类型字段和消息长度字段,消息类型字段用于指示本报文为质量评估信息通知消息,消息子类型用于指示本报文通知的为端口的质量评估信息。
主控卡接收到各个线卡发送的各质量评估信息后,针对任一待计算的线卡,主控卡逐一确定该待计算的线卡的各LAG组或ECMP组中各路由成员中的符合转发需求的路由成员。具体的,主控卡确定当前LAG组或ECMP组中各路由成员的端口标识,根据各路由成员的端口标识,查询该待计算的线卡所发送的端口标识与端口质量评估值之间的第一对应关系,以分别确定各路由成员所对应的端口质量评估值。主控卡确定在各路由成员所对应的端口质量评估值中的最高值,将该最高值所对应的路由成员确定为符合转发需求的路由成员。
主控卡分别向各个线卡通知各LAG组或各ECMP组中的符合转发需求的路由成员。
各个线卡根据主控卡通知的各LAG组或ECMP组的符合转发需求的路由成员,更新本地转发芯片的目标路由成员表项。
当需要通过某一LAG组或ECMP组中的路由成员进行报文转发时,线卡的转发芯片查询目标路由成员表项以确定当前的符合转发需求的路由成员,通过该符合转发需求的路由成员转发报文。需要说明的是,若存在报文流还未被转发完毕,且目标路由成员表项发生变化导致线卡查询到的符合转发需求的路由成员发生变化,则线卡可以在保证报文流不乱序的情况下,通过更新后的符合转发需求的路由成员继续转发报文。
实施例二:基于端口的负载数据和ETM队列的负载数据选择路由成员。
在每个转发周期中:
线卡获取本线卡上所有端口的负载数据和ETM队列的负载数据,端口的负载数据包括端口带宽和端口发包数量,ETM队列的负载数据包括ETM队列丢包门限和ETM队列深度。具体的,线卡采集各端口的端口发包数量以及各端口的ETM队列的队列深度,获取预先配置的各端口的端口带宽和各端口配置的ETM队列的ETM队列丢包门限。
对于每一端口,线卡根据该端口的端口发包数量计算端口发包速率,根据端口发包速率和端口带宽计算该端口在当前转发周期的初始平均负载指数;根据该端口在当前转发周期的初始平均负载指数以及该端口在当前转发周期的所述初始平均负载指数计算该端口在当前转发周期的最终平均负载指数;根据该端口在当前转发周期的最终平均负载指数和端口带宽计算该端口的端口质量评估值,并生成该端口的端口标识与端口质量评估值之间的第一对应关系(即端口的质量评估信息)。
对于每一端口的ETM队列,线卡根据该ETM队列的ETM队列丢包门限和ETM队列深度计算该ETM队列在当前转发周期的初始平均负载指数;根据该ETM队列在当前转发周期的初始平均负载指数以及该ETM队列在当前转发周期的所述初始平均负载指数计算该ETM队列在当前转发周期的最终平均负载指数;根据该ETM队列在当前转发周期的最终平均负载指数和ETM队列的队列丢包门限计算该ETM队列的ETM队列质量评估值,并生成该ETM队列的端口标识与ETM队列质量评估值之间的第二对应关系(即ETM队列的质量评估信息)。
线卡将质量评估信息采用如图4所示的报文格式发送至主控卡,其中,消息头包括消息类型字段、消息子类型字段和消息长度字段,消息类型字段用于指示本报文为质量评估信息通知消息,消息子类型用于指示本报文通知的为端口的质量评估信息以及ETM队列的质量评估信息。
针对任一待计算的线卡,主控卡接收到各个线卡发送的各质量评估信息后,逐一确定该待计算的线卡的各LAG组或ECMP组中各路由成员中的符合转发需求的路由成员。具体的,主控卡确定当前LAG组或ECMP组中各路由成员的端口标识,根据各路由成员的端口标识,查询该待计算的线卡所发送的端口标识与端口质量评估值之间的第一对应关系以及端口标识与ETM队列质量评估值之间的第二对应关系,以分别确定各路由成员所对应的端口质量评估值和ETM队列质量评估值。对于该任一待计算的线卡的任一路由成员,主控卡可以根据当前路由成员所对应的端口质量评估值和ETM队列质量评估值确定其所对应的综合质量评估值:综合质量评估值=端口质量评估值*端口权重+ETM队列质量评估值*队列权重。主控卡将各LAG组或ECMP组中具有最高的综合质量评估值的路由成员确定为符合转发需求的路由成员。
主控卡分别向各个线卡通知各LAG组或各ECMP组中的符合转发需求的路由成员。
各个线卡根据主控卡通知的各LAG组或ECMP组的符合转发需求的路由成员,更新本地转发芯片的目标路由成员表项。
当需要通过某一LAG组或ECMP组中的路由成员进行报文转发时,线卡的转发芯片查询目标路由成员表项以确定当前的符合转发需求的路由成员,通过该符合转发需求的路由成员转发报文。需要说明的是,若存在报文流还未被转发完毕,且目标路由成员表项发生变化导致线卡查询到的符合转发需求的路由成员发生变化,则线卡可以在保证报文流不乱序的情况下,通过更新后的符合转发需求的路由成员继续转发报文。
实施例三:基于端口的负载数据和FTM队列的负载数据选择路由成员。
在每个转发周期中:
线卡获取本线卡上所有端口的负载数据和FTM队列的负载数据,端口的负载数据包括端口带宽和端口发包数量,FTM队列的负载数据包括FTM队列丢包门限和FTM队列深度。具体的,线卡采集各端口的端口发包数量以及各端口的FTM队列的队列深度,获取预先配置的各端口的端口带宽和各端口配置的FTM队列的FTM队列丢包门限。
对于每一端口,线卡根据该端口的端口发包数量计算端口发包速率,根据端口发包速率和端口带宽计算该端口在当前转发周期的初始平均负载指数;根据该端口在当前转发周期的初始平均负载指数以及该端口在当前转发周期的所述初始平均负载指数计算该端口在当前转发周期的最终平均负载指数;根据该端口在当前转发周期的最终平均负载指数和端口带宽计算该端口的端口质量评估值,并生成该端口的端口标识与端口质量评估值之间的第一对应关系(即端口的质量评估信息)。
对于每一端口的FTM队列,线卡根据该FTM队列的FTM队列丢包门限和FTM队列深度计算该FTM队列在当前转发周期的初始平均负载指数;根据该FTM队列在当前转发周期的初始平均负载指数以及该FTM队列在当前转发周期的所述初始平均负载指数计算该FTM队列在当前转发周期的最终平均负载指数;根据该FTM队列在当前转发周期的最终平均负载指数和FTM队列的队列丢包门限计算该FTM队列的FTM队列质量评估值,并生成该FTM队列的端口标识与FTM队列质量评估值之间的第三对应关系(即FTM队列的质量评估信息)。
线卡将质量评估信息采用如图4所示的报文格式发送至主控卡,其中,消息头包括消息类型字段、消息子类型字段和消息长度字段,消息类型字段用于指示本报文为质量评估信息通知消息,消息子类型用于指示本报文通知的为端口的质量评估信息以及FTM队列的质量评估信息。
针对任一待计算的线卡,主控卡接收到各个线卡发送的各质量评估信息后,逐一确定该待计算的线卡的各LAG组或ECMP组中各路由成员中的符合转发需求的路由成员。具体的,主控卡确定当前LAG组或ECMP组中各路由成员的端口标识,根据各路由成员的端口标识,查询该待计算的线卡所发送的端口标识与端口质量评估值之间的第一对应关系,以分别确定各路由成员所对应的端口质量评估值,查询该待计算的线卡所发送的以及其他线卡所发送的端口标识与FTM队列质量评估值之间的第三对应关系,以分别确定各路由成员所对应的各FTM队列质量评估值。对于该任一待计算的线卡的任一路由成员,主控卡可以先其所对应的多个FTM队列质量评估值确定其所对应的FTM队列综合质量评估值:FTM队列综合质量评估值=线卡1发送的port1FTM队列质量评估值+线卡2发送的port1FTM队列质量评估值+……+线卡n发送的port1FTM队列质量评估值,其中,port1为当前路由成员的端口标识;其中,port1为路由成员的端口标识。再根据其所对应的端口质量评估值和FTM队列综合质量评估值确定其所对应的综合质量评估值:综合质量评估值=端口质量评估值*端口权重+FTM队列综合质量评估值*队列权重。主控卡将各LAG组或ECMP组中具有最高的综合质量评估值的路由成员确定为符合转发需求的路由成员。
主控卡分别向各个线卡通知各LAG组或各ECMP组中的符合转发需求的路由成员。
各个线卡根据主控卡通知的各LAG组或ECMP组的符合转发需求的路由成员,更新本地转发芯片的目标路由成员表项。
当需要通过某一LAG组或ECMP组中的路由成员进行报文转发时,线卡的转发芯片查询目标路由成员表项以确定当前的符合转发需求的路由成员,通过该符合转发需求的路由成员转发报文。需要说明的是,若存在报文流还未被转发完毕,且目标路由成员表项发生变化导致线卡查询到的符合转发需求的路由成员发生变化,则线卡可以在保证报文流不乱序的情况下,通过更新后的符合转发需求的路由成员继续转发报文。
此外,本公开实施例还提供一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前所述各实施例提供的报文转发方法。
本公开实施例还提供一种计算机存储介质,其上存储有计算机程序,其中,所述程序被执行时实现如前所述各实施例提供的报文转发方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (20)
1.一种报文转发方法,其中,所述方法包括至少一个转发周期,每个转发周期都包括:
根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关;
将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员;
通过所述符合转发需求的路由成员转发报文。
2.根据权利要求1所述的方法,其中,所述负载数据包括额定负载数据和实际负载数据,所述根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息包括:
根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数;
根据所述路由结构在上一转发周期的最终平均负载指数和在当前转发周期的所述初始平均负载指数确定所述路由结构在当前转发周期的最终平均负载指数;
根据所述路由结构在当前转发周期的最终平均负载指数和所述额定负载数据确定所述路由结构在当前转发周期的质量评估信息。
3.根据权利要求2所述的方法,其中,所述路由结构包括端口,所述端口的额定负载数据包括端口带宽,所述端口的实际负载数据包括端口发包数量,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤中,利用以下公式计算所述端口在当前转发周期的初始平均负载指数:
Lp=Sp(N,t)/Bwp;
其中,Lp为所述端口在当前转发周期的初始平均负载指数;
Sp(N,t)为所述端口在当前转发周期的端口发包速率;
N为所述端口在当前转发周期的端口发包数量;
t为所述转发周期的时长;
Bwp为所述端口的端口带宽。
4.根据权利要求3所述的方法,其中,所述路由结构还包括队列,所述队列的额定负载数据包括队列丢包门限,所述队列的实际负载数据包括队列深度,在所述根据所述路由结构的额定负载数据和所述路由结构在当前转发周期的实际负载数据确定所述路由结构在当前转发周期的初始平均负载指数的步骤中,利用以下公式计算所述队列的初始平均负载指数:
Lq=Dq/Mq,
其中,Lq为所述队列在当前转发周期的初始平均负载指数;
Dq为所述队列在当前转发周期的队列深度;
Mq为所述队列的队列丢包门限。
5.根据权利要求4所述的方法,其中,所述队列包括:下行流量管理ETM队列,或,上行流量管理FTM队列。
7.根据权利要求1-6任一项所述的方法,其中,所述当前线卡的路由成员为链路聚合LAG组中的端口,和/或,等价多径路由ECMP组中的路径。
8.根据权利要求1-6任一项所述的方法,其中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系。
9.一种报文转发方法,其中,所述方法包括至少一个转发周期,每个转发周期都包括:
接收各个线卡发送的相应路由结构的质量评估信息;
根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
10.根据权利要求9所述的方法,其中,所述质量评估信息包括所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡所发送的所述对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的质量评估值;
根据各所述质量评估值确定所述待计算的线卡中符合转发需求的路由成员。
11.根据权利要求10所述的方法,其中,所述路由结构包括端口,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系包括:所述端口对应的端口标识与所述端口的端口质量评估值之间的第一对应关系。
12.根据权利要求11所述的方法,其中,所述路由结构还包括ETM队列,所述路由结构对应的端口标识与所述路由结构的质量评估值之间的对应关系还包括:所述ETM队列对应的端口标识与所述ETM队列的ETM队列质量评估值之间的第二对应关系。
13.根据权利要求9所述的方法,其中,针对任一待计算的线卡,所述根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员。
14.根据权利要求13所述的方法,其中,所述路由结构包括端口和FTM队列,所述质量评估信息包括所述端口所对应的端口标识与所述端口的端口质量评估值之间的第一对应关系以及所述FTM队列所对应的端口标识与所述FTM队列的FTM队列质量评估值之间的第三对应关系。
15.根据权利要求14所述的方法,其中,所述根据所述待计算的线卡所发送的质量评估信息以及所述各个线卡中的其他线卡所发送的质量评估信息,确定所述待计算的线卡中符合转发需求的路由成员包括:
根据所述待计算的线卡发送的所述第一对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值;
根据所述待计算的线卡发送的所述第三对应关系以及所述其他线卡发送的所述第三对应关系,确定所述待计算的线卡的各路由成员的端口标识所对应的FTM队列质量评估值;
根据所述待计算的线卡的各路由成员的端口标识所对应的端口质量评估值和各FTM队列质量评估值,确定所述待计算的线卡中符合转发需求的路由成员。
16.一种线卡,其中,所述线卡包括:
处理模块,用于根据当前线卡的路由结构的负载数据确定所述路由结构的质量评估信息,所述路由结构与所述当前线卡的路由成员相关;
发送模块,用于将所述质量评估信息发送至主控卡,以供所述主控卡根据所述质量评估信息确定所述当前线卡中符合转发需求的路由成员;
转发模块,用于通过所述符合转发需求的路由成员转发报文。
17.一种主控卡,其中,所述主控卡包括:
接收模块,用于接收各个线卡发送的相应路由结构的质量评估信息;
处理模块,用于根据各所述质量评估信息确定各个所述线卡中符合转发需求的路由成员,以供各个所述线卡通过相应的所述符合转发需求的路由成员转发报文。
18.一种框式设备,其中,所述框式设备包括如权利要求17所述的主控卡和至少一个如权利要求16所述的线卡。
19.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-15任一项所述的报文转发方法。
20.一种计算机存储介质,其上存储有计算机程序,其中,所述程序被执行时实现如权利要求1-15任一项所述的报文转发方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110766119.XA CN115604169A (zh) | 2021-07-07 | 2021-07-07 | 报文转发方法、线卡、主控卡、设备及计算机存储介质 |
PCT/CN2022/103964 WO2023280170A1 (zh) | 2021-07-07 | 2022-07-05 | 报文转发方法、线卡、主控卡、框式设备、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110766119.XA CN115604169A (zh) | 2021-07-07 | 2021-07-07 | 报文转发方法、线卡、主控卡、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115604169A true CN115604169A (zh) | 2023-01-13 |
Family
ID=84801287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110766119.XA Pending CN115604169A (zh) | 2021-07-07 | 2021-07-07 | 报文转发方法、线卡、主控卡、设备及计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115604169A (zh) |
WO (1) | WO2023280170A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110768B (zh) * | 2007-06-20 | 2010-10-06 | 杭州华三通信技术有限公司 | 数据通信方法、系统、主控卡及线卡 |
US20130089094A1 (en) * | 2010-07-01 | 2013-04-11 | Telefonaktiebolaget L M Ericsson (Publ) | Method and Apparatus for Dissemination of Information Between Routers |
CN105162712B (zh) * | 2015-10-20 | 2019-01-15 | 烽火通信科技股份有限公司 | 一种路由器中分布式协议的实现方法及系统 |
CN113014502B (zh) * | 2021-02-08 | 2022-08-19 | 北京星网锐捷网络技术有限公司 | 基于线卡的负载均衡方法及装置 |
-
2021
- 2021-07-07 CN CN202110766119.XA patent/CN115604169A/zh active Pending
-
2022
- 2022-07-05 WO PCT/CN2022/103964 patent/WO2023280170A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023280170A1 (zh) | 2023-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US20170048144A1 (en) | Congestion Avoidance Traffic Steering (CATS) in Datacenter Networks | |
US11411882B2 (en) | Generating automatic bandwidth adjustment policies per label-switched path | |
CN113132225B (zh) | 路径选择方法、装置、计算机设备和计算机可读介质 | |
JP2009534005A (ja) | 双方向リンク集約 | |
US11102273B2 (en) | Uplink performance management | |
CN113014508A (zh) | 一种报文处理方法及装置 | |
CN109873776A (zh) | 一种组播报文负载分担的均衡方法及装置 | |
CN113783787B (zh) | 一种基于云边协同的非实时数据传输方法及装置 | |
CN108718258B (zh) | 一种板间链路的质量检测方法及设备 | |
CN112087382A (zh) | 一种服务路由方法及装置 | |
CN110290068A (zh) | 一种粘连标签的发送方法、接收方法及设备 | |
CN115604169A (zh) | 报文转发方法、线卡、主控卡、设备及计算机存储介质 | |
CN113965465A (zh) | 一种带宽控制方法、装置、设备和存储介质 | |
US11012378B2 (en) | Methods and apparatus for shared buffer allocation in a transport node | |
CN116962213A (zh) | 操作维护管理信息处理方法、网络节点和存储介质 | |
CN113037651A (zh) | 流量转发的提升QoS的方法、装置、设备及存储介质 | |
US20200067845A1 (en) | Mobile packet data rate control based on radio load and other measures | |
CN111654449B (zh) | 一种物理链路流量均衡方法及装置 | |
CN107592269B (zh) | 传输路径的负载信息的方法和网络节点 | |
CN112600751B (zh) | 一种路径计算方法、装置、设备及机器可读存储介质 | |
WO2022000234A1 (zh) | 一种通信方法及相关设备 | |
CN118413489A (zh) | 一种ai智算中心的网络拥塞调度方法及系统 | |
CN118282953A (zh) | 一种流量突发确定方法及装置 | |
CN117857399A (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 |