Introduction to Data Communication
2008 
Exercises 4 (10.4.2008) 
	
- Stop and wait protocol  rdt3.0
-  Show with a diagram, how the rdt3.0 protocol behaves when first a packet is lost and  after that the acknowledgement of the resent packet is also lost.
- 
Why is it enough to have one bit sequence number (only using numbers 0 and 1)
in stop and wait  protocol?
Simulate the protocol  and  based on that reach conglusion that no more numbers are needed to distinquish the messages sent, even when the messages sent can get lost or corrupted.
Can messages that are delayed for a long time cause problems?
- 
Is it also necessary to add numbers to ACK and NAK acknowledgements in the "stop-and-wait" protocol? Simulate
the protocol to find out situations where unnumbered ACK or NAK can cause
problems or show that it is not possible  for that kind of situations to occur.
- 
Does rdt3.0 protocol work  correctly in the situation where the link connection can reorder the messages sent?
Give reasons to your answer by either  a diagram showing that the protocol is not working correctly ie. providing  reliable data transfer or by explaining why
this  is not possible. 
 
 
- 
 The window size and the amount of sequence numbers used
- 
Show that when using Go-back N  with 8 sequence numbers (numbers 0,1,..., 7) the window size  8 causes problems. If the window size is 7, there are no such problems.
- 
Show that when using Selective Repeat with 8 sequence numbers (numbers 0,1,..., 7) already the window size  5 causes problems.
 
  
-  The operation of sliding window protocols
 Suppose an error burst destroys frame D(n+1), the acknowledgement  of the
previous frame (D(n))  and also the next  acknowlegdement sent.
 Simulate by showing a diagram the operation of
- 
 the  Go-Back -N protocol, 
- 
the Selective Repeat protocol. 
- 
Would, in this situation,  the negative acknowledgement NAK  be useful
for either of these protocols? Could there be any disadvantages when using
NAK?
- 
Is it necessary to have a timer in both these protocols?
 
 
-  TCP connection establisment, segment numbering and TCP flow control
- 
Show the connection establishment segments sent, when  host A chooses to start segment numbering from 56 and B  from the number 182.
-  
Show the contents of the TCP segment fields "Sequence number" and "Acknowledge number"  in the situation where A first sends to B  a segment of  1000 bytes. B acknowledges this and sends to A  a segment of 800 bytes, that A acknowledges.
- Hosts A and B are directly connected with a 200 Mbps link.  There is one TCP connection between the two hosts, and host A is sending to host B an enormous file over this connection. Host A can send application data into the linki  at 100 Mbps, but  host B can read out of its  TCP receive buffer at a maximum  rat of 50 Mbps. Desrcibe the  effect of TCP flow control.
 
 
-  TCP congestion  control
- 
Why is slow start used? What are the advantages? Can it have disadvantages?  If
yes, then in what situations? What is meant by  congestion avoidance?
- 
Consider the effect of using slow start on a line with 200-msec round-trip 
time and no congestion, so the acknowledgements arrive in time.
The receive window is 18 KB and the maximum segment size is 2 KB.
The threshold value at first is 30 KB. How long does it take before the 
first full window can be sent?  The transmission rate of the link is so high that the sending time of the segments does not matter.
- 
After having sent the full reveiver window of segments, the sender does not 
receive the acknowledgement in time, and the retransmission timer times out. 
How does the sender now continue to send after that? Does it matter if the TCP version used is TCP Tahoe or TCP Reno?
- 
Why, in the TCP congestion control, it is so important to adjust the retransmission timer properly?
How is the  proper value for the timer is achieved? What happens in the congestion control 
if the retransmission timer is set to
a  value i) too small or ii) too large?
 
 
- Transport layer in function 
 A student is  surfing the Web and clicks opens an URL link. The result is that after a short while his computer screen shows the corresponding page of this URL.
 Explain what  has happened on the transport  layer. What transport layer protocols have been used and for what purpose? Show using a diagram, what transport layer segments have been exchanged between different systems. Explain also the contents of those segments in principle.