Posted by : Unknown Monday, July 1, 2013

Introduction
In current TCP networks, TCP relies on packet drops as the indication of congestion. The TCP source detects dropped packets either from the receipt of three duplicate acknowledgments or after the time-out of a retransmit timer. It responds to a dropped packet by reducing congestion window. They also respond to ICMP source quench message. But source quench messages are rarely used, because they consume network bandwidth during times of congestion.
This reliance on packet drops was OK when queue management was done at a very basic level i.e. routers had no provision of incipient congestion and they dropped packets only on queue overflows. However, now many sophisticated methods of active queue management have come up (e.g. Random Early Detection (RED)). Active queue management mechanisms detect congestion before the queue overflows, and provide an indication of this congestion to the end nodes.
Moreover, interactive traffic such as Telnet, web browsing and other applications can be sensitive to packet losses (if using unreliable protocols like UDP) or increased latency after a loss (you have to retransmit the packet in case of reliable protocol like TCP). Hence, the traditional mechanisms as it is will not help applications that are sensitive to delay or loss of packets.
TCP determines the congestion-window by gradually increasing the window size until it experiences a dropped packet. Hence queues at the bottleneck router will go up. Since most packets dropping policies don't take into account the load placed by each individual flow, some packets of latency sensitive flows will be dropped. With RED, congestion is detected before the queue overflows and end-nodes detect can take appropriate action. RED mechanisms separate the policies of queuing from the policies of indicating congestion. Hence a router may have several methods of indicating congestion to the end-nodes. One way is packet drops. The router can also set a bit in the packet for the destination to know that the packet experienced congestion on the way. The destination can in turn inform the source in the acknowledgment packet by setting a bit. This is the basic mechanism suggested in the current ECN proposal (RFC 2481).
The advantage of ECN over the use of packet drops is that the source can be informed of the congestion unambiguously, without the source having to wait for a retransmit timer or three duplicate ACKs to infer a dropped packet. When a retransmission timer does not detect the dropped packet, the ECN mechanism can improve the response to congestion. If the source is delayed in detecting a dropped packet (maybe due to small congestion window and coarse-grained TCP timer), the source can lie idle for a long time. ECN can help in this case.
In this paper, we will examine first take a quick view of traditional ECN mechanisms. Then we will look at the current ECN specifications for the addition of ECN to TCP/IP. Then we will see a new proposal of Backward ECN i.e. instead of informing the destination by marking the packet, the router informs the source using the ICMP source Quench message. Then we look at some recent research into the addition of ECN to unreliable links.
 
Traditional ECN mechanisms
There are quite a few mechanisms used historically for ECN. Some of them are
  1. Source Quench Messages: Traditionally, Source Quench messages are the only ECN mechanism in the TCP/IP networks. However, Source Quench messages are rarely used in the current Internet. RFC 1009 required routers to generate Source Quench messages when they run out of buffers, the current draft on requirements for routers specifies that a router shouldn't originate Source Quench messages and a router that does originate source Quench message should limit the rate at which they are generated. The reasons why Source Quench messages are not used are because of the following problems


    • It is not a general solution, particularly for multicast. Some connections have receiver-based congestion control instead of sender-based congestion control. (And in addition, one would not like to have a "Source Quench" implosion in a multicast tree.)
    • Source Quench packets can be dropped, so they are not reliable.
    • Even if well done, Source Quench packets add traffic in the reverse direction on what might be a congested path. While there are some applications/environments where it might be highly advantageous for the sender to receive some indication of congestion without having to wait a round-trip time, this is not the common case.
  2. DECbit congestion avoidance scheme: In the DECbit congestion avoidance scheme, the gateway uses a congestion-­notification bit in packet headers to provide feedback about congestion in the network. When a packet arrives at the gateway, the gateway calculates the average queue length. When the average queue size at the gateway exceeds one(for that particular source), the gateway sets the ECN bit in the packet header of arriving packets. The source uses window flow control, and updates its window once every two roundtrip times. If at least half of the packets in the last window had the ECN bit set, then the congestion window is decreased multiplicatively. Otherwise, the congestion window is increased additively.
     
  3. A range of ECN based rate­based congestion control schemes have been proposed for use within ATM networks. These include proposals both for Forward ECN (FECN) and for Backward ECN (BECN).
