TIME_WAIT означает, что соединение закрыто, но в случае, если некоторые пакеты все еще плавают вокруг ресурсов, они сохраняются некоторое время. Это необходимо из-за дрожания задержки между двумя компьютерами. Джиттер означает, что время, необходимое для перехода с одного компьютера на другой, не является постоянным. Таким образом, вы можете получить закрытый пакет, а затем некоторые другие пакеты. Если операционная система немедленно повторно использовала комбинацию src IP, src port, dst IP, dst port, то эти другие пакеты могут привести к путанице (похоже на повреждение пакетов / атаку подделкой). Поэтому операционная система некоторое время находится на ресурсах.
Я не уверен, как, но я понимаю, как долго может настраиваться операционная система в TIME_WAIT. Что касается того, что кажется вашим всеобъемлющим вопросом, да, это может быть проблемой, если ваш сайт имеет большой объем, потому что он потребляет ресурсы. Кроме того, когда вы говорите, что «используете так много портов», вы используете на клиенте только несколько портов. Каждый раз, когда вы устанавливаете новое соединение, ваш клиент использует новый порт для номера порта на стороне клиента, в конце концов, если вы сделаете достаточно соединений, он будет повторно использовать ранее использованные номера портов. Это на самом деле не проблема на стороне клиента, проблема возникнет на сервере. Просто чтобы прояснить, дело не в том, «сколько портов», а в том, сколько соединений (то есть, количество строк, где локальный адрес соответствует вашему серверному приложению).