Durch Ziehen des Netzwerkkabels wird die TCP-Verbindung (1) nicht unterbrochen, obwohl dadurch die Kommunikation gestört wird. Sie können das Kabel wieder anschließen und sobald die IP-Verbindung hergestellt ist, werden alle Rückdaten verschoben. Dies macht TCP auch in Mobilfunknetzen zuverlässig.
Wenn TCP Daten sendet, erwartet es eine ACK als Antwort. Wenn keiner innerhalb einiger Zeit kommt, überträgt er die Daten erneut und wartet erneut. Die Zeit, die zwischen Übertragungen gewartet wird, steigt im Allgemeinen exponentiell an.
Nach einer gewissen Anzahl von Übertragungswiederholungen oder einer gewissen Gesamtzeit ohne ACK wird TCP die Verbindung als "unterbrochen" betrachten. Wie oft oder wie lange es von Ihrem Betriebssystem und seiner Konfiguration abhängt, dauert in der Regel mehrere Minuten.
Von Linux tcp.7 man page:
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.
Dies ist wahrscheinlich der Wert, den Sie anpassen möchten, werden sich ändern, wie lange es, wenn Ihre Verbindung verschwunden ist zu erkennen, nimmt.
(1) Es gibt Ausnahmen. Wenn das Betriebssystem bemerkt, dass ein Kabel entfernt wurde, könnte es die oberen Schichten darüber informieren, dass alle Verbindungen als "kaputt" betrachtet werden sollten.
Vielleicht [this] (http://stackoverflow.com/questions/5907527/application-control-of-tcp-retransmission-on-linux) gibt Antwort für Sie. – SKi