TCP連接的“三次握手”與“四次揮手”

TCP的三次握手

所謂的三次握手即TCP連接的建立沪蓬。這個連接必須是一方主動打開,另一方被動打開的挎扰。以下為客戶端主動發(fā)起連接的圖解:

握手之前主動打開的客戶端結(jié)束CLOSED階段给赞,被動打開的服務(wù)器也結(jié)束CLOSED階段颖对,并進(jìn)入LISTEN階段。隨后開始“三次握手”:
1管呵、首先客戶端向服務(wù)器發(fā)送一段TCP報文涧衙,其中:

  • 標(biāo)記位為SYN,表示“請求建立新連接”斋攀;
  • 序號為seq=X(X一般為1);
  • 隨后客戶端進(jìn)入SYN-SENT階段已卷。

2、服務(wù)器端接收到來自客戶端的TCP報文之后淳蔼,結(jié)束LISTEN階段侧蘸,并返回一段TCP報文,其中:

  • 標(biāo)志位為SYN和ACK鹉梨,表示“確認(rèn)客戶端的報文seq有效讳癌,服務(wù)器能正常接收客戶端發(fā)送的數(shù)據(jù),并同意創(chuàng)建新連接”存皂;
  • 序號為seq=y;
  • 確認(rèn)號為ack=x+1晌坤,表示收到客戶端的序號seq逢艘,并將其值+1作為自己確認(rèn)號ack的值;隨后服務(wù)器端進(jìn)入SYN-RCVD階段骤菠。

3它改、客戶端接收到來自服務(wù)器端的確認(rèn)收到數(shù)據(jù)的TCP報文之后,明確了從客戶端到服務(wù)器的數(shù)據(jù)傳輸是正常的商乎,結(jié)束SYN-SENT階段央拖。并返回最后一段TCP報文。其中:

  • 標(biāo)志位為ACK鹉戚,表示“確認(rèn)收到服務(wù)器端同意連接的信號”鲜戒;
  • 序號為seq=x+1,表示收到服務(wù)器端的確認(rèn)號ack,并將其值作為自己的序號值崩瓤;
  • 確認(rèn)號為Ack=y+1袍啡,表示收到服務(wù)器端序號Seq,并將其值加1作為自己的確認(rèn)號ack的值却桶;
  • 隨后客戶端進(jìn)入ESTABLISHED階段境输。

服務(wù)器收到來自客戶端的”確認(rèn)收到服務(wù)器數(shù)據(jù)“的TCP報文之后,明確了從服務(wù)器到客戶端的數(shù)據(jù)傳輸是正常的颖系。結(jié)束SYN-SENT階段嗅剖,進(jìn)入ESTABLISHED階段。

在客戶端與服務(wù)器端傳輸?shù)?TCP報文中嘁扼,雙方的確認(rèn)號ack和序號seq的值信粮,都是在彼此ack和seq值的基礎(chǔ)上進(jìn)行計算的,這樣做保證了TCP報文傳輸?shù)倪B貫性趁啸。一單出現(xiàn)某一方發(fā)出的TCP報文丟失强缘,便無法繼續(xù)”握手“,以此確保了”三次握手“的順利完成不傅。

此后客戶端和服務(wù)器端進(jìn)行正常的數(shù)據(jù)傳輸旅掂。這就是”三次握手“的過程。

TCP的四次揮手

所謂的四次揮手即TCP連接的釋放(解除)访娶。連接的釋放必須是一方主動釋放商虐,另一方被動釋放。以下為客戶端主動發(fā)起釋放連接的圖解:

揮手之前主動釋放連接的客戶端結(jié)束ESTABLISHED階段崖疤。隨后開始“四次揮手”:
1秘车、首先客戶端想要釋放連接,向服務(wù)器端發(fā)送一段TCP報文劫哼,其中:

標(biāo)記位為FIN叮趴,表示“請求釋放連接“;序號為Seq=U权烧;隨后客戶端進(jìn)入FIN-WAIT-1階段眯亦,即半關(guān)閉階段咳蔚。并且停止在客戶端到服務(wù)器端方向上發(fā)送數(shù)據(jù),但是客戶端仍然能接收從服務(wù)器端傳輸過來的數(shù)據(jù)搔驼。注意:這里不發(fā)送的是正常連接時傳輸?shù)臄?shù)據(jù)(非確認(rèn)報文),而不是一切數(shù)據(jù)侈询,所以客戶端仍然能發(fā)送ACK確認(rèn)報文舌涨。

2、服務(wù)器端接收到從客戶端發(fā)出的TCP報文之后扔字,確認(rèn)了客戶端想要釋放連接囊嘉,隨后服務(wù)器端結(jié)束ESTABLISHED階段,進(jìn)入CLOSE-WAIT階段(半關(guān)閉狀態(tài))并返回一段TCP報文革为,其中:

