TCP三次握手和四次揮手

具體三次握手和四次握手的詳細(xì)內(nèi)容我就不在這里講了,這里主要看看TCP連接在生存周期里的狀態(tài)流轉(zhuǎn)。


TCP 三次握手 and 四次握手 (1).jpg
TCP 總共有11個(gè)狀態(tài)分別是:
  • LISTEN :等待連接。
  • SYN_SENT : 客戶端主動(dòng)發(fā)起連接請(qǐng)求(發(fā)送 SYN n)。
  • SYN_RECV : 服務(wù)端接到連接請(qǐng)求后,響應(yīng) (發(fā)送 ACK n+1,SYN j)。
  • ESTABLISHED :連接建立成功(發(fā)送 ACK j+1)。
  • FIN_WAIT1 : 客戶端主動(dòng)關(guān)閉連接,等待對(duì)方確認(rèn)是否可以關(guān)閉(發(fā)送 FIN x)。
  • FIN_WAIT2 : 客戶端收到對(duì)方確定可以關(guān)閉回應(yīng)(接收到ACK x+1)。
  • CLOSE_WAIT : 服務(wù)端準(zhǔn)備關(guān)閉連接時(shí)的狀態(tài),此時(shí)連接還為關(guān)閉。
  • LAST_ACK : 服務(wù)端發(fā)送可以關(guān)閉的消息(發(fā)送FIN y)。
  • CLOSING :客戶端接到服務(wù)器關(guān)閉連接的信息,發(fā)送連接正式關(guān)閉消息(接收到 FIN y,發(fā)送ACK y+1)。
  • TIME_WAIT : 客戶端進(jìn)入time wait 時(shí)間,等2倍MSL 時(shí)間后,關(guān)閉連接。
  • CLOSED :服務(wù)端接到客戶端正式關(guān)閉消息后,關(guān)閉連接。(接收到 ACK y+1)。
客戶端狀態(tài)流轉(zhuǎn)
  • 三次握手建立連接

啟動(dòng) ---> SYN_SENT ---> ESTABLISHED

  • 四次握手關(guān)閉連接

ESTABLISHED ---> FIN_WAIT1 ---> FIN_WAIT2 ---> CLOSING ---> TIME_WAIT ---> CLOSED

服務(wù)器狀態(tài)流轉(zhuǎn)
  • 三次握手建立連接

LISTEN ---> SYN_RECV ---> ESTABLISHED

  • 四次握手關(guān)閉連接

ESTABLISHED ---> CLOSE_WAIT ---> LAST_ACK ---> CLOSED

這里最難理解的點(diǎn)應(yīng)該就是客戶端為什么不直接關(guān)閉連接,而是在最后要進(jìn)入TIME_WAIT,進(jìn)行等待,等待時(shí)間為什么是2倍MSL。
首先先明確一下MSL的定義,MSL是Maximum Segment Lifetime的英文縮寫,可譯為“最長(zhǎng)報(bào)文段壽命”,它是任何報(bào)文在網(wǎng)絡(luò)上存在的最長(zhǎng)的最長(zhǎng)時(shí)間,超過(guò)這個(gè)時(shí)間報(bào)文將被丟棄。
TIME_WAIT狀態(tài)存在有2個(gè)理由:

  • 可靠的實(shí)現(xiàn)TCP全雙工連接終止。
  • 允許老的重復(fù)分節(jié)在網(wǎng)絡(luò)上消失。

第一個(gè)理由,通過(guò)圖中我們可以假設(shè)最終的ACK丟失了。服務(wù)器會(huì)重新發(fā)送它最終的那個(gè)FIN,因此客戶端必須維護(hù)狀態(tài)信息,已允許它重發(fā)最終的那個(gè)ACK。


TIME_WAIT 講解 (1).jpg

這也解釋了為什么主動(dòng)關(guān)閉一端處于TIME_WAIT狀態(tài)了。

第二個(gè)理由,我們假設(shè)在12.106.254:1500和206.1.2.129:111之間有一個(gè)TCP連接。我們關(guān)閉這個(gè)連接后,馬上重新建立一個(gè)新連接,這個(gè)時(shí)候接受到老連接的一個(gè)迷途分組或者重復(fù)分組到達(dá)連接,這時(shí)會(huì)出現(xiàn)嚴(yán)重錯(cuò)誤。TCP為了防止重復(fù)分組在連接終止后出現(xiàn),所以在2倍MSL時(shí)間里不能建立新的連接,等到所有的重復(fù)分組失效,方可建立新的連接。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容