Homework 6 - Chapter 6
Due: Friday March 12, 2010 at 5:00pm
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 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.
- 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?