?本節,瑞哥繼續帶您圖解網絡,探究一下TCP四次揮手斷開連接背后的原理。
讓我們直接開始!
【資料圖】
TCP 是一種全雙工協議,為了建立連接,通過三次握手就能建立可靠的鏈路:
首先客戶端將發送一個SYN消息(SYNchronize 的縮寫)表示客戶端要建立與服務端的連接。服務端收到客戶端的SYN報文后,回復SYN-ACK報文,包括一個SYN序列號和一個ACK號??蛻舳耸盏椒斩说?SYN-ACK 消息后,向服務端發送ACK消息。TCP三次握手簡單過程
TCP四次揮手生活中的例子連接的兩端都可以終止 TCP 連接,甚至單側終止也是可能的,這也稱為半開連接,即使一方已經斷開連接,另一方仍然可以傳輸數據。
我們說的四次揮手,指的是雙方斷開連接。
我們先以生活中例子來解釋一下:
四次揮手-生活中的例子:分手
小美和小明是大學同學,剛上大學的時候,小明高大帥氣,還會打籃球,小美對他非常崇拜,小明也非常喜歡小美,就這樣,在一個夜黑風高的夜晚,他們成了情侶。
不過隨著時間的推移,加上環境的變化,兩個人漸漸失去了熱情,所以小美向小明提出了分手。分手的過程就類似于TCP四次揮手:
第一次:小美對小明說“小明,相處那么長時間了,我覺得我們不合適,分手吧”第二次:小明聽完其實沒有太吃驚,但是也不能直接答應啊,不然不就成了鐵打的渣男了嘛,所以第二次揮手,他禮貌的說了一下“別,我還有話和你說,其實你蠻好的,不僅人長得漂亮,性格也挺好的,也通情達理,學習也蠻刻苦的,非常開心在大學能夠遇到你!”第三次:小明嗶哩啪啦也講的差不多了,是時候露出真面目了,隨后他就對小美說“既然你想好了,我再糾纏你也沒意思,那就和平分手吧~”第四次:小美聽完小明一大堆虛偽的話,非常生氣,就甩了一句“那就這樣了,互刪微信吧,再見!”然后小明的微信上就會出現大大的紅感嘆號!
微信拉黑
這就是四次揮手,是不是很形象?
下次假如閣下忘了TCP四次揮手的步驟,我想你可以把自己當作渣男想象一下
好了,咱們言歸正傳,我們好好分析一下TCP四次揮手的原理。
四次揮手原理分析四次揮手過程
如圖,客戶端想要和服務端斷開連接:
客戶端會發送一個 FIN 消息,FIN是FINISH的縮寫,FIN 消息的目的是使 TCP 能夠優雅地終止已建立的連接,然后客戶端進入稱為FIN-WAIT 狀態的狀態,在 FIN-WAIT 狀態下,客戶端繼續接收來自服務端的消息,并繼續處理已經在隊列中的消息,但客戶端不會發送任何額外的數據。這個可以聯想,小美在發分手消息過程中,男朋友小明一直在發消息給小美,小美沒看的消息就進入到了隊列,隊列中的消息,小美還是會看的,但是不會再主動回復這些消息。
服務端向客戶端發送ACK消息,確認他已經收到了結束的消息了,這個時候服務端將不再接受來自客戶端的數據。服務端可以繼續向客戶端發送數據(最后交代點事情),如果服務端沒有更多數據要發送,它也會通過發送 FIN 消息來終止連接。然后客戶端向服務端發送ACK確認收到了服務端主動斷開的消息。至此,TCP連接斷開!
TCP四次揮手——帶序列號
如圖,M和N都是序列號,分別代表是客戶端和服務端,也是為了區別服務端和客戶端的,比如看到M就想到消息是來自于客戶端,看到N就想到消息來自于服務端。
所以過程又變成:
客戶端向服務端發送FIN M給服務端。服務端向客戶端發送ACK M+1,客戶端收到M+1,就知道服務端收到了自己的Finish消息。服務端向客戶端發送FIN N代表是服務端主動向客戶端發送結束消息??蛻舳讼蚍斩嘶貜虯CK N+1消息,服務端看到是自己的N,所以就知道客戶端也收到了自己的結束消息了。至此TCP就成功斷開連接了。
斷開連接的最大生命周期這里還是舉個例子,小美在發完“那就這樣了,互刪微信吧,再見!”的消息后,會最多等待四分鐘,給小明機會去挽留:
等待四分鐘
假如在這四分鐘內,小明沒有挽留,那不好意思,徹底結束吧!Game Over!
在【四次揮手原理分析】圖中,我們注意到了TIME_WAIT狀態,客戶端發送最后一個 ACK段后,連接不會立即終止,由于不能保證最后發送的數據包確實已經到達,客戶端或服務器最初將保持時間等待狀態,直到 ACK 段和任何新 FIN 段的最大生命周期(MSL,Maximum Segment Lifetime )才能徹底進入CLOSED狀態。
這種機制主要出于兩種考慮:
防止使用相同源地址、源端口、目的地址和目的端口的其他 TCP 連接接收到延遲的數據段。保證TCP連接被遠程正確關閉,即等待被動關閉連接的一方收到ACK對應的消息。X 關閉
X 關閉
- 1轉轉集團發布2022年二季度手機行情報告:二手市場“飄香”
- 2充電寶100Wh等于多少毫安?鐵路旅客禁止、限制攜帶和托運物品目錄
- 3好消息!京東與騰訊續簽三年戰略合作協議 加強技術創新與供應鏈服務
- 4名創優品擬通過香港IPO全球發售4100萬股 全球發售所得款項有什么用處?
- 5亞馬遜云科技成立量子網絡中心致力解決量子計算領域的挑戰
- 6京東綠色建材線上平臺上線 新增用戶70%來自下沉市場
- 7網紅淘品牌“七格格”chuu在北京又開一家店 潮人新寵chuu能紅多久
- 8市場競爭加劇,有車企因經營不善出現破產、退網、退市
- 9北京市市場監管局為企業紓困減負保護經濟韌性
- 10市場監管總局發布限制商品過度包裝標準和第1號修改單