Explain the TIME_WAIT state.
Answer / chaitanya
Remember that TCP guarantees all data transmitted will be delivered, if at all possible. When you close a socket, the server goes into a TIME_WAIT state, just to be really really sure that all the data has gone through. When a socket is closed, both sides agree by sending messages to each other that they will send no more data. This, it seemed to me was good enough, and after the handshaking is done, the socket should be closed. The problem is two-fold. First, there is no way to be sure that the last ack was communicated successfully. Second, there may be "wandering duplicates" left on the net that must be dealt with if they are delivered.
| Is This Answer Correct ? | 1 Yes | 0 No |
What is the difference between a socket and a port?
What's the difference between impact sockets and regular sockets?
What is Mac, and how is it different from PC? Which one is better for professional users, and why
1 Answers Evolving Systems, IBM,
What is the difference between SO_REUSEADDR and SO_REUSEPORT?
What is a deep well socket?
Can multiple clients connect to same socket?
of the socket? Does doing a connect() call affect the receive behaviour?
When will my application receive SIGPIPE?
How can I set the timeout for the connect() system call?
What is difference between socket () and serversocket () class?
How do unix sockets work?
What is sae socket?