This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ets TCP resend the final ACK in case this ACK is lost (in which case the other end file:///D|/Documents%20and%20Settings/bigini/Docu...homenet2run/tcpip/tcp-ip-illustrated/tcp_conn.htm (14 of 37) [12/09/2001 14.47.16] Chapter 18. TCP Connection Establishment and Termination will time out and retransmit its final FIN).
Another effect of this 2MSL wait is that while the TCP connection is in the 2MSL wait, the
socket pair defining that connection (client IP address, client port number, server IP address,
and server port number) cannot be reused. That connection can only be reused when the 2MSL
wait is over.
Unfortunately most implementations (i.e., the Berkeley-derived ones) impose a more stringent
constraint. By default a local port number cannot be reused while that port number is the local
port number of a socket pair that is in the 2MSL wait. We'll see examples of this common
Some implementations and APIs provide a way to bypass this restriction. With the sockets API, the
SO_REUSEADDR socket option can be specified. It lets the caller assign itself a local port number that's in the
2MSL wait, but we'll see that the rules of TCP still prevent this port number from being part of a connection
that is in the 2MSL wait. Any delayed segments that arrive for a connection while it is in the 2MSL wait are discarded.
Since the connection defined by the socket pair in the 2MSL wait cannot be reused during this
time period, when we do establish a valid connection we know that delayed segments from an
earlier incarnation of this connection cannot be misinterpreted as being part of the new
connection. (A connection is defined by a socket pair. New instances of a connection are called
incarnations of that connection.)
As we said with Figure 18.13, it is normally the client that does the active close and enters the
TIME_WAIT state. The server usually does the passive close, and does not go through the
TIME_WAIT state. The implication is that if we terminate a client, and restart the same client
immediately, that new client...
View Full Document
This test prep was uploaded on 04/04/2014 for the course ECE EL5373 taught by Professor Guoyang during the Spring '12 term at NYU Poly.
- Spring '12