TCP 四次揮手是為了關(guān)閉鏈接,TCP 連接是全雙工的,因此每個(gè)方向都必須單獨(dú)關(guān)閉,雙方都可以主動(dòng)關(guān)閉鏈接,首先發(fā)起關(guān)閉的一方執(zhí)行主動(dòng)關(guān)閉,而另一方執(zhí)行被動(dòng)關(guān)閉,關(guān)閉之后主機(jī)的資源將被釋放。
四次揮手的過程如下:
第一次揮手:客戶端發(fā)送一個(gè) FIN=1,sep=u 的報(bào)文告訴服務(wù)器它打算關(guān)閉連接,不再發(fā)送數(shù)據(jù),但可以接收數(shù)據(jù),報(bào)文發(fā)出之后客戶端將連接的狀態(tài)變?yōu)?FIN_WAIT_1第二次揮手:服務(wù)端接收到客戶端的 FIN 報(bào)文之后,返回一個(gè) ACK=1,sep=v,ACKnum=u+1 的應(yīng)答報(bào)文,接著服務(wù)端進(jìn)入 CLOSE_WAIT 狀態(tài)。客戶端接收到服務(wù)端的 ACK 應(yīng)答報(bào)文后進(jìn)入 FIN_WAIT_2 狀態(tài)第三次揮手:服務(wù)器處理完數(shù)據(jù)之后,向客戶端發(fā)送 FIN 報(bào)文,表明它不再發(fā)送數(shù)據(jù),接著服務(wù)端進(jìn)入 LAST_ACK 狀態(tài)。第四次揮手:客戶端接收到 FIN 報(bào)文后,向服務(wù)端發(fā)送 ACK 應(yīng)答報(bào)文,接著客戶端進(jìn)入 TIME_WAIT 狀態(tài),等待 2MSL 一段時(shí)間后客戶端自動(dòng)進(jìn)入 CLOSED 狀態(tài),服務(wù)器收到 ACK 應(yīng)答報(bào)文后進(jìn)入 CLOSED 狀態(tài)。
為什么揮手需要四次?
TCP 連接是全雙工的,雙方可以同時(shí)發(fā)送和接收數(shù)據(jù)。第一次客戶端發(fā)送 FIN 報(bào)文后只表示它不再發(fā)送數(shù)據(jù),但還是能接受數(shù)據(jù)。服務(wù)端接收到 FIN 報(bào)文,回一個(gè) ACK 應(yīng)答報(bào)文,這次服務(wù)端可以還有數(shù)據(jù)需要處理和發(fā)送,等它處理完成,發(fā)送一個(gè) FIN 報(bào)文表示不再發(fā)送數(shù)據(jù),客戶端再回一個(gè) ACK 應(yīng)答報(bào)文。由于服務(wù)端處理數(shù)據(jù)需要時(shí)間,因此服務(wù)端的 ACK 和 FIN 報(bào)文是發(fā)送的,所以需要四次揮手。
TCP 四次揮手可以變成三次揮手嗎?
如果被動(dòng)關(guān)閉方?jīng)]有數(shù)據(jù)需要發(fā)送,并且開啟了TCP 延遲確認(rèn)機(jī)制,那么第二次和第三次揮手就會(huì)合并傳輸,四次揮手變成三次揮手。
為什么主動(dòng)關(guān)閉方需要等待 2MSL 后才關(guān)閉連接
MSL 是報(bào)文的最大生存時(shí)間,它是任何報(bào)文在網(wǎng)絡(luò)上存在的最大時(shí)間,超過這個(gè)時(shí)間報(bào)文將丟失。如果第四次揮手的 ACK 報(bào)文丟失,被動(dòng)關(guān)閉方將重發(fā) FIN 報(bào)文,主動(dòng)關(guān)閉方的 TIME_WAIT 時(shí)間為 2MSL 表示允許第四次揮手的 ACK 報(bào)文丟失一次
為什么主動(dòng)關(guān)閉方需要 TIME_WAIT 狀態(tài)
防止歷史連接中的數(shù)據(jù)被后續(xù)相同四元組連接錯(cuò)誤的接收:TIME_WAIT 設(shè)置成 2MSL 可以保證兩個(gè)方向上發(fā)送的數(shù)據(jù)都能被丟失。
確保被動(dòng)關(guān)閉方能正常關(guān)閉。
四元組指的是:目的地址、目的端口、源地址和源端口。通過四元組可以唯一確定一個(gè)連接。
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9311瀏覽量
86073 -
TCP
+關(guān)注
關(guān)注
8文章
1378瀏覽量
79311 -
端口
+關(guān)注
關(guān)注
4文章
990瀏覽量
32211
原文標(biāo)題:TCP 四次揮手過程分析
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
柔宇科技資產(chǎn)三次流拍,第四次將分拆設(shè)備拍賣
如何監(jiān)測(cè)TCP三次握手過程
TCP三次握手的常見問題及解決方案
TCP三次握手的網(wǎng)絡(luò)抓包分析
TCP三次握手安全性分析
TCP三次握手與UDP的區(qū)別
TCP三次握手的基本原理
TCP三次握手協(xié)議的作用
TCP三次握手的詳細(xì)過程
DHCP 四次握手
中微公司第四次榮膺2024福布斯中國創(chuàng)新力企業(yè)50強(qiáng)
深度解析TCP與UDP協(xié)議
![深度解析<b class='flag-5'>TCP</b>與UDP協(xié)議](https://file1.elecfans.com/web2/M00/04/EB/wKgZombVYEiAJoLMAAI5H2fGPKo199.png)
簡述TCP協(xié)議的三次握手機(jī)制
第四次工業(yè)革命已經(jīng)到來
![第<b class='flag-5'>四次</b>工業(yè)革命已經(jīng)到來](https://file1.elecfans.com/web2/M00/C8/3F/wKgaomYTTZOANyZ3AACOYFGMPcA687.png)
通信必備知識(shí)!TCP與UDP協(xié)議介紹及使用
![通信必備知識(shí)!<b class='flag-5'>TCP</b>與UDP協(xié)議介紹及使用](https://file.elecfans.com/web2/M00/3E/6A/pYYBAGJhBGGAGyDYAACBPQuBZQI711.png)
評(píng)論