Current ECN proposal
The current ECN proposal is described in RFC 2481. Some of the salient features of the proposal are:
  • As we have seen above, it works only when duration of congestion is greater than one Round-trip time.
  • It accommodates migration so that ECN can be adopted gradually. Both routers and end-nodes may not be ECN capable.
  • It also assumes that asymmetric routing is likely to be a normal occurrence in the Internet. The path followed by data packets may be different from the path followed by the acknowledgment packets.
  • Not all end systems may cooperate in the congestion control mechanisms. The new mechanism is made such that the benefit of lying about participating in the new mechanism should be small. That is one user should not get undue benefits by advertising that it is participating in ECN control while it is actually not participating.
Random Early Detection (RED) Algorithm for Queue Management
The ECN mechanism uses active queue management for detection of incipient congestion. RED is a popular active queue management algorithm. In contrast to traditional queue management algorithms, which drop packets only when the buffer is full, the RED algorithm drops arrived packets probabilistically. The probability of drop increases as the estimated average queue size grows. Note that RED responds to a time-averaged queue length, not an instantaneous one. Thus, if the queue has been mostly empty in the "recent past", RED won't tend to drop packets (unless the queue overflows, of course). On the other hand, if the queue has recently been relatively full, indicating persistent congestion, newly arrived packets are more likely to be dropped.
The RED algorithm itself consists of two main parts:
  • Estimation of Average Queue Size
  • Packet Drop Decision: In the second portion of the algorithm, RED decides whether or not to drop an incoming packet. It is RED's particular algorithm for dropping that results in performance improvement for responsive flows. Two RED parameters, minth (minimum threshold) and maxth (maximum threshold), figure prominently in this decision process. Minth specifies the average queue size below which no packets will be dropped, while maxth specifies the average queue size above which all packets will be dropped. As the average queue size varies from minth to maxth, packets will be dropped with a probability that varies linearly from 0 to maxp (maximum probability of dropping a packet).
Changes in IP and the routers
Two bits have to be earmarked in the IP header for ECN bits. One is the ECN capable transport (ECT) bit that indicates that the end-points are ECN capable. The ECT bit set to "0" indicates that the transport protocol will ignore the CE bit. This is the default value for the ECT bit. The ECT bit set to "1" indicates that the transport protocol is willing and able to participate in ECN. The other is the Congestion Experienced (CE) bit, which is marked by a router if there is congestion in the router when the packet was being processed. It is assumed that routers process the "regular" headers in IP packets more efficiently than they process the header information in IP options. This suggests keeping congestion experienced information in the regular headers of an IP packet.
Bits 6 and 7 of the IPv4 TOS field have been designated as the ECN field. Bit 6 is designated as the ECT bit, and the bit 7 designated as the CE bit. However, this implementation is not backward compatible with all past usage of the past two bits because of the unstable history of the IPv4 TOS octet. Header checksum recalculation is an issue in routers that set the CE bit in IPv4 packets. However there is an easy formula for the calculation of the header checksum.
In implementation of ECN for TCP over IPv6 at UCLA, they have chosen first two bits in the flow-label to indicate congestion. It was deemed to be the most appropriate because it had the least specifications. Priority field was considered but was not used since current IPv6 specifications suggested values for that field. Header checksum recalculation is not an issue in Ipv6.
For a router, the CE bit of an ECN-Capable packet should only be set if the router would otherwise have dropped the packet as an indication of congestion to the end nodes (for example, by using the RED algorithm). When the router's buffer is not yet full and the router is prepared to drop a packet to inform end nodes of incipient congestion, the router should first check to see if the ECT bit is set in that packet's IP header. If so, then instead of dropping the packet, the router may instead set the CE bit in the IP header. When severe congestion has occurred and the router's queue is full, then the router has no choice but to drop some packet when a new packet arrives. However, it is hoped that this will occur rarely when ECN is deployed in all end nodes.
Changes in TCP and end-systems
TCP requires three changes, a negotiation phase during setup to determine if both end nodes are ECN-capable, and two new flags in the TCP header, from the "reserved" flags in the TCP flags field. They are the ECN-echo flag and the CWR (congestion window reduced flag). The CWR flag is assigned to bit 8 in the reserved field of the TCP header. Bit 9 in the reserved field of the TCP header is designated as the ECN-Echo flag. The data receiver to inform the data sender of a received CE packet uses the ECN-Echo flag. The data sender to inform the data receiver that the congestion window has been reduced uses the Congestion Window Reduced flag.
 
