三次握手椒功,四次揮手

講解 TCP 三次握手和四次握手之前,我們先了解一下 TCP 和 UDP 這兩個重量級的傳輸層協(xié)議玫锋。

用戶數(shù)據(jù)報協(xié)議 UDP(User Datagram Protocol):
  • UDP 在傳送數(shù)據(jù)之前不需要先建立連接蛾茉,遠(yuǎn)程主機(jī)在收到 UDP 報文后,不需要給出任何確認(rèn)撩鹿。
  • UPD是面向報文的谦炬,沒有擁塞控制,所以速度快节沦,適合即時通信键思,比如: QQ 語音、 QQ 視頻 甫贯、直播(一對一吼鳞、一對多、多對一叫搁、多對多)等等
傳輸控制協(xié)議 TCP(Transmission Control Protocol):
  • TCP 提供面向連接的一對一的可靠性傳播的服務(wù)赔桌。在傳送數(shù)據(jù)之前必須先建立連接,數(shù)據(jù)傳送結(jié)束后要釋放連接渴逻。
  • TCP 一般用于文件傳輸疾党、發(fā)送和接收郵件、遠(yuǎn)程登錄等場景惨奕。
  • TCP通過以下方式提供可靠性:(1. 超時重發(fā)雪位,發(fā)出的報文段如果沒有收到及時的確認(rèn),會重發(fā)梨撞;2. 數(shù)據(jù)包的校驗雹洗,校驗首部數(shù)據(jù)和;3. 對失序的數(shù)據(jù)進(jìn)行重新排序卧波;4. 進(jìn)行流量控制时肿,防止緩存區(qū)的溢出;5. 快重傳和快恢復(fù)港粱;6. TCP會將數(shù)據(jù)截取為合理長度)

三次握手嗜侮,四次揮手



三次握手

進(jìn)行三次握手的主要作用就是為了確認(rèn)雙方的接收能力和發(fā)送能力是否正常,并指定自己的初始化序列號(Init Sequense Number, ISN)為后面的可靠性傳輸做準(zhǔn)備。

圖中字符串的含義:
  • SYN:連接請求/接收 報文段
  • seq:發(fā)送的第一個字節(jié)的序號
  • ACK:確認(rèn)報文段
  • ack:確認(rèn)號锈颗。希望收到的下一個數(shù)據(jù)的第一個字節(jié)的序號

三次握手過程:

1)第一次握手:客戶端向服務(wù)端發(fā)送一個 SYN 報文(SYN = 1),并指明客戶端的初始化序列號 ISN(x)咪惠,即圖中的 seq = x击吱,表示本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。此時客戶端處于 SYN_Send 狀態(tài)遥昧。

SYN-SENT :在發(fā)送連接請求后等待匹配的連接請求

2)第二次握手:服務(wù)器收到客戶端的 SYN 報文之后覆醇,會發(fā)送 SYN 報文作為應(yīng)答(SYN = 1),并且指定自己的初始化序列號 ISN(y)炭臭,即圖中的 seq = y永脓。同時會把客戶端的 ISN + 1 作為確認(rèn)號 ack 的值,表示已經(jīng)收到了客戶端發(fā)來的的 SYN 報文鞋仍,希望收到的下一個數(shù)據(jù)的第一個字節(jié)的序號是 x + 1常摧,此時服務(wù)器處于 SYN_REVD 的狀態(tài)。

SYN-RECEIVED:在收到和發(fā)送一個連接請求后等待對連接請求的確認(rèn)

3)第三次握手:客戶端收到服務(wù)器端響應(yīng)的 SYN 報文之后威创,會發(fā)送一個 ACK 報文落午,也是一樣把服務(wù)器的 ISN + 1 作為 ack 的值,表示已經(jīng)收到了服務(wù)端發(fā)來的的 SYN 報文肚豺,希望收到的下一個數(shù)據(jù)的第一個字節(jié)的序號是 y + 1溃斋,并指明此時客戶端的序列號 seq = x + 1(初始為 seq = x,所以第二個報文段要 +1)吸申,此時客戶端處于 Establised 狀態(tài)梗劫。
服務(wù)器收到 ACK 報文之后,也處于 Establised 狀態(tài)截碴,至此梳侨,雙方建立起了 TCP 連接。

ESTABLISHED:代表一個打開的連接隐岛,數(shù)據(jù)可以傳送給用戶

