TCP終止連線(TCP四次揮手)

2021-08-19 10:23:02 字數 491 閱讀 5841

tcp連線關閉時的分組交換.png

類似syn,乙個fin也佔據乙個位元組的序列號空間。因此,每個fin的ack確認號就是這個fin的序列號加1.

在步驟2於步驟3之間,從執行被動關閉一端到執行主動關閉一端流動資料是可能的。這稱為半關閉(half-close)

當套接字被關閉時,其所在端tcp各自傳送了乙個fin。我們在圖中指出,這是由應用程序呼叫close而發生的,不過需認識到,當乙個unix程序無論自願地(呼叫exit或從main函式返回)還是非自願地(收到乙個終止本程序的訊號)終止時,所有開啟的描述符都被關閉,這也導致仍然開啟的任何tcp連線也發生乙個fin。

上圖展示了客戶執行主動關閉的情形,不過我們指出,無論是客戶還是伺服器,任何一端都可以執行主動關閉。通常情況是客戶執行主動關閉,但是某些協議(譬如值得注意的http/1.0)卻由伺服器執行主動關閉。

tcp 四次揮手 TCP四次揮手

tcp斷開連線的過程 客戶端傳送fin報文,表明客戶端將不在傳送資料。具體過程 把fin標誌位改為1,序號seq u,之前傳送的資料加1,這裡規定即使不攜帶資料序號也要 1。該過程中客戶端通過close系統呼叫從established狀態進入fin wait 1狀態。第二次揮手 服務端收到客戶端發來...

tcp斷開連線四次揮手

tcp斷開連線是經歷了四次揮手的過程 1 客戶端主動斷開連線向服務端傳送 請求標誌位 fin 連線序號 seq 2 服務端收到請求後向客戶端傳送 確認請求標誌位 ack 確認連線序號 ack 3 服務端還會向客戶端傳送 請求標誌位 fin 連線序號 seq 4 客戶端在收到服務端資料後想服務端傳送 ...

TCP四次揮手

純給自己看的 發起關閉的一方是客戶端,被動關閉的一方是伺服器。1 客戶端a傳送乙個fin 1,用來關閉客戶a到伺服器b的資料傳送。圖上畫的對,還有乙個seq n 2 伺服器b收到這個fin,它發回乙個ack 1,確認序號ack為收到的序號加1。3 伺服器b關閉與客戶端a的連線,傳送乙個fin 1給客...