- Back to Home »
- Explicit Congestion Notificaton
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
There are quite a few mechanisms used historically for ECN. Some of them are
- 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.
- 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.
- A range of ECN based ratebased 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:
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.
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.
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.
- 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.
- 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
- 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 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:
- 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.
- 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.
- 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.
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
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.
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.
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.