產生復位報文的3種情況----《Linux高性能服務器編程》讀書筆記

在某些特殊條件下, TCP連接的一端會向另一端發送攜帶RST標誌的報文段,即復位報文。

產生RST的三種情況:

1)訪問不存在的端口.

當客戶端程序連接一個不存在的端口時,目標主機會發送一個RST報文,RST報文接收通告窗口大小爲0,客戶端不能應答該報文,應該關閉連接或從新連接。當服務端某端口處於TIME_WAIT狀態時,客戶端嘗試連接時也會受到RST.

2) 異常終止連接

TCP提供異常終止一個連接的方法,即給對方發送一個RST報文,發送RST報文後,發送端排隊等待發送的數據都將被丟棄。

3)處理半打開連接

半打開連接:比如服務器晚(或客戶端)關閉或異常終止連接了, 對端沒有收到結束報文(如網絡故障),此時客戶端(或服務端)還維持了原來的連接,但對端已經沒有原連接的信息了,這種狀態稱爲半打開。

如果客戶端(或服務端)往處於半打開狀態的連接寫入數據,對方將回應一個復位報文。

發佈了20 篇原創文章 · 獲贊 20 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章