TCP三次握手和四次揮手

三次握手

三次握手過(guò)程

  1. 第一次握手:客戶端向服務(wù)端發(fā)起連接請(qǐng)求報(bào)文,報(bào)文的同步位SYN=1,序列號(hào)seq=x。客戶端進(jìn)入syn-sent狀態(tài)。
  2. 第二次握手:服務(wù)端收到客戶端的連接請(qǐng)求,會(huì)返回一個(gè)確認(rèn)報(bào)文,報(bào)文的同步位SYN和確認(rèn)位ACK等于1,確認(rèn)號(hào)ack=x+1,序列號(hào)seq=y。服務(wù)端進(jìn)入syn-revd狀態(tài)。
  3. 第三次握手:客戶端收到之后,也會(huì)返回一個(gè)確認(rèn)報(bào)文,報(bào)文的確認(rèn)位ACK=1,確認(rèn)號(hào)ack=y+1,序列號(hào)seq=x+1。客戶端進(jìn)入連接狀態(tài),連接建立,服務(wù)端收到消息也會(huì)進(jìn)入連接狀態(tài)。
    三次握手過(guò)程

為什么要三次握手

  1. 兩次握手無(wú)法確認(rèn)客戶端的接受能力是否正常,也就無(wú)法確認(rèn)客戶端收到了服務(wù)端的初始序列號(hào),三次握手是可以確保的。
  2. 防止已經(jīng)失效的連接請(qǐng)求到了服務(wù)器端,建立無(wú)效連接,浪費(fèi)資源。比如客戶端發(fā)起連接請(qǐng)求,出現(xiàn)網(wǎng)絡(luò)超時(shí),發(fā)生了重傳,后面的連接請(qǐng)求和服務(wù)端建立了連接之后正常關(guān)閉,關(guān)閉之后,前面超時(shí)的連接請(qǐng)求又到了服務(wù)端,服務(wù)端就會(huì)進(jìn)行確認(rèn)再次進(jìn)行連接,但是客戶端還是關(guān)閉狀態(tài),如果是三次握手,就不會(huì)出現(xiàn)這種情況。

半連接隊(duì)列

服務(wù)器第一次收到連接請(qǐng)求時(shí),會(huì)處于syn revd狀態(tài),服務(wù)器會(huì)把這種狀態(tài)的連接放到一個(gè)隊(duì)列中,這個(gè)隊(duì)列就叫半連接隊(duì)列。建立連接之后就會(huì)把這個(gè)半連接移到全連接隊(duì)列中。

四次揮手

四次揮手過(guò)程

  1. 第一次揮手:客戶端數(shù)據(jù)處理完成,給服務(wù)端發(fā)送一個(gè)結(jié)束報(bào)文,報(bào)文中終止位FIN=1,序列號(hào)seq=u,客戶端進(jìn)入fin wait1狀態(tài)。
  2. 第二次揮手:服務(wù)端收到之后,會(huì)返回一個(gè)確認(rèn)報(bào)文,報(bào)文確認(rèn)位ACK=1,確認(rèn)號(hào)ack=u+1,序列號(hào)seq=v。服務(wù)端進(jìn)入close wait狀態(tài)。客戶端收到之后進(jìn)入fin wait2狀態(tài)。
  3. 第三次揮手:服務(wù)端處理完數(shù)據(jù)之后,給客戶端發(fā)送一個(gè)結(jié)束報(bào)文,報(bào)文中終止位FIN=1和確認(rèn)位ACK=1,確認(rèn)號(hào)ack=u+1,序列號(hào)seq=w。服務(wù)端進(jìn)入last ack狀態(tài)。
  4. 第四次揮手:客戶端收到之后,會(huì)返回一個(gè)確認(rèn)報(bào)文,報(bào)文中確認(rèn)位ACK=1,確認(rèn)號(hào)ack=w+1,序列號(hào)seq=u+1。客戶端端進(jìn)入time wait狀態(tài),等兩個(gè)msl(報(bào)文最大生存時(shí)間)的時(shí)間就會(huì)進(jìn)入close狀態(tài)。服務(wù)端收到之后進(jìn)入colse狀態(tài)。
    四次揮手過(guò)程

為啥要等待2msl

確保服務(wù)端連接正常關(guān)閉。如果服務(wù)端沒(méi)有正常收到客戶端的確認(rèn)報(bào)文,就會(huì)重新發(fā)結(jié)束報(bào)文,2msl能確保服務(wù)端的重傳報(bào)文被客戶端收到。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容