在某些特殊條件下, TCP連接的一端會向另一端發送攜帶RST標誌的報文段,即復位報文。
產生RST的三種情況:
1)訪問不存在的端口.
當客戶端程序連接一個不存在的端口時,目標主機會發送一個RST報文,RST報文接收通告窗口大小爲0,客戶端不能應答該報文,應該關閉連接或從新連接。當服務端某端口處於TIME_WAIT狀態時,客戶端嘗試連接時也會受到RST.
2) 異常終止連接
TCP提供異常終止一個連接的方法,即給對方發送一個RST報文,發送RST報文後,發送端排隊等待發送的數據都將被丟棄。
3)處理半打開連接
半打開連接:比如服務器晚(或客戶端)關閉或異常終止連接了, 對端沒有收到結束報文(如網絡故障),此時客戶端(或服務端)還維持了原來的連接,但對端已經沒有原連接的信息了,這種狀態稱爲半打開。
如果客戶端(或服務端)往處於半打開狀態的連接寫入數據,對方將回應一個復位報文。