CONGESTION CONTROL WITHIN A COMMUNICATION NETWORK
20180013677 · 2018-01-11
Inventors
Cpc classification
H04L47/129
ELECTRICITY
H04L47/263
ELECTRICITY
H04L47/31
ELECTRICITY
Y02D30/50
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
According to an embodiment a packet forwarding device is disclosed for forwarding data packets on a link within a communication network. The packet forwarding device is further configured to perform the following steps: measuring a load of the link; detecting if the load exceeds one of a plurality of threshold indicative for a level of congestion on the link; and sending a signal to another device in the communication network signalling the level of congestion.
Claims
1. A packet forwarding device for forwarding packets on a link within a communication network, the device comprising: a) a network monitor module configured to measure a load indicative for a congestion of the link; and b) a congestion detection module configured to detect when the load exceeds one of a plurality of thresholds each threshold indicative for a level of congestion on the link; and c) a congestion control module configured to send a signal to another device in the network signalling the level of congestion.
2. The packet forwarding device according to claim 1, wherein the load is the ratio of received packets for forwarding on the link over the maximum packets that the link can handle.
3. The packet forwarding device according to claim 2, wherein the network monitor module is configured to measure the received packets according to an exponential weighted moving average.
4. The packet forwarding device according to claim 1, wherein the congestion detection module is further adapted to change the thresholds dependent on network conditions.
5. The packet forwarding device according to claim 1, wherein the signal is embedded in a header field of the packets.
6. The packet forwarding device according to claim 5, wherein the header field corresponds to an explicit congestion notification (ECN) field of an Internet Protocol header.
7. A networking endpoint comprising a source congestion control module configured to adapt a transmission of packets on a link according to a congestion signal received from a packet forwarding device on the link; and wherein the congestion signal comprises an indication of a congestion level selected from a plurality of congestion levels; and wherein the congestion control module is further configured to: when no congestion signal is received, probing an available bandwidth according to a first probing scheme; and when the congestion level corresponds to a first low level of congestion, probing the available bandwidth according to a second probing scheme; and wherein the second probing scheme is less aggressive than the first probing scheme; and when the congestion signal corresponds to a second high level of congestion, probing the available bandwidth according to a third probing scheme; and wherein the third probing scheme is a back-off probing scheme.
8. The networking endpoint according to claim 7 wherein the congestion control module further operates according to a window-based probing scheme or a rate-based probing scheme.
9. (canceled)
10. Method for adapting a transmission of packets on a link in a networking endpoint comprising the following steps: receiving a congestion signal from a packet forwarding device on the link; and wherein the congestion signal comprises an indication of a congestion level selected from a plurality of congestion levels; and when no congestion signal is received, probing an available bandwidth according to a first probing scheme; and when the congestion level corresponds to a first low level of congestion, probing the available bandwidth according to a second probing scheme; and wherein the second probing scheme is less aggressive than the first probing scheme; and when the congestion signal corresponds to a second high level of congestion, probing the available bandwidth according to a third probing scheme; and wherein the third probing scheme is a back-off probing scheme.
11. A method for forwarding packets on a link within a communication network, the method comprising: a) measuring a load indicative for a congestion of the link; and b) detecting when the load exceeds one of a plurality of thresholds each threshold indicative for a level of congestion on the link; and c) sending a signal to another device in the network signalling the level of congestion.
12. A non-transitory computer readable medium storing a computer-executable instructions for performing the method according to claim 10 when the program is run on a computer.
13. (canceled)
14. A data processing system programmed for carrying out the method according to claim 10.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
DETAILED DESCRIPTION OF EMBODIMENT(S)
[0054] According to an embodiment, the present disclosure relates to a packet forwarding device for forwarding packets on a link within a communication network.
[0055] The packet forwarding device 103 will in general be connected with different links for incoming as well as forwarding data packets.
[0056] Packet forwarding device 103 comprises a network monitoring module 201 that measures the load on a link, for example link 104 connected with a network interface 213, through which data packets need to be forwarded. The measured load will be indicative for a congestion of the link. Next, a congestion detection module 202 will detect if the measured load exceeds one of a plurality of thresholds, wherein each threshold is indicative for a level of congestion. Subsequently, according to an embodiment, congestion control module 203 sends a signal to another device, for example endpoint 105, in the communication network to signal the level of congestion. The signalling may be done by dropping the packet or by ECN marking. Endpoint 105 will then interpret the dropping and marking and forwards the signal to endpoint 101, for example by adding the congestion information in the header of an acknowledgement, ACK, packet.
[0057] Since the congestion control module 203 signals endpoint 101 regarding the level of congestion in the network, endpoint 101 will adapt the sending of data packets based hereupon.
[0058] Note that the load measured in a link may for example be presented as ρ.sub.t, whereas the number of received packets for forwarding during a time interval T.sub.q may for example be presented by M.sub.l. If C.sub.l is the capacity of the link, i.e. the maximum packets that the link can handle during the time interval T.sub.g, the load may be expressed as
ρ.sub.l=M.sub.l/C.sub.l.Math.T.sub.g Eq. 1
[0059] The steps performed by the platform of modules 204 belonging to the packet forwarding device 103 can also be presented schematically.
[0060] The first step performed by the network monitor module 201 is to measure 401 the load. This load may for example be measured by estimating the received packets for forwarding, i.e. M.sub.l in Eq. 1, during a particular time interval, for example T.sub.q. Since however the number of received packets during a particular time interval T.sub.g can fluctuate vastly on an even short time interval than T.sub.g, such short-term fluctuations can result in a distorted estimation of the load. Hence, to better estimate the number of packets that are received a moving average may be calculated, for example an exponential weighted moving average. This will smooth out such short-term fluctuations and will highlight longer-term trends.
[0061] In the next step a congestion detection module 202 will detect 402 if this measured load, whether or not estimated by the use of an exponential weighted moving average, exceeds one of a plurality of thresholds. This is further illustrated by two thresholds but different embodiments with more thresholds may be used in a similar way.
[0062] Thus, as illustrated in
[0063] According to an embodiment of the present disclosure, one of the signals θ.sub.1 or θ.sub.2, which may for example be encoded in a header file, are send 403 to another device in the network by the congestion control module 203. This signal may be send by for example embedding it in a header file of the packets, wherein the header file can for example correspond to an explicit congestion notification (ECN) field of an Internet Protocol header.
[0064] Finally, steps 401, 402 and 403 in
[0065]
[0066] Endpoint 101 receives the congestion signals over networking interface 310 and networking stack 304 and use them in the congestion control module 303 to control the transmission of future packets in order to avoid further congestion of the link.
[0067] In step 501, congestion control module 303 receives a packet on the networking interface. In step 502, the module checks whether the packet comprises a congestion signal from a packet forwarding device present in the network link, for example from packet forwarding device 103. This congestion signal comprises information indicating the level congestion on the network link as described above. As an example, the embodiment will further be described for a congestion signal that indicates two levels of congestion 605 and 606 as described above with reference to
[0068] In step 503, when there is no network congestion, module 303 probes for the available bandwidth according to a first probing scheme. As no congestion is assumed the probing may be performed aggressively, for example by a slow start or additive increase. In step 504, when there is first low level 605 of congestion in the network, the module 303 probes for the available bandwidth according to a second probing scheme which is slower or less aggressive than the first probing scheme. The second probing scheme may for example slow down the probing by using non-linear probing. The actual level of aggressiveness in the second probing scheme may further be adapted depending on the actual indicated congestion level. In step 505, when there is a second higher level 606 of congestion, a back-off probing scheme is used, i.e., the data rate of packets on the link is reduced. When the probing scheme has been adapted according to steps 503, 504 or 505, the module returns to step 501 until it receives the next congestion signal.
[0069] According to a further embodiment, the probing scheme may be implemented by changing the TCP window size, i.e., increasing it when applying the first and second probing scheme and decreasing it when applying the third probing scheme. An increase of the window size may be performed according to the following equation:
wherein [0070] β is a parameter chosen greater than zero; [0071] w.sub.t is the window size at a certain point in time t; [0072] w.sub.t+RTT is the updated window size applied after a time interval RTT; [0073] RTT is the round-trip time; [0074] k corresponds to the aggressiveness of he bandwidth probing and is chosen greater than zero.
[0075] A decrease of the window size may be performed according to the following equation:
w.sub.t+δ←w.sub.t←−βw.sub.t
wherein [0076] α is a parameter chosen greater than zero; [0077] 0<β<1; [0078] w.sub.t is the window size at a certain point in time t; [0079] w.sub.t+δ is the updated window size applied after a time interval δ; [0080] δ is the time to detect a congestion signal since the last window update.
[0081] The above control functions for increasing and decreasing the window size correspond to an integral controller, where the congestion signal observed at an end-point is used to determine the derivative of the transmission window, i.e., dw.sub.t/dt=α/w.sub.t.sup.k for the increase rule and dw.sub.t/=−βw.sub.t for the decrease rule. The different forms of dw.sub.t/dt indicates the different types of probing schemes. For instance, TCP Reno and DCTCP set k=0 such that the window is increased linearly by α after each RTT (usually α=1). According to the above embodiment, k>0, so that the equation for increasing the window size reduces to the class of non-linear window increment schemes. These schemes behaves less aggressive during bandwidth probing and, thus, leads to less oscillation at the endpoint. This also results to less oscillations in throughput in a bottleneck link.
[0082] One drawback of having a less oscillating source is the increased convergence time to fairness, e.g., flows enabled with DCTCP/HULL experience longer convergence speed as it reduces the window size depends on the level of congestion than halving the window (β=½) as in TCP Reno. The same problem may occur if the amplitude of window increment is reduced (k>0). This trade-off between smoothness and convergence is solved by the plurality of congestion thresholds 601, 602. Because of this, the endpoint 101 adapts its aggressiveness during bandwidth probing based on the type of congestion signals being received.
[0083] According to an alternative embodiment, the probing scheme may be implemented by implementing the probing scheme based on the transmission rate of the data packets, i.e., by increasing or decreasing the data rate. This may be done by converting the above equations with the relation r.sub.i=w.sub.i/RTT where r.sub.i corresponds to the transmission rate. This way, the window-based probing scheme may be changed to a rate-based probing scheme.
[0084] According to an embodiment of the present disclosure,
[0085]
[0086]
[0087] Although the present disclosure has been illustrated by reference to specific embodiments, it will be apparent to those skilled in the art that the disclosure is not limited to the details of the foregoing illustrative embodiments, and that the present disclosure may be embodied with various changes and modifications without departing from the scope thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the disclosure being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. In other words, it is contemplated to cover any and all modifications, variations or equivalents that fall within the scope of the basic underlying principles and whose essential attributes are claimed in this patent application. It will furthermore be understood by the reader of this patent application that the words “comprising” or “comprise” do not exclude other elements or steps, that the words “a” or “an” do not exclude a plurality, and that a single element, such as a computer system, a processor, or another integrated unit may fulfil the functions of several means recited in the claims. Any reference signs in the claims shall not be construed as limiting the respective claims concerned. The terms “first”, “second”, “third”, “a”, “b”, “c”, and the like, when used in the description or in the claims are introduced to distinguish between similar elements or steps and are not necessarily describing a sequential or chronological order. Similarly, the terms “top”, “bottom”, “over”, “under”, and the like are introduced for descriptive purposes and not necessarily to denote relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances and embodiments of the disclosure are capable of operating according to the present disclosure in other sequences, or in orientations different from the one(s) described or illustrated above.