Предположим, что есть клиент, который делает много короткоживущих подключений к серверу.
Если клиент закрывает соединение, в состоянии TIME_WAIT на стороне клиента будет много портов. Поскольку у клиента заканчиваются локальные порты, становится невозможным быстро выполнить новую попытку подключения.
Если сервер закрывает соединение, я увижу много TIME_WAIT на стороне сервера. Однако это наносит какой-то вред? Клиент (или другие клиенты) может продолжать попытки подключения, так как он никогда не заканчивается из локальных портов, а количество состояний TIME_WAIT будет возрастать на стороне сервера. Что происходит в конце концов? Что-то плохое происходит? (замедление, сбой, сброшенные соединения и т.д.)
Обратите внимание, что мой вопрос не "Какова цель TIME_WAIT?" но "Что произойдет, если на сервере столько состояний TIME_WAIT?" Я уже знаю, что происходит, когда соединение закрывается в TCP/IP и почему требуется состояние TIME_WAIT. Я не пытаюсь это сделать, но просто хочу знать, в чем проблема с ним.
Проще говоря, скажем netstat -nat | grep :8080 | grep TIME_WAIT | wc -l печатает 100000. Что случилось бы? Снижается ли сеть сети O/S? Ошибка "Слишком много открытых файлов"? Или просто не о чем беспокоиться?
