偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

有沒想過TCP為什么要先握手再發(fā)送數(shù)據(jù)

網(wǎng)絡(luò) 通信技術(shù)
再看計(jì)算機(jī)網(wǎng)絡(luò)的時(shí)候,始終有一個(gè)問題總是弄不明白,那就是TCP為什么要先三次握手,然后再是發(fā)送數(shù)據(jù),最后在斷開。

再看計(jì)算機(jī)網(wǎng)絡(luò)的時(shí)候,始終有一個(gè)問題總是弄不明白,那就是TCP為什么要先三次握手,然后再是發(fā)送數(shù)據(jù),最后在斷開。注意這里的問題是為什么要先,再次強(qiáng)調(diào)的是先三次握手在發(fā)數(shù)據(jù)的疑問,而不是把“TCP為什么要先三次握手”放在百度上百度后出現(xiàn)的“TCP為什么不是2或者4次握手的問題”,有時(shí)候還真的是不得不吐槽百度的算法還真不如google,下圖為證:

額。。。至于google的搜索由于要用到翻墻的軟件,影響不好就不貼圖了。。。繼續(xù)我們得話題,回答一下這個(gè)問題吧,當(dāng)然這是我的感悟,還是那句話“若是有問題,還是請到評論區(qū)寫出自己的見解,以免誤人子弟哈”。

要回答這個(gè)問題首先得知道TCP報(bào)文段的結(jié)構(gòu),如下圖:

要說的就是TCP報(bào)文段中的窗口這16位字段部分,這里窗口的作用就是為了實(shí)現(xiàn)流量的控制,為什么會(huì)有流量的控制的引入???它是這樣來的:若是發(fā)送方發(fā)送數(shù)據(jù)的速度大于了接收方應(yīng)用程序取數(shù)據(jù)的速度(假設(shè)數(shù)據(jù)傳輸過程不擁塞)那么,接收方就會(huì)出現(xiàn)失貞的現(xiàn)象,也就是把數(shù)據(jù)覆蓋了,所以數(shù)據(jù)的發(fā)送就要得到控制,就引入了窗口這16位。怎么引入的??

是這樣的:發(fā)送方和接收方都有一個(gè)緩存區(qū)(用來接收從網(wǎng)絡(luò)傳來的數(shù)據(jù),并提交給應(yīng)用程序),對于接收方來說,它要維護(hù)兩個(gè)變量值,一個(gè)是應(yīng)用程序從緩存讀出去的數(shù)據(jù)(out來表示);另一個(gè)是從網(wǎng)絡(luò)接收的數(shù)據(jù)(in來表示),那么在接收方一個(gè)緩存里面剩余的空間就是Buffer-(in - out) = window(假設(shè)Buffer表示緩存的數(shù)量個(gè)數(shù),in - out 表示應(yīng)用程序沒讀的個(gè)數(shù),也就是緩存被占用的個(gè)數(shù),總的減去占用的就是可以利用的空間的個(gè)數(shù)用window來表示),那么這個(gè)window就是窗口所要寫入的值,接受方會(huì)把這個(gè)值傳遞給發(fā)送方表示我還有多少空間可以利用。

同樣發(fā)送方也會(huì)有一個(gè)緩存,同樣要維持兩個(gè)變量值:一個(gè)是已經(jīng)發(fā)送的數(shù)據(jù)個(gè)數(shù)(send);另一個(gè)是已經(jīng)得到確認(rèn)的數(shù)據(jù)個(gè)數(shù)(acked),那么send - acked就表示已經(jīng)發(fā)送出去了,但是還沒有得到確認(rèn)的數(shù)據(jù)的個(gè)數(shù),換句話就是正在傳輸?shù)臄?shù)據(jù)(這樣理解好點(diǎn),但是有點(diǎn)不對),那么要讓接收方緩存數(shù)據(jù)不被覆蓋,那么正在發(fā)送的數(shù)據(jù)要小于接收方的窗口(send - acked < window)。

寫以上這些是為了深入理解窗口的概念!!!!僅此而已為理解TCP為什么要握手做準(zhǔn)備!!!

在簡單說一下三次握手的過程:

  • 第一次,客戶機(jī)發(fā)送TCP短報(bào)文。
  • 第二次,服務(wù)器發(fā)送應(yīng)答,并建立緩存和變量。
  • 第三次,客戶機(jī)發(fā)送應(yīng)答,并建立緩存和變量。

注意也就是在三次握手時(shí)就建立了緩存,那么也就是說,A與B要通信,兩者之間必須先約定好一些參數(shù),比如這里的緩存,那么依據(jù)上面的理論來說,建立緩存的目的就是為了避免不可靠的傳輸數(shù)據(jù)(也就是為了避免數(shù)據(jù)被覆蓋),所以在傳輸數(shù)據(jù)之前,兩者之間先做一些約定,換句話就是在做交易時(shí)先談好地點(diǎn)和時(shí)間,在做交易。

那么,總的來說,所謂的鏈接就是為了分配內(nèi)存等資源,然后避免不可靠的傳輸,以免污了TCP可靠傳輸?shù)拿^!!!

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

2023-09-07 16:46:54

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

2022-07-25 07:07:35

TCP客戶端服務(wù)器

2019-12-12 10:36:43

TCPSYNIP

2019-07-19 06:58:03

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

2024-10-14 16:40:59

2020-09-21 07:55:40

退款交易

2021-04-30 13:32:17

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

2020-03-10 08:27:24

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

2019-05-14 10:09:06

TCP連接握手

2024-07-10 12:00:42

2024-10-16 08:38:37

TCP編號信息

2010-02-03 11:08:44

IT人

2016-09-22 16:06:21

微服務(wù)架構(gòu)RPC框架

2021-03-26 10:04:38

數(shù)據(jù)結(jié)構(gòu)技術(shù)

2023-02-10 08:58:46

2021-12-13 06:23:14

TCP三次握手網(wǎng)絡(luò)

2021-05-28 09:08:20

TCP連接序列號

2021-09-09 08:47:57

TCP三次握手協(xié)議

2024-06-05 10:07:00

限流微服務(wù)算法

2013-03-12 14:30:09

Ubuntu操作系統(tǒng)
點(diǎn)贊
收藏

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