Data traffic congestion is a common problem in computer networks. Conventional congestion control methods include Transmission Control Protocol (TCP) congestion control, such as Random Early Detection (RED), Weighted RED (WRED), and Quantized Congestion Notification (QCN), which is standardized as Institute of Electrical and Electronics Engineers (IEEE) Standard 802.1ua-2010. Both of these congestion control methods rely on rate adaption of the source based on feedback from the congestion point within the network. For RED congestion control, the feedback indicating congestion is typically provided by using packet discard. For QCN congestion control, the feedback indicating congestion includes explicit information about the rate of overload and the information is delivered to the flow source using a backward congestion notification message. The QCN process provides fair bandwidth division. The QCN process, however, does not provide a way to control the congestion for individual flows.
In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific examples in which the disclosure may be practiced. It is to be understood that other examples may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims. It is to be understood that features of the various examples described herein may be combined with each other, unless specifically noted otherwise.
Network system 100 utilizes a metered Quantized Congestion Notification (QCN) protocol. The metered QCN protocol modifies the QCN protocol, which is standardized as Institute of Electrical and Electronics Engineers (IEEE) Standard 802.1ua-2010. In particular, network system 100 utilizes the metered QCN protocol for monitoring the bandwidth utilization of an individual flow of frames. The metered QCN protocol uses a single token bucket or dual token buckets to determine if a congestion notification message will be generated as a result of a frame. Congestion is determined by measuring the depth of the token bucket(s), rather than the operating queue depth. The QCN feedback is also determined relative to the token bucket(s) depth.
In this example, first server 122 is a reaction point and includes a transmitter queue 124. A reaction point is a source of frames and is where the frame load characteristics can be modified. Second server 128 is also a reaction point and includes a transmitter queue 130. First switch 136 includes a queue 138, and second switch 142 includes a first queue 144 and a second queue 146. Third server 152 is a destination for frames and includes a receiver queue 154. Fourth server 156 is also a destination for frames and includes a receiver queue 158. In one example, transmitter queues 124 and 130, queues 138, 144, and 146, and receiver queues 154 and 158 are First In First Out (FIFO) queues.
In this example, first server 122 is transmitting a unicast message to third server 152. Frames in transmitter queue 124 are transmitted to first switch 136, and the transmitted frames are received in queue 138. The frames in queue 138 are forwarded by first switch 136 to second switch 142, and the forwarded frames are received in first queue 144. The frames in first queue 144 from first server 122 are then forwarded by second switch 142 to third server 152, and the forwarded frames are received in receiver queue 154. Second server 128 is transmitting a multicast message to third server 152 and fourth server 156. Frames in transmitter queue 130 are transmitted to second switch 142, and the transmitted frames are received in both first queue 144 and second queue 146. The frames in second queue 146 are forwarded to fourth server 156, and the forwarded frames are received in receiver queue 158. The frames in first queue 144 from second server 128 are then forwarded by second switch 142 to third server 152, and the forwarded frames are received in receiver queue 154.
In this example, first queue 144 of second switch 142 is an overload point due to the merging of frames transmitted from first server 122 and second server 128, In other examples, a potential overload point may occur due to frames from a single source or due to the merging of frames from three or more sources. To address this congestion at overload points within a network system and to provide metered bandwidth allocation at the overload points, metered QCN as disclosed herein is utilized.
Processor 182 includes a Central Processing Unit (CPU) or another suitable processor. In one example, memory 186 stores instructions executed by processor 182 for operating server 180. Memory 186 includes any suitable combination of volatile and/or non-volatile memory, such as combinations of Random Access Memory (RAM), Read-Only Memory (ROM), flash memory, and/or other suitable memory. Memory 186 stores instructions executed by processor 182 including instructions for a metered congestion notification module 188. In one example, processor 182 executes instructions of metered congestion notification module 188 to implement the metered QCN method disclosed herein.
Processor 192 includes a CPU or another suitable processor. In one example, memory 196 stores instructions executed by processor 192 for operating switch 190. Memory 196 includes any suitable combination of volatile and/or non-volatile memory, such as combinations of RAM, ROM, flash memory, and/or other suitable memory. Memory 196 stores instructions executed by processor 192 including instructions for a metered congestion notification module 198. In one example, processor 192 executes instructions of metered congestion notification module 198 to implement the metered QCN method disclosed herein.
The flow of frames for each source through network FIFO 212 is metered by a single token bucket or a dual token bucket as described below with reference to
The flow of frames for each source through network FIFO 218 is also metered by a single token bucket or a dual token bucket. If frames received in network FIFO 218 overflow a token bucket assigned to the flow of frames from source FIFO 208, the forwarded frames may be sampled for generating backward congestion notification messages as indicated at 216. A backward congestion notification message may be generated for each sampled frame of network FIFO 218.
Likewise, the flow of frames for each source through destination FIFO 222 is metered by a single token bucket or a dual token bucket. If frames received in destination FIFO 222 overflow a token bucket assigned to the flow of frames from source FIFO 208, the forwarded frames may be sampled for generating backward flow control notification messages as indicated at 226. A backward congestion notification message may be generated for each sampled frame of destination FIFO 222.
Each backward congestion notification message 216 and 226 includes feedback information about the extent of congestion at the overload point. For example, the feedback information included in a backward congestion notification message generated in response to an overflowing token bucket for a flow of frames through network FIFO 212 provides information about the extent of congestion at FIFO 212 for the flow of frames. Likewise, the feedback information included in a backward congestion notification message generated in response to an overflowing token bucket for a flow of frames through destination FIFO 222 provides information about the extent of congestion at destination FIFO 222 for the flow of frames. Each backward congestion notification message is transmitted to the source of the sampled frame that caused a token bucket to overflow. In this example, each backward congestion notification message 216 and 226 is transmitted to the source device transmitting frames from source FIFO 208.
In response to receiving a backward congestion notification message, the source throttles back the flow of frames (i.e., reduces the transmission rate of frames) based on the received feedback information. The source then incrementally increases the flow of frames unilaterally (i.e., without further feedback) to recover lost bandwidth and to probe for extra available bandwidth.
Dual token buckets 300 are used to meter the flow of frames based on the following:
If (Service Frame length is less than C-Bucket tokens)
else if (Service Frame length is less than E-Bucket tokens)
else {declare “red”; generate congestion notification}.
The service frame length is the length of a service frame (i.e., a frame in a data flow as opposed to a control frame). Each token represents a unit of bytes of a predetermined size. As such, when tokens are removed from a token bucket, the number of tokens removed corresponds to the service frame length. The random selection algorithm randomly selects frames for generating a congestion notification message. In other examples (e.g., for FCN messages), the random selection algorithm randomly selects frames for discard and for generating a congestion notification message. A frame declared “red” is discarded and results in the generation of a congestion notification message. In this example, the source is throttled back once the committed information rate is exceeded and throttled back more once the excess information rate is exceeded.
In another example, a single token bucket, such as token bucket 302 is used to meter the flow of frames from an individual source. The number of tokens in the bucket is the inverse of the depth of the simulated queue for the flow of frames from the individual source. For example, if the token bucket can hold 100 tokens, the simulated queue is empty when the token bucket has 100 tokens and the simulated queue is full when the token bucket has zero tokens.
Given a maximum token bucket depth “N” and a current token bucket depth “n,” the simulated queue depth “Q” for a queue of depth “Qmax” is:
Q=Q
max*(N−n)/N
The metered QCN method operates on the simulated queue by identifying the QCN operating point “Qeq,” the instantaneous queue size “Q” and “Qold” as simulated depths based on the token bucket meter. In one example, congestion notification messages are generated by the QCN protocol as defined in IEEE Standard 802.1ua-2010.
The single token bucket is used to meter the flow of frames from an individual source based on the following:
In this example, the source is throttled back once the committed information rate is exceeded.
Metered QCN as disclosed herein provides a way to control congestion for individual flows. The metered QCN generates QCN congestion notification messages based on the state of a token bucket profiler that may be used to monitor the bandwidth utilization of an individual flow. Congestion is determined by measuring the depth of the token buckets, rather than the operating queue depth. The QCN feedback is also determined relative to the token bucket depths.
Although specific examples have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, it is intended that this disclosure be limited only by the claims and the equivalents thereof.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2012/051722 | 8/21/2012 | WO | 00 | 2/18/2015 |