TCP四次揮手 && 為什么不是三次揮手

TCP四次揮手的過(guò)程:

理解:

TCP是雙向通訊協(xié)議,客戶端發(fā)送FIN到服務(wù)端,告訴服務(wù)端,客戶端不會(huì)再發(fā)送數(shù)據(jù)了,但是服務(wù)端還有消息未發(fā)送完畢,為防止客戶端消息等待,服務(wù)端會(huì)首先發(fā)送ACK確認(rèn)字符到客戶端,并關(guān)閉消息接收服務(wù)。但是服務(wù)端會(huì)將剩余消息發(fā)送完畢,然后發(fā)送FIN到客戶端,告訴客戶端不會(huì)再發(fā)送消息,然后客戶端會(huì)回復(fù)ACK表示收到,并關(guān)閉服務(wù),當(dāng)服務(wù)端收到ACK后,驗(yàn)證正常則會(huì)關(guān)閉所有的服務(wù),TCP連接中斷完畢。

為什么建立連接是三次握手,而關(guān)閉連接卻是四次揮手呢?

這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到客戶端發(fā)送的斷開(kāi)連接的FIN報(bào)文后,可能會(huì)有數(shù)據(jù)未發(fā)送完成,需要繼續(xù)發(fā)送,因此不能將確認(rèn)消息和請(qǐng)求關(guān)閉消息同時(shí)發(fā)送,而是會(huì)先關(guān)閉接收服務(wù)回復(fù)確認(rèn)消息,然后繼續(xù)發(fā)送未完消息到客戶端,直到發(fā)送結(jié)束,再發(fā)送請(qǐng)求關(guān)閉消息.

最后編輯于
?著作權(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ù)。

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