Homework 6 - Chapter 6
Due: Friday November 14, 2014 at 11:55pm
- 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.