與建立連線的「三次握手」類似,斷開乙個tcp連線則需要「四次握手」。
第一次揮手:主動關閉方傳送乙個fin,用來關閉主動方到被動關閉方的資料傳送,也就是主動關閉方告訴被動關閉方:我已經不 會再給你發資料了(當然,在fin包之前傳送出去的資料,如果沒有收到對應的ack確認報文,主動關閉方依然會重發這些資料),但是,此時主動關閉方還可 以接受資料。
第二次揮手:被動關閉方收到fin包後,傳送乙個ack給對方,確認序號為收到序號+1(與syn相同,乙個fin占用乙個序號)。
第三次揮手:被動關閉方傳送乙個fin,用來關閉被動關閉方到主動關閉方的資料傳送,也就是告訴主動關閉方,我的資料也傳送完了,不會再給你發資料了。
第四次揮手:主動關閉方收到fin後,傳送乙個ack給被動關閉方,確認序號為收到序號+1,至此,完成四次揮手。
因為tcp有個半關閉狀態,假設a.b要釋放連線,那麼a傳送乙個釋放連線報文給b,b收到後傳送確認,這個時候a不發資料,但是b如果發資料a還是要接受,這叫半關閉。然後b還要發給a連線釋放報文,然後a發確認,所以是4次。
為什麼TCP3次握手,4次揮手?
我是否可以寫 我是否可以讀 從上圖來看 1 2 完成之後 client 可以確認自己是可以寫的,也可以確認自己是可以讀的,但是server 只能確認自己是可以讀的,server並不知道它是可以寫的,接下來第3步完成之後,server就知道他自己的是可以寫成功的 client 傳送 fin 到serv...
tcp斷開連線為什麼是4次揮手
這是乙個系列故事,沒有讀過上篇的不妨看看 tcp建立連線為什麼是3次握手?面試官 說說tcp四次揮手的過程酋長從宮中回來不久,國王就頒布了新的tcp協議法案,這次修正版的tcp協議執行的很好,舉國上下一片喜悅 經過上次的聊天後,司馬和上官成為了好朋友,今天,司馬又給上官發訊息了,但是這次,兩人建立連...
TCP為什麼需要3次握手與4次揮手
為什麼需要 三次握手 在謝希仁著 計算機網路 第四版中講 三次握手 的目的是 為了防止已失效的連線請求報文段突然又傳送到了服務端,因而產生錯誤 在另一部經典的 計算機網路 一書中講 三次握手 的目的是為了解決 網路中存在延遲的重複分組 的問題。這兩種不用的表述其實闡明的是同乙個問題。謝希仁版 計算機...