·  TCP initialization (handshake)
In the TCP connection setup phase, the source and destination TCPs exchange information about their desire and/or capability to use ECN. Subsequent to the completion of this negotiation, the TCP sender sets the ECT bit in the IP header of packets to indicate to the network that the transport is capable and willing to participate in ECN for this packet. This will indicate to the routers that they may mark this packet with the CE bit, if they would like to use that as a method of congestion notification. If the TCP connection does not wish to use ECN notification for a particular packet, the sending TCP sets the ECT bit equal to 0 (i.e., not set), and the TCP receiver ignores the CE bit in the received packet.
When a node sends a TCP SYN packet, it may set the ECN-Echo and CWR flags in the TCP header. For a SYN packet, the setting of both the ECN-Echo and CWR flags are defined as an indication that the sending TCP is ECN-Capable, rather than as an indication of congestion or of response to congestion.
When a node sends an SYN-ACK packet, it may set the ECN-Echo flag, but it does not set the CWR flag. For a SYN-ACK packet, the pattern of the ECN-Echo flag set and the CWR flag not set in the TCP header is defined as an indication that the TCP transmitting the SYN-ACK packet is ECN-Capable.
·  Changes in the end systems
Data packets are transmitted with the ECT bit set in the IP header. If there is congestion on the way, the router sets the CE bit on. When TCP receives a CE data packet at the destination end-system, the TCP data receiver sets the ECN-Echo flag in the TCP header of the subsequent ACK packet.
If the sender receives an ACK packet with the ECN-Echo flag set in the TCP header, then the sender knows that congestion was encountered in the network on the path from the sender to the receiver. The indication of congestion should be treated just as a congestion loss in non-ECN-Capable TCP. That is, the TCP source halves the congestion window "cwnd" and reduces the slow start threshold "ssthresh".
When an ECN-Capable TCP reduces its congestion window for any reason (because of a retransmit time-out, a Fast Retransmit, or in response to an ECN Notification), the TCP sets the CWR flag in the TCP header of the first data packet sent after the window reduction.
Also, the TCP does not react to congestion indications more than once every window of data (or more loosely, more than once every round-trip time). This is because the destination continues to set the ECN-Echo flag in ACK packets until it receives a packet with the CWR flag set (getting a packet with CWR flag set ensures that the sender has reduced the congestion window). Hence sender should react to congestion only once every RTT.
·  Congestion control in ACK path
Congestion control in the acknowledgment is especially a problem in asymmetry in the forward and backward paths. For example, the reverse path may have low bandwidth and hence there may be congestion in the reverse path and this may affect TCP performance.
In the current proposal, pure acknowledgment packets (e.g. packets that do not contain any accompanying data) should be sent with the ECT bit off. Current TCP receivers have no mechanisms for reducing traffic on the ACK-path in response to congestion notification. {This is because they cannot detect the drop of a pure ACK packet. Moreover, there will be no ACK packet in response to the pure ACK packet with CE bit set}. This has been left as a topic of future research. There has been one proposal for ACK congestion control in the ACK path. The proposal is described in the next paragraph below.
In the scheme suggested, both ACK packets and data packets are candidates for marking. The TCP receiver maintains a dynamically varying delayed ACK factor, d. The sender sends an ACK packet for every d packets. When it receives a packet with the ECN bit set, it increases the value of d multiplicatively, thereby decreasing the frequency of ACKs multiplicatively. For each RTT (determined using time-stamp option of TCP) during which it does not receive an ECN packet, it linearly decreases the factor d, thereby increasing the frequency of ACKs almost linearly. In some way, the receiver mimics the standard congestion control behavior of TCP senders in the manner in which it sends ACKs. However, there are certain issues. For example, the maximum value of d is the sender's window size. For this, they have proposed to add a new option in TCP. The receiver should send at least one ACK per window of data from the sender. Otherwise it would cause the sender to stall until the receiver's delayed ACK timer forces the receiver to send an acknowledgment packet.
Some Issues
There are some issues that are very important to this implementation of ECN. They are
  • Non-compliance by end nodes: In fact, Internet is no longer a very closely-knit community as it was when it first came up. It may be possible that the end nodes may not respond to received packets with CE bit set. This can result in both unfairness and "congestion collapse" in the Internet. The unfairness is because of bandwidth starvation can inflict on well-behaved responsive traffic. The dangers of congestion collapse stems from a network busy transmitting packets before reaching the final destination. A node may set the ECT bit in its packets so that his packets are marked and not dropped, but he will not do any congestion control when he receives a packet with CE bit set. However, this is a problem in normal TCP also. A node may not reduce its congestion window in response to a packet drop and quietly keep on re-sending the dropped packets. It has been argued that ECN mark packets only when the congestion levels are low. It obviously drops packets when average queue size levels are above a limit. Moreover, handling unfavorable flows is a field of current research, and ECN doesn't hamper the deployment of mechanisms to restrict non-compliant flows. In fact, ECN would in fact help in detecting some unresponsive flows. For example, a router can monitor packets and keep track of congestion that has occurred earlier in the network.
  • Non compliance in the Network: There are three main issues relating to loss of information in the network.
  1. Encapsulated Packets: Some care must be taken when encapsulating and de-encapsulating headers, so that correct information can flow to subsequent routers and the destination. For example, when de-encapsulating the packet, the router must ensure that the CE bit is the "or" of the inner header and the outer header.
  2. IPsec Tunnel Considerations: The IPsec protocol doesn't contain doesn't contain the IP header's ECN field in any of its cryptographic calculations (in the case of tunnel mode, the outer IP header's ECN field is not included). Hence modification of the ECN field by a network node has no effect on IPsec's end-to-end security, because it cannot cause any IPsec integrity check to fail. As a consequence, IPsec does not provide any defense against an adversary's modification of the ECN field. The adversary can do the following
    • Erase Congestion indication
    • Falsely report congestion
    • Disable ECN capability
    • Falsely indicate ECN capability
  3. Dropped or Corrupted Packets: If a CE packet is dropped in a subsequent router, then there is no problem as the dropped packet would be detected and appropriate action taken. However, if a pure ACK packet is dropped, then there is no way a node can detect it. However, the current ECN mechanism doesn't set the ECT bit in pure ACK packets and it is a subject of future research.
     