通俗點講猫妙,只有經(jīng)過三次握手才能確認(rèn)雙發(fā)的收發(fā)功能都正常,缺一不可:

  • 第一次握手:客戶端發(fā)送網(wǎng)絡(luò)包聚凹,服務(wù)端收到了割坠。這樣服務(wù)端就能得出結(jié)論:客戶端的發(fā)送能力、服務(wù)端的接收能力是正常的妒牙。
  • 第二次握手:服務(wù)端發(fā)包彼哼,客戶端收到了。這樣客戶端就能得出結(jié)論:服務(wù)端的接收湘今、發(fā)送能力敢朱,客戶端的接收、發(fā)送能力是正常的。
  • 第三次握手:客戶端發(fā)包拴签,服務(wù)端收到了孝常。這樣服務(wù)端就能得出結(jié)論:客戶端的接收、發(fā)送能力蚓哩,服務(wù)端的發(fā)送构灸、接收能力是正常的。



四次揮手

圖中字符串的含義:
  • FIN :連接終止位

剛開始雙方都處于 ESTABLISHED 狀態(tài)岸梨,假設(shè)是客戶端先發(fā)起關(guān)閉請求喜颁。四次揮手的過程如下
1)第一次揮手:客戶端發(fā)送一個 FIN 報文(請求連接終止:FIN = 1),報文中會指定一個序列號 seq = u曹阔。并停止再發(fā)送數(shù)據(jù)半开,主動關(guān)閉 TCP 連接。

2)第二次揮手:服務(wù)端收到 FIN 之后赃份,會發(fā)送 ACK 報文寂拆,且把客戶端的序號值 +1 作為 ACK 報文的序列號值,表明已經(jīng)收到客戶端的報文了芥炭。

此時的 TCP 處于半關(guān)閉狀態(tài)漓库,客戶端到服務(wù)端的連接釋放≡膀穑客戶端收到服務(wù)端的確認(rèn)渺蒿,等待服務(wù)端發(fā)出的連接釋放報文段。

3)第三次揮手:如果服務(wù)端也想斷開連接了(沒有要向客戶端發(fā)出的數(shù)據(jù))彪薛,和客戶端的第一次揮手一樣茂装,發(fā)送 FIN 報文,且指定一個序列號善延。

4)第四次揮手:客戶端收到 FIN 之后少态,一樣發(fā)送一個 ACK 報文作為應(yīng)答(ack = w+1),且把服務(wù)端的序列值 +1 作為自己 ACK 報文的序號值(seq=u+1)易遣。





參考文檔:
https://zhuanlan.zhihu.com/p/53374516
https://segmentfault.com/a/1190000039165592

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末彼妻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子豆茫,更是在濱河造成了極大的恐慌侨歉,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揩魂,死亡現(xiàn)場離奇詭異幽邓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)火脉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門牵舵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柒啤,“玉大人,你說我怎么就攤上這事畸颅〉9” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵重斑,是天一觀的道長兵睛。 經(jīng)常有香客問我,道長窥浪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任笛丙,我火速辦了婚禮漾脂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胚鸯。我一直安慰自己骨稿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布姜钳。 她就那樣靜靜地躺著坦冠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哥桥。 梳的紋絲不亂的頭發(fā)上辙浑,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音拟糕,去河邊找鬼判呕。 笑死,一個胖子當(dāng)著我的面吹牛送滞,可吹牛的內(nèi)容都是我干的侠草。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼犁嗅,長吁一口氣:“原來是場噩夢啊……” “哼边涕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起褂微,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤功蜓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蕊梧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霞赫,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年肥矢,在試婚紗的時候發(fā)現(xiàn)自己被綠了端衰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叠洗。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖旅东,靈堂內(nèi)的尸體忽然破棺而出灭抑,到底是詐尸還是另有隱情,我是刑警寧澤抵代,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布腾节,位于F島的核電站,受9級特大地震影響荤牍,放射性物質(zhì)發(fā)生泄漏案腺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一康吵、第九天 我趴在偏房一處隱蔽的房頂上張望劈榨。 院中可真熱鬧,春花似錦晦嵌、人聲如沸同辣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旱函。三九已至,卻和暖如春描滔,著一層夾襖步出監(jiān)牢的瞬間棒妨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工伴挚, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留靶衍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓茎芋,卻偏偏與公主長得像颅眶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子田弥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容