Give an example of a case where a two-way handshake to establish a connection could leave one side of the connection live while the other side does not believe there is a connection.
Try an answer before revealing the guidance below.
Key Concepts
- Delayed duplicate request
- Retransmission
- Half-open connection
- Three-way handshake
Answer Approach
- Let the client’s connection request be delayed in the network.
- Have the client time out, retransmit, use the connection, and close it.
- Follow what the server does when the old, delayed request finally arrives.
Full Answer
Answer status: Draft answer (unofficial). Revision notes, not an official marking scheme.
The client sends a connection request, which is delayed in the network, so the client times out and resends it. The server accepts the retransmitted request, the two sides exchange data, and the client closes the connection. The old delayed request then arrives at the server. With a two-way handshake, the server simply accepts it and replies, so it opens a new connection and waits for data (a half-open connection), while the client has no connection and ignores the reply. A three-way handshake prevents this because the server waits for the client to confirm the server’s chosen sequence number.
Shortcuts: K concepts · A approach · F answer · R reviewed · B bookmark · ← / → previous / next