Data traffic congestion is a common problem in frame or packet switched networks. A conventional congestion control method includes Quantized Congestion Notification (QCN), which is standardized as Institute of Electrical and Electronics Engineers (IEEE) Standard 802.1ua-2010. This congestion control method relies on rate adaption of the source based on feedback from the congestion point within the network. 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 system provides fair bandwidth division. In some networks, such as subscriber networks, however, it is desirable to provide higher bandwidth for some flows than for others.
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 colored Quantized Congestion Notification (cQCN) protocol. The cQCN protocol modifies the Quantized Congestion Notification (QCN) protocol, which is standardized as Institute of Electrical and Electronics Engineers (IEEE) Standard 802.1ua-2010 In particular, network system 100 utilizes the cQCN protocol for unfair bandwidth allocation. The cQCN protocol uses the drop eligibility of frames to determine if a congestion notification message will be generated as a result of the frame. The drop eligibility of a frame is determined based upon a Drop Eligibility Indicator (DEI) of the frame. The DEI is a bit within the IEEE Standard 802.1ua-2010 frame used to identify the traffic profile of the frame. The DEI bit indicates if the frame is in profile (i.e., drop ineligible indicated by the DEI bit being set to 0) or out of profile (i.e., drop eligible indicated by the DEI bit being set to 1).
A queue using cQCN congestion management selects the frames with the DEl bit set (i.e., frames marked as out of profile) for generating congestion notification messages in preference to frames with the DEl bit clear (i.e., frames marked as in profile). By generating and responding to congestion notifications for out of profile frames and not for in profile frames, the cQCN protocol throttles only the out of profile traffic. Therefore, the flows settle to the bandwidth of their in profile traffic plus a fair share of the bandwidth remaining beyond all in profile traffic.
In this example, first server 122 is a reaction point (i.e., a source of frames) and includes a transmitter queue 124. 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 a congestion point due to the merging of frames transmitted from first server 122 and second server 128. In other examples, a congestion 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 congestion points within a network system, QCN fairly divides bandwidth between the contending flows. To provide preferential bandwidth allocation for in profile frames of flows at the congestion points, however, cQCN 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 cQCN module 188. In one example, processor 182 executes instructions of cQCN module 188 to implement the unfair bandwidth allocation method disclosed herein. In other examples, cQCN is implemented by hardware state machines rather than by processor 182.
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 cQCN module 198. In one example, processor 192 executes instructions of cQCN module 198 to implement the unfair bandwidth allocation method disclosed herein. In other examples, cQCN is implemented by hardware state machines rather than by processor 192.
Network FIFO 212 has a predetermined operating point 214. The predetermined operating point is set to a percentage of the physical FIFO size to maximize bandwidth while minimizing dropped frames. If frames from source FIFO 208 exceed the predetermined operating point 214 of network FIFO 212 and the frames are marked as out of profile, the marked frames are sampled for generating Backward Congestion Notification (BCN) messages as indicated at 216. A backward congestion notification message is generated for each sampled frame that is marked out of profile (e.g., by having the DEI bit set to 1).
In one example, the backward congestion notification message is defined in IEEE Standard 802.1ua-2010. If frames from source FIFO 208 exceed the predetermined operating point 214 of network FIFO 212 and the frames are unmarked (e.g., by having the DEI bit set to 0), the unmarked frames do not generate backward congestion notification messages. Once a second threshold of network FIFO 212 is exceeded, both marked and unmarked frames may be discarded and/or generate congestion notification messages. In one example, the second threshold is at the maximum capacity of network FIFO 212. In another example, the second threshold is between the maximum capacity and the predetermined operating point 214 of network FIFO 212.
Network FIFO 218 has a predetermined operating point 220. If forwarded frames from source FIFO 208 exceed the predetermined operating point 220 of network FIFO 218 and the forwarded frames are marked as out of profile, the marked frames are sampled for generating backward congestion notification messages as indicated at 216. A backward congestion notification message is generated for each sampled frame that is marked out of profile. If forwarded frames from source FIFO 208 exceed the predetermined operating point 220 of network FIFO 218 and the frames are unmarked, the unmarked frames do not generate backward congestion notification messages. Once a second threshold of network FIFO 218 is exceeded, both marked and unmarked frames may be discarded and/or generate congestion notification messages.
Likewise, destination FIFO 222 has a predetermined operating point 224. If forwarded frames from source FIFO 208 exceed the predetermined operating point 224 of destination FIFO 222 and the forwarded frames are marked as out of profile, the marked frames are sampled for generating backward flow control notification messages as indicated at 226. A backward congestion notification message is generated for each sampled frame that is marked out of profile. If forwarded frames from source FIFO 208 exceed the predetermined operating point 224 of destination FIFO 222 and the frames are unmarked, the unmarked frames do not generate backward congestion notification messages. Once a second threshold of destination FIFO 222 is exceeded, both marked and unmarked frames may be discarded and/or generate congestion notification messages.
Each backward congestion notification message 216 and 226 includes feedback information about the extent of congestion at the congestion point. For example, the feedback information included in a backward congestion notification message generated in response to the predetermined operating point 214 of network FIFO 212 being exceeded provides information about the extent of congestion at FIFO 212. Likewise, the feedback information included in a backward congestion notification message generated in response to the predetermined operating point 224 of destination FIFO 222 being exceeded provides information about the extent of congestion at destination FIFO 222. Each backward congestion notification message is transmitted to the source of the sampled frame that caused the predetermined operating point of the FIFO to be exceeded. 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.
In another example, if received frames in a FIFO exceed the predetermined operating point of the FIFO and the received frames are marked as out of profile, the marked frames are sampled for generating forward congestion notification messages. The forward congestion notification messages are sent to the destination of the sampled frames. The destination then converts the forward congestion notification messages into backward congestion notification messages to be sent to the source of the sampled frames.
In one example, a profiler 258 has a Committed Information Rate (CIR) indicated by “green” tokens 256 being deposited into a C-bucket 252 having a Committed Burst Size (CBS) 254. Embedded in each frame is a single bit of information that is inserted into each frame at the point where the frame is originally transmitted. The single bit of information marks the frame as either an in profile “green” frame or an out of profile “yellow” frame. In other examples, other suitable methods are used for determining the profile of each frame. For example, every third frame could be marked as an out of profile “yellow” frame.
Below predetermined operating point 246 of queue 242, both “green” and “yellow” frames pass without generating any congestion notification messages. In this example, frames 244a-244c pass without generating any congestion notification messages. Above predetermined operating point 246, “green” frames pass without generating any congestion notification messages while “yellow” frames generate congestion notification messages. Within zone 248, only “yellow” frames generate congestion notification messages. In this example, “green” frame 246a does not result in the generation of a congestion notification message. “Yellow” frame 244d, however, may result in the generation of a congestion notification message.
At second threshold 250, both “green” and “yellow” frames are subject to discard and may result in the generation of congestion notification messages. In one example, second threshold 250 is at the maximum capacity of queue 242. In another example, second threshold 250 is between the maximum capacity and the predetermined operating point 246 of queue 242.
Colored QCN as disclosed herein provides a greater than fair share of bandwidth to traffic including frames marked as in profile (i.e., “green” frames). Only frames marked as out of profile generate congestion notification messages once a predetermined operating point of a queue is exceeded. Therefore, cQCN throttles only out of profile traffic unless the in profile traffic exceeds a second threshold of the queue, in which case both frames marked as out of profile and in profile are subject to discard and may generate congestion notification messages.
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/051735 | 8/21/2012 | WO | 00 | 2/18/2015 |