BECN and MECN
The ECN proposal as it is has a few problems. A new proposal has been proposed which is only an Internet draft and has not really undergone field tests. However it has a few interesting features which can be added to the present draft.
The shortcomings in the current ECN proposal (described above) are:
  1. The proposal's congestion notification is coupled to the transport layer (TCP) via the use of header information (ECE bit). To extend this proposal to other transport protocols will require changes to each of their respective headers.
  2. The proposed scheme requires the congestion notification to incur a round trip time (RTT) before the sender can react. In a path with high delay-bandwidth product this would be problematic for two reasons:
      • In the scenario where the delay-bandwidth product is dominated mostly by the high bandwidth (for example, high-speed networks), a large amount of traffic will pass through the intermediate routers causing an increase in congestion level before the sender is notified.
      • In the scenario where the delay-bandwidth product is dominated mostly by the high latency/RTT (as in satellite networks), the reaction will take too long to address the congestion issue.
In both cases, the efficient use of the available bandwidth is affected.
  1. Because of the binary nature of the feedback, the reaction is limited to halving the window size even if the congestion level is very low. Network resources could be more effectively utilized if the feedback was indicative of the congestion level at the overloaded point in the network.
The Basic BECN Algorithm
The argument given is that ECN is a network level functionality and should be de-coupled from the transport protocols. A mechanism should be provided for the end IP layer to inform its transport protocols of congestion problems without using their header bit. In that case, all IP transport protocols (including any new ones that might be added in the future) are notified in the same manner about network congestion.
  • ICMP Source Quench messages (ISQ) are generated by the intermediate congested RED router and sent back to the source as an indication of incipient congestion whenever that router decides to mark the CE bit.
  • ISQs are usually not generated for a packet that has already been marked previously by another router regardless of whether that packet is contributing to some congestion.
  • However, when the router queue level mandates that the packet be dropped then an ISQ is sent back to the source regardless of whether the packet was marked previously or not.
  • The source reacts at the transport protocol level by lowering its data throughput into the network. For example, in TCP, upon identifying the flow causing the congestion, the sender reacts by halving both the congestion window and the slow start threshold value for that flow.
Why use Source Quench?
The reason ISQs have been considered inefficient in the past because of the following main reasons
  • CPU wastage: They consume a lot of resources at the router that has to generate these messages.
  • Bandwidth Consumption in the reverse path: This will be especially problematic if there is congestion in the reverse path or the frequency of generation of ISQs is very high.