標(biāo)記位為ACK扭粱,表示“接收到客戶端發(fā)送的釋放連接的請求”;序號為Seq=V震檩;確認(rèn)號為Ack=U+1琢蛤,表示是在收到客戶端報文的基礎(chǔ)上,將其序號Seq值加1作為本段報文確認(rèn)號Ack的值抛虏;隨后服務(wù)器端開始準(zhǔn)備釋放服務(wù)器端到客戶端方向上的連接博其。客戶端收到從服務(wù)器端發(fā)出的TCP報文之后迂猴,確認(rèn)了服務(wù)器收到了客戶端發(fā)出的釋放連接請求慕淡,隨后客戶端結(jié)束FIN-WAIT-1階段,進(jìn)入FIN-WAIT-2階段

前"兩次揮手"既讓服務(wù)器端知道了客戶端想要釋放連接沸毁,也讓客戶端知道了服務(wù)器端了解了自己想要釋放連接的請求峰髓。于是,可以確認(rèn)關(guān)閉客戶端到服務(wù)器端方向上的連接了

3息尺、服務(wù)器端自從發(fā)出ACK確認(rèn)報文之后携兵,經(jīng)過CLOSED-WAIT階段,做好了釋放服務(wù)器端到客戶端方向上的連接準(zhǔn)備掷倔,再次向客戶端發(fā)出一段TCP報文眉孩,其中:

標(biāo)記位為FIN,ACK勒葱,表示“已經(jīng)準(zhǔn)備好釋放連接了”浪汪。注意:這里的ACK并不是確認(rèn)收到服務(wù)器端報文的確認(rèn)報文。序號為Seq=W凛虽;確認(rèn)號為Ack=U+1死遭;表示是在收到客戶端報文的基礎(chǔ)上,將其序號Seq值加1作為本段報文確認(rèn)號Ack的值凯旋。隨后服務(wù)器端結(jié)束CLOSE-WAIT階段呀潭,進(jìn)入LAST-ACK階段钉迷。并且停止在服務(wù)器端到客戶端的方向上發(fā)送數(shù)據(jù),但是服務(wù)器端仍然能夠接收從客戶端傳輸過來的數(shù)據(jù)钠署。

4糠聪、客戶端收到從服務(wù)器端發(fā)出的TCP報文,確認(rèn)了服務(wù)器端已做好釋放連接的準(zhǔn)備谐鼎,結(jié)束FIN-WAIT-2階段舰蟆,進(jìn)入TIME-WAIT階段,并向服務(wù)器端發(fā)送一段報文狸棍,其中:

標(biāo)記位為ACK身害,表示“接收到服務(wù)器準(zhǔn)備好釋放連接的信號”。序號為Seq=U+1草戈;表示是在收到了服務(wù)器端報文的基礎(chǔ)上塌鸯,將其確認(rèn)號Ack值作為本段報文序號的值。確認(rèn)號為Ack=W+1唐片;表示是在收到了服務(wù)器端報文的基礎(chǔ)上丙猬,將其序號Seq值作為本段報文確認(rèn)號的值。隨后客戶端開始在TIME-WAIT階段等待2MSL牵触。

服務(wù)器端收到從客戶端發(fā)出的TCP報文之后結(jié)束LAST-ACK階段淮悼,進(jìn)入CLOSED階段。由此正式確認(rèn)關(guān)閉服務(wù)器端到客戶端方向上的連接揽思。

客戶端等待完2MSL之后袜腥,結(jié)束TIME-WAIT階段,進(jìn)入CLOSED階段钉汗,由此完成“四次揮手”羹令。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市损痰,隨后出現(xiàn)的幾起案子福侈,更是在濱河造成了極大的恐慌,老刑警劉巖卢未,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肪凛,死亡現(xiàn)場離奇詭異,居然都是意外死亡辽社,警方通過查閱死者的電腦和手機(jī)伟墙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滴铅,“玉大人戳葵,你說我怎么就攤上這事『撼祝” “怎么了拱烁?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵生蚁,是天一觀的道長。 經(jīng)常有香客問我戏自,道長邦投,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任擅笔,我火速辦了婚禮尼摹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘剂娄。我一直安慰自己,他們只是感情好玄呛,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布阅懦。 她就那樣靜靜地躺著,像睡著了一般徘铝。 火紅的嫁衣襯著肌膚如雪耳胎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天惕它,我揣著相機(jī)與錄音怕午,去河邊找鬼。 笑死淹魄,一個胖子當(dāng)著我的面吹牛郁惜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甲锡,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼兆蕉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缤沦?” 一聲冷哼從身側(cè)響起虎韵,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缸废,沒想到半個月后包蓝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡企量,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年测萎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梁钾。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡绳泉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姆泻,到底是詐尸還是另有隱情零酪,我是刑警寧澤冒嫡,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站四苇,受9級特大地震影響孝凌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜月腋,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一蟀架、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榆骚,春花似錦片拍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碉钠,卻和暖如春纲缓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喊废。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工祝高, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人污筷。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓工闺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓣蛀。 傳聞我的和親對象是個殘疾皇子斤寂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350