什麼是TCP連線釋放?


TCP連線是全雙工連線。為了理解連線釋放,我們可以將其視為一對單工連線。然後,我們可以想象每個單工連線都是獨立釋放的。釋放TCP連線是對稱的。任何埠都可以傳送帶有FIN位的TCP段,這意味著當FIN在該方向被確認時,它沒有更多資訊要傳送,該方向將關閉。但是,資料仍然可以繼續在另一個方向持續流動。

如果在兩次最大分組壽命內沒有收到FIN響應,則FIN的發起方將釋放連線。接收方最終會注意到它不再接收資料,並且也會超時。通常,釋放連線需要四個TCP段,即每個方向一個FIN和一個ACK。

連線建立和釋放的有限狀態機

可以使用有限狀態機來表示TCP連線建立和釋放所涉及的步驟。此類狀態機中的11個狀態在表中給出。

TCP連線的不同狀態

下表列出了TCP連線的不同狀態:

狀態
描述
          關閉(Closed)
沒有活動的或未決的連線。
          監聽(Listen)
伺服器正在等待傳入連線。
     SYN已收到(SYN Received)
已收到連線請求。等待ACK。
     SYN已傳送(SYN SENT)
應用程式已啟動開啟連線。
     已建立(Established)
正常的速率資料傳輸。
     FIN等待1(FIN wait-1)
應用程式傳送方已完成。
     FIN等待2(FIN wait-2)
另一方已同意等待所有分組過期。
     計時等待(Timed Wait)
等待所有分組過期。
     關閉(Closing)
雙方都同時嘗試關閉。
     關閉等待(Close wait)
另一方已提出釋放。
     最後ACK(Last ACK)
等待先前關閉的fin的ack。

在上表所示的11個狀態中,某些特定事件是合法的。對於每個事件,它可能會採取某些操作,但如果發生其他事件,則會報告錯誤。有限狀態機如圖所示。(此處應插入狀態機圖)

更新於:2021年5月5日

5K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.