The arguments for the scheme are
  • Less time to react to congestion.
  • CPU is no longer a constraint today and the benefits of having less packets being retransmitted will ameliorate the effect of CPU wastage at the routers.
  • As RED is being used at the routers, there will be fewer packets dropped than in the tail-drop scheme. Moreover using source quench messages will result in faster reaction time and this will result in fewer packet drops.
  • Moreover, suppose there are multiple congested routers on the way. Then, at most two source quench messages can be sent to the router per packet. This is because a router can send a Source Quench message for a marked packet only if it is dropping the packet. Please note that the routers don't send ISQs for non-ECN capable packets that are dropped.
MECN (Multilevel ECN) algorithm
This is an evolution of BECN. The router now sends levels of congestion notification and the source end system reacts differently depending on the severity of the congestion. The level of notification is stored in the 32-bit unused field in the ISQ.
Calculation of the congestion level weight
  • Suppose congestion levels are from 1 to 100. Now if the packet is dropped, then the level is set to 100.
  • If the packet is marked and not dropped, then the average queue size is between minth and maxth as we defined in RED algorithm above. Let the packet marking probability be Pb. Then level is calculated so that we get a value 1 on queue size = minth and a value 99 on queue size = maxth. It is calculated as follows
                                              Level = (Pb/maxp)*98 + 1
How the source reacts to the ISQs?
The suggested algorithm at the end system is the following
  • If the congestion level is set to 100, then we know that packet has been dropped and the source has to retransmit the packet. It also reduces the congestion window and threshold by half.
  • If the level in the ISQ message >= 50, then reduce the congestion window and threshold by half.
  • If the level in the ISQ < 50, then the congestion window is reduced linearly by 1.
Conclusion
There are quite a few merits and demerits with this proposal
  • The most important merit is that it reduces the job of explicit congestion indication to the network layer. We donot have to change the header of the Transport layer protocol.
  • The sources can react to the congestion very fast, especially in case when congestion is experienced in routers which are close to the source.
  • It also introduces the concept of Multilevel ECN so that source can react to congestion notification according to the congestion levels.
  • The MECN variant is partial to routers closer to the source. The source will react to their congestion notification first rather than that of routers farther away.
  • One of the nice things about the existing ECN scheme is that it can be integrated into reliable multicast protocols. With unicast, ECN is a win, but with reliable multicast, the improvement is likely to be that much greater because it removes or at least reduces the need to re-send different missing packets to different receivers. It's difficult to see how BECN can be used with multicast at all. In fact we may probably have to prohibit routers responding to multicast with a BECN message.
Adding ECN for unreliable links like Wireless
TCP congestion control has been developed on the assumption that congestion in the network to be the only cause for packet loss. Thus, it drops its transmission window upon detecting a packet loss. In the presence of high error rates and intermittent connective characteristic of wireless links, these results in an unnecessary reduction in link bandwidth utilization for packet losses are not mainly due to congestion. Several schemes have been proposed to alleviate the effects of non-congestion-related losses on TCP performance over networks that have wireless or similar high-loss links.
Two schemes using ECN have been suggested for wireless networks for separating packet losses due to congestion and that due to errors
  • The basic idea is same in both these schemes. Until explicitly conveyed, assume that the packet losses are due to errors on the link. Only upon the receipt of an ECN or Source Quench message, congestion control is done.
  • One of the main problems in both the schemes is that problems will occur if the packets carrying the ECN flag is lost. Then the source will not get to know that congestion has occurred because it will assume that errors has occurred due to link errors. This will result in increased congestion in the path and it may lead to congestion collapse. The authors have suggested some remedies for this problem.
  • One of them uses both Source Quench messages as well as WECN bit for detection of congestion.
  • Other uses only ACK packets for telling the source that congestion has occured.
Scheme1
This scheme mainly modifies the scheme suggested in RFC 2481. WECN message is a mechanism by which the reason for the loss of a packet can be communicated to the TCP sender. In particular, it provides a way by which senders can be informed that a loss happened because of reasons related to network congestion, so that sender congestion control can be decoupled from retransmissions for it reduce the congestion window without the consideration of packet losses.
It assumes certain things
    • It is one of the premises of WECN mechanism that all the end nodes in the experiment are WECN capable. Otherwise, congestion control would be invoked in response to packet loss whenever it is due to congestion or transmission errors. If the end node is not WECN capable, then normal congestion control algorithms have to be invoked.
    • It is assumed that each node in the network can add WECN bit in the packets to indicate congestion once packet losses occur. This is a very big problem because this will leave no scope for transitional schemes. Moreover, it also results in decreased robustness of the scheme. This is because there is some problem with some router which doesnot participate in this scheme. Then the whole mechanism will break down.
