CN110166380B - 调度报文的方法、第一网络设备及计算机可读存储介质 - Google Patents
调度报文的方法、第一网络设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110166380B CN110166380B CN201810152272.1A CN201810152272A CN110166380B CN 110166380 B CN110166380 B CN 110166380B CN 201810152272 A CN201810152272 A CN 201810152272A CN 110166380 B CN110166380 B CN 110166380B
- Authority
- CN
- China
- Prior art keywords
- network device
- packet
- time
- message
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 51
- 230000004622 sleep time Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
- H04L47/564—Attaching a deadline to packets, e.g. earliest due date first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0231—Traffic management, e.g. flow control or congestion control based on communication conditions
- H04W28/0236—Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种调度报文的方法、第一网络设备及计算机可读存储介质。所述方法包括:第一网络设备从第二网络设备接收第一业务流中的第一报文;所述第一网络设备根据所述第一业务流的配置信息确定所述第一报文在第一队列中允许停留的最长持续时间;所述第一网络设备将所述第一报文入队到所述第一队列;所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队。本申请提供的技术方案可以对报文在整个传输链路上的网络设备队列中允许停留的最长持续时间进行提前控制,可以平衡报文的延迟分布,从而可以降低报文的延迟抖动。
Description
技术领域
本申请涉及通信领域,并且更具体地,涉及一种调度报文的方法、第一网络设备及计算机可读存储介质。
背景技术
在网络设备中,报文调度是一种决定报文之间输出顺序以及输出时间的方法。一般来说,可以根据调度报文所依赖的信息来源将其分为局部调度和全局调度。
全局调度算法中,报文输出的顺序和时间受到该报文在全局的网络信息以及该报文在之前网络设备中调度结果的影响。传统的最小空闲时间优先(least slack timefirst,LSTF)全局调度算法中,当前网络设备优先调度紧急程度较高的报文,紧急程度较高的报文在当前网络设备中剩余的空闲时间(slack time)较少。slack time可以指示该报文在整个网络中所有网络设备的队列中允许停留的总的最长持续时间。传统的LSTF算法由于在每个网络设备的队列中消耗的slack time不均衡,容易在报文传输的过程中造成较大的延迟抖动。
因此,在使用全局调度的过程中如何降低报文传输过程中的延迟抖动成为亟需解决的问题。
发明内容
本申请提供一种调度报文的方法、第一网络设备及计算机可读存储介质,可以在使用全局调度的过程中降低报文传输过程中的延迟抖动。
第一方面,提供了一种调度报文的方法,包括:第一网络设备从第二网络设备接收第一业务流中的第一报文;所述第一网络设备根据所述第一业务流的配置信息确定所述第一报文在第一队列中允许停留的最长持续时间;所述第一网络设备将所述第一报文入队到所述第一队列;所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,所述第一网络设备从所述第一队列出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的第一最长持续时间之和。
上述技术方案中,第一网络设备可以根据控制器提前配置的第一报文在第一网络设备队列中允许停留的最长持续时间将第一报文从所述第一队列出队。可以平衡整个传输链路上的网络设备队列中允许停留的总的最长持续时间在每个网络设备队列中的分布和消耗,从而可以平衡报文的延迟分布,降低报文的延迟抖动。
在一种可能的实现方式中,所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,包括:所述第一网络设备确定第一时间戳,所述第一时间戳等于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续时间之和;所述第一网络设备确定当前时间小于所述第一时间戳;
所述第一网络设备基于当前时间小于所述第一时间戳,将所述第一报文从所述第一队列出队。
在上述技术方案中,第一网络设备可以在报文入队之前根据第一报文在第一队列中允停留的最大时间以及入队时间计算第一报文从第一队列出队的最晚时间,可以避免对报文在队列中所剩余的允许停留的最长持续时间进行多次计算,可以减少计算次数,降低实现的复杂度。
在一种可能的实现方式中,所述第一网络设备将所述第一报文入队到所述第一队列,包括:所述第一网络设备确定第一时间戳,所述第一时间戳等于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续时间之和;
所述第一网络设备根据所述第一时间戳将所述第一报文入队到包含第二报文以及第三报文的所述第一队列,所述第一时间戳大于所述第二报文的时间戳,所述第一时间戳小于所述第三报文的时间戳,所述第二报文先于所述第一报文从所述第一队列出队,所述第一报文先于所述第三报文从所述第一队列出队。
上述技术方案中,对于单个网络设备来说,可以利用***先出队列(将第一报文的时间戳按照队列中报文时间戳从所述队头到队尾单调递增的顺序***到该队列中),实现真正的紧急报文优先发送,进一步降低了报文传输延迟的抖动性。
在一种可能的实现方式中,所述第一配置信息包括第一分配系数,所述第一分配系数为小于1的正数,所述第一报文包扩第一时间标签,所述第一时间标签用于指示所述第一报文从离开所述第二网络设备到到达目的设备的最长持续时间,所述第一报文从所述第二网络设备经由所述第一网络设备以及第三网络设备到所述目的设备;所述第一网络设备确定第一时间戳,包括:所述第一网络设备根据所述第一分配系数、所述第一时间标签确定所述第一时间戳;Time stamp1=t1+f1×T1其中,Time stamp1用于表示所述第一报文的第一时间戳,t1用于表示所述第一报文入队到所述第一队列的时间,f1用于表示所述第一业务流中的第一报文的第一分配系数,T1用于表示所述第一报文进入所述第一网络设备的第一时间标签。
上述技术方案中,可以将报文在所有网络设备队列中允许停留的总的最长持续时间平均配置到该网络设备中,报文可以在到达该网络设备时根据提前配置的在该网络设备队列中允许停留的最长持续时间对报文出队进行调度,从而可以平衡报文的延迟分布,可以降低报文的延迟抖动。
在一种可能的实现方式中,所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,包括:所述第一网络设备根据所述第一报文从所述第一队列出队的时间以及第一时间标签确定所述第一报文的第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间;以及所述第一网络设备将所述第一报文从所述第一队列出队,从所述第一队列出队的所述第一报文中携带所述第二时间标签;所述第一报文的第一分配系数、所述第一时间标签以及所述第一时间戳之间满足如下公式:Time stamp2=Timestamp1-t2+(1-f1)×T1其中,Time stamp2用于表示所述第一报文的第二时间标签,t2用于表示所述第一报文从所述第一队列出队的时间。
上述技术方案中,可以将报文在所有网络设备队列中允许停留的总的最长持续时间配置到源端,并将报文在每个网络设备队列中的分配系数配置到每个网络设备的状态列表中。报文可以在到达每个网络设备中根据剩余的允许停留的总的最长持续时间以及时间分配系数计算报文在当前网络设备队列中允许停留的最长持续时间,并对报文进行调度,从而可以平衡报文的延迟分布,降低报文的延迟抖动。
第二方面,提供了一种第一网络设备,包括:输入接口,用于从第二网络设备接收第一业务流中的第一报文;第一处理单元,用于根据所述第一业务流的配置信息确定所述第一报文第一队列中允许停留的最长持续时间;流量管理单元,用于将所述第一报文入队到所述第一队列;流量管理单元,还用于根据所述第一报文在所述第一队列中允许停留的第一最长持续时间将所述第一报文从所述第一队列出队,所述第一网络设备从所述第一队列出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的第一最长持续时间之和;输出接口,用于向第三网络设备发送所述第一业务流中的第一报文。
在一种可能的实现方式中,所述流量管理单元具体用于:所述第一网络设备确定第一时间戳,所述第一时间戳等于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续之和;所述第一网络设备确定当前时间小于所述第一时间戳;所述第一网络设备基于所述当前时间小于所述第一时间戳,将所述第一报文从所述第一队列出队。
在一种可能的实现方式中,所述流量管理单元具体用于:所述第一网络设备确定第一时间戳,所述第一时间戳等于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续时间之和;所述第一网络设备根据所述第一时间戳将所述第一报文入队到包含第二报文以及第三报文的所述第一队列,所述第一时间戳大于所述第二报文的时间戳,所述第一时间戳小于所述第三报文的时间戳,所述第二报文先于所述第一报文从所述第一队列出队,所述第一报文先于所述第三报文从所述第一队列出队。
在一种可能的实现方式中,所述配置信息包括第一分配系数,所述第一分配系数为小于1的正数,所述第一报文包括第一时间标签,所述第一时间标签用于指示所述第一报文从离开所述第二网络设备到到达目的设备的最长持续时间,所述第一报文从所述第二网络设备经由所述第一网络设备以及第三网络设备到所述目的设备;所述第一处理单元具体用于:所述第一网络设备根据所述第一分配系数、所述第一时间标签确定所述第一时间戳;Time stamp1=t1+f1×T1其中:Time stamp1用于表示所述第一报文的第一时间戳,t1用于表示所述第一报文入队到所述第一队列的时间,f1用于表示所述第一业务流中的第一报文的第一分配系数,T1用于表示所述第一报文进入所述第一网络设备的第一时间标签。
在一种可能的实现方式中,所述第一网络设备,还包括:第二处理单元,用于根据所述第一报文从所述第一队列出队的时间以及第一时间标签确定所述第一报文的第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间;以及所述第一网络设备将所述第一报文从所述第一队列出队,从所述第一队列出队的所述第一报文中携带所述第二时间标签;所述第一报文的第一分配系数、所述第一时间标签以及所述第一时间戳之间满足如下公式:Time stamp2=Time stamp1-t2+(1-f1)×T1其中,Time stamp2用于表示所述第一报文的第二时间标签,t2用于表示所述第一报文从所述第一队列出队的时间。
第三方面,提供了一种通信***,包括第一网络设备、第二网络设备以及第三网络设备,所述第一网络设备用于执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法;所述第三网络设备从所述第一网络设备接收所述第一业务流中的第一报文,所述第一报文包括第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间,所述第一报文从所述第一网络设备经由所述第三网络设备到所述目的设备;所述第三网络设备根据所述第二时间标签以及所述第一报文对应的第二分配系数确定所述第一报文的第二时间戳,所述第二时间戳用于指示所述第一报文允许从所述第二队列出队的最晚时间,所述第二分配系数为小于1的正数,所述第二分配系数大于所述第一分配系数,所述第一报文在所述目的设备中对应的分配系数为1;所述第一报文的第二分配系数、所述第二时间标签以及所述第二时间戳之间满足如下公式:Time stamp3=t3+f2×Time stamp2其中,Time stamp2用于表示所述第一报文离开所述第一网络设备时所携带的第二时间标签,f2用于表示所述第一报文在所述第三网络设备中对应的所述第二分配系数,t3用于表示所述第一报文入队到所述第三网络设备中的第二队列的时间,Time stamp3用于表示所述第一报文所述第三网络设备中的第二时间戳。
第三方面,提供了一种控制器,所述控制器用于对业务流从源端到目的地的N个网络设备进行控制,其中,N为大于或等于2的正整数,所述N个网络设备用于执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法,所述控制器对所述业务流中的报文在所述N个网络设备对应的队列中允许停留的最长持续时间进行提前配置;所述控制器将配置信息分布式地分配到所述N个网络设备中,所述N个网络设备根据分配到的所述配置信息对所述业务流中的报文进行调度发送,所述配置信息用于指示所述业务流中的报文在所述N个网络设备对应的队列中允许停留的最长持续时间。
第四方面,提供了一种网络设备,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被执行时,所述处理器用于执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。
第五方面,提供了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上被执行时,使得所述计算机执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。
第六方面,提供了一种包含计算机指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。
附图说明
图1是本申请实施例提供的一种网络设备的结构示意图。
图2是本申请实施例提供的调度报文的方法的示意性流程图。
图3是本申请实施例提供的空闲时间的变量示意图。
图4是本申请实施例提供的业务流在网络中传输的示意图。
图5是本申请实施例提供的PIFO队列的示意图。
图6是本申请实施例提供的计算报文的slack time2的示意性流程图。
图7是本申请实施例提供的计算报文出队的slack time3的示意性流程图。
图8是本申请实施例提供的第一网络设备的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请提供的一种网络设备的结构示意图。如图1所示,网络设备100可以包括输入端口110,第一报文处理器120、流量管理器(traffic manager,TM)130、存储器(memory)140、输出端口160。其中,第一报文处理器120、流量管理器130可以由硬件实现,也可以由硬件结合软件实现。网络设备100可以是路由器、网络交换机、防火墙或者负载均衡器。
可选地,在一些实施例中,图1所示的网络设备还可以包括第二报文处理器150,其中,第二报文处理器150可以由硬件实现,也可以由硬件结合软件实现。
可选地,在一些实施例中,图1中的第一报文处理器120、流量管理器130、第二报文处理器150也可以集成一个部件。
本申请实施例对输入端口110以及输出端口160的类型不做具体限定。作为一个示例,输入端口110例如可以是媒体访问控制(media access control,MAC)模块,输出端口150例如可以是MAC模块。输入端口110可以用于接收报文,并将接收的报文提供给第一报文处理器120。输出端口160可以从第二报文处理器150获取报文,并发送获取的报文。本申请中的报文可以是以太网帧或者网际协议(Internet Protocol,IP)报文。
本申请实施例对第一报文处理器120以及第二报文处理器150的类型不做具体限定,可以是任何能够对业务流中的报文进行处理的模块。作为一个示例,第一报文处理器120例如可以是报文处理(packet processing,PP)模块,第二报文处理器150例如也可以是PP模块。第一报文处理器120可以对接收到的报文进行解析、分类、转发、查找以及报头处理。例如,第一报文处理器120可以读取报文对应的业务流状态列表中的配置信息,并可以根据该配置信息确定报文在该网络设备对应的队列中允许停留的最长持续时间。第二报文处理器150可以对调度出队的报文进行解析、分类、转发、查找以及报头处理。例如,第二报文处理器150可以在报文被调度出队的时候,可以根据报文对应的业务流状态列表的配置信息以及出队的当前时刻更新报文的时间标签,该时间标签例如可以用于指示该报文出队时所剩余的允许停留的最长持续时间。
本申请实施例中流量管理器130可以对业务流中的报文进行管理,例如可以对业务流中的报文执行入队、丢弃、出队、调度、分类等功能。
本申请实施例中存储器140与流量管理器130可以被集成在一个芯片中。存储器140与流量管理器130也可以是两个芯片。流量管理器130接收到第一报文处理器120提供报文后,可以将报文入队到报文队列中。具体地,流量管理器130可以对存储器140执行写操作,从而将报文写入到存储器140中。报文队列被保存在存储器140中。另外,流量管理器130可以将报文队列中的报文从所述报文队列中出队。具体地,流量管理器130可以对存储器140执行读操作,从而将报文出队。流量管理器130获得出队的报文后,可以将出队的报文提供给第二报文处理器150。
业务流中的报文可以由链路传输至网络设备,该网络设备中的输入端口110(也可以称为该网络设备的接收端Rx)可以接收该报文。然后第一报文处理器120可对报文中的时间标签进行处理,随后该报文可以入队(enqueue)到流量管理器130中的队列(存储器140)中等待调度器将该业务流中的报文调度出队(dequeue)。最后可以经过第二报文处理器150对该报文的时间标签进行更新后,该报文由输出端口(也可以称为该网络设备的发射端Tx)160将该报文发送到链路上,并可以传输至传输路径上的下一个网络设备。流量管理器130中的队列以及调度器可以由硬件实现,也可以由硬件结合软件实现。
本申请实施例提供了一种调度报文的方法,可以在使用全局调度算法的过程中降低报文传输过程中的延迟抖动。下面结合图2-图7对本申请实施例进行详细描述。
图2是本申请实施例提供的调度报文的方法的示意性流程图。图2所示的方法可以由第一网络设备执行。所述第一网络设备可以是图1所示的网络设备100。图1所示的网络设备100可以用于执行图2所示的方法。
图2的方法可以包括步骤210-240,下面分别对步骤210-240进行详细描述。
在步骤210中,第一网络设备从第二网络设备接收第一业务流中的第一报文。
本申请实施例中业务流有时也可称为流量(traffic)。
本申请实施例对网络设备的类型不做具体限定,例如可以是交换机、路由器、集线器、网关、网桥、网络接口卡(network interface card,NIC)、无线接入点(wirelessaccess point,WAP)、打印机、调制解调器、光纤收发器以及光缆等。网络设备有时也可称为网络节点(network node)或跳(hop)。
本申请实施例中,第二网络设备可以位于第一网络设备的上一跳。
在步骤220中,所述第一网络设备根据所述第一业务流的配置信息确定所述第一报文在第一队列中允许停留的最长持续时间。
本申请实施例中,第一业务流的配置信息可以用于表示第一业务流在第一网络设备的第一队列中允许停留的最长持续时间,其中,第一配置信息可以由集中控制器进行提前配置。
本申请实施例对第一业务流的配置信息不做具体限定,可以是第一业务流可以在当前网络设备队列中允许停留的最长持续时间,也可以是第一业务流在当前网络设备的分配系数,后文会结合具体的实施例进行详细描述。
本申请实施例中,报文在源端以及每个中间网络设备队列中允许停留的最长持续时间也可以称为在源端以及每个中间网络设备中可以消耗的空闲时间。
应理解,在业务流中的报文从源端发送进入网络前,用户(例如,可以是服务商)可以提前在集中控制器中配置业务流中的报文在源端以及中间网络设备队列中可以消耗的总的slack time,该集中控制器可以将业务流中的报文在源端以及每个中间网络设备队列中可以消耗的slack time分布式地配置到源端以及传输路径上的每个中间网络设备的状态列表中。当业务流中的报文到达其传输路径上的每一个网络设备时,每一个网络设备可以根据该业务流在当前网络设备的状态列表中的slack time对该业务流中的报文的输出顺序和输出时间进行控制。
下面结合图3-图4对上文提及的确定第一报文在第一队列中允许停留的最长持续时间进行详细描述。
图3是本申请实施例提供的空闲时间的变量示意图。如图3所述,报文的截止时间(deadline time)可以用于表示该报文在完成传输的最后截止期限。该报文从初始发送时刻到该报文的deadline time为止的时间间隔可以由两部分组成,其中一部分例如可以是该报文在全路径上的无阻塞传输时间,另一部分例如可以是该报文在整个传输路径上的网络节点中排队停留需要的时间(也可以称为空闲时间)。其中,报文在全路径上的无阻塞传输时间可以用于表示该报文从初始发送时间开始,在整个传输路径上的网络设备中无任何阻塞的传输延时以及网络设备与网络设备之间的传输延时,报文的slack time可以用于表示在考虑了报文的无阻塞传输时间后,该报文在整个传输路径的网络设备队列中可以消耗的空闲时间。
本申请实施例中的slack time可以用于表示报文在网络设备中的所有队列中允许停留的最长持续时间的总和。本申请实施例对网络设备中的队列个数不做具体限定,例如可以是一个队列,也可以是多个队列。
图4是本申请实施例提供的业务流在网络中传输的示意图。图4所示的网络包括源端、节点1、节点2、节点3以及控制器。其中,节点1、节点2、节点3可以是图1所示的网络设备100。节点1、节点2、节点3可以用于执行图2所示的方法。如图4所示,可以在一个业务流将要从源端进入到网络之前,控制器可以将该业务流的全部slack time分布式的配置到网络中的源端以及传输路径上的网络设备中。当业务流中的报文经过网络节点时,该网络节点可以根据该业务流对应的预先配置的在该网络设备的队列中可以消耗的slack time对该业务流中的报文的发送顺序以及发送时间进行控制。
本申请实施例中控制器可以用于对业务流从源端到目的地的传输路径上的多个网络设备进行控制,并可以将该业务流的全部slack time分布式的配置到网络中的源端以及传输路径上的网络设备中。例如,该控制器可以根据业务流的传输路径上的拓扑结构以及该业务流的配置要求,可以将该业务流的全部slack time分布式的配置到网络中的源端以及传输路径上的网络设备中。
本申请实施例对控制器将业务流的全部slack time分布式地配置到源端以及传输路径上的网络设备中的实现方式不做具体限定,可以是任何形式的分布式配置。下面分别介绍本申请实施例提及的可能的几种配置方式。
作为一个示例,可以将报文的全部slack time平均配置到每一个网络设备中。例如,可以将业务流从源端到目的地的全部slack time按照其传输路径上的网络设备个数,平均配置到每一个网络设备上,并可以将配置结果下发至传输路径上的每一个网络设备的业务流状态列表中(例如表1所示)。
作为另一个示例,可以按照分配系数将报文的全部slack time分布式的配置到每一个网络设备中。例如,可以将业务流从源端到目的地的全部slack time配置在源端,然后可以在业务流传输到每个网络设备时,可以按照其传输路径上的网络设备个数N,并可以在每个网络设备配置在该网络设备队列中可以消耗的slack time(分配系数即为1/N),并可以将配置结果下发至传输路径上的每一个网络设备的业务流状态列表中(例如表2所示)。
作为另一个示例,可以将报文的全部slack time按照每个网络设备的不同权重配置到每一个网络设备中。例如,可以根据传输路径上的网络设备个数以及每个网络设备不同的权重(各个不同的网络设备的权重可以不同,该权重可以由配置提前设定),将业务流从源端到目的地的全部slack time配置到其传输路径上的每一个网络设备上。
作为另一个示例,可以按照每个网络设备的不同权重以及分配系数将报文的全部slack time配置到每一个网络设备中。例如,可以将业务流从源端到目的地的全部slacktime配置在源端,然后可以在业务流传输到每个网络设备时,可以按照其传输路径上的网络设备个数N以及每个网络设备的不同权重Wi,并可以在每个网络设备配置在该网络设备队列中可以消耗的slack time(分配系数可以是当前网络设备对应的权重除以传输路径上所有网络设备的权重之和,即为(1*Wi)/ΣiWi),并可以将配置结果下发至传输路径上的每一个网络设备的业务流状态列表中。
作为另一个示例,对于源端以及同一个传输路径上的每一个网路设备,可以根据需要选择不同的配置策略。例如,可以将业务流从源端到目的地的全部slack time部分配置在源端(例如,可以在源端以及节点1、3、5、7···使用该配置策略),可以将业务流的全部slack time剩余部分平均配置在其传输路径上剩余的网络设备中(例如,可以在节点2、4、6、8···使用该配置策略)。
表1网络节点维护的业务流状态列表示例1
流序号 | 配置信息 | 时间(us) |
流1 | (配置1)获得在当前节点预留的可消耗的slack time | 20 |
流2 | (配置2)获得在当前节点预留的可消耗的slack time | 30 |
… | … | … |
表2网络节点维护的业务流状态列表示例2
流序号 | 配置信息 | 分配系数 |
流1 | (配置1)获得在当前节点预留的slack time分配系数 | 1/10 |
流2 | (配置2)获得在当前节点预留的slack time分配系数 | 1/20 |
… | … | … |
表3网络节点维护的业务流状态列表示例2
本申请实施例中,当业务流中的报文到达其传输路径上的网络设备时,根据该业务流对应的状态列表中的配置信息(例如表1、表2、表3所示),对该业务流中的报文的发送顺序以及发送时间进行控制。
在步骤230中,所述第一网络设备将所述第一报文入队到所述第一队列。
本申请实施例中,第一报文到达第一网络设备时,可以获取第一报文在第一网络设备的业务流状态列表中的配置信息。例如,获取控制器提前配置的第一报文在第一网络设备的队列中可以消耗的slack time。第一网络设备可以根据第一报文可以在第一网络设备队列中可以消耗的slack time对第一报文的发送顺序以及发送时间进行控制。
本申请实施例中可以在第一报文入队到第一网络设备中的第一队列之前,第一网络设备中的第一报文处理器可以根据第一报文的入队时间以及第一报文在第一网络设备中可以消耗的slack time计算第一报文的rank值。rank值越低可以表明报文的优先等级越高。也就是说第一网络设备可以将第一报文的入队时间以及第一报文在第一网络设备中可以消耗的slack time之和确定为第一报文的第一时间戳,该第一时间戳可以用于表示第一报文从第一队列出队的最晚时间。当网络设备可以确定第一报文的当前时间小于所述第一时间戳,该网络设备可以基于第一报文的当前时间小于所述第一时间戳,可以将该第一报文从第一队列出队。
本申请实施例中,第一网络设备可以在报文入队之前根据第一报文在第一队列中允停留的最大持续时间以及入队时间计算第一报文的允许离开第一队列的最晚时间戳。队列中的报文的优先级可以自适应提高。例如,入队的报文在当前网络设备中具有相同的slack time,后入队的报文因为入队的时间较晚,所以rank值更大,其优先级更低。可以避免对报文在队列中所剩余的允许停留的最长持续时间进行多次计算,减少计算次数,降低实现的复杂度。
可选地,在一些实施例中,第一网络设备可以根据第一报文的第一时间戳将第一报文入队道第一队列,第一队列可以是一个***先出(push-in first-out,PIFO)队列。例如,第一网络设备中的第一报文处理器(例如图1中的第一报文处理器120)可以根据第一报文的第一时间戳(例如rank值),可以将第一报文***到一个PIFO队列,该PIFO队列中的报文时间戳可以按照从队头到队尾单调递增的顺序排列。
参见图5,在PIFO队列中,该队列中的报文可以带有该报文计算出的rank值,并且可以按照报文的rank值从队头到队尾单调递增的顺序在PIFO队列中排队,后入队的报文可以根据其rank值将该报文***到PIFO队列。例如,可以根据rank值的从队头到队尾单调递增的顺序将rank值为7的报文(第一报文)***到rank值为6的报文(第二报文)与rank值为8的报文(第三报文)之间。位于PIFO队列头的报文由于其优先级较高(rank值较低,所以紧急程度越高),可以按照报文的rank值从低到高的顺序可以依次将报文从该队列中出队。例如,可以按照报文rank值从队头到队尾单调递增的顺序将报文入队,第二报文可以位于第一报文的前面,第三报文可以位于第一报文的后面,其中,第二报文可以先于第一报文从该队列中出队,第一报文可以先于第三报文从该队列中出队。
本申请实施例中,对于单个网络设备来说,可以将第一报文的时间戳按照队列中报文时间戳从队头到队尾单调递增的顺序***到PIFO队列,可以使得报文在队列中排队停留的时候,实现真正的紧急报文优先发送,进一步降低了报文传输延迟的抖动性。
在步骤240中,所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,第一网络设备从所述第一队列可以出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续时间之和。
本申请实施例对第一网络设备根据第一报文允许停留的最长持续时间可以将第一报文出队的方式不做具体限定。只要第一报文的出队时间小于第一报文在第一队列中允许停留的最长持续时间与第一报文的入队时间之和。例如,可以在一定的时间周期内,可以从时钟电路获取第一报文的当前时间与第一报文在第一队列中允许停留的最长持续时间与第一报文的入队时间之和之间的关系,如果第一报文的当前时间小于第一报文在第一队列中允许停留的最长持续时间与第一报文的入队时间之和,可以将第一报文从第一队列出队。
本申请实施例中,第一网络设备可以根据经过控制器提前配置的配置信息确定第一业务流中的第一报文在第一网络设备的队列中允许消耗的slack time。第一网络设备确定第一报文在当前网络设备中允许消耗的slack time的实现方式有多种,本申请对此不做具体限定。作为一个示例,可以根据第一网络设备中维护的第一业务流状态列表中的分布式空闲(distributed slack,ds)时间,并可以与第一报文的时间标签中的时间相加,从而可以将相加的结果作为第一报文在第一网络设备的队列中允许消耗的slack time。作为另一个示例,可以根据第一报文从上一个网络设备发送的时间标签中所携带的剩余的总的slack time,并可以根据第一业务流状态列表中的分配系数1/N,将剩余的总的slack time的一部分可以作为在第一报文在第一网络设备中可以消耗的空闲时间(slack time*(1/N))。
下面以配置信息为分配系数为例进行详细描述。
本申请实施例提供的通信***例如可以包括第二网络设备、第一网络设备、第三网络设备。举例来说,第一网络设备以及第三网络设备例如可以是图1所示的网络设备100。第一网络设备以及第三网络设备例如可以用于执行图2所示的方法。
第一报文可以从第二网络设备经由第一网络设备以及第三网络设备到达目的网络设备。第一报文离开第二网络设备时可以携带第一时间标签,该第一时间标签可以表示第一报文从离开所述第二网络设备到到达目的设备的最长持续时间。例如,第一时间标签可以用于表示第一报文离开第二网络设备时剩余的slack time。剩余的slack time为所述第一报文在传输路径上离开所述第二网络设备后需要经过的转发设备中允许消耗的slacktime。
第一报文可以携带第一时间标签进入第一网络设备,第一网络设备可以根据第一时间标签以及第一报文对应的第一分配系数确定第一报文的第一时间戳。第一时间戳例如可以用于表示第一报文允许从第一队列出队的最晚时间,第一报文的第一时间戳与第一时间标签、第一分配系数之间满足如下关系式:
Time stamp1=t1+f1×T1
其中,Time stamp1可以用于表示所述第一报文的第一时间戳,第一时间戳例如可以用于表示第一报文允许从第一队列出队的最晚时间;
t1可以用于表示第一报文入队到第一网络设备中的第一队列的时间(参见图1中的t1);
f1可以用于表示第一业务流中的第一报文对应的第一分配系数,第一分配系数例如可以提前由控制器配置;
T1可以用于表示第一报文进入第一网络设备时所携带的第一时间标签。
可选地,在一些实施例中,第一报文在第一网络设备中从第一队列出队的时候,可以携带第二时间标签,第二时间标签例如可以替代第一时间标签。该第二时间标签可以用于表示第一报文从离开所述第一网络设备到到达目的设备的最长持续时间。具体地,第二时间标签可以用于表示第一报文离开第一网络设备时剩余的slack time。剩余的slacktime为所述第一报文在传输路径上离开所述第一网络设备后需要经过的转发设备中允许消耗的slack time。
第一报文从第一对列出队的时候,处理器可以根据第一时间戳、第一报文的出队时间以及第一分配系数确定第一报文的第二时间标签。其中,处理器例如可以是图1中的第二报文处理器15,上述各项变量之间可以满足如下关系式:
Time stamp2=Time stamp1-t2+(1-f1)×T1
其中,Time stamp2可以用于表示所述第一报文的第二时间标签;
t2可以用于表示第一报文从第一队列出队的时间(例如,可以参见图1中的t2)。
可选地,在一些实施例中,第一报文离开第一网络设备进入第三网络设备的时候,可以携带上文计算出的第二时间标签。第一报文在第三网络设备中,可以根据第二时间标签以及第一报文在第三网络设备中对应的第二分配系数计算第一报文的第二时间戳,第二时间戳可以用于表示第一报文在第三网络设备中可以允许离开队列的最晚时间。
第一报文在第三网络设备中的第二分配系数、所述第二时间标签以及所述第二时间戳之间满足如下公式:
Time stamp3=t3+f2×Time stamp2
其中,Time stamp2可以用于表示所述第一报文离开第一网络设备,进入第三网络设备所携带的第二时间标签;
t3可以用于表示第一报文入队到所述第三网络设备中的第二队列的时间;
f2可以用于表示所述第一报文在所述第三网络设备中对应的所述第二分配系数;
Time stamp3可以用于表示所述第一报文在第三网络设备中的第二时间戳。
应理解,第一报文在第三网络设备中对应的第二分配系数小于第一报文在第一网络设备中对应的第一分配系数。也就是说第一报文在经过传输路径上的网络设备时第一报文对应的分配系数可以依次减小。例如,传输路径上的目的设备的分配系数可以为1。
下面结合具体的例子,更加详细地描述上文提及的计算报文在当前网络节点可以消耗的slack time。应注意,图6的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所示例的具体数值或具体场景。本领域技术人员根据所给出的图6的例子,显然可以进行各种修改或变化本申请。
图6是本申请实施例提供的计算报文的slack time的示意性流程图。图6的流程可以包括步骤610-690,下面对这些步骤进行详细描述。
图6中涉及的变量可以定义如下:
slack time1:空闲时间,可以用于表示报文A携带的时间标签中记录的在上一网络节点剩余的空闲时间;
slack time2:空闲时间,可以用于表示报文A在当前网络设备可以消耗的空闲时间;
ds:分布式空闲(distributed slack)时间,可以用于表示控制器为报文当前网络设备中配置的允许消耗的空闲时间;
f:分配系数,可以用于表示控制器为报文当前网络设备中配置的允许消耗的空闲时间的分配系数。
在步骤610中:输入业务流中的报文A,该报文A携带的时间标签中记录着该报文在上一网络节点中所剩余的slack time1。
输入的报文在从源端进入网络之前,该报文A首先可以在源端进行slack time初始化。根据该报文A所在的业务流对应的配置信息,将该报文A的slack time初始化写入报文的时间标签中。如果该报文A的配置信息是分布式空闲时间ds,该报文A的slack time初始值可以为0。此时,报文A全部的slack time可以被配置在传输路径上的每一个网络设备中。如果该报文A的配置信息是分配系数f,该报文A的空闲时间初始值可以为全部的slacktime。此时,报文A全部的slack time可以被配置在源端,报文A在到达传输路径上的每一个网络设备时可以根据分配系数f计算报文A在当前网络设备中允许消耗的slack time。
在步骤620中,读取报文A的时间标签中的slack time1。
报文A的时间标签中的slack time1可以是离开上一网络设备时所剩余的空闲时间。
在步骤630中,读取报文A对应的每流状态列表中的配置信息。
报文A对应的配置信息可以是分布式空闲时间ds,还可以是分配系数f。
在步骤640中,判断报文A在当前网络设备中的配置信息是不是空闲时间ds。
如果报文A在当前网络设备中的配置信息是空闲时间ds,可以执行步骤650-660,如果报文A在当前网络设备中的配置信息是分配系数f,则可以执行步骤670-680。
在步骤650中,读取报文A对应的每流状态列表中配置的空闲时间ds。
在步骤660中,将报文A对应的每流状态列表中配置的空闲时间ds与报文A时间标签中的slack time1值相加,获得报文A在当前网络设备中可以消耗的slack time2(slacktime2=slack time1+ds)。
在步骤670中,读取报文A对应的每流状态列表中配置的分配系数f。
在步骤680中,将报文A对应的每流状态列表中配置的分配系数f与报文A时间标签中的slack time1值相乘,获得报文A在当前网络设备中可以消耗的slacktime2(slacktime2=slack time1*f)。
在步骤690,输出带有时间标签的报文A,报文A可以携带报文A在当前网络设备中可以消耗的slacktime2排队进入队列等待调度。
下面结合具体例子,更加详细地描述上文提及的计算报文出队的slack time3。应注意,图7的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所示例的具体数值或具体场景。本领域技术人员根据所给出的图7的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
图7是本申请实施例提供的计算报文出队的slack time2的示意性流程图。图7的流程可以包括步骤710-780,下面对这些步骤进行详细描述。
图7中涉及的变量可以定义如下:
slack time3:空闲时间,可以用于表示报文A离开当前网络设备时所剩余的空闲时间;
t-cur:报文A出队操作发生的当前时刻。
在步骤710中:输入带有slack time2以及rank值的报文A。
输入的报文A可以是图6中的步骤690中输出的报文A,报文A可以携带在当前网络设备中允许消耗的slack time2,以及报文A在当前网络设备的rank值。
在步骤720中,读取报文A对应的每流状态列表中的配置信息。
报文A对应的配置信息可以是分布式空闲时间ds,还可以是分配系数f。
在步骤730中,获取报文A在当前网络设备中配置的空闲时间ds。
如果报文A在当前网络设备中的配置信息是空闲时间ds,可以执行步骤740,如果报文A在当前网络设备中的配置信息是分配系数f,则可以执行步骤750-760。
在步骤740中,计算报文A出队时所剩余的slack time3。
可以将报文A出队操作发生的当前时刻t-cur与报文A在当前网络设备中的rank值之差确定为报文A出队时所剩余的slack time3(slack time 3=rank-t-cur)。
在步骤750中,读取报文A对应的每流状态列表中配置的分配系数f。
在步骤760中,计算A出队时所剩余的slack time3。
可以将报文A出队操作发生的当前时刻t-cur与报文A在当前网络设备中允许消耗的slack time之差确定为报文A出队时所剩余的第一部分slack time(slack time=rank-t-cur),并可以将第一部分剩余的slack time与另一部分为后续网络设备预留的slacktime(slack time2*((1-f)/f))作为A出队时所剩余的slack time3(slack time3=slacktime2*((1-f)/f)+rank-t-cur)。
在步骤770中,根据步骤760中计算的slack time3更新报文A的时间标签。
在步骤780中,输出带有时间标签的报文A,该时间标签可以用于表示报文A在离开当前网络设备时剩余的slack time3,剩余的slack time3为报文A在传输路径上离开所述第一网络设备后需要经过的转发设备中允许消耗的空闲时间。
上文结合图2-图7,详细描述了本申请实施例提供的调度报文的方法,下面将结合图8,详细描述本申请实施例提供的网络设备。
图8是本申请实施例提供的第一网络设备的示意性结构图。图8中的第一网络设备800可以执行图2-图7的任一实施例描述的调度报文的方法。第一网络设备800可以是图1所示的网络设备100。图8中的第一网络设备800可以包括输入接口810、第一处理单元820、流量管理单元830以及输出接口840。其中,输入接口810例如可以是图1中的输入端口110。第一处理单元820例如可以是图1中的第一报文处理器120。流量管理单元830例如可以由图1中的第一报文处理器120、流量管理器130以及第二报文处理器150中的至少一种组成。输出接口830例如可以是图1中的输出端口160。
输入接口810可以用于从第二网络设备接收第一业务流中的第一报文。
第一处理单元820可以用于根据所述第一业务流的配置信息确定所述第一报文第一队列中允许停留的最长持续时间。
流量管理单元830可以用于将所述第一报文入队到所述第一队列。
流量管理单元830还可以用于根据所述第一报文在所述第一队列中允许停留的第一最长持续时间将所述第一报文从所述第一队列出队,所述第一网络设备从所述第一队列出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的第一最长持续时间之和。
输出接口840可以用于向第三网络设备发送所述第一业务流中的第一报文,其中,第三网络设备可以位于第一网络设备的下一跳。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种调度报文的方法,其特征在于,包括:
第一网络设备从第二网络设备接收第一业务流中的第一报文;
所述第一网络设备根据所述第一业务流的配置信息确定所述第一报文在第一队列中允许停留的最长持续时间,所述配置信息包括第一分配系数,所述第一分配系数为小于1的正数,所述第一报文包括第一时间标签,所述第一时间标签用于指示所述第一报文从离开所述第二网络设备到到达目的设备的最长持续时间,所述第一报文从所述第二网络设备经由所述第一网络设备以及第三网络设备到所述目的设备;
所述第一网络设备将所述第一报文入队到所述第一队列;
所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,所述第一网络设备从所述第一队列出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的最长持续时间之和;
所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,包括:
所述第一网络设备确定第一时间戳;所述第一网络设备确定当前时间小于所述第一时间戳;所述第一网络设备基于当前时间小于所述第一时间戳,将所述第一报文从所述第一队列出队;或者,
所述第一网络设备确定第一时间戳;所述第一网络设备根据所述第一时间戳将所述第一报文入队到包含第二报文以及第三报文的所述第一队列,所述第一时间戳大于所述第二报文的时间戳,所述第一时间戳小于所述第三报文的时间戳,所述第二报文先于所述第一报文从所述第一队列出队,所述第一报文先于所述第三报文从所述第一队列出队;
所述第一网络设备确定第一时间戳,包括:
所述第一网络设备根据所述第一分配系数、所述第一时间标签确定所述第一时间戳;其中:
Time stamp1=t1+f1×T1
Time stamp1用于表示所述第一报文的第一时间戳,t1用于表示所述第一报文入队到所述第一队列的时间,f1用于表示所述第一业务流中的第一报文的第一分配系数,T1用于表示所述第一报文进入所述第一网络设备的第一时间标签。
2.如权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一报文在所述第一队列中允许停留的最长持续时间将所述第一报文从所述第一队列出队,包括:
所述第一网络设备根据所述第一报文从所述第一队列出队的时间以及第一时间标签确定所述第一报文的第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间;以及
所述第一网络设备将所述第一报文从所述第一队列出队,从所述第一队列出队的所述第一报文中携带所述第二时间标签;
所述第一报文的第一分配系数、所述第一时间标签以及所述第一时间戳之间满足如下公式:
Time stamp2=Time stamp1-t2+(1-f1)×T1
其中,Time stamp2用于表示所述第一报文的第二时间标签,t2用于表示所述第一报文从所述第一队列出队的时间。
3.一种第一网络设备,其特征在于,包括:
输入接口,用于从第二网络设备接收第一业务流中的第一报文;
第一处理单元,用于根据所述第一业务流的配置信息确定所述第一报文第一队列中允许停留的最长持续时间,所述配置信息包括第一分配系数,所述第一分配系数为小于1的正数,所述第一报文包括第一时间标签,所述第一时间标签用于指示所述第一报文从离开所述第二网络设备到到达目的设备的最长持续时间,所述第一报文从所述第二网络设备经由所述第一网络设备以及第三网络设备到所述目的设备;
流量管理单元,用于将所述第一报文入队到所述第一队列;
流量管理单元,还用于根据所述第一报文在所述第一队列中允许停留的第一最长持续时间将所述第一报文从所述第一队列出队,所述第一网络设备从所述第一队列出队所述第一报文的时间不晚于所述第一报文入队到所述第一队列的时间与所述第一报文在所述第一队列中允许停留的第一最长持续时间之和;
输出接口,用于向第三网络设备发送所述第一业务流中的第一报文;
所述流量管理单元具体用于:所述第一网络设备确定第一时间戳;所述第一网络设备确定当前时间小于所述第一时间戳;所述第一网络设备基于所述当前时间小于所述第一时间戳,将所述第一报文从所述第一队列出队;或者,
所述流量管理单元具体用于:所述第一网络设备确定第一时间戳;所述第一网络设备根据所述第一时间戳将所述第一报文入队到包含第二报文以及第三报文的所述第一队列,所述第一时间戳大于所述第二报文的时间戳,所述第一时间戳小于所述第三报文的时间戳,所述第二报文先于所述第一报文从所述第一队列出队,所述第一报文先于所述第三报文从所述第一队列出队;
所述第一处理单元具体用于:所述第一网络设备根据所述第一分配系数、所述第一时间标签确定所述第一时间戳;其中:
Time stamp1=t1+f1×T1
Time stamp1用于表示所述第一报文的第一时间戳,t1用于表示所述第一报文入队到所述第一队列的时间,f1用于表示所述第一业务流中的第一报文的第一分配系数,T1用于表示所述第一报文进入所述第一网络设备的第一时间标签。
4.如权利要求3所述的第一网络设备,其特征在于,
所述第一网络设备,还包括:
第二处理单元,用于根据所述第一报文从所述第一队列出队的时间以及第一时间标签确定所述第一报文的第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间;以及
所述第一网络设备将所述第一报文从所述第一队列出队,从所述第一队列出队的所述第一报文中携带所述第二时间标签;
所述第一报文的第一分配系数、所述第一时间标签以及所述第一时间戳之间满足如下公式:
Time stamp2=Time stamp1-t2+(1-f1)×T1
其中,Time stamp2用于表示所述第一报文的第二时间标签,t2用于表示所述第一报文从所述第一队列出队的时间。
5.一种通信***,包括第一网络设备、第二网络设备以及第三网络设备,其特征在于,所述第一网络设备用于执行权利要求1或2中任一项所述方法,
所述第三网络设备从所述第一网络设备接收所述第一业务流中的第一报文,所述第一报文包括第二时间标签,所述第二时间标签用于表示所述第一报文从离开所述第一网络设备到到达目的设备的最长持续时间,所述第一报文从所述第一网络设备经由所述第三网络设备到所述目的设备;
所述第三网络设备根据所述第二时间标签以及所述第一报文对应的第二分配系数确定所述第一报文的第二时间戳,所述第二时间戳用于指示所述第一报文允许从第二队列出队的最晚时间,所述第二分配系数为小于1的正数,所述第二分配系数大于所述第一分配系数,所述第一报文在所述目的设备中对应的分配系数为1;
所述第一报文的第二分配系数、所述第二时间标签以及所述第二时间戳之间满足如下公式:
Time stamp3=t3+f2×Time stamp2
其中,Time stamp2用于表示所述第一报文离开所述第一网络设备时所携带的第二时间标签,f2用于表示所述第一报文在所述第三网络设备中对应的所述第二分配系数,t3用于表示所述第一报文入队到所述第三网络设备中的第二队列的时间,Time stamp3用于表示所述第一报文在所述第三网络设备中的第二时间戳。
6.一种控制器,其特征在于,所述控制器用于对业务流从源端到目的地的N个网络设备进行控制,其中,N为大于或等于2的正整数,所述N个网络设备用于执行如权利要求1或2中任一项所述方法,
所述控制器对所述业务流中的报文在所述N个网络设备对应的队列中允许停留的最长持续时间进行提前配置;
所述控制器将配置信息分布式地分配到所述N个网络设备中,所述N个网络设备根据分配到的所述配置信息将所述业务流中的报文出队,所述配置信息用于指示所述业务流中的报文在所述N个网络设备对应的队列中允许停留的最长持续时间。
7.一种网络设备,其特征在于,包括存储器和处理器,
所述存储器用于存储计算机指令;
所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被执行时,所述处理器用于执行如权利要求1或2中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上被执行时,使得所述计算机执行如权利要求1或2中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810152272.1A CN110166380B (zh) | 2018-02-14 | 2018-02-14 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
PCT/CN2019/074226 WO2019157978A1 (zh) | 2018-02-14 | 2019-01-31 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810152272.1A CN110166380B (zh) | 2018-02-14 | 2018-02-14 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166380A CN110166380A (zh) | 2019-08-23 |
CN110166380B true CN110166380B (zh) | 2022-08-19 |
Family
ID=67618537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810152272.1A Active CN110166380B (zh) | 2018-02-14 | 2018-02-14 | 调度报文的方法、第一网络设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110166380B (zh) |
WO (1) | WO2019157978A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112448896B (zh) | 2019-08-30 | 2024-04-30 | 华为技术有限公司 | 确定性网络中的发送周期的确定方法和装置 |
CN110768915A (zh) * | 2019-10-31 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
EP4072084A4 (en) * | 2019-12-25 | 2022-12-28 | Huawei Technologies Co., Ltd. | MESSAGE BUFFERING METHOD, INTEGRATED CIRCUIT SYSTEM AND STORAGE MEDIA |
CN111585895B (zh) * | 2020-05-12 | 2021-11-09 | 北京交通大学 | 无需时间同步的时间触发的数据传输方法 |
CN111669334B (zh) * | 2020-05-15 | 2023-03-28 | 南京南瑞继保电气有限公司 | 流量控制方法、装置、设备及计算机可读存储介质 |
CN114095397A (zh) * | 2020-07-31 | 2022-02-25 | 华为技术有限公司 | 传输报文的方法、装置、设备及可读存储介质 |
CN114448903A (zh) * | 2020-10-20 | 2022-05-06 | 华为技术有限公司 | 一种报文处理方法、装置和通信设备 |
CN112995064B (zh) * | 2021-04-21 | 2021-07-27 | 鹏城实验室 | 一种时间敏感网络报文转发方法、装置、终端及存储介质 |
CN114244852B (zh) * | 2021-11-09 | 2024-01-30 | 北京罗克维尔斯科技有限公司 | 数据传输方法、装置、设备及存储介质 |
CN116436863A (zh) * | 2022-01-04 | 2023-07-14 | 中兴通讯股份有限公司 | 报文调度方法、网络设备、存储介质及计算机程序产品 |
CN116614450A (zh) * | 2022-02-09 | 2023-08-18 | 华为技术有限公司 | 报文转发方法、计算机设备、存储介质、程序产品及芯片 |
CN117768409A (zh) * | 2022-09-16 | 2024-03-26 | 中兴通讯股份有限公司 | 报文调度方法、网络设备、存储介质及计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859263A (zh) * | 2005-11-16 | 2006-11-08 | 华为技术有限公司 | 信元重排序方法、使用该方法的信元处理方法及装置 |
CN103036806A (zh) * | 2012-10-30 | 2013-04-10 | 武汉大学 | 一种基于动态索引的按需数据广播调度方法 |
CN104038966A (zh) * | 2013-03-05 | 2014-09-10 | 华为技术有限公司 | 长期演进网络下数据流调度方法及其装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6882625B2 (en) * | 2000-12-14 | 2005-04-19 | Nokia Networks Oy | Method for scheduling packetized data traffic |
US7904931B2 (en) * | 2001-09-12 | 2011-03-08 | Cox Communications, Inc. | Efficient software bitstream rate generator for video server |
US8250197B2 (en) * | 2008-10-28 | 2012-08-21 | Vmware, Inc. | Quality of service management |
US9112820B2 (en) * | 2012-07-31 | 2015-08-18 | Hewlett-Packard Development Company, L.P. | Delay queues based on delay remaining |
KR102236204B1 (ko) * | 2014-03-27 | 2021-04-07 | 한국전자통신연구원 | 무선 통신 시스템에서 통신 모듈의 트래픽 보장을 위한 장치 및 방법 |
-
2018
- 2018-02-14 CN CN201810152272.1A patent/CN110166380B/zh active Active
-
2019
- 2019-01-31 WO PCT/CN2019/074226 patent/WO2019157978A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859263A (zh) * | 2005-11-16 | 2006-11-08 | 华为技术有限公司 | 信元重排序方法、使用该方法的信元处理方法及装置 |
CN103036806A (zh) * | 2012-10-30 | 2013-04-10 | 武汉大学 | 一种基于动态索引的按需数据广播调度方法 |
CN104038966A (zh) * | 2013-03-05 | 2014-09-10 | 华为技术有限公司 | 长期演进网络下数据流调度方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110166380A (zh) | 2019-08-23 |
WO2019157978A1 (zh) | 2019-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166380B (zh) | 调度报文的方法、第一网络设备及计算机可读存储介质 | |
US10178053B2 (en) | Programmable broadband gateway hierarchical output queueing | |
US11316795B2 (en) | Network flow control method and network device | |
US7701849B1 (en) | Flow-based queuing of network traffic | |
US7738375B1 (en) | Shared shaping of network traffic | |
US9722942B2 (en) | Communication device and packet scheduling method | |
US7619969B2 (en) | Hardware self-sorting scheduling queue | |
EP2575329B1 (en) | Proportional bandwidth sharing of the excess part in a MEF Traffic Profile | |
US9608927B2 (en) | Packet exchanging device, transmission apparatus, and packet scheduling method | |
US7978609B2 (en) | Systems and methods for improving packet scheduling accuracy | |
US6795870B1 (en) | Method and system for network processor scheduler | |
US20070070895A1 (en) | Scaleable channel scheduler system and method | |
EP2702731A1 (en) | Hierarchical profiled scheduling and shaping | |
CN110086728B (zh) | 发送报文的方法、第一网络设备及计算机可读存储介质 | |
Hua et al. | Scheduling design and analysis for end-to-end heterogeneous flows in an avionics network | |
US8363668B2 (en) | Avoiding unfair advantage in weighted round robin (WRR) scheduling | |
KR101737516B1 (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
CN108989233B (zh) | 拥塞管理方法及装置 | |
EP2063580B1 (en) | Low complexity scheduler with generalized processor sharing GPS like scheduling performance | |
KR20120055947A (ko) | 가입자 인지 플로우별 QoS 제공 방법 및 장치 | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
Soni et al. | Deficit Round-Robin: Network Calculus based Worst-Case Traversal Time Analysis Revisited | |
KR100745679B1 (ko) | 적응 라운드 로빈을 이용한 패킷 스케쥴링 방법 및 장치 | |
US20150049770A1 (en) | Apparatus and method | |
Yamagaki et al. | DMFQ: Hardware design of Flow-based queue management scheme for improving the fairness |
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 |