|
|
Link where I got this data from: click here
TCP traffic has been (and probably will still be) a dominant portion of Internet traffic for the forseeable future (because network applications that use UDP is very rare - only network research uses UDP). |
Just imagine that for every dollar you make, you had to pay 99.875 cents in taxes.... and you will realise how bad this situation is...
/home/cheung/NS/bin/nam NoSlowStart.nam
|
This situation will result in congestion:
(TCP uses
"ACK n" to mean:
all packets
upto but
not including n
are received)
(you have to be very lucky to find an empty buffer in the buffer space - just try finding a packing space at 10 AM in Emory and you will understand what I mean by lucky - someone has to leave before you get a space !!!):
And by the way:
|
|
Send window = 10 Recevier buffers 10 packets Sender: 1 2 3 4 5 6 7 8 9 10 Receiver: Sends ACK 1 Buffers: 3 5 7 9 Sender times out: 2 3 4 5 6 7 8 9 10 11 Receiver: Sends ACK 1 Buffers: 3 4 5 7 9 11 Sender times out: 2 3 4 5 6 7 8 9 10 11 Receiver: Sends ACK 5 Buffers: 7 9 11 And so on... |
(If the first missing packet in the retransmission is dropped, then the sender will retransmit the whole window of packets without making any progress !!!)
They both recognize that the solution to the congestion problem was:
The source must be aware of the current state of the network path and adjust its transmission rate accordingly. |
The difference was that Jain (working at DEC) has been using DEC's network architecture and protocol (DECNET) and studied the congestion problem very thoroughly from a theoretic point of view as he experimented and developed many different ways to allow the source to become aware:
On the other hand, Jacobson has been working with the IP protocol and studied the congestion problem in from a practical point of view. His initial version of the solution for the TCP congestion control (See: click here) was suboptimal and - very soon after Jacobson's initial version - later versions of TCP congestion avoidance included ideas from Jain.
NOTE: TCP is not perfectly fair. It is biased towards connections between source/destination pairs with small RTT (these connections get a relatively larger share of the available bandwidth)
|
|