成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

網(wǎng)絡(luò) 通信技術(shù)
TCP 是一種雙向通信協(xié)議,這意味著任何一端都應(yīng)該能夠可靠地發(fā)送數(shù)據(jù),所以三次握手剛剛好。

TCP是 Internet 協(xié)議套件的主要協(xié)議之一,它位于應(yīng)用層和網(wǎng)絡(luò)層之間,用于提供可靠的連接服務(wù),是一種面向連接的通信協(xié)議,有助于通過網(wǎng)絡(luò)在不同設(shè)備之間交換消息。

提到TCP,那么一定就會(huì)提到TCP的三次握手,這個(gè)是TCP連接核心中的核心,那么TCP三次握手是怎么樣的過程,有什么優(yōu)秀的設(shè)計(jì)之處呢?

今天瑞哥帶您用圖解的形式好好的解釋一波,讓我們直接開始吧。

什么是TCP?

  • 英文全稱:Transmission Control Protocol
  • 中文名稱:傳輸控制協(xié)議

TCP是一種面向連接的協(xié)議,可確保將數(shù)據(jù)完整地傳送到其目的地,TCP 首先通過使用 TCP 三向握手與每個(gè)主機(jī)上的 TCP 端口建立會(huì)話,然后它以數(shù)據(jù)包的形式傳輸數(shù)據(jù),每個(gè)數(shù)據(jù)包都有一個(gè)序列號(hào),當(dāng)在目的地收到數(shù)據(jù)包時(shí),TCP 會(huì)向發(fā)送主機(jī)生成確認(rèn),如果未收到序列中的數(shù)據(jù)包,則發(fā)送主機(jī)上的 TCP 在一定時(shí)間間隔后重新傳輸數(shù)據(jù)包。

TCP三次握手

TCP 在建立和關(guān)閉兩個(gè)設(shè)備之間的連接期間會(huì)發(fā)生 3 次握手過程,也就是建立和關(guān)閉連接需要經(jīng)歷三個(gè)步驟,下面我們來詳細(xì)的了解一下這三個(gè)過程。

生活中的三次握手

我們先以生活中的例子形象的說明一下三次握手過程:

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

生活中的三次握手

小明想打電話給小美,但是不確定對(duì)方是不是小美,所以會(huì)經(jīng)歷以下過程:

  • 小明:你好,請(qǐng)問是小美嗎?【第一次握手】
  • 小美:是的,我是小美。【第二次握手】
  • 小明:好的,我知道你是小美了。【第三次握手】

經(jīng)歷三次握手后,小明可以可以很明確的確定對(duì)方就是小美,非常可靠!

假如只有一次握手,那么小明問完“你好,請(qǐng)問是小美嗎?”,小明壓根不確定對(duì)方有沒有收到這個(gè)問候,更不要談對(duì)方是否是小美了。

假如只有兩次握手,那么小明收到小美的“是的,我是小美。”的回復(fù)后,小美是不知道小明是否收到她的回復(fù),所以接下來她不確定是否要跟電話中詢問她的人通信。

所以三次握手剛剛好。

專業(yè)角度的三次握手

下面我們來看下專業(yè)的三次握手。

三次握手涉及到的專業(yè)名詞

服務(wù)端:服務(wù)端是專用于運(yùn)行服務(wù)以滿足其他計(jì)算機(jī)需求的物理計(jì)算機(jī)

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

客戶端-服務(wù)端

  • 客戶端:客戶端是訪問服務(wù)器提供的服務(wù)的計(jì)算機(jī)硬件設(shè)備或軟件
  • SYN:同步序列號(hào)(Synchronize Sequence Number),這是從客戶端到服務(wù)端的第一個(gè)數(shù)據(jù)包,可以描述為建立連接的請(qǐng)求,如果 SYN 為 1,則表示設(shè)備要建立安全連接,否則不。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

SYN抓包

ACK:確認(rèn)(Acknowledgement),可以說是SYN的響應(yīng),如果 ACK 為 1,則設(shè)備已收到 SYN 消息并確認(rèn),否則沒有。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

ACK抓包

三次握手步驟

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

三次握手步驟

第一步:客戶端將 SYN 標(biāo)志設(shè)置為 1 將消息發(fā)送到服務(wù)端。

