CN117041162B - 一种流量整形方法及装置 - Google Patents
一种流量整形方法及装置 Download PDFInfo
- Publication number
- CN117041162B CN117041162B CN202311295024.XA CN202311295024A CN117041162B CN 117041162 B CN117041162 B CN 117041162B CN 202311295024 A CN202311295024 A CN 202311295024A CN 117041162 B CN117041162 B CN 117041162B
- Authority
- CN
- China
- Prior art keywords
- traffic
- shapers
- shaper
- bucket
- scheduler
- 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
- 238000007493 shaping process Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000012360 testing method Methods 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 28
- 230000005284 excitation Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000872 buffer Substances 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 description 30
- 238000012544 monitoring process Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 238000007639 printing Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006735 deficit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种流量整形方法及装置,提供与多个流一一对应的多个流量整形器用于进行流量控制或者流量整形;可以通过如文本配置等方式来从全局上对多个流量整形器的参数进行配置,包括分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度;在已经设定了初始桶深等参数的基础上,可以根据该流量整形器的当前桶深来判断是否进行填桶操作或者减桶操作,从而可以实现精确的流量控制;通过调度器来对所述多个流量整形器的输出进行调度和发送,可以结合与所述多个流相关联的调度策略,满足各种协议、各种频带、各种互联设备需求下对不同带宽、不同包长的场景进行测试的需要。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种流量整形方法及装置。
背景技术
流量监控(policing)和流量整形(shaper)用于监督网络流量速率并实现流量控制策略。流量监控也叫流量监督,是对进入网络的流量速率进行监督和限制。流量整形也叫流量控制,是对输出报文的速率进行控制,使得报文以比较均匀的流量速率发送出去,减轻下游设备的流量拥塞。为了帮助实现生产出来的芯片可以满足各种可能的应用场景下的流量表现要求,需要在芯片仿真设计阶段进行测试,验证芯片的流量表现还有所能承受的最大带宽等。为此,需要对芯片入口激励流量进行控制并对芯片出口流量进行监控,并且要应对各种可能的通信协议、频点、验证方法学等。现有技术中,依赖人工的方式来构造符合带宽要求的激励,测试效率低且难以更改。
为此,本申请提供了一种流量整形方法及装置,用于应对现有技术中的技术难题。
发明内容
第一方面,本申请提供了一种流量整形方法。所述流量整形方法包括:提供与多个流一一对应的多个流量整形器以及与所述多个流相关联的调度器;针对所述多个流量整形器中的每一个流量整形器,分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作;通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制;通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送。
通过本申请的第一方面,提供与多个流一一对应的多个流量整形器用于进行流量控制或者流量整形;可以通过如文本配置等方式来从全局上对多个流量整形器的参数进行配置,包括分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度;在已经设定了初始桶深等参数的基础上,可以根据该流量整形器的当前桶深来判断是否进行填桶操作或者减桶操作,从而可以实现精确的流量控制;通过调度器来对所述多个流量整形器的输出进行调度和发送,可以结合与所述多个流相关联的调度策略,满足各种协议、各种频带、各种互联设备需求下对不同带宽、不同包长的场景进行测试的需要。
在本申请的第一方面的一种可能的实现方式中,所述流量整形方法还包括:基于报文包长度和流号之间的特定组合设定所述调度策略从而使得通过所述调度器所调度和发送的所述多个流量整形器的输出满足所述特定组合。
在本申请的第一方面的一种可能的实现方式中,所述特定组合包括以下一项或者多项:短包发送、长包发送、长短包混合发送、特定长度包发送、选定包长混合发送、可变包长发送、随机包长发送。
在本申请的第一方面的一种可能的实现方式中,所述特定组合基于通信协议测试要求确定。
在本申请的第一方面的一种可能的实现方式中,所述流量整形方法还包括:部署所述多个流量整形器和所述调度器在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制,或者,部署所述多个流量整形器和所述调度器在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制。
在本申请的第一方面的一种可能的实现方式中,所述多个流量整形器和所述调度器被部署在所述第一序列发生器之后,所述第一序列发生器所生成的入口激励流量被分配给所述多个流,所述流量整形方法还包括:部署总流量整形器在所述调度器之后,通过所述总流量整形器,基于所述总流量带宽,对通过所述调度器所调度和发送的所述多个流量整形器的输出进行流量控制。
在本申请的第一方面的一种可能的实现方式中,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器缓存该流量整形器的输出并且不发送该流量整形器的输出。
在本申请的第一方面的一种可能的实现方式中,所述总流量整形器的初始桶深基于所述总流量带宽确定,当所述总流量整形器的当前桶深小于零时,所述调度器缓存所述多个流量整形器的输出并且不发送所述多个流量整形器的输出。
在本申请的第一方面的一种可能的实现方式中,所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量,所述流量整形方法还包括:提供与所述多个流一一对应的多个生成器,通过所述多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流。
在本申请的第一方面的一种可能的实现方式中,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器控制与该流量整形器对应的流所对应的生成器停止生成报文。
在本申请的第一方面的一种可能的实现方式中,所述流量整形方法还包括:基于所述多个流中一个或者多个流的预期流量带宽变化,重新配置所述多个流量整形器中与所述一个或者多个流对应的一个或者多个流量整形器。
在本申请的第一方面的一种可能的实现方式中,当所述多个流的数量大于第一阈值时,部署所述多个流量整形器和所述调度器在所述第二序列发生器之前。
在本申请的第一方面的一种可能的实现方式中,当所述多个流各自的预期流量带宽变化的频率均大于第二阈值且所述多个流各自的预期流量带宽变化的幅度均小于第三阈值时,部署所述多个流量整形器和所述调度器在所述第一序列发生器之后。
在本申请的第一方面的一种可能的实现方式中,所述多个流之间的流量带宽分配规则包括以下一项或者多项:均分、等差、指定比例、随机。
在本申请的第一方面的一种可能的实现方式中,所述调度策略包括以下一项或者多项:先进先出方式、轮询方式、严格优先级方式、加权轮询方式、严格优先级和轮询结合方式、差分轮询方式、加权差分轮询方式、加权公平队列方式。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第五方面,本申请实施例还提供了一种流量整形装置。所述流量整形装置包括:与多个流一一对应的多个流量整形器,其中,针对所述多个流量整形器中的每一个流量整形器,该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度被分别配置;与所述多个流相关联的调度器。其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作,所述流量整形装置用于:通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制,以及,通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送。
在本申请的第五方面的一种可能的实现方式中,所述多个流量整形器和所述调度器被部署在第二序列发生器之前,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量,并且,通过与所述多个流一一对应的多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流。
在本申请的第五方面的一种可能的实现方式中,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器控制与该流量整形器对应的流所对应的生成器停止生成报文,并且,所述流量整形装置用于:基于所述多个流中一个或者多个流的预期流量带宽变化,重新配置所述多个流量整形器中与所述一个或者多个流对应的一个或者多个流量整形器。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种流量整形方法的流程示意图;
图2为本申请实施例提供的一种流量整形装置的示意图;
图3为本申请实施例提供的一种实施方式的包括流量整形装置的验证环境的示意图;
图4为本申请实施例提供的另一种实施方式的包括流量整形装置的验证环境的示意图;
图5为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种流量整形方法的流程示意图。如图1所示,流量整形方法包括以下步骤。
步骤S102:提供与多个流一一对应的多个流量整形器以及与所述多个流相关联的调度器。
步骤S104:针对所述多个流量整形器中的每一个流量整形器,分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作。
步骤S106:通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制。
步骤S108:通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送。
参阅上述各个步骤,图1所示的流量整形方法,适用于流量监控(policing)和流量整形(shaper)等应用场景,可以用于监督网络流量速率并实现流量控制策略。一般来说,流量监控也叫流量监督,是对进入网络的流量速率进行监督和限制;流量整形也叫流量控制,是对输出报文的速率进行控制,使得报文以比较均匀的流量速率发送出去,减轻下游设备的流量拥塞。图1所示的流量整形方法,不仅实现了对报文速率进行控制流入控制报文流量速率,而且可以有效地降低传输延迟和充分利用网络带宽资源。图1所示的流量整形方法,可以应用于芯片设计仿真验证场景,例如可以在集成电路验证环境中提供流量控制和监控的组件,可以用于进行芯片性能测试包括测试芯片的流量表现以及最大承受带宽。利用图1所示的流量整形方法,可以实现在芯片入口进行流量控制,例如通过流量整形器实现流量整形。然后再通过在芯片出口进行流量监控就可以完成芯片性能测试。另外,图1所示的流量整形方法,可以通过自动脚本或者其它自动化生成工具来构造符合带宽要求的激励,从而可以简化测试和提升测试效率。另外,通过提供与多个流一一对应的多个流量整形器,以及通过针对所述多个流量整形器中的每一个流量整形器,分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,这样实现了对单条流的流量可控以及实现了多条流的控制,还可以根据带宽要求灵活地更改流量整形器的配置,减少重复编译和提高验证效率。另外,为了适配各种协议、各种频带、各种互联设备需求,需要对不同带宽、不同包长的场景进行测试,图1所示的流量整形方法,可以灵活地根据带宽要求更改整形器配置以及提供多种报文包长度的组合来覆盖全面的测试场景。下面结合本申请具体实施例详细说明。
图1所示的流量整形方法,在步骤S102,提供与多个流一一对应的多个流量整形器以及与所述多个流相关联的调度器。如此,为每个流分别提供对应的流量整形器,这样有利于实现对单条流的流量可控以及实现多条流的控制。在步骤S104,针对所述多个流量整形器中的每一个流量整形器,分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度。其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定。这里,与所述多个流相关联的总流量带宽体现了整体上的总带宽要求。所述多个流之间的流量带宽分配规则代表了如何将总流量带宽分配到每条流上。例如,设总带宽限速是1000百万比特每秒(million bits persecond,Mbps),设有10条流,每条流的限速是200百万比特每秒。考虑到调度器和报文长度等因素可能导致每条流的带宽不同,因此需要确定所述多个流之间的流量带宽分配规则,从而将总带宽分配到10条流上,例如可以采取均分、等差、指定比例、随机等分配原则。还可以考虑尽量利用满带宽的要求,例如将剩余带宽分配到某条流上。还可以考虑到流量带宽变化的可能性,例如在发流过程中带宽发生变化的时间点或者事件触发点,对短时间内流量带宽变化可以具有一定程度上的容忍度,在必要的时候可以重新配置流量整形器,可以采用动态配置的方式在不停流的前提下重新设定流量整形器的有关参数,例如初始桶深、填桶时间安排、减桶时间安排以及减桶长度等,或者可以采用静态配置的方式在停留的情况下重新配置。如此,通过与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则,以及通过基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定所述多个流量整形器各自的初始桶深,再结合针对所述多个流量整形器中的每一个流量整形器来分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,实现了对单条流的流量可控以及实现了多条流的控制。所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作。这里,填桶时间安排可以是定时进行填桶操作,例如每隔一段时间进行一次填桶操作,也可以是任意合适的进行填桶操作的时间安排如时刻表等。减桶时间安排可以是定时进行减桶操作,例如每隔一段时间进行一次减桶操作,也可以是任意合适的进行减桶操作的时间安排如时刻表等。减桶长度可以是根据用户自定义函数进行调整,例如参考前导码、帧间隙、帧校验序列(frame check sequence,FCS)还有循环冗余校验(cyclic redundancy check,CRC)等。在一些实施例中,可以通过设置循环线程进行填桶操作和减桶操作。如此,在基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定所述多个流量整形器各自的初始桶深之后,通过所述多个流量整形器各自进行的填桶操作和减桶操作,可以确定所述多个流量整形器各自的当前桶深。换句话说,每一个流量整形器按照该流量整形器的填桶时间安排或者减桶时间安排,可以判断该流量整形器的当前桶深是否大于零。当该流量整形器的当前桶深大于零时可以进行发包以及进行减桶操作,而当该流量整形器的当前桶深小于零时可以进行填桶操作。如此,通过初始桶深和当前桶深的设计,实现了流量整形,并且在发流过程中可以实现自动化操作,降低了人工介入和提高了验证效率。另外,在一些实施例中,还可以设定流量整形器的最大桶深,当该流量整形器的当前桶深大于最大桶深时,将该流量整形器的当前桶深修改为最大桶深,这样有助于规范化流量整形过程,提高效率。
继续参阅图1,在步骤S106,通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制。然后,在步骤S108,通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送。这里,与所述多个流相关联的调度策略覆盖了如何根据包长和流号来发送报文,有助于实现流号和包长之间的不同约束,使得用户可以根据不同场景产生特定的报文。为了适配各种协议、各种频带、各种互联设备需求,需要对不同带宽、不同包长的场景进行测试,通过产生特定的报文,可以灵活地根据带宽要求更改整形器配置以及提供多种报文包长度的组合来覆盖全面的测试场景。总之,图1所示的流量整形方法,提供与多个流一一对应的多个流量整形器用于进行流量控制或者流量整形;可以通过如文本配置等方式来从全局上对多个流量整形器的参数进行配置,包括分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度;在已经设定了初始桶深等参数的基础上,可以根据该流量整形器的当前桶深来判断是否进行填桶操作或者减桶操作,从而可以实现精确的流量控制;通过调度器来对所述多个流量整形器的输出进行调度和发送,可以结合与所述多个流相关联的调度策略,满足各种协议、各种频带、各种互联设备需求下对不同带宽、不同包长的场景进行测试的需要。
图2为本申请实施例提供的一种流量整形装置的示意图。如图2所示,所述流量整形装置包括:与多个流一一对应的多个流量整形器。图2中示意性的示出了三个流,分别为流A 202、流B 204、流C 206,以及与三个流一一对应的三个流量整形器,分别为流量整形器A 212、流量整形器B 214、流量整形器C 216。其中,流量整形器A 212与流A 202对应,流量整形器B 214与流B 204对应,流量整形器C 216与流C 206对应。应当理解的是,所述流量整形装置可以包括任意数量的流以及相对应的流量整形器,只要满足与多个流一一对应的多个流量整形器。其中,针对所述多个流量整形器中的每一个流量整形器,该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度被分别配置。所述流量整形装置还包括:与所述多个流相关联的调度器220。其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作。所述流量整形装置用于:通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制,以及,通过所述调度器220,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送。
图2所示的流量整形装置,提供与多个流一一对应的多个流量整形器用于进行流量控制或者流量整形;可以通过如文本配置等方式来从全局上对多个流量整形器的参数进行配置,包括分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度;在已经设定了初始桶深等参数的基础上,可以根据该流量整形器的当前桶深来判断是否进行填桶操作或者减桶操作,从而可以实现精确的流量控制;通过调度器来对所述多个流量整形器的输出进行调度和发送,可以结合与所述多个流相关联的调度策略,满足各种协议、各种频带、各种互联设备需求下对不同带宽、不同包长的场景进行测试的需要。
参阅上述图1和图2,本申请实施例提供的流量整形方法和流量整形装置,可以适配灵活的流量监控方式来检测出口流量。在验证环境实现流量监控来监测出口流量,并且考虑到不同测试场景中包长、帧间隙、测试时长等影响,可以采用灵活的流量监控窗口的实现方式,例如选择基于时间、包数、梯形时间窗等方式。另外,用户可以根据测试场景需要进行选择,从而减小误差引入。具体地,可以按照时间、包数量、梯形等形式进行分段流量监测。例如,可以按照固定长度的时间窗,流量监控结果为监控时间窗内的统计包数。再例如,可以按照固定包数窗,流量监控结果为监控时间。再例如,可以按照梯形形式监测,流量监控结果为梯形形式的监控时间窗内的统计包数。并且,可以设置等待时间或者接收包个数进行延时,等待流量稳定后启动流量统计,避免因起始流量不均衡导致的流量监控组件报错。还可以设置同时按照流统计、输入端口和输出端口统计、用户自定义字段统计等三种模式进行流量统计,按照设置的统计模式监控流量并打印结果。还可以设置偏差速率和预期速率的百分比作为可允许的误差值,在超出误差范围时环境自动报错给出警告。并且,可以支持误差补偿,通过配置补偿包长和帧间隙对流量监控误差的影响。并且,在流量监测结束后,将流量转化为打印格式进行打印,打印内容包括预期速率、实际速率以及实际速率和预期速率之间的差值、另外,通过可视图形化显示流量监控值,通过图形化显示流量带宽随时间的变化,可以更直观的观察流量变化。
在一种可能的实施方式中,所述流量整形方法还包括:基于报文包长度和流号之间的特定组合设定所述调度策略从而使得通过所述调度器所调度和发送的所述多个流量整形器的输出满足所述特定组合。在一些实施例中,所述特定组合包括以下一项或者多项:短包发送、长包发送、长短包混合发送、特定长度包发送、选定包长混合发送、可变包长发送、随机包长发送。对流号和包长实现不同的约束,可以根据不同场景产生特定的报文,例如发送短包(如以太中的64比特短包),发送长包(如以太中的9600比特长包),还有如发送特定长度包,短包和长包混合发送且混合比例可配,选定两个或三个包长之间混合发送,或者使得包长在某个长度范围内递增或递减且步长可配,或者包长随机等。在一些实施例中,所述特定组合基于通信协议测试要求确定。按照某种发送方式以及报文包长度和流号的组合来发送报文,这样可以模拟不同流号超长包和超短包混合发送的场景。例如,可以将前面若干个流的报文包长度设为拐点长度如65个字节,或者设为超短报文包长度如48字节,或者设为超长报文包长度9600字节。这样的不同流号与可变报文包长度的组合可以覆盖更全面的测试场景。在一些实施例中,验证人员可以事先对入口激励的包长进行约束配置,例如设定拐点长度等,然后通过调度器选择多个流进行轮询发送,产生不同流号超长包和超短包混合发送的场景,从而可以对芯片内部的一些缓冲区进行冲击,达到测试芯片的缓存性能的目的。
在一种可能的实施方式中,所述多个流之间的流量带宽分配规则包括以下一项或者多项:均分、等差、指定比例、随机。这里,与所述多个流相关联的总流量带宽体现了整体上的总带宽要求。所述多个流之间的流量带宽分配规则代表了如何将总流量带宽分配到每条流上。例如,设总带宽限速是1000百万比特每秒(million bits per second,Mbps),设有10条流,每条流的限速是200百万比特每秒。考虑到调度器和报文长度等因素可能导致每条流的带宽不同,因此需要确定所述多个流之间的流量带宽分配规则,从而将总带宽分配到10条流上,例如可以采取均分、等差、指定比例、随机等分配原则。还可以考虑尽量利用满带宽的要求,例如将剩余带宽分配到某条流上。还可以考虑到流量带宽变化的可能性,例如在发流过程中带宽发生变化的时间点或者事件触发点,对短时间内流量带宽变化可以具有一定程度上的容忍度,在必要的时候可以重新配置流量整形器,可以采用动态配置的方式在不停流的前提下重新设定流量整形器的有关参数,例如初始桶深、填桶时间安排、减桶时间安排以及减桶长度等,或者可以采用静态配置的方式在停留的情况下重新配置。如此,通过与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则,以及通过基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定所述多个流量整形器各自的初始桶深,再结合针对所述多个流量整形器中的每一个流量整形器来分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,实现了对单条流的流量可控以及实现了多条流的控制。
在一种可能的实施方式中,所述调度策略包括以下一项或者多项:先进先出方式、轮询方式、严格优先级方式、加权轮询方式、严格优先级和轮询结合方式、差分轮询方式、加权差分轮询方式、加权公平队列方式。通过调度策略的调整,可以对特定流进行调度以及允许特定的流量整形器将相应流发送出去。具体地,可以采用各种合适的队列调度算法,例如先进先出方式(First In First Out,FIFO)、轮询方式(Round Robin,RR)、严格优先级方式(Strict Priority,SP)、加权轮询方式(Weighted Round Robin,WRR)、严格优先级和轮询结合方式、差分轮询方式(Deficit Round Robin,DRR)、加权差分轮询方式(WeightedDeficit Round Robin,WDRR)、加权公平队列方式(Weighted Fair Queuing,WFQ)。
参阅上述图1和图2,本申请实施例提供的流量整形方法和流量整形装置,可以通过如文本配置等方式来从全局上对多个流量整形器的参数进行配置,包括分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度。在一些实施例中,可以通过系统函数,在仿真命令中以赋值方式传入参数。并且,可以通过如文本配置等方式来存储参数,这样在验证环境中读取文本进行统一维护,将文本中每个参数的值通过全局变量的方式配置,如此验证人员只需要根据场景修改文本中对应的参数即可更改配置,有利于提高验证效率。另外,通过文本方式对所有流量整形器进行全局配置不再需要重新编译,省去了编译所花费的时间,节约机器资源提升验证效率。流量整形器的所有相关配置均可通过文本方式进行配置,包括桶深、填桶时间安排、减桶时间安排以及对调度器的配置、流号选择等。
参阅上述图1和图2,本申请实施例提供的流量整形方法和流量整形装置,可以应用于芯片设计验证环境用于构造入口激励流量。并且可以根据实际需要选择部署在序列发生器之前或者序列发生器之后。以图1所示的流量整形方法为例,所述流量整形方法还包括:部署所述多个流量整形器和所述调度器在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制,或者,部署所述多个流量整形器和所述调度器在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制。以图2所示的流量整形装置为例,所述多个流量整形器和所述调度器被部署在第二序列发生器之前,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量,并且,通过与所述多个流一一对应的多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流。下面结合图3和图4进一步详细说明。
图3为本申请实施例提供的一种实施方式的包括流量整形装置的验证环境的示意图。如图3所示,流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C 216)和所述调度器220被部署在第一序列发生器230之后。并且,流量整形装置还包括总流量整形器232,其被部署在所述调度器220之后。在第一序列发生器230和所述多个流(流A 202、流B 204、流C 206)之间还部署了分配器231,用于将第一序列发生器230的输出分配给相应的流。应当理解的是,所述流量整形装置可以包括任意数量的流以及相对应的流量整形器,只要满足与多个流一一对应的多个流量整形器。如图3所示,流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C 216)和所述调度器220被部署在第一序列发生器230之后。通过单个生成器就可以产生多个流并通过分配器231分配到特定流。并且,通过所述多个流量整形器可以实现根据每条流的带宽要求进行配置,以及通过总流量整形器232可以实现根据总带宽要求进行配置。
在一种可能的实施方式中,所述多个流量整形器和所述调度器被部署在所述第一序列发生器之后,所述第一序列发生器所生成的入口激励流量被分配给所述多个流,所述流量整形方法还包括:部署总流量整形器在所述调度器之后,通过所述总流量整形器,基于所述总流量带宽,对通过所述调度器所调度和发送的所述多个流量整形器的输出进行流量控制。这里,部署总流量整形器在所述调度器之后,可以指的是图3所示的所述调度器220被部署在第一序列发生器230之后。如此,通过所述总流量整形器,可以基于所述总流量带宽,对通过所述调度器所调度和发送的所述多个流量整形器的输出进行流量控制。在一些实施例中,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器缓存该流量整形器的输出并且不发送该流量整形器的输出。如此,通过提供每一个流量整形器的队列缓存,可以实现对单条流的流量控制。在一些实施例中,所述总流量整形器的初始桶深基于所述总流量带宽确定,当所述总流量整形器的当前桶深小于零时,所述调度器缓存所述多个流量整形器的输出并且不发送所述多个流量整形器的输出。如此,通过提供总流量整形器的队列缓存,可以实现对多条流的整体输出的流量控制,有助于满足总带宽要求。
图4为本申请实施例提供的另一种实施方式的包括流量整形装置的验证环境的示意图。如图4所示,流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C 216)和所述调度器220被部署在第二序列发生器240之前。所述调度器220所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器240构建所述第二序列发生器240所生成的入口激励流量。并且,通过与所述多个流(流A 202、流B204、流C 206)一一对应的多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流。如图4所示,多个生成器包括生成器A 252、生成器B 254、生成器C 256。其中,生成器A 252生成流A 202,生成器B 254生成流B 204,生成器C 256生成流C 206。应当理解的是,所述流量整形装置可以包括任意数量的流以及相对应的流量整形器,只要满足与多个流一一对应的多个流量整形器以及与多个流一一对应的多个生成器。如图4所示,流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C216)和所述调度器220被部署在第二序列发生器240之前。参阅图3和图4可知,图4所示的另一种实施方式的包括流量整形装置的验证环境,不需要图3所示的总流量整形器232,可以节省资源和配置,并且不需要队列缓存,有助于提高验证效率。
在一种可能的实施方式中,所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量,所述流量整形方法还包括:提供与所述多个流一一对应的多个生成器,通过所述多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流。这里,所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前,可以指的是图4所示的流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C 216)和所述调度器220被部署在第二序列发生器240之前。如此,通过所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前,可以节省了额外的流量整形器配置和队列缓存。在一些实施例中,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器控制与该流量整形器对应的流所对应的生成器停止生成报文。如此,通过停止生成报文,可以节省队列缓存,有助于提升验证效率。在一些实施例中,所述流量整形方法还包括:基于所述多个流中一个或者多个流的预期流量带宽变化,重新配置所述多个流量整形器中与所述一个或者多个流对应的一个或者多个流量整形器。如此,通过重新配置流量整形器,可以有效地应对可能的流量带宽变化,适配各种应用场景。另外,可以通过预判流量带宽变化的时间点或者事件触发点,通过重新配置来更好地适配。并且,可以通过预先设置多个时间点或者事件触发点或者事件触发次数,这样可以在测试过程中实现多次的重新配置流量整形器,有利于适配应用场景的需求。
参阅上述图1、图2、图3和图4,其中,图1所示的流量整形方法和图2所示的流量整形装置,可以参考图3所示的一种实施方式的包括流量整形装置的验证环境,也就是流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C216)和所述调度器220被部署在第一序列发生器230之后,或者,可以参考图4所示的另一种实施方式的包括流量整形装置的验证环境,也就是流量整形装置所包括的所述多个流量整形器(流量整形器A 212、流量整形器B 214、流量整形器C 216)和所述调度器220被部署在第二序列发生器240之前。其中,部署所述多个流量整形器和所述调度器在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制,一般还需要额外的配置来满足总带宽要求,例如图3所示的总流量整形器232,还需要队列缓存来缓存已经被生成但是不被允许发送的流量;部署所述多个流量整形器和所述调度器在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制,一般需要多个生成器来分别生成各个流,例如图4所示的与所述多个流(流A 202、流B 204、流C 206)一一对应的多个生成器(生成器A 252、生成器B 254、生成器C 256)。一方面,当流的数量较多时,例如需要对包含上千条流的应用场景进行测试,这意味着需要相当多的队列缓存,可能不利于提高验证效率。另一方面,在发流过程中可能面临流量带宽变化的时间点或者事件触发点,例如网路条件的变化、负载变化等,这些也应在芯片验证测试环境中进行覆盖,而当流量带宽变化超出了设计中的容忍度时就需要对流量整形器重新进行配置,例如可能需要频繁地进行动态配置。图1所示的流量整形方法和图2所示的流量整形装置,可以根据预期的流数量和流量带宽变化等影响验证效率和验证效果的因素,灵活地选择采用图3所示的一种实施方式的包括流量整形装置的验证环境或者图4所示的另一种实施方式的包括流量整形装置的验证环境,也就是可以在部署所述多个流量整形器和所述调度器在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制与部署所述多个流量整形器和所述调度器在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制之间进行灵活地选择。在一种可能的实施方式中,当所述多个流的数量大于第一阈值时,部署所述多个流量整形器和所述调度器在所述第二序列发生器之前。如此,当流的数量足够多时,例如大于第一阈值时,这意味着更适合部署所述多个流量整形器和所述调度器在所述第二序列发生器之前,从而可以节省队列缓存资源的占用,有助于提升验证效率。例如,当流的数量较多如上千条流时,可能需要数量众多的缓存队列来满足在序列发生器之后来提供流量整形的需求,这样可能不利于提升验证效率;通过第一阈值可以有效地避免这种情况,也即当流的数量大于第一阈值时,通过部署所述多个流量整形器和所述调度器在所述第二序列发生器之前,有利于提升验证效率。在一种可能的实施方式中,当所述多个流各自的预期流量带宽变化的频率均大于第二阈值且所述多个流各自的预期流量带宽变化的幅度均小于第三阈值时,部署所述多个流量整形器和所述调度器在所述第一序列发生器之后。如此,当频率较高且幅度较小时,这意味着可能需要频繁地进行动态配置来适配流量带宽的变化,这意味着可能更适合部署所述多个流量整形器和所述调度器在所述第一序列发生器之后,从而通过重新配置各个流的流量整形器和总流量整形器来适配流量带宽的变化。因此,图1所示的流量整形方法和图2所示的流量整形装置,可以根据预期的流数量和流量带宽变化等影响验证效率和验证效果的因素,灵活地选择更合适的部署方式,达到验证效率和资源占用之间的平衡。这里,为了更好地适配各种应用场景下的预期流量带宽变化的特点,在预期流量带宽变化的特点是变化幅度较小但是频率较高的应用场景,并且对于单个流的带宽变化没有精确要求时,部署流量整形器和调度器在序列发生器之后,这样只需要改配总流量整形器就可以改变总带宽。这里,通过第三阈值来进行约束,也就是所述多个流各自的预期流量带宽变化的幅度均小于第三阈值,这是为了确保预期流量带宽变化是小幅度变化,此时对于单个流的带宽影响较小,如果预期流量带宽变化超过了第三阈值则是大幅度变化,可能导致各个流的带宽在短时间内出现很大偏差。
图5是本申请实施例提供的一种计算设备的结构示意图,该计算设备500包括:一个或者多个处理器510、通信接口520以及存储器530。所述处理器510、通信接口520以及存储器530通过总线540相互连接。可选地,该计算设备500还可以包括输入/输出接口550,输入/输出接口550连接有输入/输出设备,用于接收用户设置的参数等。该计算设备500能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理器510还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备500执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器510用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备500可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口520具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器510具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图5的计算设备500可以包括一个或者多个处理器510,并且多个处理器510可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器510可以构成处理器序列或者处理器阵列,或者多个处理器510之间可以分成主处理器和辅助处理器,或者多个处理器510之间可以具有不同的架构如采用异构计算架构。另外,图5所示的计算设备500,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备500可以包括比图5所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器510可以有多种具体实现形式,例如处理器510可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器510还可以是单核处理器或多核处理器。处理器510可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器510也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口520可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器530可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器530也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器530也可用于存储程序代码和数据,以便于处理器510调用存储器530中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备500可能包含相比于图5展示的更多或者更少的组件,或者有不同的组件配置方式。
总线540可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线540可以分为地址总线、数据总线、控制总线等。总线540除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例系统中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (17)
1.一种流量整形方法,其特征在于,所述流量整形方法包括:
提供与多个流一一对应的多个流量整形器以及与所述多个流相关联的调度器;
针对所述多个流量整形器中的每一个流量整形器,分别配置该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度,其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作;
通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制;
通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送,
所述流量整形方法还包括:基于报文包长度和流号之间的特定组合设定所述调度策略从而使得通过所述调度器所调度和发送的所述多个流量整形器的输出满足所述特定组合,
所述特定组合包括以下一项或者多项:短包发送、长包发送、长短包混合发送、特定长度包发送、选定包长混合发送、可变包长发送、随机包长发送,
所述流量整形方法还包括:
部署所述多个流量整形器和所述调度器在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制,部署总流量整形器在所述调度器之后,通过所述总流量整形器,基于所述总流量带宽,对通过所述调度器所调度和发送的所述多个流量整形器的输出进行流量控制,其中,所述第一序列发生器所生成的入口激励流量通过分配器被分配给所述多个流,所述分配器被部署在所述第一序列发生器和所述多个流之间,所述多个流通过单一生成器生成,
或者,
部署所述多个流量整形器和所述调度器在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制,提供与所述多个流一一对应的多个生成器,通过所述多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流,其中,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量。
2.根据权利要求1所述的流量整形方法,其特征在于,所述特定组合基于通信协议测试要求确定。
3.根据权利要求1所述的流量整形方法,其特征在于,所述多个流量整形器和所述调度器被部署在所述第一序列发生器之后。
4.根据权利要求3所述的流量整形方法,其特征在于,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器缓存该流量整形器的输出并且不发送该流量整形器的输出。
5.根据权利要求4所述的流量整形方法,其特征在于,所述总流量整形器的初始桶深基于所述总流量带宽确定,当所述总流量整形器的当前桶深小于零时,所述调度器缓存所述多个流量整形器的输出并且不发送所述多个流量整形器的输出。
6.根据权利要求1所述的流量整形方法,其特征在于,所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前。
7.根据权利要求6所述的流量整形方法,其特征在于,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器控制与该流量整形器对应的流所对应的生成器停止生成报文。
8.根据权利要求6所述的流量整形方法,其特征在于,所述流量整形方法还包括:基于所述多个流中一个或者多个流的预期流量带宽变化,重新配置所述多个流量整形器中与所述一个或者多个流对应的一个或者多个流量整形器。
9.根据权利要求1所述的流量整形方法,其特征在于,当所述多个流的数量大于第一阈值时,部署所述多个流量整形器和所述调度器在所述第二序列发生器之前。
10.根据权利要求1所述的流量整形方法,其特征在于,当所述多个流各自的预期流量带宽变化的频率均大于第二阈值且所述多个流各自的预期流量带宽变化的幅度均小于第三阈值时,部署所述多个流量整形器和所述调度器在所述第一序列发生器之后。
11.根据权利要求1所述的流量整形方法,其特征在于,所述多个流之间的流量带宽分配规则包括以下一项或者多项:均分、等差、指定比例、随机。
12.根据权利要求1所述的流量整形方法,其特征在于,所述调度策略包括以下一项或者多项:先进先出方式、轮询方式、严格优先级方式、加权轮询方式、严格优先级和轮询结合方式、差分轮询方式、加权差分轮询方式、加权公平队列方式。
13.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至12中任一项所述的方法。
15.一种流量整形装置,其特征在于,所述流量整形装置包括:
与多个流一一对应的多个流量整形器,其中,针对所述多个流量整形器中的每一个流量整形器,该流量整形器的初始桶深、填桶时间安排、减桶时间安排以及减桶长度被分别配置;
与所述多个流相关联的调度器,
其中,所述多个流量整形器各自的初始桶深基于与所述多个流相关联的总流量带宽和所述多个流之间的流量带宽分配规则确定,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的填桶时间安排判断该流量整形器的当前桶深是否小于零和当该流量整形器的当前桶深小于零时进行填桶操作,并且,所述多个流量整形器中的每一个流量整形器用于按照该流量整形器的减桶时间安排判断该流量整形器的当前桶深是否大于零和当该流量整形器的当前桶深大于零时进行基于该流量整形器的减桶长度的减桶操作,
所述流量整形装置用于:通过所述多个流量整形器中的每一个流量整形器,对所述多个流中与该流量整形器对应的流进行流量控制,以及,通过所述调度器,基于与所述多个流相关联的调度策略对所述多个流量整形器的输出进行调度和发送,
所述调度策略基于报文包长度和流号之间的特定组合被设定从而使得通过所述调度器所调度和发送的所述多个流量整形器的输出满足所述特定组合,
所述特定组合包括以下一项或者多项:短包发送、长包发送、长短包混合发送、特定长度包发送、选定包长混合发送、可变包长发送、随机包长发送,
所述多个流量整形器和所述调度器被部署在第一序列发生器之后从而对所述第一序列发生器所生成的入口激励流量进行被动控制,总流量整形器被部署在所述调度器之后,并且,通过所述总流量整形器,基于所述总流量带宽,对通过所述调度器所调度和发送的所述多个流量整形器的输出进行流量控制,其中,所述第一序列发生器所生成的入口激励流量通过分配器被分配给所述多个流,所述分配器被部署在所述第一序列发生器和所述多个流之间,所述多个流通过单一生成器生成,
或者,
所述多个流量整形器和所述调度器被部署在第二序列发生器之前从而对所述第二序列发生器所生成的入口激励流量进行主动控制,并且,通过与所述多个流一一对应的多个生成器中的每一个生成器,生成所述多个流中与该生成器对应的流,其中,所述调度器所调度和发送的所述多个流量整形器的输出用于所述第二序列发生器构建所述第二序列发生器所生成的入口激励流量。
16.根据权利要求15所述的流量整形装置,其特征在于,所述多个流量整形器和所述调度器被部署在所述第二序列发生器之前。
17.根据权利要求16所述的流量整形装置,其特征在于,针对所述多个流量整形器中的每一个流量整形器,当该流量整形器的当前桶深小于零时,所述调度器控制与该流量整形器对应的流所对应的生成器停止生成报文,并且,所述流量整形装置用于:基于所述多个流中一个或者多个流的预期流量带宽变化,重新配置所述多个流量整形器中与所述一个或者多个流对应的一个或者多个流量整形器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311295024.XA CN117041162B (zh) | 2023-10-09 | 2023-10-09 | 一种流量整形方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311295024.XA CN117041162B (zh) | 2023-10-09 | 2023-10-09 | 一种流量整形方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117041162A CN117041162A (zh) | 2023-11-10 |
CN117041162B true CN117041162B (zh) | 2024-02-09 |
Family
ID=88641592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311295024.XA Active CN117041162B (zh) | 2023-10-09 | 2023-10-09 | 一种流量整形方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117041162B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198723B1 (en) * | 1998-04-14 | 2001-03-06 | Paxonet Communications, Inc. | Asynchronous transfer mode traffic shapers |
CN1567874A (zh) * | 2003-07-09 | 2005-01-19 | 华为技术有限公司 | 一种逻辑仿真方法 |
CA2576622A1 (en) * | 2006-02-03 | 2007-08-03 | Research In Motion Limited | System and method for controlling data communications between a server and a client device |
CA2610482A1 (en) * | 2006-11-13 | 2008-05-13 | Sr Telecom Inc. | Traffic shaping and scheduling in a network |
CN102594692A (zh) * | 2012-02-23 | 2012-07-18 | 中兴通讯股份有限公司 | 一种流量整形的方法及装置 |
WO2020142867A1 (zh) * | 2019-01-07 | 2020-07-16 | 华为技术有限公司 | 一种流量整形方法及相关设备 |
CN114553792A (zh) * | 2020-11-25 | 2022-05-27 | 华为技术有限公司 | 调度参数的调整方法、装置、设备及计算机可读存储介质 |
CN115102908A (zh) * | 2022-08-25 | 2022-09-23 | 珠海星云智联科技有限公司 | 基于带宽控制的网络报文生成的方法以及相关装置 |
-
2023
- 2023-10-09 CN CN202311295024.XA patent/CN117041162B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198723B1 (en) * | 1998-04-14 | 2001-03-06 | Paxonet Communications, Inc. | Asynchronous transfer mode traffic shapers |
CN1567874A (zh) * | 2003-07-09 | 2005-01-19 | 华为技术有限公司 | 一种逻辑仿真方法 |
CA2576622A1 (en) * | 2006-02-03 | 2007-08-03 | Research In Motion Limited | System and method for controlling data communications between a server and a client device |
CA2610482A1 (en) * | 2006-11-13 | 2008-05-13 | Sr Telecom Inc. | Traffic shaping and scheduling in a network |
CN102594692A (zh) * | 2012-02-23 | 2012-07-18 | 中兴通讯股份有限公司 | 一种流量整形的方法及装置 |
WO2020142867A1 (zh) * | 2019-01-07 | 2020-07-16 | 华为技术有限公司 | 一种流量整形方法及相关设备 |
CN112805971A (zh) * | 2019-01-07 | 2021-05-14 | 华为技术有限公司 | 一种流量整形方法及相关设备 |
CN114553792A (zh) * | 2020-11-25 | 2022-05-27 | 华为技术有限公司 | 调度参数的调整方法、装置、设备及计算机可读存储介质 |
CN115102908A (zh) * | 2022-08-25 | 2022-09-23 | 珠海星云智联科技有限公司 | 基于带宽控制的网络报文生成的方法以及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117041162A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | End-to-end network delay guarantees for real-time systems using SDN | |
Steinbach et al. | An extension of the OMNeT++ INET framework for simulating real-time ethernet with high accuracy | |
US9270527B2 (en) | Methods, systems, and computer readable media for enabling real-time guarantees in publish-subscribe middleware using dynamically reconfigurable networks | |
CN112805971B (zh) | 一种流量整形方法及相关设备 | |
Maile et al. | Network calculus results for TSN: An introduction | |
US9705812B2 (en) | Port-based fairness protocol for a network element | |
KR102657812B1 (ko) | 데이터 스트림 전송에 필요한 대역폭을 결정하기 위한 방법, 장치 및 시스템 | |
Kasera et al. | Fast and robust signaling overload control | |
KR102612312B1 (ko) | 전자 장치 및 이의 제어방법 | |
CN117041162B (zh) | 一种流量整形方法及装置 | |
CN113906720B (zh) | 流量调度方法、设备及存储介质 | |
US20010044844A1 (en) | Method and system for analyzing performance of large-scale network supervisory system | |
Tawk et al. | Optimal scheduling and delay analysis for AFDX end-systems | |
CN109905331A (zh) | 队列调度方法及装置、通信设备、存储介质 | |
Badache et al. | End-to-end delay analysis in an integrated modular avionics architecture | |
CN112492635B (zh) | 一种调度优先级的确定方法及装置 | |
EP2426874A1 (en) | Bandwidth control method and bandwidth control device | |
CN107888540B (zh) | 一种网络防攻击方法及网络设备 | |
WO2016000326A1 (zh) | 一种用户队列调度的方法、装置及计算机存储介质 | |
Sharafzadeh et al. | Understanding the impact of host networking elements on traffic bursts | |
Alam et al. | CPU resource usage analysis for downlink PDCP processing in CRAN | |
Smekal et al. | An FPGA-based Priority Packet Queues | |
Kasera et al. | Robust multiclass signaling overload control | |
CN109697146A (zh) | 处理器验证激励序列生成方法、装置、设备和存储介质 | |
Guo et al. | A Scalable Asynchronous Traffic Shaping Mechanism for TSN with Time Slot and Polling |
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 |