Homework 7 - Chapter 6
Due: Friday June 7, 2013 at 11:55pm
Note: The last day to turn this in late will be Sunday June 9th at
midnight so that the solution can be posted before the review on Monday
June 10th.
Each question is worth 2 points.
- Why is it important that the port number used by the client in connect()
be the same port number used by the server in listen()?
- Why is it important that the maximum packet lifetime for the sequence
number selection algorithm exceed both the lifetime of a packet and its
acknowledgements?
- Why is a three-way handshake required to properly establish the channel?
Give a reason why less than a three-way handshake would not be sufficient.
- UDP provides connectionless communication over the IP subnet. Why would
raw IP packets be insufficient for this purpose?
- Why were port numbers invented for transport layer addressing? Why wasn't
a pre-existing identifier like process IDs or file descriptors used?
- Describe a condition under which TCP packets could arrive out of order.
Consider the nature of the IP subnet when answering.
- Can more than one connection exist between a given src IP, src port,
dest IP, dest port tuple? Explain why or why not.
- A common issue in certain systems is that a connection gets stuck in the
FIN_WAIT2 stage of the TCP finite state machine (Figure 6.33 on page 543).
How is this state entered and why is it not exited?
- Under what network conditions would Nagle's algorithm perform poorly?
Consider a user's tolerance for lag when on a character-oriented connection.
- When would it be more advantageous to use UDP instead of TCP? Describe a
scenario where UDP would be preferred.