Changes in Routers
Upon the first lost packet due to buffer overflow in the intermediate router, WECN notification is added in the header of following passing packets. This is because dropping packets give the buffer time to vacate some space to hold and transmit new data. Hence we don't have to worry about low marking rate. This also ensures that the WECN notification can inevitably be added even with multiple packet losses. There is no need of mechanisms in the router to monitor the average queue size. The request for the Wireless-ECN to be added as quickly as possible after a packet loss occurs due to congestion is to make certain to alleviate network congestion in time. If multiple packet losses occur in a congestion window, multiple Wireless-ECN messages are to be set in a node.
They introduce a new bit called WCE bit. The bit 5 of the TOS octet of the IP packet is made the WCE bit. The router on incipient congestion sets the WCE bit. This is in addition to the CE and ECT bit of ECN. As previously, compatibility with previous implementations of TOS octet is not guaranteed. However, it is compatible with the ECN scheme suggested in RFC 2481. This is because the ECN bit uses bits 6 and 7 of the TOS octet. WECN .
Support from the end systems and Transport Protocol
·  Initialization
In the TCP connection setup phase, the source and destination TCPs exchange information about their desire and/or capability to use WECN. Subsequent to the completion of this negotiation indicates to the network that the transport is capable and willing to participate in WECN for each transmitting packet. When a node sends a TCP SYN packet, it may set the WECN-Echo flag in the TCP header as an indication that the sending TCP is ECN-Capable. When a node sends a SYN-ACK packet, it may set WECN-Echo flag, the sending TCP correctly interprets a receiver's reflection of it own flags in the Reserved field as an indication that the receiver is ECN capable.
· TCP end-systems
As TCP use Wireless-ECN message to invoke congestion control, whenever a packet loss occurs, only retransmission mechanism is used at that time which does not affect TCP data flow-rate. This is very useful in wireless and mobile networks for the network itself has the function of distinguishing different source of packet losses. By informing the sender with Wireless-ECN packets whenever the congestion loss occurs, packet losses due to transmission errors could not reduce TCP flow control window, which can result in significant performance improvement.
Some important points to note are
  • The TCP congestion window can only be reduced by Wireless-ECN message, which is set due to congestion losses.
  • TCP should react to an ECN at most once per round-trip time. The sender would react to the subsequent ECN only after the outstanding data before the sender entered into loss recovery phase upon receiving the first W-CE bit have all been acknowledged.
  • The bit 5 of the ECN flag has been described as the WECN echo flag. When TCP receives a W-CE data packet at the destination end-system, the TCP data receiver sets the ECN-Echo flag in the TCP header of the subsequent ACK packet.
  • To provide robustness against the possibility of a dropped ACK packet carrying a Wireless-ECN-Echo flag, the TCP receiver must set the WECN-Echo flag in a series of ACK packets. The TCP receiver uses the CWR (Congestion Window Reduced) flag at the bit 8 of reserved field of TCP header to determine when to stop setting the WECN-Echo flag.
  • As only one Wireless-ECN is required to be added in a router, the frequency of Wireless-ECN to be set in a congestion window will not exceed the number of total network nodes where packets must travel across. This could relieve the burden of providing interface facility between IP and TCP at the receiver side.
One disadvantages of Wireless-ECN mechanism as we discussed above is that Wireless-ECN message could be dropped by the network before reaching the TCP source. If the assumed source of data loss is not congestion, loss of Wireless-ECN will result in the failure of congestion control for that flow. A resulting increase in congestion in the network, ultimately resulting in subsequent packets dropped for that flow as the average queue size increased at the congested gateway.
Conclusion
The advantages and disadvantages of this scheme can be summarized as follows
    • Obviously, the source can be sure that congestion has occurred before it reacts to congestion. Hence unnecessary wastage of bandwidth is prevented.
    • As it doesn't use RED, there is no need for the routers to deploy RED.
    • One main problem in this scheme is that it assumes that all routers are WECN capable. This is a very big handicap. If any of the routers donot deploy WECN, this scheme will fail.
    • Though it suggests some remedies, the scheme doesnot guarantee that the source will react to congestion. This is because WECN messages may be lost on the way.
    • Another problem is that routers here does not use RED. Hence we do not get benefits of RED. Congestion is detected only when buffer size is greater than threshold.
    • Hence we see that though the scheme is easy to deploy, it is not very versataile and robust. In my view, the second scheme seems to be better. It is described below.
