WO2012159362A1 - 一种流量整形的方法及设备 - Google Patents
一种流量整形的方法及设备 Download PDFInfo
- Publication number
- WO2012159362A1 WO2012159362A1 PCT/CN2011/077884 CN2011077884W WO2012159362A1 WO 2012159362 A1 WO2012159362 A1 WO 2012159362A1 CN 2011077884 W CN2011077884 W CN 2011077884W WO 2012159362 A1 WO2012159362 A1 WO 2012159362A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sending queue
- time
- token
- bucket corresponding
- traffic
- Prior art date
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/22—Traffic shaping
-
- 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/21—Flow control; Congestion control using leaky-bucket
Definitions
- the present invention relates to the field of communications, and in particular, to a method and device for traffic shaping. Background technique
- a data packet can be transmitted through a communication processing core chip, and the communication processing chip usually includes a scheduler, a memory, a queue management module, and a traffic shaping module.
- the traffic shaping module can implement traffic shaping.
- the traffic shaping function enables the communication processing chip to send data packets according to a preset bandwidth.
- Each storage space can be called a send queue.
- the send queue is used to buffer the data packets to be sent.
- Each send queue corresponds to a token bucket or a leaky bucket.
- the bucket is used to store the token, and the leaky bucket is used to store the traffic of the sent data packet; when the data packet is sent, the scheduler dispatches the sending queue from the memory, and the queue management module dequeues the data packet from the sending queue and sends the packet out
- the traffic shaping module subtracts the token of a certain traffic from the token bucket corresponding to the sending queue or adds traffic to the leaky bucket corresponding to the sending queue, and the traffic shaping module subtracts the traffic of the token, adds The traffic is equal to the traffic of the queue management module dequeuing packets from the send queue.
- the traffic shaping module needs to refresh the token stored in the token bucket corresponding to the sending queue or the traffic stored in the leaky bucket corresponding to the sending queue according to the bandwidth set for the sending queue. For example, the traffic shaping module periodically refreshes the token bucket corresponding to each sending queue in the memory.
- the traffic shaping module calculates the bandwidth and the length of the refresh period set in advance for the sending queue.
- the token is added to the token bucket corresponding to the sending queue, and the token is added to the token bucket corresponding to the sending queue according to the calculated token amount; or, the traffic shaping module periodically refreshes each memory in the memory.
- the leaky bucket corresponding to the sending queue is calculated by subtracting the leaked bucket corresponding to the sending queue according to the bandwidth set by the sending queue and the length of the refreshing period. Traffic, the calculated traffic is subtracted from the leaky bucket corresponding to the send queue.
- the embodiment of the present invention provides a traffic shaping method and device.
- the technical solution is as follows:
- a method for traffic shaping comprising:
- the first data packet is dequeued from the sending queue
- a traffic shaping device comprising:
- a dequeue module configured to dequeue the first data packet from the sending queue
- a refreshing module configured to refresh the token bucket or the leaky bucket corresponding to the sending queue according to the first time, the second time, and the bandwidth set in advance for the sending queue, where the first time is the first data a time when the packet is dequeued from the sending queue, the second time is a time when the second data packet is dequeued from the sending queue, and the second data packet is the first data packet from the sending team List the last time the team was dequeued before the team was listed.
- the first data packet is dequeued from the sending queue, and the token bucket or the leaky bucket corresponding to the sending queue is refreshed according to the first time, the second time, and the bandwidth set for the sending queue in advance, the first time
- the time elapsed from the first data packet by the sending queue, the second time is the time when the second data packet is dequeued from the sending queue, and the second data packet is before the first data packet is dequeued from the sending queue. , the last time the packet was dequeued.
- the device Since the dequeuing and sending of the data packet are performed according to the token bucket or the leaky bucket, the device according to the embodiment of the present invention can refresh the token bucket or the leaky bucket, thereby reducing the token corresponding to each sending queue.
- the number and frequency of buckets or leaky buckets enable traffic shaping.
- FIG. 11 is a flowchart of a method for traffic shaping according to Embodiment 2 of the present invention.
- FIG. 12 is a flowchart of a method for traffic shaping according to Embodiment 3 of the present invention.
- Example 1 is a schematic diagram of several types of traffic shaping devices according to Embodiment 4 of the present invention. detailed description The embodiments of the present invention will be further described in detail below with reference to the accompanying drawings.
- Example 1 is a schematic diagram of several types of traffic shaping devices according to Embodiment 4 of the present invention. detailed description The embodiments of the present invention will be further described in detail below with reference to the accompanying drawings.
- an embodiment of the present invention provides a method for traffic shaping, including:
- the first data packet is dequeued from the sending queue
- Step 102 Refresh the token bucket or the leaky bucket corresponding to the sending queue according to the first time, the second time, and the bandwidth set in advance for the sending queue.
- the first time is that the first data packet is sent from the sending queue.
- the time of the dequeue, the second time is the time when the second data packet is dequeued from the sending queue, and the second data packet is the data packet of the latest dequeue before the first data packet is dequeued from the sending queue.
- 102 may specifically include:
- the method further includes:
- the method further includes:
- the first token amount refers to the amount of tokens in the token bucket corresponding to the sending queue before the first data packet is dequeued from the sending queue;
- the second token amount refers to the first data packet sent from the token When the queue is dequeued, the amount of tokens subtracted from the token bucket corresponding to the sending queue, usually, the second token amount is equal to the first packet traffic;
- the third token amount refers to the first packet from The amount of tokens added to the token bucket corresponding to the sending queue when the token bucket corresponding to the sending queue is refreshed after the sending queue is dequeued.
- the method further includes:
- the scheduling state of the sending queue is set to an unschedulable state, and after a preset time, The scheduling status of the send queue is set to a schedulable state. For example, if the excessive token is subtracted from the token bucket when the first data packet is dequeued, the token token is still too small after the refresh, and if it is less than the preset first threshold, it is required. Add more tokens when the token bucket corresponding to the send queue is refreshed next time.
- the time difference between the first time and the second time may be increased. Therefore, the calculated number of tokens that need to be added to the token bucket corresponding to the sending queue is also more.
- the method further includes:
- the first token is updated by using the calculated value of the token amount after the token bucket corresponding to the sending queue is refreshed.
- 102 may include:
- the method further includes:
- the first traffic is the traffic in the leaky bucket corresponding to the sending queue before the first data packet is dequeued from the sending queue; the second traffic is sent to the first data packet when the first data packet is dequeued from the sending queue.
- the traffic added to the leaky bucket corresponding to the queue; the third traffic is the traffic that needs to be subtracted from the leaky bucket corresponding to the sending queue.
- the method further includes:
- the traffic of the leaky bucket is still too much after the refresh, and if it is greater than the preset second threshold, it needs to be refreshed next time.
- you leak the bucket you subtract more traffic. Therefore, by setting the scheduling state of the sending queue to an unschedulable state, and setting the scheduling state of the sending queue to a schedulable state after a preset time, the time difference between the first time and the second time may be increased. Therefore, the calculated traffic that needs to be subtracted from the leaky bucket corresponding to the transmission queue is also more.
- after 107 further includes:
- the first data packet is dequeued from the sending queue, and the traffic is subtracted from the token bucket corresponding to the sending queue or the traffic is added to the leaking bucket corresponding to the sending queue according to the traffic of the first data packet; And refreshing the token bucket or the leaky bucket corresponding to the sending queue according to the first time, the second time, and the bandwidth set in advance for the sending queue, where the first time is the time of dequeuing the sending queue from the first data packet, The second time is the time when the second data packet is dequeued from the sending queue, and the second data packet is the data packet of the latest time before the first data packet is dequeued from the sending queue.
- the method for updating the token bucket or the leaky bucket according to the method provided by the embodiment of the present invention can reduce the token corresponding to each sending queue.
- the number and frequency of buckets or leaky buckets enable traffic shaping.
- an embodiment of the present invention provides a method for traffic shaping, including:
- the first data packet is dequeued from a sending queue in the communication processing chip
- the scheduler in the communication processing chip schedules a transmission queue in the memory, the first data is dequeued from the transmission queue, and is sent out, and the traffic shaping module of the communication processing chip according to the slave
- the traffic of the first data packet that is sent out of the sending queue is subtracted from the token bucket corresponding to the sending queue, where the amount of the token subtracted by the traffic shaping module is equal to the traffic of the first data packet.
- a timer may be set in the communication processing chip in advance.
- the current time of the timer may be read, and the current time read is taken as the first time. For a time.
- the token amount of the token bucket corresponding to each transmission queue in the memory of the communication processing chip may be equal to 0, greater than 0, or less than 0.
- the 202 Calculate a time difference between the first time and the second time, where the first time is the time when the first data packet is dequeued from the sending queue, and the second time is the second data packet is sent out from the sending queue.
- the time of the team, the second packet is the packet of the most recent dequeue before the first packet is dequeued from the sending queue;
- the second time may be buffered, and the second time of the cache may be set to 0 each time the communication processing chip reset is restarted.
- the amount of the token to be added to the token bucket corresponding to the sending queue is calculated according to the calculated time difference value and the bandwidth set for the sending queue in advance, and the token is sent according to the calculated token amount.
- a token is added to the token bucket corresponding to the queue, so that the token bucket corresponding to the sending queue is refreshed.
- the calculated time difference value and the bandwidth set in advance for the sending queue may be multiplied to obtain a required operation. Add the token amount of the token to the token bucket corresponding to the sending queue.
- the token amount in the token bucket corresponding to the sending queue is marked as old_tok en bucket; when the first data packet is dequeued from the sending queue, The token amount subtracted from the token bucket corresponding to the sending queue is marked as plen; when the first data packet is dequeued from the sending queue, and the token bucket corresponding to the sending queue is refreshed, the order to the sending queue is The token amount added to the bucket is marked as Atoken. Then, according to the following formula (1), the token amount new_token bucket after the token bucket corresponding to the sending queue is refreshed is calculated:
- New—token bucket old_tokent bucket+Atoken-plen ( 1 )
- the preset first threshold may be greater than 0, less than 0, or equal to 0.
- old_token bucket can be updated with the value of the new_token bucket.
- the scheduling state of the sending queue is set to an unschedulable state, and timing is started.
- the scheduling state of the sending queue is set to a schedulable state.
- the scheduler After the scheduling state of the sending queue is set to an unschedulable state, the scheduler cannot schedule the sending queue, so that the data packet cannot be dequeued from the sending queue, and the traffic shaping module cannot obtain the corresponding command from the sending queue. Subtract the token from the bucket. After the scheduling status of the transmission queue is set to the schedulable state, if the transmission queue is again scheduled by the scheduler and the data packet is dequeued from the transmission queue, execution 201 can be returned.
- k bits may be reserved in the sending queue for identifying a scheduling state, and k is an integer greater than or equal to 1.
- the memory of the communication processing chip is limited by the access bandwidth, and the number of transmission queues allowing the dequeued data packets per second is less than or equal to the number of times the memory is allowed to access per second, and in the present invention, when the slave station is When the team data packet is listed, the token bucket corresponding to the sending queue of the dequeue packet is refreshed, so the number of refreshes per second is the same as the number of times the packet is dequeued per second, so that the number of times the token bucket is refreshed per second is smaller than Or equal to the memory allowed to access per second
- the number of times of inquiry, and the number of times the token bucket is refreshed is not limited by the access bandwidth of the memory and the number of transmission queues in the memory, thereby greatly reducing the refresh rate of the token bucket, and therefore, as long as each from the memory Each send queue dequeue packet can be flushed to each send queue in memory.
- the first data packet is dequeued from the sending queue, and the token is subtracted from the token bucket corresponding to the sending queue according to the traffic of the first data packet; and the time of the first time and the second time is calculated.
- the difference the first time is the time when the first data packet is dequeued from the sending queue
- the second time is the time when the second data packet is dequeued from the sending queue
- the second data packet is the first data packet from the time
- the last dequeued packet before the queue is sent out
- the amount of tokens to be added is calculated according to the calculated time difference and the bandwidth set for the sending queue in advance, and is sent according to the calculated token amount.
- an embodiment of the present invention provides a method for traffic shaping, including:
- the first data packet is dequeued from a sending queue in the communication processing chip
- the scheduler in the communication processing chip schedules the transmission queue in the memory, the first data packet is dequeued from the transmission queue and sent out, and the traffic shaping module of the communication processing chip transmits according to the transmission
- the traffic of the first data packet dequeued by the queue is added to the leaky bucket corresponding to the sending queue, where the traffic added by the traffic shaping module is equal to the traffic of the first data packet.
- a timer may be set in the communication processing chip in advance.
- the current time of the timer may be read, and the current time read is taken as the first time. For a time.
- the second time may be buffered, and the second time of the cache may be set to 0 each time the communication processing chip reset is restarted.
- the calculated time difference and the bandwidth set in advance for the sending queue may be multiplied to obtain the traffic that needs to be subtracted from the leaky bucket corresponding to the sending queue.
- the traffic stored in the leaky bucket corresponding to the sending queue is marked as old_leaky bucket; when the first data packet is dequeued from the sending queue, the sending queue is sent to the sending queue.
- the traffic added in the corresponding leaky bucket is marked as add flow; when the first data packet is dequeued from the sending queue, and the leaky bucket corresponding to the sending queue is refreshed, the traffic subtracted from the leaking bucket of the sending queue is marked as Decrease flow.
- the traffic new_leaky bucket stored after the leaky bucket corresponding to the sending queue is refreshed is calculated:
- New—leaky bucket old_leaky bucket+add flow-decrease flow (2)
- the preset second threshold may be greater than zero.
- old_leaky bucket can be updated with the value of the new_leaky bucket
- the scheduling state of the sending queue is set to an unschedulable state, and timing is started.
- the scheduling state of the sending queue is set to a schedulable state.
- the scheduler After the scheduling state of the sending queue is set to an unschedulable state, the scheduler cannot schedule the sending queue, so that the data packet cannot be dequeued from the sending queue, and the traffic shaping module cannot leak to the sending queue. Add traffic to the bucket. After the scheduling status of the transmission queue is set to the schedulable state, if the transmission queue is again scheduled by the scheduler and the data packet is dequeued from the transmission queue, execution 301 may be returned.
- k bits may be reserved in the sending queue for identifying a scheduling state, and k is an integer greater than or equal to 1.
- the memory of the communication processing chip is limited by the access bandwidth, and the number of transmission queues allowing the dequeued data packets per second is less than or equal to the number of times the memory is allowed to access per second, and in the present invention, when the slave transmission queue When the packet is dequeued, the leaky bucket corresponding to the sending queue of the dequeue packet is refreshed, so the number of refreshes per second is the same as the number of times the packet is dequeued per second, so that the number of refreshed buckets per second is less than or equal to the memory.
- the number of accesses allowed per second, and the number of times the bucket is refreshed is not limited by the access bandwidth of the memory and the number of transmission queues in the memory, thereby greatly reducing the refresh rate of the leaky bucket, and therefore, as long as each in the memory
- Each of the send queues is dequeued and can be flushed to each send queue in memory.
- the first data packet is dequeued from the sending queue, and the traffic is added to the leaky bucket corresponding to the sending queue according to the traffic of the first data packet; and the time difference between the first time and the second time is calculated.
- the first time is the time when the first data packet is dequeued from the sending queue
- the second time is the time when the second data packet is dequeued from the sending queue
- the second data packet is the first data packet from the sending queue.
- the last dequeued data packet before the team is dequeued, and the calculated traffic is subtracted from the leaky bucket corresponding to the transmission queue according to the calculated time difference value and the bandwidth set in advance for the transmission queue.
- the method of the embodiment of the present invention performs the refresh of the leaky bucket, thereby reducing the number and frequency of refreshing the leaky bucket corresponding to each sending queue, and realizing traffic shaping. .
- an embodiment of the present invention provides a device for traffic shaping, including:
- a dequeue module 401 configured to dequeue the first data packet from the sending queue
- the refreshing module 402 is configured to refresh the token bucket corresponding to the sending queue according to the first time, the second time, and the bandwidth set in advance for the sending queue, where the first time is that the first data packet is dequeued from the sending queue.
- the second time is the time when the second data packet is dequeued from the sending queue, and the second data packet is the data packet that is dequeued the last time before the first data packet is dequeued from the sending queue.
- the refresh module 402 includes:
- the first calculating unit 4021 is configured to calculate a time difference between the first time and the second time
- the second calculating unit 4022 is configured to calculate, according to the calculated time difference value and a bandwidth set for the sending queue in advance, an amount of the token that needs to be added to the token bucket corresponding to the sending queue;
- the first refreshing unit 4023 is configured to add a token to the token bucket corresponding to the sending queue according to the calculated token amount, so as to refresh the token bucket corresponding to the sending queue.
- the device further includes:
- the first calculating module 503 is configured to calculate, according to the first token amount, the second token amount, and the third token amount, the token amount after the token bucket corresponding to the sending queue is refreshed; wherein, the first order The card amount is the amount of tokens in the token bucket corresponding to the sending queue before the first data packet is dequeued from the sending queue; the second token amount is when the first data packet is dequeued from the sending queue, The amount of tokens that are subtracted from the token bucket corresponding to the sending queue.
- the third token amount is the amount of tokens that need to be added to the token bucket corresponding to the sending queue.
- the device further includes:
- a first setting mode 504 configured to set a scheduling state of the sending queue to an unschedulable state if the amount of tokens stored after the token bucket corresponding to the sending queue is refreshed is less than a preset first threshold, And setting the scheduling status of the sending queue to a schedulable state after a preset time. and / or
- the first update module 505 is configured to update the first token amount by using the calculated value of the token amount after the token bucket corresponding to the sending queue is refreshed.
- the refresh module 402 includes:
- a third calculating unit 4024 configured to calculate a time difference between the first time and the second time
- the fourth calculating unit 4025 is configured to calculate, according to the calculated time difference value and a bandwidth set in advance for the sending queue, a traffic that needs to be subtracted from the leaky bucket corresponding to the sending queue;
- the second refreshing unit 4026 is configured to subtract the calculated traffic from the leaky bucket corresponding to the sending queue to refresh the leaky bucket corresponding to the sending queue.
- the device further includes:
- the second calculating module 603 is configured to calculate, according to the first traffic, the second traffic, and the third traffic, the traffic after the leaked bucket corresponding to the sending queue is refreshed, where the first traffic is the first data packet of the team from the sending Before the queue is out, the traffic in the leaky bucket corresponding to the sending queue; the second traffic is the traffic added to the leaky bucket corresponding to the sending queue when the first data packet is dequeued from the sending queue; the third traffic is required to be The traffic subtracted from the leaky bucket corresponding to the sending queue.
- the device further includes:
- the second setting module 604 is configured to set the scheduling state of the sending queue to an unschedulable state if the traffic volume of the leaking bucket corresponding to the sending queue is greater than a preset second threshold, and at a preset time The scheduling status of the send queue is then set to a schedulable state. and / or
- the second update module 605 is configured to update the first traffic by using the calculated value of the traffic volume after the leaked bucket corresponding to the sending queue is refreshed.
- the device further includes:
- the third update module 403 is configured to update the second time by using the value of the first time.
- the first data packet is dequeued from the sending queue, and according to the first time, the second time, and the advance Refreshing the token bucket or the leaky bucket corresponding to the sending queue for the bandwidth set by the sending queue
- the first time is the time from the first data packet to the sending queue
- the second time is the second data packet from the sending team.
- the time of the team is listed.
- the second packet is the packet that was last dequeued before the first packet was dequeued from the sending queue. Since the dequeuing and sending of the data packet are performed according to the token bucket or the leaky bucket, the device according to the embodiment of the present invention can refresh the token bucket or the leaky bucket, thereby reducing the token corresponding to each sending queue.
- the number and frequency of buckets or leaky buckets enable traffic shaping.
- the traffic shaping device of the foregoing embodiment refreshes the token bucket or the leaky bucket corresponding to the sending queue
- only the division of each functional module is used as an example.
- the above function assignment is completed by different functional modules, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
- the foregoing embodiment provides a method for the traffic shaping device and the traffic shaping method. The specific implementation process is described in detail in the method embodiment, and details are not described herein again.
- a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
- the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种流量整形的方法及设备,涉及通信领域,所述方法包括:第一数据包从发送队列出队;根据第一时间、第二时间和预先为所述发送队列设置的带宽,刷新所述发送队列对应的令牌桶或漏桶,其中,所述第一时间为所述第一数据包从该发送队列出队的时间,所述第二时间为第二数据包从所述发送队列出队的时间,所述第二数据包为所述第一数据包从所述发送队列出队之前,最近一次出队的数据包。所述设备包括:出队模块和刷新模块。本发明能够减少对每个发送队列对应的令牌桶或漏桶的刷新频次以及保证每个发送队列对应的令牌桶或漏桶都能得到刷新。
Description
一种流量整形的方法及设备 技术领域
本发明涉及通信领域, 特别涉及一种流量整形的方法及设备。 背景技术
在通信领域可以通过通信处理芯说片来发送数据包, 通信处理芯片通常包括调度器、 存 储器、 队列管理模块和流量整形模块。
其中, 流量整形模块可以实现流量整形功能, 流量整形功能可以使通信处理芯片按照 预先设置的带宽发送数据包。
书
存储器中有一个或多个相对独立的存储空间, 每一个存储空间可以称为一个发送队列, 发送队列用于缓存需要发送的数据包, 每个发送队列对应一个令牌桶或漏桶, 令牌桶用于 存储令牌, 漏桶用于存储发送的数据包的流量; 当发送数据包时, 调度器从存储器中调度 发送队列, 队列管理模块从该发送队列出队数据包并发送出队的数据包, 同时流量整形模 块从该发送队列对应的令牌桶中减去一定流量的令牌或向该发送队列对应的漏桶中添加流 量, 且流量整形模块减去令牌的流量、 添加的流量分别与队列管理模块从该发送队列出队 数据包的流量相等。
另外, 流量整形模块需要根据预先为该发送队列设置的带宽刷新该发送队列对应的令 牌桶中存储的令牌或该发送队列对应的漏桶中存储的流量。 例如, 流量整形模块周期性的 刷新存储器中每个发送队列对应的令牌桶, 当刷新到某个发送队列对应的令牌桶时, 根据 预先为该发送队列设置的带宽和刷新周期的长度计算出需要向该发送队列对应的令牌桶中 添加的令牌量, 根据计算出的令牌量向该发送队列对应的令牌桶添加令牌; 或者, 流量整 形模块周期性地刷新存储器中每个发送队列对应的漏桶, 当刷新到某个发送队列对应的漏 桶时, 根据预先为该发送队列设置的带宽和刷新周期的长度计算出需要从该发送队列对应 的漏桶中减去的流量, 从该发送队列对应的漏桶中减去计算出的流量。
然而, 在现有的方案中, 由于存储器的访问带宽有限, 如果存储器中的发送队列数目 大于存储器在一个刷新周期内允许访问的次数时, 流量整形模块在做流量整形功能时就无 法在一个刷新周期内刷新到每个发送队列对应的令牌桶或漏桶。
发明内容
为了减少对每个发送队列对应的令牌桶或漏桶的刷新频次以及保证每个发送队列对应 的令牌桶或漏桶都能得到刷新, 本发明实施例提供了一种流量整形的方法及设备。 所述技 术方案如下:
一种流量整形的方法, 所述方法包括:
第一数据包从发送队列出队;
根据第一时间、 第二时间和预先为所述发送队列设置的带宽, 刷新所述发送队列对应 的令牌桶或漏桶, 其中, 所述第一时间为所述第一数据包从该发送队列出队的时间, 所述 第二时间为第二数据包从所述发送队列出队的时间, 所述第二数据包为所述第一数据包从 所述发送队列出队之前, 最近一次出队的数据包。
一种流量整形的设备, 所述设备包括:
出队模块, 用于将第一数据包从发送队列出队;
刷新模块, 用于根据第一时间、 第二时间和预先为所述发送队列设置的带宽刷新所述 发送队列对应的令牌桶或漏桶, 其中, 所述第一时间为所述第一数据包从该发送队列出队 的时间, 所述第二时间为第二数据包从所述发送队列出队的时间, 所述第二数据包为所述 第一数据包从所述发送队列出队之前, 最近一次出队的数据包。
在本发明中, 第一数据包从发送队列出队, 并根据第一时间、 第二时间和预先为该发 送队列设置的带宽刷新该发送队列对应的令牌桶或漏桶, 第一时间为从第一数据包该发送 队列出队的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据包为第一数 据包从该发送队列出队前, 最近一次出队的数据包。 由于数据包的出队和发送都要依据令 牌桶或漏桶, 因此, 按照本发明实施例提供的设备进行令牌桶或者漏桶的刷新, 就能减少 刷新每个发送队列对应的令牌桶或漏桶的次数和频率, 实现流量整形。 附图说明
图 1~10是本发明实施例 1提供的流量整形的方法的若干种流程图;
图 11是本发明实施例 2提供的一种流量整形的方法流程图;
图 12是本发明实施例 3提供的一种流量整形的方法流程图;
图 13~20是本发明实施例 4提供的流量整形的设备的若干种示意图。 具体实施方式
为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图对本发明实施方式作 进一步地详细描述。 实施例 1
如图 1所示, 本发明实施例提供了一种流量整形的方法, 包括:
101: 第一数据包从发送队列出队;
102: 根据第一时间、 第二时间和预先为该发送队列设置的带宽, 刷新该发送队列对应 的令牌桶或漏桶; 其中, 第一时间为所述第一数据包从该发送队列出队的时间, 第二时间 为第二数据包从该发送队列出队的时间, 第二数据包为第一数据包从该发送队列出队之前, 最近一次出队的数据包。
可选的, 如图 2所示, 102可以具体包括:
1021: 计算第一时间和第二时间的时间差值;
1022: 根据计算出的时间差值和预先为该发送队列设置的带宽, 计算出需要向该发送 队列对应的令牌桶添加的令牌量;
1023: 根据计算出的令牌量, 向该发送队列对应的令牌桶添加令牌, 以刷新该发送队 列对应的令牌桶。
可选的, 如图 3所示, 在 102之后, 该方法还包括:
103: 利用第一时间的数值, 更新第二时间。
可选的, 如图 4所示, 在 102之后, 该方法还包括:
104: 根据第一令牌量, 第二令牌量以及第三令牌量, 计算出该发送队列对应的令牌桶 被刷新后的令牌量。
其中, 第一令牌量是指第一数据包从该发送队列出队前, 该发送队列对应的令牌桶中 的令牌量; 第二令牌量是指第一数据包从该发送队列出队时, 从该发送队列对应的令牌桶 中减去的令牌量, 通常, 第二令牌量与第一数据包流量相等; 第三令牌量是指第一数据包 从该发送队列出队后, 刷新该发送队列对应的令牌桶时, 向该发送队列对应的令牌桶添加 的令牌量。
可选的, 如图 5所示, 在 104之后, 该方法还包括:
105: 如果该发送队列对应的令牌桶被刷新后的令牌量少于预设的第一阈值, 则将该发 送队列的调度状态设置为不可调度的状态, 并在预设的时间后将该发送队列的调度状态设 置为可调度的状态。
例如, 如果在第一数据包出队时从令牌桶中的减去过多的令牌, 刷新后令牌桶的令牌 量还是太少, 假定少于预设的第一阈值, 则需要在下一次刷新该发送队列对应的令牌桶时 添加更多的令牌量。 因此, 通过将该发送队列的调度状态设置为不可调度状态, 并在预设 的时间后将该发送队列的调度状态设置为可调度状态, 可以增加上述第一时间与第二时间 的时间差值, 从而计算出的需要向该发送队列对应的令牌桶添加的令牌量也会更多。
可选的, 如图 6所示, 在 104之后, 该方法还包括:
106: 利用计算出的该发送队列对应的令牌桶被刷新后的令牌量的数值, 更新第一令牌 可选的, 如图 7所示, 102可以包括:
1024: 计算第一时间和第二时间的时间差值;
1025: 根据计算的时间差值和预先为该发送队列设置的带宽, 计算出需要从该发送队 列对应的漏桶中减去的流量;
1026: 从该发送队列对应的漏桶中减去计算出的流量, 以刷新该发送队列对应的漏桶。 可选的, 如图 8所示, 在 102之后, 该方法还包括:
107: 根据第一流量, 第二流量以及第三流量, 计算出该发送队列对应的漏桶被刷新后 的流量。
其中, 第一流量是第一数据包从该发送队列出队前, 该发送队列对应的漏桶中的流量; 第二流量是第一数据包从该发送队列出队时, 向该发送队列对应的漏桶中添加的流量; 第 三流量是需要从该发送队列对应的漏桶中减去的流量。
可选的, 如图 9所示, 107之后, 该方法还包括:
108: 如果该发送队列对应的漏桶被刷新后的流量大于预设的第二阈值, 则将该发送队 列的调度状态设置为不可调度的状态, 并在预设的时间后将该发送队列的调度状态设置为 可调度的状态。
例如, 如果在第一数据包出队时向漏桶中的添加过多的流量, 刷新后漏桶的流量还是 过多, 假定大于预设的第二阈值, 则需要在下一次刷新该发送队列对应的漏桶时减去更多 的流量。 因此, 通过将该发送队列的调度状态设置为不可调度状态, 并在预设的时间后将 该发送队列的调度状态设置为可调度状态, 可以增加上述第一时间与第二时间的时间差值, 从而计算出的需要从该发送队列对应的漏桶中减去的流量也会更多。
可选的, 如图 10所示, 107之后, 还包括:
109: 利用计算出的该发送队列对应的漏桶被刷新后的流量的数值, 更新第一流量。
在本发明实施例中, 第一数据包从发送队列出队, 根据第一数据包的流量从该发送队 列对应的令牌桶减去令牌或向该发送队列对应的漏桶添加流量; 并根据第一时间、 第二时 间和预先为该发送队列设置的带宽刷新该发送队列对应的令牌桶或漏桶, 第一时间为从第 一数据包该发送队列出队的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二 数据包为第一数据包从该发送队列出队前, 最近一次出队的数据包。 由于数据包的出队和 发送都要依据令牌桶或漏桶, 因此, 按照本发明实施例提供的方法进行令牌桶或者漏桶的 刷新, 就能减少刷新每个发送队列对应的令牌桶或漏桶的次数和频率, 实现流量整形。 实施例 2
如图 11所示, 本发明实施例提供了一种流量整形的方法, 包括:
201: 第一数据包从通信处理芯片中的发送队列出队;
例如, 当需要发送数据包时, 通信处理芯片中的调度器调度存储器中的发送队列, 第 一数据从从该发送队列出队, 并被发送出去, 同时通信处理芯片的流量整形模块根据从该 发送队列出队的第一数据包的流量, 从该发送队列对应的令牌桶中减去令牌, 其中, 流量 整形模块减去的令牌量与第一数据包流量相等。
可选的, 事先可以在通信处理芯片内设置一个计时器, 当第一数据包从该发送队列出 队时, 可以读取该计时器计时的当前时间, 并将读取的当前时间作为第一时间。
其中, 在本实施例中, 通信处理芯片在每次复位重新启动后, 通信处理芯片的存储器 中每个发送队列对应的令牌桶的令牌量可以等于 0、 大于 0或小于 0。
202: 计算出第一时间与第二时间的时间差值, 其中, 第一时间为第一数据包从该发送 队列出队的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据包为第一数 据包从该发送队列出队之前, 最近一次出队的数据包;
可选的, 可以缓存上述第二时间, 在每次通信处理芯片复位重新启动时, 可将缓存的 第二时间设为 0。
203: 根据计算的时间差值和预先为该发送队列设置的带宽, 刷新该发送队列对应的令 牌桶;
具体地, 根据计算的时间差值和预先为该发送队列设置的带宽, 计算出需要向该发送 队列对应的令牌桶中添加令牌的令牌量, 根据计算出的令牌量向该发送队列对应的令牌桶 中添加令牌, 如此实现了对该发送队列对应的令牌桶进行刷新。
可选的, 可以将计算的时间差值和预先为该发送队列设置的带宽做乘积运算得到需要
向该发送队列对应的令牌桶中添加令牌的令牌量。
204: 获取该发送队列对应的令牌桶被刷新后的令牌量, 如果少于预设的第一阈值, 则 执行 205:
例如, 将第一数据包从该发送队列出队前, 该发送队列对应的令牌桶中的令牌量标记 为 old_token bucket; 将第一数据包从该发送队列出队时, 从该发送队列对应的令牌桶中减 去的令牌量标记为 plen; 将第一数据包从该发送队列出队后, 刷新该发送队列对应的令牌 桶时, 向该发送队列的令牌桶添加的令牌量标记为 Atoken。 则按照如下的公式(1 )计算出 该发送队列对应的令牌桶被刷新后的令牌量 new—token bucket:
new—token bucket=old_tokent bucket+Atoken-plen ( 1 )
如果刷新后的令牌量 new_token bucket小于预设的第一阈值, 则执行 205。 其中, 预设 的第一阈值可以大于 0、 小于 0或等于 0。
进一步地, 可以用 new_token bucket的数值来更新 old_token bucket。
其中, 如果刷新后令牌量 new—token bucket大于或等于预设的第一阈值, 则当该发送队 列再次被调度并从该发送队列出队数据包时, 返回 201重新开始进行。
205: 将该发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将该发送队 列的调度状态设置为可调度的状态。
具体地, 将该发送队列的调度状态设置为不可调度的状态, 并开始计时, 当计时的时 间达到预设的时间时, 将该发送队列的调度状态设置为可调度的状态。
其中, 将该发送队列的调度状态设置为不可调度的状态之后, 调度器无法调度该发送 队列, 以致于无法从该发送队列出队数据包, 流量整形模块也无法从该发送队列对应的令 牌桶中减去令牌。 将该发送队列的调度状态设置为可调度状态后, 如果该发送队列再次被 调度器调度并从该发送队列出队数据包时, 可以返回执行 201。
可选的, 可以在该发送队列中预留 k个比特用于标识调度状态, k为大于或等于 1的整 数。
其中, 对于通信处理芯片的存储器中的每个发送队列, 都按上述的 201-205的流程, 当 数据包从发送队列出队时就刷新发送队列对应的令牌桶。
其中, 通信处理芯片的存储器由于受到访问带宽的限制, 在每秒钟允许出队数据包的 发送队列的数目小于或等于存储器每秒钟允许访问的次数, 而在本发明中, 当从发送队列 出队数据包时对出队数据包的发送队列对应的令牌桶进行刷新, 因此每秒进行刷新的次数 与每秒出队数据包的次数相同, 使得每秒刷新令牌桶的次数小于或等于存储器每秒允许访
问的次数, 且刷新令牌桶的次数不受存储器的访问带宽的限制和存储器内的发送队列的数 目的限制, 从而极大地降低了令牌桶的刷新频率, 因此, 只要从存储器中的每个发送队列 出队数据包, 就能刷新到存储器中的每个发送队列。
在本发明实施例中, 第一数据包从发送队列出队, 根据第一数据包的流量从该发送队 列对应的令牌桶减去令牌; 计算出第一时间和第二时间的时间差值, 第一时间为第一数据 包从该发送队列出队的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据 包为第一数据包从该发送队列出队前的最近一次出队的数据包, 根据计算出的时间差值以 及预先为该发送队列设置的带宽计算出需要添加的令牌量, 根据计算出的令牌量向该发送 队列对应的令牌桶添加令牌。 由于数据包的出队和发送都要依据令牌桶, 因此, 按照本发 明实施例提供的方法进行令牌桶的刷新, 就能减少刷新每个发送队列对应的令牌桶的次数 和频率, 实现流量整形。 实施例 3
如图 12所示, 本发明实施例提供了一种流量整形的方法, 包括:
301: 第一数据包从通信处理芯片中的发送队列出队;
其中, 当需要发送数据包时, 通信处理芯片中的调度器调度存储器中的发送队列, 第 一数据包从该发送队列中出队并被发送出去, 同时通信处理芯片的流量整形模块根据该发 送队列出队的第一数据包的流量, 向该发送队列对应的漏桶中添加流量, 其中, 流量整形 模块添加的流量与第一数据包的流量相等。
可选的, 事先可以在通信处理芯片内设置一个计时器, 当第一数据包从该发送队列出 队时, 可以读取该计时器计时的当前时间, 并将读取的当前时间作为第一时间。
302: 计算出第一时间与第二时间的时间差值, 其中, 第一时间为从该发送队列出队第 一数据包的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据包为第一数 据包从该发送队列出队之前, 最近一次从该发送队列出队的数据包;
可选的, 可以缓存上述第二时间, 在每次通信处理芯片复位重新启动时, 可将缓存第 二时间设为 0。
303: 根据计算的时间差值和预先为该发送队列设置的带宽, 刷新该发送队列对应的漏 桶;
具体地, 根据计算的时间差值和预先为该发送队列设置的带宽, 计算出需要从该发送 队列对应的漏桶中减去的流量, 从该发送队列对应的漏桶中减去计算出的流量, 如此实现
了对该发送队列对应的漏桶进行刷新。
可选的, 可以将计算的时间差和预先为该发送队列设置的带宽做乘积运算, 得到需要 从该发送队列对应的漏桶中减去的流量。
304: 获取该发送队列对应的漏桶被刷新后存储的流量, 如果超过预设的第二阈值, 则 执行 305 :
例如, 将第一数据包从该发送队列出队前, 该发送队列对应的漏桶中存储的流量标记 为 old_leaky bucket; 将第一数据包从该发送队列出队时, 向该发送队列对应的漏桶中添加 的流量标记为 add flow;将第一数据包从该发送队列出队后,刷新该发送队列对应的漏桶时, 从该发送队列的漏桶减去的流量标记为 decrease flow。 则按照如下的公式 (2) 计算出该发 送队列对应的漏桶被刷新后存储的流量 new_leaky bucket:
new—leaky bucket=old_leaky bucket+add flow-decrease flow (2)
如果刷新后的流量 newjeaky bucket大于预设的第二阈值, 则执行 305。 其中, 预设的 第二阈值可以大于 0。
进一步地, 可以用 new_leaky bucket的数值来更新 old_leaky bucket
其中, 如果刷新后令牌量 newjeaky bucket小于或等于预设的第二阈值, 则当该发送队 列再次被调度并从该发送队列出队数据包时, 返回 301重新开始进行。
305: 将该发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将该发送队 列的调度状态设置为可调度的状态。
具体地, 将该发送队列的调度状态设置为不可调度的状态, 并开始计时, 当计时的时 间达到预设的时间时, 将该发送队列的调度状态设置为可调度的状态。
其中, 将该发送队列的调度状态设置为不可调度的状态之后, 调度器无法调度该发送 队列, 以致于无法从该发送队列出队数据包, 流量整形模块也无法向该发送队列对应的漏 桶中添加流量。 将该发送队列的调度状态设置为可调度状态后, 如果该发送队列再次被调 度器调度并从该发送队列出队数据包时, 可以返回执行 301。
可选的, 可以在该发送队列中预留 k个比特用于标识调度状态, k为大于或等于 1的整 数。
其中, 对于通信处理芯片的存储器中的每个发送队列, 都按上述的 301-305的流程, 当 数据包从发送队列出队时就刷新发送队列对应的漏桶。
其中, 通信处理芯片的存储器由于受到访问带宽的限制, 在每秒钟允许出队数据包的 发送队列的数目小于或等于存储器每秒钟允许访问的次数, 而在本发明中, 当从发送队列
出队数据包时对出队数据包的发送队列对应的漏桶进行刷新, 因此每秒进行刷新的次数与 每秒出队数据包的次数相同, 使得每秒刷新漏桶的次数小于或等于存储器每秒允许访问的 次数, 且刷新漏桶的次数不受存储器的访问带宽的限制和存储器内的发送队列的数目的限 制, 从而极大地降低了漏桶的刷新频率, 因此, 只要存储器中的每个发送队列都进行数据 包出队, 就能刷新到存储器中的每个发送队列。
在本发明实施例中, 第一数据包从发送队列出队, 根据第一数据包的流量向该发送队 列对应的漏桶添加流量; 计算出第一时间和第二时间的时间差值, 第一时间为从该发送队 列出队第一数据包的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据包 为第一数据包从该发送队列出队前的最近一次出队的数据包, 根据计算出的时间差值以及 预先为该发送队列设置的带宽计算出需要减去的流量, 从该发送队列对应的漏桶减去计算 的流量。 由于数据包的出队和发送都要依据漏桶, 因此, 按照本发明实施例提供的方法进 行漏桶的刷新, 就能减少刷新每个发送队列对应的漏桶的次数和频率, 实现流量整形。 实施例 4
如图 13所示, 本发明实施例提供了一种流量整形的设备, 包括:
出队模块 401, 用于将第一数据包从发送队列出队;
刷新模块 402, 用于根据第一时间、第二时间和预先为该发送队列设置的带宽刷新该发 送队列对应的令牌桶, 第一时间为所述第一数据包从该发送队列出队的时间, 第二时间为 第二数据包从该发送队列出队的时间, 第二数据包为第一数据包从该发送队列出队之前, 最近一次出队的数据包。
可选的, 如图 14所示, 刷新模块 402包括:
第一计算单元 4021, 用于计算第一时间和第二时间的时间差值;
第二计算单元 4022, 用于根据计算出的时间差值和预先为该发送队列设置的带宽计算 出需要向该发送队列对应的令牌桶添加的令牌量;
第一刷新单元 4023, 用于根据计算出的令牌量向该发送队列对应的令牌桶添加令牌, 以刷新该发送队列对应的令牌桶。
可选的, 如图 15所示, 该设备还包括:
第一计算模块 503, 用于根据第一令牌量, 第二令牌量以及第三令牌量, 计算出该发送 队列对应的令牌桶被刷新后的令牌量; 其中, 第一令牌量是第一数据包从该发送队列出队 前, 该发送队列对应的令牌桶中的令牌量; 第二令牌量是第一数据包从该发送队列出队时,
从该发送队列对应的令牌桶中减去的令牌量; 第三令牌量是所述需要向该发送队列对应的 令牌桶添加的令牌量。
进一步可选地, 如图 16所示 (为简便, 图中仅示出了下列两个模块同时存在的情况), 该设备还包括:
第一设置模 504块, 用于如果该发送队列对应的令牌桶被刷新后存储的令牌量少于预 设的第一阈值, 则将该发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将 该发送队列的调度状态设置为可调度的状态。 和 /或
第一更新模块 505,用于利用计算出的该发送队列对应的令牌桶被刷新后的令牌量的数 值, 更新第一令牌量。
可选的, 如图 17所示, 刷新模块 402包括:
第三计算单元 4024, 用于计算第一时间和第二时间的时间差值;
第四计算单元 4025, 用于根据计算的时间差值和预先为该发送队列设置的带宽, 计算 出需要从该发送队列对应的漏桶中减去的流量;
第二刷新单元 4026, 用于从该发送队列对应的漏桶中减去计算出的流量, 以刷新该发 送队列对应的漏桶。
可选的, 如图 18所示, 该设备还包括:
第二计算模块 603, 用于根据第一流量, 第二流量以及第三流量, 计算出该发送队列对 应的漏桶被刷新后的流量; 其中, 第一流量是队第一数据包从该发送队列出前, 该发送队 列对应的漏桶中的流量; 第二流量是第一数据包从该发送队列出队时, 向该发送队列对应 的漏桶中添加的流量; 第三流量是需要从该发送队列对应的漏桶中减去的流量。
进一步可选地, 如图 19所示 (为简便, 图中仅示出了下列两个模块同时存在的情况), 该设备还包括:
第二设置模块 604,用于如果该发送队列对应的漏桶被刷新后的流量大于预设的第二阈 值, 则将该发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将该发送队列 的调度状态设置为可调度的状态。 和 /或
第二更新模块 605, 用于利用计算出的该发送队列对应的漏桶被刷新后的流量的数值, 更新第一流量。
可选的, 如图 20所示, 该设备还包括:
第三更新模块 403, 用于利用第一时间的数值, 更新第二时间。
在本发明实施例中, 第一数据包从发送队列出队, 并根据第一时间、 第二时间和预先
为该发送队列设置的带宽刷新该发送队列对应的令牌桶或漏桶, 第一时间为从第一数据包 该发送队列出队的时间, 第二时间为第二数据包从该发送队列出队的时间, 第二数据包为 第一数据包从该发送队列出队前, 最近一次出队的数据包。 由于数据包的出队和发送都要 依据令牌桶或漏桶, 因此, 按照本发明实施例提供的设备进行令牌桶或者漏桶的刷新, 就 能减少刷新每个发送队列对应的令牌桶或漏桶的次数和频率, 实现流量整形。
需要说明的是: 上述实施例提供的一种流量整形的设备在刷新发送队列对应的令牌桶 或漏桶时, 仅以上述各功能模块的划分进行举例说明, 实际应用中, 可以根据需要而将上 述功能分配由不同的功能模块完成, 即将设备的内部结构划分成不同的功能模块, 以完成 以上描述的全部或者部分功能。 另外, 上述实施例提供流量整形的设备与流量整形的方法 实施例属于同一构思, 其具体实现过程详见方法实施例, 这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完 成, 也可以通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读存储 介质中, 上述提到的存储介质可以是只读存储器, 磁盘或光盘等。
以上所述仅为本发明的较佳实施例, 并不用以限制本发明, 凡在本发明的精神和原则 之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。
Claims
1、 一种流量整形的方法, 其特征在于, 所述方法包括:
第一数据包从发送队列出队;
根据第一时间、 第二时间和预先为所述发送队列设置的带宽, 刷新所述发送队列对应的 令牌桶或漏桶, 其中, 所述第一时间为所述第一数据包从该发送队列出队的时间, 所述第二 时间为第二数据包从所述发送队列出队的时间, 所述第二数据包为所述第一数据包从所述发 送队列出队之前, 最近一次出队的数据包。
2、 如权利要求 1所述的方法, 其特征在于, 根据所述第一时间、 第二时间和预先为所述 发送队列设置的带宽刷新所述发送队列对应的令牌桶, 包括:
计算所述第一时间和第二时间的时间差值;
根据所述时间差值和预先为所述发送队列设置的带宽, 计算出需要向所述发送队列对应 的令牌桶添加的令牌量;
根据所述计算出的需要向所述发送队列对应的令牌桶添加的令牌量, 向所述发送队列对 应的令牌桶添加令牌, 以刷新所述发送队列对应的令牌桶。
3、 如权利要求 2所述的方法, 其特征在于, 根据所述第一时间、 第二时间和预先为所述 发送队列设置的带宽刷新所述发送队列对应的令牌桶之后, 还包括:
根据第一令牌量, 第二令牌量以及第三令牌量, 计算出所述发送队列对应的令牌桶被刷 新后的令牌量;
其中, 所述第一令牌量是第一数据包从所述发送队列出队前, 所述发送队列对应的令牌 桶中的令牌量; 所述第二令牌量是第一数据包从所述发送队列出队时, 从所述发送队列对应 的令牌桶中减去的令牌量; 所述第三令牌量是所述需要向所述发送队列对应的令牌桶添加的 令牌量。
4、 如权利要求 3所述的方法, 其特征在于, 在所述计算出所述发送队列对应的令牌桶被 刷新后的令牌量之后, 还包括:
如果所述发送队列对应的令牌桶被刷新后的令牌量少于预设的第一阈值, 则将所述发送 队列的调度状态设置为不可调度的状态, 并在预设的时间后将所述发送队列的调度状态设置 为可调度的状态。
5、 如权利要求 3或 4所述的方法, 其特征在于, 所述计算出所述发送队列对应的令牌桶 被刷新后存储的令牌量之后, 还包括:
利用计算出的所述发送队列对应的令牌桶被刷新后的令牌量的数值, 更新所述第一令牌
6、 如权利要求 1所述的方法, 其特征在于, 根据所述第一时间、 第二时间和预先为所述 发送队列设置的带宽刷新所述发送队列对应的漏桶, 包括:
计算所述第一时间和第二时间的时间差值;
根据所述时间差值和预先为所述发送队列设置的带宽, 计算出需要从所述发送队列对应 的漏桶中减去的流量;
从所述发送队列对应的漏桶中减去所述计算出的流量,以刷新所述发送队列对应的漏桶。
7、 如权利要求 6所述的方法, 其特征在于, 根据所述第一时间、 第二时间和预先为所述 发送队列设置的带宽刷新所述发送队列对应的漏桶之后, 还包括:
根据第一流量, 第二流量以及第三流量, 计算出所述发送队列对应的漏桶被刷新后的流 其中, 所述第一流量是第一数据包从所述发送队列出队前, 所述发送队列对应的漏桶中 的流量; 所述第二流量是第一数据包从所述发送队列出队时, 向所述发送队列对应的漏桶中 添加的流量; 所述第三流量是所述需要从所述发送队列对应的漏桶中减去的流量。
8、 如权利要求 7所述的方法, 其特征在于, 在所述计算出所述发送队列对应的漏桶被刷 新后的流量之后, 还包括:
如果所述发送队列对应的漏桶被刷新后的流量大于预设的第二阈值, 则将所述发送队列 的调度状态设置为不可调度的状态, 并在预设的时间后将所述发送队列的调度状态设置为可 调度的状态。
9、 如权利要求 7或 8所述的方法, 其特征在于, 所述计算出所述发送队列对应的漏桶被 刷新后存储的流量之后, 还包括: 利用计算出的所述发送队列对应的漏桶被刷新后的流量的数值, 更新所述第一流量。
10、 如权利要求 1所述的方法, 其特征在于, 根据所述第一时间、 第二时间和预先为所 述发送队列设置的带宽刷新所述发送队列对应的令牌桶或漏桶之后, 还包括:
利用所述第一时间的数值, 更新所述第二时间。
11、 一种流量整形的设备, 其特征在于, 所述设备包括- 出队模块, 用于将第一数据包从发送队列出队;
刷新模块, 用于根据第一时间、 第二时间和预先为所述发送队列设置的带宽刷新所述发 送队列对应的令牌桶或漏桶, 其中, 所述第一时间为所述第一数据包从该发送队列出队的时 间, 所述第二时间为第二数据包从所述发送队列出队的时间, 所述第二数据包为所述第一数 据包从所述发送队列出队之前, 最近一次出队的数据包。
12、 如权利要求 11所述的设备, 其特征在于, 所述刷新模块包括:
第一计算单元, 用于计算所述第一时间和第二时间的时间差值;
第二计算单元, 用于根据所述时间差值和预先为所述发送队列设置的带宽计算出需要向 所述发送队列对应的令牌桶添加的令牌量;
第一刷新单元, 用于根据所述计算出的令牌量向所述发送队列对应的令牌桶添加令牌, 以刷新所述发送队列对应的令牌桶。
13、 如权利要求 12所述的设备, 其特征在于, 所述设备还包括:
第一计算模块, 用于根据第一令牌量, 第二令牌量以及第三令牌量, 计算出所述发送队 列对应的令牌桶被刷新后的令牌量; 其中, 所述第一令牌量是第一数据包从所述发送队列出 队前, 所述发送队列对应的令牌桶中的令牌量; 所述第二令牌量是第一数据包从所述发送队 列出队时, 从所述发送队列对应的令牌桶中减去的令牌量; 所述第三令牌量是所述需要向所 述发送队列对应的令牌桶添加的令牌量。
14、 如权利要求 13所述的设备, 其特征在于, 所述设备还包括:
第一设置模块, 用于如果所述发送队列对应的令牌桶被刷新后的令牌量少于预设的第一 阈值, 则将所述发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将所述发送 队列的调度状态设置为可调度的状态; 和 /或
第一更新模块,用于利用计算出的所述发送队列对应的令牌桶被刷新后的令牌量的数值, 更新所述第一令牌量。
15、 如权利要求 11所述的设备, 其特征在于, 所述刷新模块包括:
第三计算单元, 用于计算所述第一时间和第二时间的时间差值;
第四计算单元, 用于根据所述时间差值和预先为所述发送队列设置的带宽, 计算出需要 从所述发送队列对应的漏桶中减去的流量;
第二刷新单元, 用于从所述发送队列对应的漏桶中减去所述计算出的流量, 以刷新所述 发送队列对应的漏桶。
16、 如权利要求 15所述的设备, 其特征在于, 所述设备还包括:
第二计算模块, 用于根据第一流量, 第二流量以及第三流量, 计算出所述发送队列对应 的漏桶被刷新后的流量; 其中, 所述第一流量是第一数据包从所述发送队列出队前, 所述发 送队列对应的漏桶中的流量; 所述第二流量是第一数据包从所述发送队列出队时, 向所述发 送队列对应的漏桶中添加的流量; 所述第三流量是所述需要从所述发送队列对应的漏桶中减 去的流量。
17、 如权利要求 16所述的设备, 其特征在于, 所述设备还包括:
第二设置模块,用于如果所述发送队列对应的漏桶被刷新后的流量大于预设的第二阈值, 则将所述发送队列的调度状态设置为不可调度的状态, 并在预设的时间后将所述发送队列的 调度状态设置为可调度的状态; 和 /或
第二更新模块, 用于利用计算出的所述发送队列对应的漏桶被刷新后的流量的数值, 更 新所述第一流量。
18、 如权利要求 11所述的设备, 其特征在于, 所述设备还包括:
第三更新模块, 用于利用所述第一时间的数值, 更新所述第二时间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201180001490.1A CN103026671B (zh) | 2011-08-01 | 2011-08-01 | 一种流量整形的方法及设备 |
PCT/CN2011/077884 WO2012159362A1 (zh) | 2011-08-01 | 2011-08-01 | 一种流量整形的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/077884 WO2012159362A1 (zh) | 2011-08-01 | 2011-08-01 | 一种流量整形的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012159362A1 true WO2012159362A1 (zh) | 2012-11-29 |
Family
ID=47216586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2011/077884 WO2012159362A1 (zh) | 2011-08-01 | 2011-08-01 | 一种流量整形的方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103026671B (zh) |
WO (1) | WO2012159362A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753809A (zh) * | 2013-12-25 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种流量整形中添加令牌的方法及装置 |
CN111045810A (zh) * | 2019-12-17 | 2020-04-21 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN113645147A (zh) * | 2021-07-01 | 2021-11-12 | 苏州裕太微电子有限公司 | 一种流量整形器的令牌更新系统及方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112866135A (zh) * | 2018-01-26 | 2021-05-28 | 华为技术有限公司 | 发送报文的方法、第一网络设备及计算机可读存储介质 |
CN113067778B (zh) * | 2021-06-04 | 2021-09-17 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525717A (zh) * | 2003-02-25 | 2004-09-01 | ������������ʽ���� | 流量整形方法及流量整形装置 |
CN101217495A (zh) * | 2008-01-11 | 2008-07-09 | 北京邮电大学 | 用于t-mpls网络环境下的流量监控方法和装置 |
CN101841461A (zh) * | 2010-02-11 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 一种控制令牌桶更新的方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10306293B4 (de) * | 2003-02-14 | 2006-08-31 | Siemens Ag | Verfahren zur Übertragungsbandbreitenzuteilung in einer paketorientierten Kommunikationseinrichtung |
CN100574278C (zh) * | 2006-12-26 | 2009-12-23 | 华为技术有限公司 | 流量限制技术中刷新令牌桶的方法及装置 |
US7843825B2 (en) * | 2007-10-02 | 2010-11-30 | Broadcom Corporation | Method and system for packet rate shaping |
-
2011
- 2011-08-01 CN CN201180001490.1A patent/CN103026671B/zh active Active
- 2011-08-01 WO PCT/CN2011/077884 patent/WO2012159362A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1525717A (zh) * | 2003-02-25 | 2004-09-01 | ������������ʽ���� | 流量整形方法及流量整形装置 |
CN101217495A (zh) * | 2008-01-11 | 2008-07-09 | 北京邮电大学 | 用于t-mpls网络环境下的流量监控方法和装置 |
CN101841461A (zh) * | 2010-02-11 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 一种控制令牌桶更新的方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753809A (zh) * | 2013-12-25 | 2015-07-01 | 深圳市中兴微电子技术有限公司 | 一种流量整形中添加令牌的方法及装置 |
EP3089413A4 (en) * | 2013-12-25 | 2017-04-19 | Zhongxing Microelectronics Technology Co., Ltd. | Method and apparatus for adding token in traffic shaping |
US10205671B2 (en) | 2013-12-25 | 2019-02-12 | Zte Corporation | Method and apparatus for adding token in traffic shaping |
CN104753809B (zh) * | 2013-12-25 | 2019-04-02 | 深圳市中兴微电子技术有限公司 | 一种流量整形中添加令牌的方法及装置 |
CN111045810A (zh) * | 2019-12-17 | 2020-04-21 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN111045810B (zh) * | 2019-12-17 | 2023-08-29 | 浙江大华技术股份有限公司 | 一种任务调度处理方法及装置 |
CN113645147A (zh) * | 2021-07-01 | 2021-11-12 | 苏州裕太微电子有限公司 | 一种流量整形器的令牌更新系统及方法 |
CN113645147B (zh) * | 2021-07-01 | 2024-08-23 | 裕太微电子股份有限公司 | 一种流量整形器的令牌更新系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103026671B (zh) | 2016-01-20 |
CN103026671A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11171862B2 (en) | Multi-subflow network transmission method and apparatus | |
EP2466824B1 (en) | Service scheduling method and device | |
Liu et al. | AppATP: An energy conserving adaptive mobile-cloud transmission protocol | |
KR20210010841A (ko) | Plca 인에이블드 10spe 네트워크들 상의 트래픽 형상화 | |
WO2012159362A1 (zh) | 一种流量整形的方法及设备 | |
US9571412B2 (en) | Systems and methods for hardware accelerated timer implementation for openflow protocol | |
WO2019127597A1 (zh) | 一种发送报文的方法、设备和系统 | |
CN106339052B (zh) | 具有资源管理机制的计算系统及其操作方法 | |
Checconi et al. | QFQ: Efficient packet scheduling with tight guarantees | |
US10554568B2 (en) | Technologies for network round-trip time estimation | |
Resner et al. | Design and implementation of a cross-layer IoT protocol | |
CN113783793B (zh) | 对时间敏感的数据帧的流量调度方法及相关设备 | |
US20220103465A1 (en) | Multi-Subflow Network Transmission Method and Apparatus | |
WO2011014998A1 (zh) | 报文到达时间间隔的计算方法及装置 | |
WO2019109902A1 (zh) | 队列调度方法及装置、通信设备、存储介质 | |
CN102882809A (zh) | 一种基于报文缓存的网络限速方法及装置 | |
WO2014127259A2 (en) | Proportional scheduling in communications systems | |
CN103701721A (zh) | 报文传输方法及装置 | |
TWI539273B (zh) | 用於減少電力消耗之並行網路應用程式排程技術 | |
Foroutan et al. | A general framework for average-case performance analysis of shared resources | |
Becker et al. | On the QNX IPC: Assessing predictability for local and distributed real-time systems | |
US9871733B2 (en) | Policer architecture | |
WO2016065779A1 (zh) | 队列的调度方法及装置 | |
JP5458957B2 (ja) | 通信装置、トラヒック量の制御方法、及びプログラム | |
Deng et al. | Enhanced Real-time Scheduling of AVB Flows in Time-Sensitive Networking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 201180001490.1 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11866344 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11866344 Country of ref document: EP Kind code of ref document: A1 |