Wie oft wird die TCP-Rückübertragung
Im Falle einer halb offenen Verbindung, wobei der server Abstürzen (keine FIN oder RESET gesendet-client) und der client versucht, zu senden einige Daten auf dieser Verbindung abbricht, jedes TCP-segment gehen wird un-ACKED. TCP versucht, um erneut die Pakete nach einiger timeout. Wie oft wird TCP versuchen Sie erneut, bevor er sich und was passiert in diesem Fall? Wie geht es dem Betriebssystem mitteilen, dass der host nicht erreichbar ist? Wo ist dies festgelegt in den TCP RFC?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der server Programm abstürzt, wird der kernel sauber bis alle offenen sockets angemessen. (Gut, geeignet ab einer TCP-Sicht; es könnte gegen die application-layer-Protokoll, aber Anwendungen sollten bereit sein, für dieses Ereignis.)
Wenn der server kernel stürzt ab und kommt nicht wieder hoch, die Anzahl und den Zeitpunkt der Wiederholungen hängt davon ab, ob der socket verbunden waren oder noch nicht:
(Aus
tcp(7)
.)Wenn der server kernel abstürzt und hat kommen zurück, es wird nicht das wissen über die Steckdosen, und wird
RST
diese follow-on-Pakete, sodass Fehler viel schneller.Wenn jeder single-point-of-failure-Router auf dem Weg zum Absturz, wenn Sie kommen zurück bis ziemlich schnell, kann die Verbindung weiter arbeiten. Dies würde erfordern, dass firewalls und Router sein, die staatenlos sind oder wenn Sie stateful, haben die Regelsätze, die es ermöglichen, bereits bestehende verbindungen weiter ausgeführt werden. (Potentiell unsicher, die verschiedenen firewall-admins haben unterschiedliche Richtlinien darüber.)
Werden die Fehler an das Programm zurückgegeben mit
errno
eingestelltECONNRESET
(zumindest fürsend(2)
).