CN113810305B - 报文转发方法、装置、转发节点以及计算机可读存储介质 - Google Patents
报文转发方法、装置、转发节点以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113810305B CN113810305B CN202010537687.8A CN202010537687A CN113810305B CN 113810305 B CN113810305 B CN 113810305B CN 202010537687 A CN202010537687 A CN 202010537687A CN 113810305 B CN113810305 B CN 113810305B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- node
- path
- tree
- branch
- 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
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/215—Flow control; Congestion control using token-bucket
-
- 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文转发方法、装置、转发节点以及计算机可读存储介质,属于数据传输技术领域。本方法通过响应于第一转发路径上各个转发节点对应的令牌桶中的令牌数目与均大于或等于目标令牌数目,才会向该第一转发路径上该转发节点的下一个转发节点发送目标报文,由于每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率,从而使得该目标报文达到第一转发路径上除该转发节点以外的其他转发节点的速率均小于其他转发节点的端口转发速率,那么,其他转发节点无需缓存该目标报文,可以直接将该目标报文转发出去,进而使得在其他转发节点处不会出现网络拥塞,以避免在其他转发节点出现丢包。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种报文转发方法、装置、转发节点以及计算机可读存储介质。
背景技术
随着园区网络内移动办公、企业应用泛媒体化和云计算等变化趋势,园区网络流量模型也产生了相应的变化,为了避免园区网络内出现网络拥塞,园区网络内的各个转发节点可以通过服务质量(quality of service,QOS)模型转发流经该转发节点的报文。
目前,园区网络内报文转发的过程可以是:当园区网络内任一转发节点接收到报文后,该转发节点可以基于该报文携带的QOS等级信息,确定该报文的QOS等级,当该转发节点缓存的报文的QOS等级高于该报文的QOS等级时,该转发节点优先转发缓存的报文,并缓存该报文;当该转发节点缓存的报文的QOS等级低于该报文的QOS等级时,则该转发节点优先转发该报文。
在上述报文转发的过程中,一旦园区网络内出现报文突发现象,该转发节点接收到的报文就会激增,而转发节点缓存的报文有限,为了避免在该转发节点出现网络拥塞,该转发节点一般会主动丢弃一些报文,从而导致报文丢包。
发明内容
本申请实施例提供了一种报文转发方法、装置、转发节点以及计算机可读存储介质,能够避免报文丢包,该技术方案如下:
第一方面,提供了一种报文转发方法,应用于转发节点,该方法包括:
确定用于传输目标报文的第一转发路径;获取所述第一转发路径上每个转发节点对应的令牌桶中的令牌数目;响应于每个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目,向所述第一转发路径上所述转发节点的下一个转发节点发送所述目标报文;
其中,所述第一转发路径包括多个转发节点,每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率。
该方法通过响应于第一转发路径上各个转发节点对应的令牌桶中的令牌数目与均大于或等于目标令牌数目,才会向该第一转发路径上该转发节点的下一个转发节点发送目标报文,由于每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率,从而使得该目标报文达到第一转发路径上除该转发节点以外的其他转发节点的速率均小于其他转发节点的端口转发速率,那么,其他转发节点无需缓存该目标报文,可以直接将该目标报文转发出去,进而使得在其他转发节点处不会出现网络拥塞,以避免在其他转发节点出现丢包
在一种可能实现方式中,所述确定用于传输目标报文的第一转发路径之前,所述方法还包括:
获取多个转发路径的路径信息;基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树;
其中,一个转发路径的路径信息包括所述转发路径上每个转发节点的输出端口标识,,所述流量整形树包括多个分支,一个分支用于指示所述多个转发路径中的一个转发路径,所述分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应。
在一种可能实现方式中,一个转发路径的路径信息还包括所述输出端口标识所指示的输出端口的端口速率;所述基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树之后,所述方法还包括:
对于所述流量整形树上的任一个树节点,根据所述树节点对应的输出端口的端口速率,为所述树节点配置一个令牌桶;以所述树节点对应的输出端口的端口转发速率为令牌发放速率,向所述树节点对应的令牌桶发放令牌。
在一种可能实现方式中,所述基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树之后,所述方法还包括:
对于所述多个转发路径中的任一转发路径,当所述转发路径上的转发节点或者转发节点的输出端口发生变化时,基于变化后的所述转发路径,对所述转发路径对应的第一分支上的树节点进行调整,得到第二分支,所述第二分支上每个树节点对应变化后的所述转发路径上一个转发节点的一个输出端口。
在一种可能实现方式中,所述基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树之后,所述方法还包括:
获取第二转发路径的路径信息;基于所述第二转发路径的路径信息中转发节点的端口标识,在所述流量整形树上生成所述第二转发路径对应的目标分支;
其中,所述第二转发路径为报文传输系统中新增的任一转发路径。
在一种可能实现方式中,对于所述多个分支中的任一分支,所述分支上的树节点包括根节点和至少一个叶子节点,其中,所述根节点与所述转发节点对应,一个叶子节点与所述分支对应的转发路径上除所述转发节点以外的一个转发节点对应。
第二方面,提供了一种报文转发装置,用于执行上述报文转发方法。具体地,该报文转发装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的报文转发方法的功能模块。
第三方面,提供一种转发节点,该转发节点包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述报文转发方法所执行的操作。
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述报文转发方法所执行的操作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种报文转发系统的示意图;
图2是本申请实施例提供的一种多级队列调度的示意图;
图3是本申请实施例提供的一种转发节点的结构示意图;
图4是本申请实施例提供的一种转发节点初始化的流程图;
图5是本申请实施例提供的一种报文转发系统的拓扑结构示意图;
图6是本申请实施例提供的一种流量整形树的示意图;
图7是本申请实施例提供的一种报文转发方法的流程图;
图8是本申请实施例提供的一种报文转发的示意图;
图9是本申请实施例提供的一种更新流量整形树的流程图;
图10是本申请实施例提供的一种更新后的流量整形树的示意图;
图11是本申请实施例提供的一种报文转发装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种报文转发系统的示意图,参见图1,该报文转发系统100包括目标转发节点101、至少一个汇聚转发节点102、多个接入转发节点103以及多个终端104,该报文转发系统100可以是园区的网络系统。其中,目标转发节点101处于该报文转发系统100的核心层,汇聚转发节点102处于该报文转发系统100的汇聚层,接入转发节点103位于该报文转发系统100的接入层,终端104位于该报文转发系统的用户层,该目标转发节点101可以与至少一个汇聚转发节点102连接,每个汇聚转发节点102可以与至少一个接入转发节点103连接,每个接入转发节点103可以与至少一个终端104连接。该目标转发节点101可以是核心交换机,该核心交换机也可以视为中央智能网关(central smart gateway,CSG),每个汇聚转发节点102可以是汇聚交换机,每个接入转发节点103可以是接入交换机。
对于目标转发节点101、汇聚转发节点102、接入转发节点103中的任一转发节点,该转发节点可以包括多个输出端口,每个输出端口可以与该转发节点的下一层中的一个转发节点连接,例如,目标转发节点101的每个输出端口与汇聚层的一个汇聚转发节点102的一个输入端口连接。该转发节点的每个输出端口对应一个端口转发速率,该端口转发速率用于指示该端口转发数据的速率,也即是用于指示输出端口在单位时间段内可以转发的最大数据量。例如一个1G的输出端口的端口转发速率为1Gbps(也即是125MB/s),则该输出端口可以每秒输出125MB的数据。需要说明的是,目标转发节点101的端口转发速率高于汇聚转发节点102的端口转发速率,汇聚转发节点102的端口转发速率高于接入转发节点103的端口转发速率。例如,目标转发节点101的端口转发速率为40Gbps,汇聚转发节点102的端口转发速率为10Gbps,而接入目标转发节点101的端口转发速率为1Gbps。处于同一层的每个转发节点的端口转发速率可以相同也可以不同,同一个转发节点上的各个输出端口的端口转发速率可以相同也可以不同。每个终端104对应一个转发路径,对于向任一终端104发送的数据流,该转发节点可以在该终端104对应的转发路径上向该终端104输出该数据流。一个转发路径可以包括多个转发节点,其中,该转发路径上的首个转发节点为目标转发节点101,该转发路径上除首个转发节点以外的任一转发节点可以是汇聚转发节点102,或者是接入转发节点103。
该目标转发节点101,可以包括集中缓存(buffer)模块1011以及流量整形(traffic shaping)模块1012,该集中缓存模块1011用于接收向各个终端104发送的数据流,该数据流可以包括多个报文,对于任一终端104,该集中缓存模块1011设置有与该终端对应的一个流队列(flow queue,FQ)组,该流队列组可以包括多个FQ,每个FQ用于缓存向该终端发送的数据流中的报文。以图2所示的本申请实施例提供的一种多级队列调度的示意图为例,图2中FQ0-FQ7为一个流队列组,对应同一个终端,当该目标转发节点101接收到目标设备向该终端发送的数据流后,该目标转发节点101可以将该数据流中的报文缓存至FQ0-FQ7中,以便流量整形模块1012进行调度。其中,该目标设备可以是该报文转发系统100中的任一设备或者是该报文转发系统110以外的任一设备。需要说明的是,每个终端对应的流队列组中的多个FQ可以具有不同的优先级,这个多个FQ的调度方式可以是优先级队列(priority queue,PQ)调度方式或加权公平队列(weighted fair queuing,WFQ)调度方式。本申请实施例对FQ的调度方式不做具体限定。
流量整形模块1012,用于基于流量整形树,对集中缓存(buffer)模块1011中缓存的数据流中的报文进行调度,以对该数据流进行整形。在一种可能的实现方式中,流量整形模块1012可以基于每个终端104对应的转发路径,生成一个流量整形树,该流量整形树可以包括多个分支,每个分支用于指示一个转发路径,每个分支可以包括多个树节点,每个树节点与对应的转发路径的一个转发节点对应,由于在一个转发路径上各个转发节点的输出端口均是确定的,则每个树节点还与对应的转发路径的一个转发节点的一个输出端口对应。其中,该目标转发节点101可以为各个转发路径的首个转发节点,可以与该流量整形数的根节点对应。对于任一转发路径对应的分支,该分支上的树节点可以包括一个根节点以及至少一个叶子节点,该根节点可以与该目标转发节点101的一个输出端口对应,每个叶子节点可以与该转发路径上除首个转发节点以外的一个转发节点的一个输出端口对应。
流量整形模块1012还可以为每个树节点设置一个令牌桶,并以每个树节点对应的输出端口的端口转发速率为令牌发放速率,向每个树节点对应的令牌桶发放令牌。对于任一终端对应的转发路径所对应的分支,当该分支上每个树节点对应的令牌桶令牌足够多时,则流量整形模块1012可以从集中缓存模块1011中该终端对应FQ队列中调度出待发送的报文,并从该分支上的根节点对应的输出端口,向该转发路径上该目标转发节点101的下一个转发节点发送该报文,从而使得该报文在达到该转发路径上的各个转发节点时的速率均能小于或等于各个转发节点的端口转发速率,则各个转发节点处将不会出现网络拥塞的情况,各个转发节点均可以按照各自的端口转发速率发送接收到的报文,且不会丢弃接收到的报文,从而可以避免报文丢包。
为了进一步说明,该流量整形模块1012的调度机制,请参见图2,该调度机制以多个调度队列为基础进行调度,其中,调度队列可以包括多个流队列组例如有2个流队列组,每流队列组均包括FQ0-FQ7)、多个用户队列(subscriber queue,SQ)(例如SQ0-SQn,其中,n为大于0的整数)、多个中间端口队列(intermediate port queue,IQ)(例如IQ0-IQm,其中,m为大于0的整数)以及多个端口队列(port queue,PQ)(例如PQ0-PQk,其中,k为大于0的整数),其中,FQ为集中缓存(buffer)模块1011中的缓存队列,为物理队列,每组FQ可以包括多个FQ,每组FQ被配置给一个终端104,也即是每组FQ对应一个终端104。每个SQ对应一个接入转发节点103的一个输出端口,为虚拟队列,仅能参与调度,不能用于缓存报文。每个IQ对应一个汇聚转发节点102的一个输出端口,为虚拟队列,仅能参与调度,不能用于缓存报文。每个PQ对应目标转发节点101的一个输出端口,为物理队列,用于缓存该输出端口待发送的报文。为了便于描述,可以将目标转发节点101的输出端口记为目标端口(target port,TP)。该流量整形模块1012可以为每个SQ、IQ以及PQ配置一个令牌桶,当一个转发路径上各个转发节点的输出端口对应的队列的令牌桶中的令牌均足够时,该流量整形模块1012可以基于FQ的调度方式,从该转发路径对应的终端所对应的流队列组中调度出待发送的报文,将调度出的报文输入至该转发路径上接入转发节点对应的SQ,并从该SQ输入至该转发路径上汇聚转发节点对应的IQ,然后,从该IQ输入至该转发路径上转发节点对应的PQ,由转发节点对应的PQ所对应的TP,将该PQ内的报文输出。需要说明的是,SQ和IQ均为虚拟队列,报文在SQ和IQ传输的过程不存在时延,因此,将报文输入至SQ和IQ并不是物理上的输入动作,而仅是逻辑上的输入动作。目标转发节点101在基于该调度机制从FQ中调度报文的过程中,每个SQ相当于接入转发节点的一个输出端口所对应的树节点,每个IQ相当于汇聚转发节点的一个输出端口所对应的树节点,每个PQ相当于转发节点的一个输出端口所对应的树节点。
图3是本申请实施例提供的一种转发节点的结构示意图,转发节点300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)301和一个或一个以上的存储器302,其中,该存储器302中存储有至少一条指令,该至少一条指令由该处理器301加载并执行以实现下述各个方法实施例提供的方法。当然,该转发节点300还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该转发节点300还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例提供的方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
目标转发节点可以在初始化的过程中,先基于报文转发系统中的各个转发路径,生成流量整形树,后续可以基于流量整形树,对接收到的报文进行调度,为了进一步说明该初始化过程,请参见图4所示的本申请实施例提供的一种转发节点初始化的流程图。
401、转发节点获取多个转发路径的路径信息,一个转发路径的路径信息包括该转发路径上每个转发节点的输出端口标识。
该转发节点为报文存储系统中的目标转发节点,可以是这多个转发路径上的首个转发节点,该转发路径可以包括多个转发节点,该转发路径上一个转发节点的输出端口标识用于指示该转发节点在该转发路径上的一个输出端口。该转发路径的路径信息可以还包括该多个转发节点的节点标识以及每个转发节点的输出端口标识所指示的输出端口的端口转发速率。
例如,转发路径为CSG(也即是该转发节点)→汇聚转发节点X1→接入转发节点X3,其中“→”用于指示报文在该转发路径上的传输方向。在该转发路径上,CSG的4号TP与汇聚转发节点X1连接,汇聚转发节点X1的4号输出端口与接入转发节点X3连接,接入转发节点X3的3号输出端口与该转发路径对应的终端A连接,CSG的4号TP的端口转发速率为40Gbps,汇聚转发节点X1的4号输出端口的端口转发速率为10Gbps,接入转发节点X3的3号输出端口的端口转发速率为1Gbps,则该转发路径的路径信息可以包括CSG.4(40Gbps)、X1.4(10Gbps)以及X3.3(1Gbps),CSG.4用于指示CSG的4号TP,CSG.4与40Gbps对应,以指示CSG的4号TP的端口转发速率为40Gbps。X1.4用于指示汇聚转发节点X1的4号输出端口。
该多个转发路径为报文转发系统初始时的转发路径,该转发节点可以探测报文转发系统的拓扑结构,并基于探测到该报文转发系统的拓扑结构,来确定多个转发路径,并基于确定的多个转发路径以及各个转发节点在每个转发路径上的输出端口,生成每个转发路径的路径信息。该报文转发系统的拓扑结构用于指示该报文转发系统中各个转发节点之间的连接关系。例如图5所示的本申请实施例提供的一种报文转发系统的拓扑结构示意图,图5中的拓扑结构1所示的报文转发系统包括CSG、汇聚转发节点X1-X2、接入转发节点X3-X4以及终端A-F,其中,CSG的4号TP与汇聚转发节点X1连接,CSG的5号TP与汇聚转发节点X2连接,汇聚转发节点X1的4号输出端口与接入转发节点X3的1号输入接口连接,汇聚转发节点X1的7号输出端口与接入转发节点X4的1号输入接口连接,汇聚转发节点X2的6号输出端口与接入转发节点X3的2号输入接口连接,汇聚转发节点X2的8号输出端口与接入转发节点X4的2号输入接口连接,接入转发节点X3的3号、6号以及9号输出端口分别与终端A-C连接,接入转发节点X4的3号、6号以及9号输出端口分别与终端D-F连接,则终端A对应的转发路径可以为CSG.4→X1.4→X3.3,终端B对应的转发路径可以为CSG.5→X2.6→X3.6,终端C对应的转发路径可以为CSG.5→X2.6→X3.9,终端D对应的转发路径可以为CSG.4→X1.7→X4.3,终端E对应的转发路径可以为CSG.5→X2.8→X4.6,终端F对应的转发路径可以为CSG.5→X2.8→X4.9,其中,CSG的端口转发速率为40Gbps,汇聚转发节点的端口转发速率为10Gbps,接入转发节点的端口转发速率为1Gbps。
当生成这多个转发路径的路径信息后,该转发节点可以根据这多个转发路径对应的终端,建立路径表,该路径表用于存储该报文转发系统中各个终端与转发路径之间的对应关系。其中,一个终端与转发路径之间的对应关系可以包括该终端的终端标识以及该终端对应的转发路径的路径信息,该对应关系还可以包括该终端的地址信息,该终端的地址信息可以包括该终端的媒体存取控制位址(media access control address,MAC)。
例如表1所示的路径表,从表1可知,终端A的MAC为00e0-fc39-80aa,终端A对应的转发路径的路径信息包括CSG.4(40Gbps)→X1.4(10Gbps)→X3.3(1Gbps)。
表1
终端的MAC | 终端的终端标识 | 路径信息 |
00e0-fc39-80aa | 终端A | CSG.4(40Gbps)→X1.4(10Gbps)→X3.3(1Gbps) |
00e0-fc39-80bb | 终端B | CSG.5(40Gbps)→X2.6(10Gbps)→X3.6(1Gbps) |
00e0-fc39-80cc | 终端C | CSG.5(40Gbps)→X2.6(10Gbps)→X3.9(1Gbps) |
00e0-fc39-80dd | 终端D | CSG.4(40Gbps)→X1.7(10Gbps)→X4.3(1Gbps) |
00e0-fc39-80ee | 终端E | CSG.5(40Gbps)→X2.8(10Gbps)→X4.6(1Gbps) |
00e0-fc39-80ff | 终端F | CSG.5(40Gbps)→X2.8(10Gbps)→X4.9(1Gbps) |
402、该转发节点基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树,该流量整形树包括多个分支,一个分支用于指示该多个转发路径中的一个转发路径,该分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应。
该转发节点可以基于每个转发路径上每个转发节点的端口标识,生成多个树节点,每个树节点对应一个端口标识所指示的输出端口。其中,该转发节点中各个TP所对应的树节点可以视为根节点,该多个树节点中的除根节点以为的树节点可以视为叶子节点。
对于该多个转发路径中的任一转发路径,该转发节点可以将该转发路径上各个转发节点的输出端口所对应的树节点进行连接,得到该转发路径的对应的分支,该转发节点可以将该多个转发路径所对应的多个分支组成该流量整形树。由于一个转发节点可以位于至少一个转发路径上,一个转发节点的一个输出端口也可以位于至少一个转发路径上,因此,一个输出端口所对应的树节点可以位于至少一个分支上。
例如,该转发节点可以基于表1中终端A-F对应的路径信息,生成图6中的流量整形树1,其中,图6为本申请实施例提供的一种流量整形树的示意图,对于图6中的流量整形树1,根节点TP4和TP5分别对应CSG的4号和5号TP,叶子节点X1.4和X1.7分别对应汇聚转发节点X1的4号和7号输出端口,叶子节点X2.6和X2.8分别对应汇聚转发节点X2的6号和8号输出端口,叶子节点X3.3、X3.6和X3.9分别对应接入转发节点X3的3号、6号和9号输出端口,叶子节点X4.3、X4.6和X4.9分别对应接入转发节点X4的3号、6号和9号输出端口,每个分支中最后一个叶子节点还可以对应一个流队列组,该流队列组与该最后一个叶子节点对应的输出端口所连接的终端对应。例如叶子节点X4.3对应的一个流队列组(FQ0-FQ7)与接入转发节点X4.3连接的终端A对应。
403、对于该流量整形树上的任一个树节点,该转发节点为该树节点配置一个令牌桶。
当该转发节点为每个树节点均配置一个令牌桶后,可以使得每个树节点对应一个令牌桶,由于每个树节点还对应一个转发节点上的一个输出端口,因此,对于一个转发路径,该转发路径上的每个转发节点的一个输出端口可以分别对应一个令牌桶。
需要说明的是,当报文转发系统中的任一转发节点仅位于一个转发路径上时,该转发节点可以对应一个令牌桶,该转发节点对应的令牌桶也即是在该转发路径上该转发节点的一个输出端口对应的令牌桶。当报文转发系统中的任一转发节点位于多个转发路径上时,该转发节点可以对应多个令牌桶,该转发节点对应的每个令牌桶也即是在一个转发路径上该转发节点的一个输出端口对应的令牌桶。
需要说明是,上述步骤401-步骤403所示的初始化过程执行一次即可,无需多次执行。
当初始化完成后,该转发节点可以基于每个树节点对应的输出端口的端口转发速率,向每个树节点对应的令牌桶发放令牌,并基于每个分支上各个树节点对应的令牌桶中的令牌数目,对即将要经过每个转发路径的数据流中的报文进行调度,以实现整形,为了进一步说明该过程,请参见图7所示的本申请实施例提供的一种报文转发方法的流程图。
701、对于任一树节点对应的令牌桶,转发节点以该树节点对应的输出端口的端口转发速率为令牌发放速率,向该树节点对应的令牌桶发放令牌。
该转发节点也即是报文传输系统中的目标转发节点,一个输出端口的端口转发速率用于指示该输出端口在单位时间段内可以转发的最大数据量。该输出端口每次可以转发至少一个报文,该至少一个报文的总数据量小于或等于该输出端口在单位时间段内可以转发的最大数据量。为了便于描述将该最大数据量记为目标数据量,该目标数据量也即是该输出端口可以转发的最大报文的数据量,本申请实施例对该目标数据量不做具体限定。该令牌发放速率用于指示该转发节点在单位时间内向该令牌桶发放的最多令牌数目,每个令牌均对应相同的数据转发量。为了便于描述将该最多令牌数目记为目标令牌数目,其中,目标令牌数目与单个令牌对应的数据转发量之间的积也即是目标数据量。当该令牌桶中令牌的数目达到目标令牌数目时,该转发节点具有发送一个最大报文的发送权限,这个发送权限可以视为一个发送时间片,那么,目标令牌数目为发送出一个最大报文所需的令牌数目。可以理解的是,当该转发节点对应的令牌桶中令牌的数目大于或等于目标令牌数目时,该转发节点具有发送至少一个报文的时间片,其中,该至少一个报文的数据总量也即是目标数据量。
以该树节点对应接入转发节点X3为例,若该接入转发节点X3的端口转发速率为1Gbps(也即是125MB/s),则该树节点对应的令牌桶的令牌发放速率为125个/微秒,也即是每微秒发放125个令牌,一个令牌对应的数据转发量为1个字节(byte,B),目标数据量为1518B,若该令牌桶的容量为3036个令牌(也即是2个最大报文的令牌数目)。当树节点X3.3对应的令牌桶中令牌数目大于或等于1518(也即是发送1个最大报文所需的令牌数目)时,则接入转发节点X3的3号端口具有发送1518B数据的时间片,其中,1518B可以是至少一个报文的数据总量。
对于在该输出端口待发送的报文,当该输出端口对应的令牌桶中令牌数目大于或等于目标令牌数目时,说明该输出端口对应的令牌桶中令牌足够多,则该输出端口相当于获取到发送该报文的时间片,当每个分支上的各个树节点对应的输出端口均获取到发送该报文的时间片,该转发节点才能向该分支对应的转发路径上该转发节点的下一个转发节点发送该报文,具体请参见步骤702-704所示的过程。
702、该转发节点确定用于传输目标报文的第一转发路径,该第一转发路径包括多个转发节点。
该目标报文可以是待向任一终端发送的任一报文。用于传输该目标报文的第一转发路径也即是该任一终端对应的转发路径。
当转发节点获取到该目标报文后,可以基于该目标报文携带的目的终端的地址信息,确定该目标报文的目的终端,其中,该目的终端为最终接收到该目标报文的终端,也即是该第一转发路径所对应的终端。该转发节点可以将该目标报文先缓存在该目的终端对应的FQ中,等待该转发节点从该FQ中调度出该目标报文。
转发节点还可以基于确定出的目的终端的终端标识,在路径表中查询该目的终端对应的转发路径的路径信息,从而该转发节点可以基于查询到的路径信息,确定出用于传输该目标报文的第一转发路径。
703、该转发节点获取该第一转发路径上每个转发节点对应的令牌桶中的令牌数目,其中,每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率。
该转发节点可以基于转发路径与分支之间的对应关系,确定该流量整形树上该转发路径对应的第一分支,该第一分支上的每个树节点对应该第一转发路径上一个转发节点,且对应该转发节点在该第一转发路径上的输出端口;对于该第一分支上的任一树节点,该转发节点可以确定该树节点对应的令牌桶,并基于树节点对应的令牌桶中的令牌,获取该令牌桶中的令牌数目;当该转发节点获取到第一分支上每个树节点对应的令牌桶中的令牌数目后,也即是获取到该第一转发路径上每个转发节点对应的令牌桶中的令牌数目。
在一种可能的实现方式中,该转发节点可以根据第一分支上树节点之间的连接顺序依次获取该第一分支上各个树节点对应的令牌桶中的令牌数目。例如该第一分支对应的转发路径为表1中终端A对应的转发路径A,该第一分支为根节点TP4→叶子节点X1.4→叶子节点X3.3,该转发节点可以先获取根节点TP4对应的令牌桶中的令牌数目,再获取叶子节点X1.4对应的令牌桶中的令牌数目,最后再获取叶子节点X3.3对应的令牌桶中的令牌数目。
704、响应于每个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目,该转发节点向该第一转发路径上该转发节点的下一个转发节点发送该目标报文。
当该转发节点对应的令牌桶中令牌数目大于或等于目标令牌数目时,说明该转发节点至少具有发送一个最大报文的时间片。当该目标报文的数据量等于目标数据量时,说明该目标报文为该转发节点单次可以转发的最大报文。当该目标报文的数据量小于目标数据量时,说明该目标报文不是该转发节点单次可以转发的最大报文,可以和其他报文一起转发出去。
当该转发节点对应的令牌桶中的令牌数目大于或等于目标令牌数目时,说明该转发节点对应的令牌桶中的令牌数目足够,相当于该转发节点具有发送最大报文的时间片。只有当该第一转发路径上的每个转发节点均具有发送该最大报文的时间片时,该转发节点才能在该第一转发路径上发送该目标报文,也即是,当每个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目时,该转发节点向该第一转发路径上该转发节点的下一个转发节点发送该目标报文。
仍以第一分支为根节点TP4→叶子节点X1.4→叶子节点X3.3为例,其中,目标令牌数目为1518,当该根节点TP4、叶子节点X1.4以及叶子节点X3.3对应的令牌桶中令牌数目均大于或等于1518时,则说明该根节点TP4、叶子节点X1.4以及叶子节点X3.3对应的令牌桶中的令牌均足够,对应的输出端口也均具有发送最大报文的时间片,则该转发节点可以从目标FQ中获取该目标报文,并将从转发节点的4号TP,向叶子节点X1.4对应的汇聚转发节点X1发送获取到的目标报文。
当该第一转发路径上任一转发节点的对应的令牌桶中的令牌数目小于目标令牌数目时,则该转发节点可以不再获取该第一转发路径上该任一转发节点的下一个转发节点对应的令牌桶中的令牌数目,也不向该转发路径上该转发节点的下一个转发节点发送该目标报文。
在一种可能的实现方式中,该转发节点每获取到该第一分支上一个树节点对应的令牌桶中的令牌数目后,可以判断该令牌桶中的令牌数目是否大于或等于目标令牌数目;若该令牌桶中的令牌数目大于或等于目标令牌数目,则该转发节点可以继续获取该第一分支上的下一个树节点对应的令牌桶中的令牌数目,并继续判断;若该令牌桶中的令牌数目小于目标令牌数目,则该转发节点无须再继续获取该第一分支上其他树节点对应的令牌桶中令牌数目,则该转发节点不可以从该第一转发路径对应的终端所对应的FQ中获取该目标报文,也不可以将该目标报文发送给该第一转发路径上该转发节点的下一个转发节点。
对于该转发节点的任一目标端口,该转发节点还可以根据该目标端口在的各个转发路径的排列,依次访问各个转发路径上各个转发节点对应的令牌桶中令牌数目,依次判断各个转发路径上各个转发节点对应的令牌桶中令牌数目是否大于或等于目标令牌数目,若任一转发路径各个转发节点对应的令牌桶中令牌数目均大于或等于目标令牌数目,则该转发节点向该转发路径的上该转发节点的下一个转发节点发送报文。
仍以表1以及图6中的流量整形树1为基础,以该转发节点为CSG,且以CSG的5号TP为例,5号TP位于终端B对应的转发路径B、终端C对应的转发路径C、终端E对应的转发路径E以及终端F对应的转发路径F上,其中,转发路径B为CSG.5→X2.6→X3.6,转发路径C为CSG.5→X2.6→X3.9,转发路径E为CSG.5→X2.8→X4.6,转发路径F为CSG.5→X2.8→X4.9,则该CSG可以先对转发路径C进行判断,该CSG可以先访问CSG.5所对应的根节点TP5的令牌桶,若根节点TP5的令牌桶中令牌的数量足够多时,该CSG可以再访问X2.6对应的叶子节点X2.6的令牌桶,叶子节点CSG TP5的令牌桶中令牌的数量不足时,则该CSG停止访问X2.6所在的每个转发路径上的转发节点对应的令牌桶,也即是CSG不在访问转发路径C和D上各个转发节点对应的令牌桶;对于转发路径E,由于该CSG已经确定根节点TP5的令牌桶中令牌的数量足够多,则该CSG可以继续访问转发路径E上X2.8对应的叶子节点X2.8的令牌桶,若叶子节点X2.8的令牌桶中的令牌也足够多时,该CSG可以继续访问转发路径E上X4.6对应的叶子节点X4.6的令牌桶,若叶子节点X4.6的令牌桶中令牌也足够多时,则该CSG可以从该终端E对应的FQ中获取报文,并将该报文从CSG5号TP发出,发向终端E;若叶子节点X4.6的令牌桶中令牌不足时,则该CSG不能从该终端E对应的FQ中获取报文;对于转发路径F,由于CSG已经确定根节点TP5以及叶子节点X2.8的令牌桶中令牌的数量均足够多,则该CSG可以直接访问转发路径F上X4.9对应的叶子节点X4.9的令牌桶,若该叶子节点X4.9的令牌桶内的令牌足够时,说明转发路径上F上各个转发节点对应的令牌桶中的令牌均足够,则该CSG可以从终端F对应的FQ中获取报文,并将该报文从CSG的5号TP发出,发向终端F,以完成报文调度。可见,对于任一分支,该转发节点调度方向为从根节点依次到各个叶节点,直至该分支对应的终端的流队列组,目标报文的出队方向为从流队列组至根节点。
705、该转发节点基于该目标报文的数据量,减少该第一转发路径上各个转发节点对应的令牌桶中的令牌数量。
该转发节点可以基于该目标报文的数据量,减少该第一转发路径对应的分支上各个树节点对应的令牌桶中的令牌数量,其中,每个令牌桶中减少的令牌数量与单个令牌对应的数据转发量的乘积均大于或等于该目标报文的数据量,以避免每个令牌桶中的令牌持续增长。例如单个令牌对应的数据转发量为1B,该目标报文的数量为1518B,则该转发节点可以将该第一转发路径对应的分支上各个树节点对应的令牌桶中的令牌数量减1518个。
每个转发节点的令牌桶中令牌的数量会受到端口输出速率的限制,而对于任一转发路径,由于该转发节点是根据该转发路径上各个转发节点对应的令牌桶中的令牌数目,来决定是否能向该转发路径输出报文,也即是决定能否向该转发路径对应的终端输出报文,从而转发节点可以对向该终端发送报文的时间间隔进行控制,以对经过该转发路径上数据流进行整形,从而使得该转发路径上除该转发节点以外的每个转发节点接收报文的速率小于或等于每个转发节点端口转发速率,则该转发路径上除该转发节点以外的任一转发节点在接收报文时,不会出现网络拥塞,也就无须缓存报文,可以直接根据自己的端口转发速率输出该报文,从而无须丢弃报文,也就可以避免出现丢包。
例如图8所示的本申请实施例提供的一种报文转发的示意图,图8中的报文1-3均是向终端E发送报文,当终端E对应的转发路径E上各个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目时,则该转发节点将终端对应的流队列组中的报文1向转发路径E上该转发节点的下一个转发节点发送,并根据报文1的数据量以及单个令牌对应的数据转发量,减少转发路径E上各个转发节点对应的令牌桶中令牌;由于该转发节点会基于各个转发节点的端口转发速率,一直向各个转发节点对应的令牌桶发放令牌,则令牌桶中令牌会逐渐增多,当转发路径E上各个转发节点对应的令牌桶中的令牌数目再次均大于或等于目标令牌数目时,则该转发节点再将缓存的报文2向转发路径上E上该转发节点的下一个转发节点发送,并根据报文2的数据量以及单个令牌对应的数据转发量,再次减少转发路径E上各个转发节点对应的令牌桶中的令牌;随着转发路径E上各个转发节点对应的令牌桶中令牌的增加,当转发路径E上各个转发节点对应的令牌桶中的令牌数目再次均大于或等于目标令牌数目时,则该转发节点再将缓存的报文3向转发路径上E上该转发节点的下一个转发节点发送,从而使得报文1、报文2以及报文3达到下一个转发节点时具有一定的时间间隔,且达到下一个转发节点的速率均小于下一个转发节点的端口转发率,从而使得下一个转发节点接收到报文就可以直接转发出去,而无需缓存,从而可以避免在下一个转发节点出现丢包。
本申请实施例提供的方法,通过响应于第一转发路径上各个转发节点对应的令牌桶中的令牌数目与均大于或等于目标令牌数目,才会向该第一转发路径上该转发节点的下一个转发节点发送目标报文,由于每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率,从而使得该目标报文达到第一转发路径上除该转发节点以外的其他转发节点的速率均小于其他转发节点的端口转发速率,那么,其他转发节点无需缓存该目标报文,可以直接将该目标报文转发出去,进而使得在其他转发节点处不会出现网络拥塞,以避免在其他转发节点出现丢包。
当该报文传输系统中任一终端的转发路径发生变化,或者新增其他转发节点,再或者,新增其他终端,则该报文传输系统的拓扑结构会发生变化。该转发节点可以周期性地或实时探测该报文传输系统的拓扑结构是否发生变化。当探测到报文传输系统的拓扑结构发生变化时,可以触发该转发节点基于发生变化的转发路径,更新流量整形树,以便后续该转发节点可以基于更新后的流量整形树调度FQ中的报文。为了进一步说明该转发节点更新流量整形树的过程,请参见图9所示的本申请实施例提供的一种更新流量整形树的流程图。
901、对于多个转发路径中的任一转发路径,当该转发路径上的转发节点或者转发节点的输出端口发生变化时,该转发节点基于变化后的该转发路径,对该转发路径对应的第一分支上的树节点进行调整,得到第二分支,该第二分支上每个树节点对应变化后的该转发路径上一个转发节点的一个输出端口。
该转发节点为报文转发系统中的目标转发节点,当该转发路径上的第一转发节点变成第二转发节点时,则该转发节点可以删除该第一分支上该第一转发节点对应的第一树节点,并将该第二转发节点的输出端口所对应的第二树节点与该转发路径上该第二转发节点的上一个转发节点对应的树节点进行连接,该转发节点还可以将该第二树节点与该转发路径上该第二转发节点的下一个转发节点对应的树节点进行连接,得到第二分支,也即是将该第一分支上的第一树节点替换为第二树节点,从而使得第一分支变成第二分支,其中,该第一转发节点为该转发路径上发生变化的任一转发节点,该第一树节点也即是该第一分支上该第一转发节点对应的树节点,该第二转发节点为除该第一转发节点以及该转发节点以外的任一转发节点,该第二树节点也即是该转发路径上该第二转发节点对应的树节点。
当该转发路径上的第一转发节点的第一输出端口变成该第一转发节点上的第二输出端口时,则该转发节点可以删除该第一分支上该第一转发节点对应的第一树节点(也即是第一转发节点上第一输出端口对应的树节点),并在生成该第一转发节点的第二输出端口所对应第三树节点,该转发节点还可以将该第三树节点与该转发路径上该第三转发节点的上一个转发节点对应的树节点进行连接,将该第三树节点与该转发路径上该第三转发节点的下一个转发节点对应的树节点进行连接,得到第二分支,也即是将该第一分支上的第一树节点替换为第三树节点,从而使得第一分支变成第二分支。
仍以图5中的拓扑结构1为例,终端E对应的转发路径E由CSG.5→X2.8→X4.6变化为CSG.4→X1.7→X4.6,由于仅是转发节点之间的连接关系发生改变,报文传输系统中没有新增设备,则该报文传输系统的拓扑结构仍然为图5中的拓扑结构1,则该转发节点可以将图6中的流量整形树1上的叶子节点X4.6与叶子节点X2.8断开,从而实现将叶子节点X2.8从转发路径E对应的分支上删除,并将叶子节点X1.7与叶子节点X4.6进行连接,得到图6中的流量整形树2,从而使得根节点TP4→叶子节点X1.7→叶子节点X4.6组成终端E变化后的转发路径所对应的分支。
当该转发路径上任一转发节点突然断开与上一个转发节点以及下一个转发节点的连接,且该下一个转发节点与该上一个转发节点建立了连接时,则该转发节点可以直接将该第一分支上该转发节点对应的树节点与该第一分支上该转发节点的下一个转发节点对应的树节点之间连接断开,将该第一分支上该转发节点对应的树节点与该第一分支上该转发节点的上一个转发节点对应的树节点之间连接断开,该转发节点还可以将该第一分支上该转发节点的下一个转发节点对应的树节点与该第一分支上该转发节点的上一个转发节点对应的树节点进行连接。
当报文传输系统中没有出现新的终端、新的转发节点以及转发节点工作的输出端口时,若终端的转发路径发生变化,则流量整形树上各个树节点的数量无须变化,该转发节点只需删除旧转发路径所对应的分支,根据新转发路径上各个转发节点之间的连接关系,对对应的树节点进行连接即可,从而得到新转发路径对应的分支。
902、该转发节点获取第二转发路径的路径信息。
其中,该第二转发路径可以是该报文转发系统中新增的任一转发路径,例如在转发节点X3处新增一个转发节点X5,转发节点X5与转发节点的X3的10号输出端口连接,该报文传输系统还新增终端G,该终端G与转发节点X5的8号输出端口连接,该终端G的转发路径G可以为CSG.4→X1.4→X3.10→X5.8,则图5中该传输系统的拓扑结构可以由拓扑结构1变成拓扑结构2。再例如该报文传输系统除了新增终端G还可以新增终端H,该终端H与转发节点X5的5号输出端口连接,该终端H对应的转发路径H可以是CSG.4→X2.6→X3.10→X5.5,则图5中该传输系统的拓扑结构可以由拓扑结构1变成拓扑结构3。
903、该转发节点基于该第二转发路径的路径信息中转发节点的端口标识,在该流量整形树上生成该第二转发路径对应的目标分支。
当该第二转发路径上任一转发节点为该报文传输系统中新增的转发节点,或者该任一转发节点的输出端口为在该报文传输系统中传输报文时新增的输出端口时,该转发节点可以生成在该第二转发路径上该任一转发节点的输出端口所对应的树节点,并确定该第二转发路径上各个转发节点对应的树节点,该转发节点可以根据该第二转发路径上各个转发节点之间的连接关系,对该第二转发路径上各个转发节点对应的树节点进行连接,从而得到该转发节点所对应的目标分支。
当该第二转发路径是该报文传输系统中新增的终端所对应的转发路径时,则该转发节点还可以为该终端分配一个流队列组,以便当该转发节点接收将要在该第二转发路径上的传输的数据流时,可以将该数据流中的报文缓存在该终端对应的流队列组中。
当该报文传输系统中增加终端或转发节点时,若该转发节点感知到报文传输系统的拓扑结构发生变化,则该转发节点可以在流量整形树上增加新设备对应的树节点,再根据新终端对应的转发路径连接相应的树节点即可,从而达到对流量整形树进行更新的目的。
仍以在报文转发系统中新增终端G以及转发节点X5为例,则该转发节点生成X3.10对应的叶子节点X3.10,生成X5.8对应的叶子节点X5.8,并将叶子节点X3.10与叶子节点X5.8连接,将叶子节点X3.10与叶子节点X1.4连接,则该图6中的流量整形树1可以变化为图10中流量整形树3,其中,图10是本申请实施例提供的一种更新后的流量整形树的示意图。
再例如,报文转发系统新增终端G、终端H以及转发节点X5,则该转发节点生成X3.10对应的叶子节点X3.10,生成X5.8对应的叶子节点X5.8,并将叶子节点X3.10与叶子节点X5.8连接,将叶子节点X3.10与叶子节点X1.4连接,从而得到终端G对应的转发路径所对应的分支,该转发节点还可以生成X5.5对应的叶子节点X5.5,并将该叶子节点X5.5与叶子节点X3.10连接,将叶子节点X3.10与叶子节点X2.6连接,从而可以得到该终端H对应的转发路径H所对应的分支,则该图6中的流量整形树1可以变化为图10中流量整形树4。
本申请实施例提供的方法,通过当转发路径发生变化或新增转发路径时,转发节点可以根据变化后的转发路径或新增的转发路径,对流量整形树进行实时更新,以便转发节点可以基于最新的流量整形树,对接收的每个数据流进行整形,以避免在其他转发节点出现因网络拥塞而引起的丢包。
图11是本申请实施例提供的一种报文转发装置的结构示意图,该装置包括:
确定模块1101,应用确定用于传输目标报文的第一转发路径,所述第一转发路径包括多个转发节点;
第一获取模块1102,用于获取所述第一转发路径上每个转发节点对应的令牌桶中的令牌数目,其中,每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率;
发送模块1103,用于响应于每个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目,向所述第一转发路径上所述装置的下一个转发节点发送所述目标报文。
可选地,所述装置还包括:
第二获取模块,用于获取多个转发路径的路径信息,一个转发路径的路径信息包括所述转发路径上每个转发节点的输出端口标识;
第一生成模块,用于基于多个转发路径的路径信息中转发节点的端口标识,生成流量整形树,所述流量整形树包括多个分支,一个分支用于指示所述多个转发路径中的一个转发路径,所述分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应。
可选地,一个转发路径的路径信息还包括所述输出端口标识所指示的输出端口的端口速率;所述装置还包括:
配置模块,用于对于所述流量整形树上的任一个树节点,根据所述树节点对应的输出端口的端口速率,为所述树节点配置一个令牌桶;
发放模块,用于以所述树节点对应的输出端口的端口转发速率为令牌发放速率,向所述树节点对应的令牌桶发放令牌。
可选地,所述基于多个转发路径的路径信息中转发节点的端口标识,所述装置还包括:
调整模块,用于对于所述多个转发路径中的任一转发路径,当所述转发路径上的转发节点或者转发节点的输出端口发生变化时,基于变化后的所述转发路径,对所述转发路径对应的第一分支上的树节点进行调整,得到第二分支,所述第二分支上每个树节点对应变化后的所述转发路径上一个转发节点的一个输出端口。
可选地,所述装置还包括:
第三获取模块,用于获取第二转发路径的路径信息,所述第二转发路径为报文传输系统中新增的任一转发路径;
第二生成模块,用于基于所述第二转发路径的路径信息中转发节点的端口标识,在所述流量整形树上生成所述第二转发路径对应的目标分支。
可选地,对于所述多个分支中的任一分支,所述分支上的树节点包括根节点和至少一个叶子节点,其中,所述根节点与所述转发节点对应,一个叶子节点与所述分支对应的转发路径上除所述转发节点以外的一个转发节点对应。
该装置通过响应于第一转发路径上各个转发节点对应的令牌桶中的令牌数目与均大于或等于目标令牌数目,才会向该第一转发路径上该装置的下一个转发节点发送目标报文,由于每个转发节点对应的令牌桶的令牌发放速率为每个转发节点的端口转发速率,从而使得该目标报文达到第一转发路径上除该装置以外的其他转发节点的速率均小于其他转发节点的端口转发速率,那么,其他转发节点无需缓存该目标报文,可以直接将该目标报文转发出去,进而使得在其他转发节点处不会出现网络拥塞,以避免在其他转发节点出现丢包。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的报文转发装置在转发报文时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种报文转发方法,其特征在于,应用于转发节点,所述转发节点中存储有流量整形树,所述流量整形树包括多个分支,一个分支用于指示多个转发路径中的一个转发路径,所述分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应,且与所述输出端口的令牌桶对应,所述令牌桶的令牌发放速率为所述输出端口的端口转发速率;
所述方法包括:
确定用于传输目标报文的第一转发路径,所述第一转发路径包括多个转发节点;
基于转发路径与分支之间的对应关系,确定所述流量整形树上所述第一转发路径对应的第一分支,所述第一分支上的每个树节点对应所述第一转发路径上一个转发节点;
获取所述第一分支上每个树节点对应的令牌桶中的令牌数目;
响应于所述第一分支上每个树节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目,向所述第一转发路径上所述转发节点的下一个转发节点发送所述目标报文。
2.根据权利要求1所述的方法,其特征在于,所述确定用于传输目标报文的第一转发路径之前,所述方法还包括:
获取所述多个转发路径的路径信息,一个转发路径的路径信息包括所述转发路径上每个转发节点的输出端口标识;
基于所述多个转发路径的路径信息中转发节点的端口标识,生成所述流量整形树。
3.根据权利要求2所述的方法,其特征在于,一个转发路径的路径信息还包括所述输出端口标识所指示的输出端口的端口速率;所述基于多个转发路径的路径信息中转发节点的端口标识,生成所述流量整形树之后,所述方法还包括:
对于所述流量整形树上的任一个树节点,根据所述树节点对应的输出端口的端口速率,为所述树节点配置一个令牌桶;
以所述树节点对应的输出端口的端口转发速率为令牌发放速率,向所述树节点对应的令牌桶发放令牌。
4.根据权利要求2所述的方法,其特征在于,所述基于所述多个转发路径的路径信息中转发节点的端口标识,生成流量整形树之后,所述方法还包括:
对于所述多个转发路径中的任一转发路径,当所述转发路径上的转发节点或者转发节点的输出端口发生变化时,基于变化后的所述转发路径,对所述转发路径对应的第一分支上的树节点进行调整,得到第二分支,所述第二分支上每个树节点对应变化后的所述转发路径上一个转发节点的一个输出端口。
5.根据权利要求2所述的方法,其特征在于,所述基于所述多个转发路径的路径信息中转发节点的端口标识,生成流量整形树之后,所述方法还包括:
获取第二转发路径的路径信息,所述第二转发路径为报文传输系统中新增的任一转发路径;
基于所述第二转发路径的路径信息中转发节点的端口标识,在所述流量整形树上生成所述第二转发路径对应的目标分支。
6.根据权利要求1所述的方法,其特征在于,对于所述多个分支中的任一分支,所述分支上的树节点包括根节点和至少一个叶子节点,其中,所述根节点与所述转发节点对应,一个叶子节点与所述分支对应的转发路径上除所述转发节点以外的一个转发节点对应。
7.一种报文转发装置,其特征在于,所述装置中存储有流量整形树,所述流量整形树包括多个分支,一个分支用于指示多个转发路径中的一个转发路径,所述分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应,且与所述输出端口的令牌桶对应,所述令牌桶的令牌发放速率为所述输出端口的端口转发速率;
所述装置包括:
确定模块,用于确定用于传输目标报文的第一转发路径,所述第一转发路径包括多个转发节点;
第一获取模块,用于基于转发路径与分支之间的对应关系,确定所述流量整形树上所述第一转发路径对应的第一分支,所述第一分支上的每个树节点对应所述第一转发路径上一个转发节点;获取所述第一分支上每个树节点对应的令牌桶中的令牌数目;
发送模块,用于响应于每个转发节点对应的令牌桶中的令牌数目均大于或等于目标令牌数目,向所述第一转发路径上所述装置的下一个转发节点发送所述目标报文。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述多个转发路径的路径信息,一个转发路径的路径信息包括所述转发路径上每个转发节点的输出端口标识;
第一生成模块,用于基于所述多个转发路径的路径信息中转发节点的端口标识,生成流量整形树,所述流量整形树包括多个分支,一个分支用于指示所述多个转发路径中的一个转发路径,所述分支上的每个树节点与对应的转发路径上一个转发节点的一个输出端口对应。
9.根据权利要求8所述的装置,其特征在于,一个转发路径的路径信息还包括所述输出端口标识所指示的输出端口的端口速率;所述装置还包括:
配置模块,用于对于所述流量整形树上的任一个树节点,根据所述树节点对应的输出端口的端口速率,为所述树节点配置一个令牌桶;
发放模块,用于以所述树节点对应的输出端口的端口转发速率为令牌发放速率,向所述树节点对应的令牌桶发放令牌。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
调整模块,用于对于所述多个转发路径中的任一转发路径,当所述转发路径上的转发节点或者转发节点的输出端口发生变化时,基于变化后的所述转发路径,对所述转发路径对应的第一分支上的树节点进行调整,得到第二分支,所述第二分支上每个树节点对应变化后的所述转发路径上一个转发节点的一个输出端口。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取第二转发路径的路径信息,所述第二转发路径为报文传输系统中新增的任一转发路径;
第二生成模块,用于基于所述第二转发路径的路径信息中转发节点的端口标识,在所述流量整形树上生成所述第二转发路径对应的目标分支。
12.根据权利要求7所述的装置,其特征在于,对于所述多个分支中的任一分支,所述分支上的树节点包括根节点和至少一个叶子节点,其中,所述根节点与所述转发节点对应,一个叶子节点与所述分支对应的转发路径上除所述转发节点以外的一个转发节点对应。
13.一种转发节点,其特征在于,所述转发节点包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求6任一项所述的报文转发方法所执行的操作。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求6任一项所述的报文转发方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010537687.8A CN113810305B (zh) | 2020-06-12 | 2020-06-12 | 报文转发方法、装置、转发节点以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010537687.8A CN113810305B (zh) | 2020-06-12 | 2020-06-12 | 报文转发方法、装置、转发节点以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113810305A CN113810305A (zh) | 2021-12-17 |
CN113810305B true CN113810305B (zh) | 2023-09-01 |
Family
ID=78892321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010537687.8A Active CN113810305B (zh) | 2020-06-12 | 2020-06-12 | 报文转发方法、装置、转发节点以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113810305B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101491025A (zh) * | 2006-07-10 | 2009-07-22 | 国际商业机器公司 | 用于遍布机群进行通信量整形的方法 |
CN101547478A (zh) * | 2009-05-12 | 2009-09-30 | 华为技术有限公司 | 节点带宽管理方法、装置及系统 |
CN103259743A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 基于令牌桶的输出流量控制的方法及装置 |
CN107342947A (zh) * | 2016-04-28 | 2017-11-10 | 华为技术有限公司 | 流量整形方法、控制器、网络设备和流量整形系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7961650B2 (en) * | 2004-02-16 | 2011-06-14 | Christopher Michael Davies | Network architecture |
-
2020
- 2020-06-12 CN CN202010537687.8A patent/CN113810305B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101491025A (zh) * | 2006-07-10 | 2009-07-22 | 国际商业机器公司 | 用于遍布机群进行通信量整形的方法 |
CN101547478A (zh) * | 2009-05-12 | 2009-09-30 | 华为技术有限公司 | 节点带宽管理方法、装置及系统 |
CN103259743A (zh) * | 2012-02-15 | 2013-08-21 | 中兴通讯股份有限公司 | 基于令牌桶的输出流量控制的方法及装置 |
CN107342947A (zh) * | 2016-04-28 | 2017-11-10 | 华为技术有限公司 | 流量整形方法、控制器、网络设备和流量整形系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113810305A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7310349B2 (en) | Routing and rate control in a universal transfer mode network | |
JP2957062B2 (ja) | 優先度を利用した交換システムと、このシステムのジッタを制限する方法 | |
US6356546B1 (en) | Universal transfer method and network with distributed switch | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
CN109842868B (zh) | 一种帧聚合、网络设置帧发送方法及设备 | |
CN108282415A (zh) | 一种调度方法及设备 | |
CN102726009B (zh) | 一种数据流交换控制方法及相关设备 | |
US9608927B2 (en) | Packet exchanging device, transmission apparatus, and packet scheduling method | |
US20110019572A1 (en) | Method and apparatus for shared shaping | |
JPH1065710A (ja) | フロー制御情報を伝送元に提供する機構を含むデジタルネットワーク | |
JP4163044B2 (ja) | 帯域制御方法およびその帯域制御装置 | |
CN108173766B (zh) | 一种基于差异化QoS的多业务分层拓扑路由方法 | |
CN103685061B (zh) | 缓存数据控制方法和装置 | |
CN108667746B (zh) | 一种在深空延时容忍网络中实现业务优先级的方法 | |
CN112005528B (zh) | 一种数据交换方法、数据交换节点及数据中心网络 | |
JP4158319B2 (ja) | セル受信装置及びトラフィック制御システム | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN117793583A (zh) | 报文转发方法、装置、电子设备及计算机可读存储介质 | |
CN113810305B (zh) | 报文转发方法、装置、转发节点以及计算机可读存储介质 | |
US7130267B1 (en) | System and method for allocating bandwidth in a network node | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
KR100745679B1 (ko) | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 | |
CN114884902B (zh) | 一种数据流传输方法、装置、网络设备及存储介质 | |
WO2001063860A1 (en) | Method and device for data traffic shaping | |
Chiou et al. | The effect of bursty lengths on DQDB networks |
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 |