Scheme2
This is a hybrid of the BECN scheme and the scheme suggested in RFC 2481. Here also the sources react to packet drops only on reciept of ECN messages.
Change in Routers
The algorithm suggested at the routers is as follows:
  • If the incoming message causes average queue size go above maximum threshold or causes buffer overflow, the packet is dropped and an ISQ then sent back to the source of the incoming packet.
  • Otherwise, if the RED probability picks this packet then, if the ECT bit is set and the CE bit is not already marked then CE bit is marked.
  • Else if RED chooses this packet and ECT bit is not set then, send an ISQ back and drop the packet.
And also with ECN mechanism in networks, the frequency of generation of ISQ messages is reduced which result in saved bandwidth. It also avoids implementation complexity.
Changes in end-system
Upon receiving a packet with WECN bit set, the destination will send an ACK with ECN echo bit set. This is same as in the original ECN scheme dscribed in RFC 2481.
In TCP end system, upon identifying the flow causing the congestion, the sender reacts by halving both the congestion window and the slow start threshold value for that flow. The sender does not react to an ISQ message more than once per window. For multiple ECN and ISQ come back from the networks, the source only reacts to the first one in a window.
To prevent unnecessary reduction of window size, as noted previously, the measurement of the maximum window (called
Wmax ) experienced on a given connection is measured. Wmax will change over time, and TCP should track these changes and modify its time-out accordingly. First TCP must measure the Wmax whenever it begins to shun down window by ISQ or ECN. We will use Mw to denote the measured Wmax. Then TCP updates a smoothed Wmax estimator using the formula

Wmax = a * Wmax + (1-a) * Mw

Here 'a' is a smoothing factor with a recommended value of 0.9. This smoothed
Wmax is updated every time a new measurement is made. Ninety percent of each new estimate is from the previous estimate and ten percent is from the new measurement by the first receipt of ISQ or ECN in a widow cycle.
Given this smoothed estimator, which changes as the Wmax changes, the threshold (Tl) to determine when packet losses should call the congestion control is set to
 
Tl =B* Wmax

Here B is a delay variance factor with a recommended value of 1.5. Since in congestion avoidance phase, the window increasing rate is linearly, only one packet is increased after a RTT, so 1.5 value of threshold is enough to avoid unnecessary window reduction bypacket losses. The ISQ or ECN gives the initialized value of Wmax after the measure of the first reduction of window by either of them.
Conclusion
The advantages and disadvantages of the scheme can be summarized as
    • The scheme is very effective in decreasing the amount of Source Quench messages sent as the routers send Source Quench messages are sent only on dropping a packet. This will be very low especially when RED is deployed (only 1%-5%).
    • The amount of work in deploying WECN is very low as RED is already installed in several routers. Also ICMP is mandatory to be deployed in all routers.
    • Moreover, it makes effective use of the parameter Wmax, so that even when WECN packets or ISQs are lost, congestion control can be done effectively.
    • It also has the problem that routers have to be WECN capable.
    • It also uses Source Quench messages, which increases traffic on the reverse path, which is an obvious disadvantage.
    • It can take long to react to congestion if the ISQs or WECN packets are lost.
Performance of ECN
ECN has been implemented on several simulators. It was simulated first simulated over the ns simulator. It has also been implemented over IPv6 in UCLA. Some people at Nortel Networks have implemented ECN over Linux Ipv4. In this paper, we will discuss the results of these experiments.

Summary of Simulation Results
·  Fairness.
    • Also it was found out that fairness in situations where all flows were ECN capable was also close to 1. This is expected since RED marks packets probabilistically.
    • When experiments were carried out using both ECN and non-ECN flows, it was found out that the number of packets marked with ECN flows were almost equal to number of packets dropped for non-ECN flows. This is because RED marks packets probabilistically. However, ECN flows would still get some benefits as they react to congestion fast
    • Hence, we can conclude that ECN brings no unfairness in the networks.
·  Throughput
Bulk data connections
 
