Предполагает ли RFC websocket, что сервер должен перейти в состояние ожидания времени?

#websocket #tcp #time-wait

Вопрос:

в разделе 5.5.1 в rfc6455 https://datatracker.ietf.org/doc/html/rfc6455#section-5.5.1, там написано:

 The server MUST close the underlying TCP connection immediately;
the client SHOULD wait for the server to close the connection
 

Означает ли это, что сервер должен инициировать закрытие TCP-соединения (сначала отправив пакет FIN) и, наконец, ввести состояние «ВРЕМЯ ОЖИДАНИЯ»? Но почему он так устроен? Я думал, что ОЖИДАНИЕ клиента всегда было лучшей практикой!

Комментарии:

1. TIME_WAIT влияет на сервер только для входящих сообщений меньше, чем на исходящий клиент или сервер входящий исходящий, см.: TIME_WAIT и его последствия для протоколов и масштабируемых клиент-серверных систем

2. @RemyLebeau Спасибо за ссылку, звучит разумно. Хотя я все еще чувствую, что потрачу некоторый ресурс на сервере, который более ценен, чем на клиентах. И я думаю, что TIME_WAIT не должен препятствовать использованию порта для подключения одноранговых узлов, отличных от только что закрытого, хотя я слышал, что стеки TCP часто неправильно реализуются в этом. Кстати, я хотел бы отметить ваш комментарий как ответ, но это запрещено.