第二步:服務(wù)端通過將 ACK 標(biāo)志設(shè)置為 1 來確認(rèn)客戶端請(qǐng)求。

第三步:客戶端收到來自服務(wù)端的同步(SYN)后,向服務(wù)端發(fā)送確認(rèn)(ACK)。

從客戶端得到(ACK)后,客戶端和服務(wù)端之間建立連接,現(xiàn)在數(shù)據(jù)可以在客戶端和服務(wù)器端之間傳輸。

更詳細(xì)的過程

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

三次握手更詳細(xì)的過程

第一步:TCP客戶端向服務(wù)端發(fā)送 TCP SYN 數(shù)據(jù)包來開始連接,數(shù)據(jù)包包含一個(gè)隨機(jī)序列號(hào)n,它表示客戶端應(yīng)傳輸?shù)臄?shù)據(jù)的序列號(hào)的開始。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

第二步:服務(wù)端收到數(shù)據(jù)包,并用它的序列號(hào)(m)進(jìn)行響應(yīng),它的響應(yīng)還包括確認(rèn)號(hào),即客戶端的序列號(hào)加 1,此處為n+1。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

第三步:客戶端通過發(fā)送確認(rèn)號(hào)來響應(yīng)服務(wù)器,該確認(rèn)號(hào)是服務(wù)端的序列號(hào)加 1,此處為m+1.

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

TCP三次握手抓包分析

再多的理論不經(jīng)過實(shí)踐都是徒勞,所以驗(yàn)證我們理論的最好的方式就是抓包看一下TCP三次握手過程。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

TCP三次握手抓包分析

如圖,主機(jī)172.16.16.128:2826和主機(jī)212.58.226.142:80建立三次握手過程:

  • 第一步:主機(jī)172.16.16.128:2826向主機(jī)212.58.226.142:80發(fā)送[SYN] Seq=0
  • 第二步:主機(jī)212.58.226.142:80向主機(jī)172.16.16.128:2826發(fā)送[SYN,ACK] Seq=0,Ack=1
  • 第三步:主機(jī)172.16.16.128:2826向主機(jī)212.58.226.142:80發(fā)送[ACK] Seq=1,Ack=1

這就是詳細(xì)的三次握手報(bào)文,我覺得此時(shí)此刻,大家可以打開自己的wireshark抓包工具盡情的體驗(yàn)一下TCP三次握手的神奇之處了。

TCP窗口

大家在看上圖中的wireshark抓包截圖的時(shí)候,肯定注意到了Win=8192的字眼,這個(gè)就是TCP窗口。

客戶端向服務(wù)端發(fā)送一堆數(shù)據(jù),然后服務(wù)端驗(yàn)證所有數(shù)據(jù)包級(jí)別的校驗(yàn)和并發(fā)送一個(gè)ACK數(shù)據(jù)包,表明一切數(shù)據(jù)都已正確接收。

如果沒有收到所有內(nèi)容,則需要重新傳輸部分或全部數(shù)據(jù),每個(gè)設(shè)備都維護(hù)一個(gè)所有數(shù)據(jù)的緩沖區(qū),以防需要再次發(fā)送,接收到 ACK 數(shù)據(jù)包意味著設(shè)備可以將舊數(shù)據(jù)從緩沖區(qū)中清除。

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

TCP 窗口

TCP 窗口就是在接收到 ACK 之前可以發(fā)送的最大字節(jié)數(shù)。

如果網(wǎng)絡(luò)不可靠,最好將TCP 窗口設(shè)置小一點(diǎn),這樣,如果出現(xiàn)問題,就不必重新傳輸非常大的數(shù)據(jù)。

TCP還有一個(gè)絕佳的設(shè)計(jì),那就是滑動(dòng)窗口,即設(shè)備可以動(dòng)態(tài)更改窗口大小,在擁塞時(shí)將窗口縮小,在正常時(shí)將窗口放大。

其他參數(shù)

抓包截圖中不僅僅有TCP 窗口,還有其他的參數(shù):

  • MSS(Maximum Segment Size),最大段大小。
  • WS(Windows Scaling),用于控制最大 TCP 接收窗口大小。

TCP為什么不能二次握手建立連接