·  We model the bulk data as large amount of data being transferred as one way traffic from source to destination. Here, we compare RED without ECN with RED with ECN traffic. The performance of ECN for bulk data is shown in figures below.
We can conclude from the figures that
    • If the congestion levels are low, then ECN provides no obvious advantage over nonECN packets. This is expected, as there are no packet marks and drops at low loads.
    • As congestion level increases, the relative advantage of ECN over nonECN increases but absolute advantage decreases (expected as most flows are competing for one resource).
    • For the same traffic, when the probability was varied, the relative advantage of ECN increases with increasing maxp. This may be because as maxp increases, the number of packets marked increases. Hence source will react faster to congestion. However, in non-ECN traffic, the packets are dropped. Hence, the number of dropped packets increases. Hence goodput will decrease as number of retransmitted packets decrease.
    • There were hardly any retransmissions for ECN traffic. The only exception was when maxp was low and congestion levels were high.
    • In non-ECN traffic, there were hardly any timeouts. This shows the effectiveness of Fast Retransmit/Fast Recovery algorithms in case of bulk traffic. Here window is halved and hence reaction to congestion is same as that of ECN. But we have to retransmit the packet which results in some delay in case of nonECN traffic.The main benefit of ECN is less time in recovering from congestion(nonECN traffic retransmits the data).
Transactional transfe
We model transactional traffic as sending a small request and getting a response from the server before sending the next request. As an example, suppose we want to retrieve a file of size 5-20 KB and then the server responds by sending back the file. It is similar to http traffic.
    • As congestion level increases, the relative advantage of ECN over non-ECN increases but absolute advantage decreases. This is same as bulk transfer and is expected.
    • As above, when the probability was varied, the relative advantage of ECN increases with increasing maxp.
    • As the transactional data size increases, ECN's relative advantage decreases. Hence TCP with ECN has a huge advantage when size of data transactions are small.
·  Delay
    • It is seen that ECN effectively reduces packet delay, especially for interactive traffic like telnet.
    • Without ECN, the network traffic is significantly affected by clock granularity, by the level of congestion, and by whether the RED gateway is using a dropping policy that is sensitive to packet size.
    • With coarse timer (the granularity of the TCP clock is high), it has been shown that ECN significantly decreases delay. This may be because a number of links may wait for timer to expire, resulting in idle link time. This can be mitigated by ECN because here packets are not dropped, but they are marked. Hence they can know of congestion faster.
    • Thus ECN is very effective for interactive traffic like telnet.
Conclusion
We have seen the main ECN proposal and some variants suggested to it. We had then seen an alternate proposal using the ICMP Source Quench messages. We have also seen a proposal to modify ECN for MPLS domains and also wireless networks. However, all other proposals are experimental. Hence we are going to discuss the pros and cons of the ECN proposal in RFC 2481.
Deploying ECN is not very easy. This is because we have to change both TCP and IP headers. Changes have also to be made in the end-systems. Hence what is need to deploy ECN.
The advantages of ECN are summarized below:
    • There are less packet drops in ECN as the RED routers mark the packets instead of marking. Hence there is less retransmission and hence there is less traffic in the network. There is also an improvement in goodput(effective data rate seen by sender).
    • This also implies that ECN will be useful in situations where we need reliability, but we want to avoid retransmissions.
    • ECN avoids timeouts by getting faster notification ( this as opposed to Fast Retransmit/Recovery or timeouts in traditional TCPs). This implies greater time spent in error recovery. This also improves goodput.
    • We have seen that ECN works very well in case the traffic is transactional and of smaller size. This is a characteristic of HTTP traffic, and hence it will work well in the Internet.
    • It is very useful in networks where effectiveness of TCP retransmit timers is limited by coarseness of the clock. This is especially true in LANs where the RTT is low.
Some disadvantages of ECN are
    • One obvious disadvantage is that a non-compliant user can take undue advantage of ECN to get more bandwidth. This is obviously a problem, but non-compliant nodes are a problem in the Internet in general.
    • If the packet with the ECN echo bit set is lost, then ECN behaves like normal TCP. However, the source sends multiple packets with ECN-echo field set. Then there is high probability that packets will be sent by
    • Another problem is that it is not guaranteed to be compliant with previous uses of the TOS headers. This may cause some problems. There has to be several changes made in IP to adapt to ECN. Here, incremental deployment is a plus point.

  • Hence we can conclude by saying that deploying ECN can effectively help in congestion control in the Internet, even though it has few problems. 

Leave a Reply

Subscribe to Posts | Subscribe to Comments

Blog Archive

- Copyright © Seminar Sparkz Inc -- Powered by Semianr Sparkz Inc - Designed by Shaik Chand -