中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TCP/IP協議中四次揮手的過程及原因是什么

發布時間:2021-11-20 09:47:59 來源:億速云 閱讀:384 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關TCP/IP協議中四次揮手的過程及原因是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

四次揮手都做什么?

TCP的連接是全雙工的,所以連接的拆除需要單獨將兩個通道分別拆除,而四次揮手所做的事情就是拆除兩條通道和釋放資源。

TCP 提供了連接的一端結束他的發送后,還能接收來自另一端數據的能力,也就是所謂的半關閉。

TCP/IP協議中四次揮手的過程及原因是什么

TCP/IP詳解卷I

這里以Client作為主動發起端,Server作為被動關閉端。

第一步,Client主動發起一個Req給Server,里面包含FIN標識位=1,CLient的Seq序列號N,表示的是當前Client在該連接上的當前序列號。

第二步,Server端在收到這個含有FIN的Req消息之后,校驗無誤之后會立馬回復ACK消息給CLient端,消息內部包含ACK標志位為1,同時Seq號碼是FIN的請求消息的Seq號+1。此時的Sever同時會主動發個結束標識給Server上面的應用層程序,應用層程序可以決定是立馬結束,還是等到服務器上面的該連接中的數據處理完了之后,在發送FIN消息給Client來關掉另外的一半連接。

第三步,Server端在處理完該連接上面的Pending住的數據之后,應用程序會close這個連接。Client會主動發起FIN的Req消息給Client端。消息內部帶有,FIN=1的結束符標識位,以及Server端的Seq序列號。

第四步,Client端在收到對應的FIN消息之后,會主動通知應用層程序,告知這個連接現在需要關閉了。然后,Client會回復ACK消息給Server,以便斷開另外一個方向的通道,這個消息包含ACK=1的標識位和FIN的REQ帶過來的Seq+1。

為什么需要四次揮手?

因為TCP是一個全雙工協議,必須單獨拆除每一條信道。4次揮手的目的是終止數據傳輸,并回收資源,此時兩個端點兩個方向的序列號已經沒有了任何關系,必須等待兩方向都沒有數據傳輸時才能拆除虛鏈路,不像初始化時那么簡單,發現SYN標志就初始化一個序列號并確認SYN的序列號。因此必須單獨分別在一個方向上終止該方向的數據傳輸。

如果是三次揮手,會怎么樣?三次的話,被動關閉端在收到FIN消息之后,需要同時回復ACK和Server端的FIN消息。如果Server端在該連接上面并沒有Pending的消息要處理,那么是可以的,如果Server端還需要等待一段時間才可以關閉另外一個方向的連接,那么這樣的三次揮手就不能滿足條件。

四次揮手的狀態轉換?

Client端:

ESTABLISHED---發送FIN給Server-->FIN_WAIT_1---接收到Server端的FIN對應的ACK-->FIN_WAIT_2---收到Server端發送過來的FIN消息-->FIIN_WAIT--2MSL之后會進入-->CLOSED

Server端:

ESTABLISHED---接收到Client端的FIN->CLOSED_WAIT--Server端的應用程序關閉發送FIN--> LAST_ACK---收到Client對于FIN的ACK響應-->FIIN_WAIT---->CLOSED

TCP/IP協議中四次揮手的過程及原因是什么

Tcp/ip詳解 卷I

其中四次揮手與Scoket函數的對應關系如下所示:

TCP/IP協議中四次揮手的過程及原因是什么

圖片來自網絡,如有侵權請告知,會及時刪除

四次揮手失敗了會怎么樣?

四次揮手里面,最經典的場景,是Client處于TIME_WAIT之后的2MSL的時間處理。(備注:MSL是TCP報文里面最大生存時間,它是任何報文段被丟棄前在網絡內的最長時間。)

設置2MSL的目的是為了處理,Server端在重傳最后一個FIN的時候,Client能夠發送最后一個ACK的時間。

這個時間段內,不管是Client端還是Server端,最好都不要重用這個TCP的端口,否則的話,可能會導致根據這個端口新建立的連接被錯誤的關掉,詳細情況如下所示:

step1:Server發送給Client的最后一個FIN,Client收到了,也發了ACK給Server,但是Server并沒有收到這個ACK。step2:于是CLient復用了這個Port號,于是新建了一條連接,這里假設叫newConnection。step3:Server在此過程中已經發送了重傳的FIN給Client,Client上面剛建立完成的newConnection就會再次被關掉。

以上就是TCP/IP協議中四次揮手的過程及原因是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云霄县| 东海县| 咸阳市| 龙井市| 滁州市| 石楼县| 永平县| 阜南县| 府谷县| 伊春市| 宣汉县| 营口市| 无为县| 重庆市| 辛集市| 东方市| 喀什市| 融水| 北宁市| 梁山县| 雅江县| 迭部县| 安塞县| 巴塘县| 郓城县| 福建省| 五原县| 巩留县| 象州县| 盘锦市| 大关县| 辽源市| 大化| 南川市| 定兴县| 水富县| 漠河县| 桂东县| 故城县| 梓潼县| 教育|