Как долго может оставаться открытым TCP-соединение?

Рассмотрим такой сценарий, есть client-a а также server-b, server-b TCP keepalive отключен. И сервер-b не имеет никакой прикладной логики для проверки, открыто ли соединение TCP. client-a устанавливает TCP-соединение с server-b, Там нет передачи данных между client-a а также server-b после этого. В таком случае, сервер когда-нибудь закроет свободное соединение? В противном случае TCP-соединение на сервере будет оставаться открытым всегда.

После прочтения Longest Open TCP Connection? Я думаю, что такое TCP-соединение останется открытым навсегда. Правильно ли мое предположение?

1 ответ

Решение

В самом TCP-соединении нет ограничений. Клиент и сервер теоретически могут оставаться на связи годами, не обмениваясь никакими данными и не передавая пакетов. Проблемы обычно возникают из-за промежуточных ящиков, таких как NAT-маршрутизатор или брандмауэры, которые поддерживают состояние и выходят из состояния после некоторого бездействия. Любые новые пакеты, отправленные в соединении, не могут быть доставлены, потому что в промежуточном ящике больше не существует связанного состояния.

Другие вопросы по тегам