Нет явного ограничения времени жизни соединения (по крайней мере, в TCP). Соединение длится до одного из следующих действий:
- Любая конечная точка (приложение) отключается (фактически соединение может оставаться в полудуплексном режиме)
- Промежуточный объект решает разорвать соединение (например, брандмауэр, NAT и т. Д.)
В реальных интернет-соединениях обычно через некоторое время принудительно отключаются, особенно если данные не отправляются. Кроме того, в зависимости от протокола некоторые серверы отказываются держать соединение открытым в течение неопределенного времени (например, http-серверы).
В заключение: нет общего способа обнаружить время жизни соединения. Вы полностью в руках брандмауэров, прокси (если применимо) и имени сервера.
Периодическая отправка некоторых данных (например, сообщений поддержки активности) обычно помогает. Это также помогает обнаружить, что соединение было молча разорвано.