Each socket in TIME_WAIT
consumes some memory in the kernel, usually somewhat less than an ESTABLISHED
socket yet still significant. A sufficiently large number could exhaust kernel memory, or at least degrade performance because that memory could be used for other purposes. TIME_WAIT
sockets do not hold open file descriptors (assuming they have been closed properly), so you should not need to worry about a “too many open files” error.
The socket also ties up that particular src
/dst
IP address and port so it cannot be reused for the duration of the TIME_WAIT
interval. (This is the intended purpose of the TIME_WAIT
state.) Tying up the port is not usually an issue unless you need to reconnect a with the same port pair. Most often one side will use an ephemeral port, with only one side anchored to a well known port. However, a very large number of TIME_WAIT
sockets can exhaust the ephemeral port space if you are repeatedly and frequently connecting between the same two IP addresses. Note this only affects this particular IP address pair, and will not affect establishment of connections with other hosts.