我們要知道Server 和 Client 想要建立連接,必須滿足以下四個(gè)條件:

  • 服務(wù)端需要確認(rèn)服務(wù)端可以從客戶端接收數(shù)據(jù)包
  • 客戶端需要確認(rèn)客戶端可以從服務(wù)端接收數(shù)據(jù)包
  • 客戶端需要確認(rèn)服務(wù)端可以從客戶端接收數(shù)據(jù)包
  • 服務(wù)端需要確認(rèn)客戶端可以從服務(wù)端接收數(shù)據(jù)包

四個(gè)條件看起來很繞,其實(shí)說白了就是:

圖解網(wǎng)絡(luò):TCP三次握手背后的原理,為啥兩次握手不可以?

  • 小明問:“你好,請(qǐng)問時(shí)小美嗎?”:發(fā)送成功后,小明確定可以他從小美接收信息,驗(yàn)證了第一個(gè)條件【服務(wù)端需要確認(rèn)服務(wù)端可以從客戶端接收數(shù)據(jù)包】
  • 小美回:“是的,我是小美”:發(fā)送成功后,小美確定她可以從小明接收信息,也能確認(rèn)小明可以從她這邊接收信息,驗(yàn)證了第二、第三個(gè)條件【客戶端需要確認(rèn)客戶端可以從服務(wù)端接收數(shù)據(jù)包】【客戶端需要確認(rèn)服務(wù)端可以從客戶端接收數(shù)據(jù)包】
  • 小明回:“好的,我知道你是小美了”:發(fā)送成功后,小明確定可以小美可以從他這邊接收信息,驗(yàn)證了四個(gè)條件【服務(wù)端需要確認(rèn)客戶端可以從服務(wù)端接收數(shù)據(jù)包】

TCP 是一種雙向通信協(xié)議,這意味著任何一端都應(yīng)該能夠可靠地發(fā)送數(shù)據(jù),所以三次握手剛剛好。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-04-30 13:32:17

TCP三次握手網(wǎng)絡(luò)協(xié)議

2019-05-14 10:09:06

TCP連接握手

2024-10-16 08:38:37

TCP編號(hào)信息

2022-10-10 07:34:36

TCP三次握手區(qū)塊鏈

2021-09-09 08:47:57

TCP三次握手協(xié)議

2021-07-26 08:08:56

TCPIP網(wǎng)絡(luò)協(xié)議

2023-09-07 16:46:54

TCP數(shù)據(jù)傳遞

2018-07-05 14:25:01

TCP握手原理

2018-10-15 08:06:33

TCP握手原理

2015-10-13 09:42:52

TCP網(wǎng)絡(luò)協(xié)議

2020-12-08 06:34:16

TCP握手SYN 報(bào)文

2023-03-06 15:43:56

2024-01-12 08:23:11

TCPACK服務(wù)器

2023-10-24 15:22:09

TCPUDP

2019-06-12 11:26:37

TCP三次握手四次揮手

2019-01-25 09:21:30

2024-10-09 20:54:16

2024-04-03 11:40:58

SYN服務(wù)器序號(hào)

2021-01-29 06:11:08

TCP通信三次握手

2021-05-18 12:27:40

TCP控制協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品视频在线播放 | 人人做人人澡人人爽欧美 | 日韩精品一区二区三区在线观看 | 日本精品一区二区在线观看 | 亚洲九九 | 欧美亚洲成人网 | 国产精品视频一二三区 | 精品亚洲一区二区三区 | 久久久久久国产免费视网址 | 日韩日韩日韩日韩日韩日韩日韩 | av福利网 | 成人永久免费视频 | 欧美日韩亚洲二区 | 狠狠狠 | 日韩成人在线一区 | 91精品中文字幕一区二区三区 | 噜噜噜噜狠狠狠7777视频 | 亚洲精品在线看 | 日韩欧美国产一区二区三区 | www.日本国产| 国产精品爱久久久久久久 | 欧美三级在线 | 九九热九九 | 免费一级做a爰片久久毛片潮喷 | 毛片a级 | 夜夜草 | 久久久久久久一级 | 久久久久久国产精品久久 | 亚洲国产欧美一区 | 国产成人综合久久 | 久草在线| 91社区在线观看播放 | 亚洲高清网| 在线亚洲欧美 | 色在线视频网站 | 精精国产视频 | 蜜臀久久| 天天干天天爱天天操 | 久久久精品一区二区三区 | 午夜男人免费视频 | 成人av激情 |