Ответ 1
Вытягивание сетевого кабеля не приведет к поломке TCP-соединения (1), хотя оно нарушит связь. Вы можете снова подключить кабель и установить IP-соединение, все обратные данные будут перемещаться. Это то, что делает TCP надежным даже в сотовых сетях.
Когда TCP отправляет данные, он ожидает ответа ACK. Если ни один не приходит в течение некоторого времени, он повторно передает данные и снова ждет. Время ожидания между передачами обычно увеличивается экспоненциально.
После некоторого количества повторных передач или некоторого количества общего времени без ACK, TCP будет считать соединение "сломанным". Сколько раз или сколько времени зависит от вашей ОС и ее конфигурации, но она обычно отключается в течение нескольких минут.
Из Linux справочная страница tcp.7:
tcp_retries2 (integer; default: 15; since Linux 2.2)
The maximum number of times a TCP packet is retransmitted in
established state before giving up. The default value is 15, which
corresponds to a duration of approximately between 13 to 30 minutes,
depending on the retransmission timeout. The RFC 1122 specified
minimum limit of 100 seconds is typically deemed too short.
Вероятно, это значение, которое вы хотите настроить, чтобы изменить, сколько времени потребуется, чтобы определить, исчезло ли ваше соединение.
(1) Есть исключения из этого. Операционная система, заметив удаляемый кабель, может уведомить верхние слои о том, что все соединения должны считаться "сломанными".