国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

TCP發送窗口、接收窗口以及其工作原理

網絡 無線技術
可用窗口的計算是理解TCP滑動窗口的關鍵,要了解可用窗口的計算,我們需要理解三個指針——SND.UNA、SND.NXT和RCV.NXT。

上面的圖表是從發送方的角度拍攝的快照。我們可以將數據分為4組:

  • 已發送并已確認的字節(藍色)
  • 已發送但尚未確認的字節(黃色)
  • 未發送但接收方準備好接收的字節(綠色)
  • 未發送且接收方未準備好接收的字節(灰色)

第3類也稱為可用窗口,因為這是發送方可以使用的窗口。

發送窗口包括黃色和綠色部分。這些字節要么已經被發送,要么可以被發送。

1*OqqxQKu4ZGasXzIlUZ9lyw.png

可用窗口在發送方發送了21-25字節并使用了可用窗口中的所有字節時可能為空。發送窗口保持不變。

1*JdTCgvYpVPRDcLyVb8Rwsg.png

當發送方接收到16-19字節的確認時,發送窗口向右滑動4個字節。隊列中的接下來的字節會有一個更新的可用窗口。

1*9zFu_scvenahSK6m-khSjw.png

一些定義可以幫助我們更好地理解本文后面的復雜情況:

  • SND.WND,表示發送窗口
  • SND.UNA,表示發送未確認指針,指向發送窗口的第一個字節
  • SND.NXT,表示發送下一個指針,指向可用窗口的第一個字節

1*IYBc3_OiPWAZ7JCvIaktkA.png

基于這些定義,我們可以用以下公式表示可用窗口的大小。

接收窗口

1*SbgJAvyVKyXYvPLuoBbGtA.png

接收窗口分為3個類別:

  • 已接收并已確認的字節
  • 尚未接收但發送方允許發送的字節
  • 尚未接收且發送方可能不允許發送的字節

第2類被稱為接收窗口,也可以稱為RCV.WND。

與發送窗口類似,有一個指針RCV.NXT,表示接收窗口的第一個字節。

1*u3KoxvVK-rrM1g4gX6fbZQ.png

接收窗口并非靜態。如果服務器運行得高效,接收窗口可以擴展。否則,它可能會縮小。

接收方通過在TCP段頭中的窗口字段中指示大小來傳達其接收窗口。當發送方收到它時,這個窗口大小就成為了可用窗口。

發送和接收段需要時間。因此,接收窗口在特定時刻不等于可用窗口。

簡化的示例

讓我們模擬一次請求和響應,以更好地理解滑動窗口的工作原理。

有兩個修改簡化了我們的計算。

  • 我們忽略了最大段大小(MSS)。MSS根據所選的網絡路由而變化。
  • 我們使接收窗口等于可用窗口,而且在整個過程中都保持不變。

1*sAF4A2TyNeItzw2yK0xI9g.png

上面是一個顯示了10個步驟示例的圖表。

客戶端請求一個資源,服務器以三個段響應它:

  • 50字節的頭部
  • 80字節的正文部分1
  • 100字節的正文部分2

每一方都可以同時是發送方和接收方。

我們假設客戶端的發送窗口(SND.WND)為300字節,接收窗口(RCV.WND)為150字節。因此,服務器的SND.WND為150字節,RCV.WND為300字節。

1*cU9TEaEoezDwvw__3G1DFw.png

這是客戶端的起始狀態。

我們假設它之前已經從服務器接收了300字節,因此RCV.NXT指向301。

由于它還沒有發送任何內容,SND.UNA和SND.NXT都指向1。

1*IYBc3_OiPWAZ7JCvIaktkA.png

根據這個公式,客戶端的可用窗口大小是1 + 300 - 1 = 300。

1*kfa6ZdhSR_VJggJ2abUSAQ.png

這是服務器的起始狀態,反映了另一側的狀態。

因為它已經發送了300字節,SND.UNA和SND.NXT都指向301。

由于客戶端還沒有發送任何請求,RCV.NXT指向1。

服務器的可用窗口是301 + 150 - 301 = 150。

現在,第1步開始了。

客戶端發送了第一個100字節的請求。在這一刻,窗口發生了變化。

  • 這100字節已發送但尚未確認。因此,SND.NXT向右滑動了100字節。
  • 其他指針保持不變。

可用窗口變為1 + 300 - 101 = 200。

1*ug0laVIMWQ3HGG-kPjZ0KA.png

在第2步,我們關注了服務器。

  • 當服務器接收到請求時,RCV.NXT向右滑動了100字節。
  • 然后發送了帶有ACK的50字節響應。這50字節已發送但尚未確認,所以SND.NXT向右移動了50個字節。
  • SND.UNA保持不變。

可用窗口變為301 + 150 - 351 = 100。

1*GAZqLwbVGj2yqUnm5DyI4w.png

移動到客戶端。

  • 當客戶端接收到50字節的響應時,RCV.NXT向右滑動了50字節。
  • 當它收到前面發送的100字節的ACK時,SND.UNA向右滑動。
  • 由于客戶端沒有發送任何數據,SND.NXT保持不變。

可用窗口變為101 + 300 - 101 = 300。

1*50UitYxS9XW3N4XV2Z7tOg.png

再次移動到服務器的一端。

可用窗口是100字節。服務器可以發送80字節的段。

  • SND.NXT向右滑動了80個字節。
  • 由于前面的50字節尚未確認,SND.UNA保持不變。
  • 由于服務器未接收任何數據,RCV.NXT保持不變。

可用窗口變為301 + 150 - 431 = 20。

1*soNJeyvqRj0zqDDrtBL9Fg.png

客戶端接收了文件的第一部分并立即發送了ACK。

  • 當客戶端接收到80字節的數據時,RCV.NXT向右滑動。
  • 其他指針保持不變。

可用窗口保持在300。

1*QJKwuY3HvslR9601ZRWCxA.png

此時,服務器在發送第2步時接收到ACK時。

  • 當服務器發送50字節的響應時,SND.UNA向右滑動了50個字節。
  • 其他指針保持不變。

1*thuJ7lCYqreqxsL8nMz_ag.png

在第4步中,服務器發送了文件的第一個80字節部分,并再次收到了ACK確認。

  • SND.UNA(已確認序列號)向右移動了80個字節。
  • 其他指針保持不變。

可用窗口的計算變為431 + 150 - 431 = 150。

1*8sS5S0OkW0I2Vbp40nkkZQ.png

在第8步,服務器發送了文件的第二部分,共100字節。

  • SND.NXT(下一個要發送的序列號)向右移動了100個字節。
  • 其他指針保持不變。

可用窗口的計算變為431 + 150 - 531 = 50。

1*qXP9BCX80vPpkplc5utP6Q.png

接下來,輪到客戶端。

  • RCV.NXT(下一個要接收的序列號)在客戶端接收100字節后向右移動了100個字節。
  • 其他指針保持不變。

可用窗口保持不變。

1*LkQ7tG-_1XQROjOZ3vTC9g.png

最后,服務器接收了前一個響應的ACK。

  • SND.UNA向右移動了100個字節。
  • 其他指針保持不變。

可用窗口的計算變為531 + 150 - 531 = 150。

當窗口發生變化

在之前,我們假設發送窗口和接收窗口保持不變。但在實際情況中,這個假設是不正確的,因為兩個窗口中的字節存在于操作系統緩沖區中,而緩沖區中的可用空間可以調整。當我們的應用程序無法快速讀取緩沖區中的字節時,可用空間會減小。

讓我們看看窗口發生變化的情況,以及它如何影響可用窗口。

1*qyjkUdkAdsfrkRkqVlPClw.png

為了簡化,本例重點關注客戶端的可用窗口。在這個示例中,客戶端始終是發送方,服務器是接收方。

1*u3KoxvVK-rrM1g4gX6fbZQ.png

當服務器發送ACK時,它還包括了更新后的窗口大小。

1*pkiC_TWGpIZF3aSPOz6lcA.png

一開始,客戶端發送了一個150字節的請求。

  • 這150字節已發送但尚未得到確認。
  • 可用窗口縮小為150字節。
  • 發送窗口保持在300字節。

1*zs4VuHChJJ-7vWFmXyr8Ug.png

當服務器接收請求時,應用程序讀取了前50字節,剩下的100字節仍然在緩沖區中,從接收窗口中占用了100字節的可用空間。因此,接收窗口縮小到了200字節。

接下來,服務器發送了一個帶有更新后的200字節接收窗口的ACK。

1*SZDl6q22CB6kzY3P-CCHFA.png

客戶端接收ACK并將其發送窗口大小更新為200。

此時,可用窗口與發送窗口相同,因為所有150字節都已得到確認。

1*6gKYyaDUdOQSEGfHh6SWdA.png

再次,客戶端發送了另一個200字節的請求,使用了可用窗口中的所有可用空間。

1*uJiRzHmdV4kT8lPW62bz0g.png

在服務器接收了這200字節之后,應用程序仍然運行緩慢,總共只讀取了70字節,將280字節留在緩沖區中。這導致接收窗口再次縮小,現在只剩下20字節。

在ACK消息中,服務器與客戶端分享了更新后的窗口大小。

1*xnUjR-R45hPoGO7qhvCHKg.png

再次,客戶端在收到ACK后將其發送窗口更新為20字節,可用窗口也變為20字節。

在這種情況下,如果沒有更多來自服務器的消息,客戶端將停止發送大于20字節的請求,直到在后續消息中收到另一個窗口更新。

那么,如果沒有更多消息來自服務器,我們會被困在20字節的可用窗口嗎?

不會。為了避免這種情況,客戶端的TCP定期檢測窗口大小。

一旦釋放更多的空間,

可用窗口就會擴大,可以發送更多的數據。

主要內容

  • 可用窗口的計算是理解TCP滑動窗口的關鍵。
  • 要了解可用窗口的計算,我們需要理解3個指針——SND.UNA、SND.NXT和RCV.NXT。
  • 假設窗口大小永遠不會改變可以幫助我們理解整個過程。
責任編輯:趙寧寧 來源: 小技術君
相關推薦

2023-08-11 07:44:40

TCP滑動窗口數據

2010-10-09 08:50:16

2014-06-26 09:24:04

TCP

2013-11-18 10:04:31

TCP 滑動窗口

2020-10-12 19:50:30

TCP窗口時間戳SACK

2013-09-16 09:56:29

TCP協議網絡協議send

2025-05-19 00:02:45

SQL窗口函數

2021-10-12 08:00:00

存儲邊緣緩存邊緣服務器

2023-08-04 15:05:20

子窗口主窗口

2023-10-17 10:11:50

TCPIP

2019-09-30 09:28:26

LinuxTCPIP

2015-01-15 09:21:24

TCP窗口

2023-12-18 10:45:31

2020-08-13 08:43:24

TCP固定窗口滑動窗口

2023-12-19 15:08:10

2023-08-08 00:06:31

2021-07-29 11:46:27

NAS存儲NAS服務器

2009-11-26 14:23:11

Silverlight

2009-04-28 13:48:09

2010-03-16 13:20:25

智能交換機
點贊
收藏

51CTO技術棧公眾號

www.亚洲| 春暖花开成人亚洲区| 欧美午夜久久| 久久国产精品久久久久久久久久| 黄网页免费在线观看| 色美美综合视频| 午夜影院在线观看视频| 亚洲国产中文字幕| 美女视频黄a视频全免费观看| 久久久久久久国产精品影院| 在线观看成人免费| 青青草伊人久久| 日本一区二区三区免费看| 欧美日韩亚洲一区| 国产成人看片| 国内精品久久久久久久影视麻豆| 91最新国产视频| 自拍欧美日韩| 成人h在线播放| 婷婷伊人综合| 国产精品香蕉视屏| 免费国产自线拍一欧美视频| 欧美日本韩国一区二区三区| 久久看片网站| 中文字幕在线中文字幕日亚韩一区| 首页亚洲欧美制服丝腿| 午夜精品亚洲一区二区三区嫩草 | 俺去啦;欧美日韩| 免费福利在线观看| 欧美日韩午夜视频在线观看| 粉嫩欧美一区二区三区| 午夜视频一区二区三区| 欧美色图另类| 日韩免费视频一区二区| av小说在线播放| 中文字幕欧美日韩| 91精品导航| 国产欧美日韩视频| 欧美91视频| 亚洲欧美日韩不卡一区二区三区| 韩国欧美国产1区| 各处沟厕大尺度偷拍女厕嘘嘘| av电影一区二区| 性生活免费在线观看| 亚洲国产成人va在线观看天堂| av电影在线播放高清免费观看| 亚洲国产精品系列| 男人天堂久久| 国产中文字幕日韩| 日韩精品每日更新| 中文字幕国内自拍| 欧美日韩一区二区在线视频| 51精品视频| 欧美激情影音先锋| 综合久久一区| 视频一区二区视频| 中文字幕色av一区二区三区| 久青青在线观看视频国产| 亚洲福利视频久久| jizz性欧美23| 欧美成人综合一区| 亚洲国产精品成人综合色在线婷婷| 天海翼一区二区三区四区在线观看| 日韩精品一区二区三区蜜臀| 成人国产精品一区二区网站| 91久久久久久国产精品| 国产麻豆精品在线观看| 免费av片风间由美在线| 亚洲国产精品一区二区三区| 日本午夜精品久久久| 日韩av电影免费观看| 国产精品日日摸夜夜摸av| 超碰在线网址| 91av在线国产| 国产在线精品一区二区不卡了| 国产精品666| 亚洲精品永久免费| 亚洲高清影视| 成人性免费视频| 欧美日韩国产乱码电影| 国产日韩三级| 国产精品h视频| 午夜精品一区二区三区电影天堂| 朝桐光一区二区| 精品在线不卡| 一区二区三区国产精品| 欧美一级大黄| 豆国产97在线| 欧美极品美女视频| 鲁鲁在线中文| 亚洲一区二区中文字幕| 久久免费国产精品| av资源在线看片| 99视频免费观看| 国产精品久久久久久一区二区三区 | 在线观看一区二区视频| 2018日韩中文字幕| 最新精品国偷自产在线| 国产综合色香蕉精品| 国产成a人无v码亚洲福利| 三级资源在线| 中文字幕精品一区| 成人蜜桃视频网站网址| 中文字幕一区不卡| 日韩jizzz| 欧美日韩中国免费专区在线看| 98精品久久久久久久| 在线中文字幕视频| 色综合97天天综合网| 成人在线观看黄| a级片一区二区| 中文字幕欧美日韩在线| 精品一区二区三区视频 | 国产欧美日韩精品一区二区三区| 国产一级在线| 亚洲美女黄色片| 综合久久综合久久| 久久人人超碰精品| 亚洲美女网站| 日本成人在线一区| jizz国产精品| 伊人久久av| 一本大道色婷婷在线| 无码人妻丰满熟妇区毛片| 日韩人体视频一二区| 欧美丝袜一区二区| kk眼镜猥琐国模调教系列一区二区| 国产精品久久久免费| 国产精品极品在线观看| 沈樵精品国产成av片| 68国产成人综合久久精品| 黄色网在线免费看| 色爱区成人综合网| 亚洲在线观看一区| 亚洲影院污污.| 成人免费在线视频网站| 亚洲欧美www| 狠狠色狠狠色综合日日五| 成人性色生活片| 成人免费va视频| 91麻豆国产香蕉久久精品| 久久亚洲国产精品一区二区| 美洲天堂一区二卡三卡四卡视频| 国产精品探花在线观看| 91av久久| 欧美日韩中文一区二区| 国产精品一国产精品| 亚洲免费黄色| 夜夜精品视频一区二区| 天天亚洲美女在线视频| 成人av在线资源网| 91在线视频免费91| 精品动漫一区二区三区| 亚洲成人av电影在线| 亚洲二区视频在线| 精品一区二区三区香蕉蜜桃| 久久理论电影网| 欧美日韩精品免费| 一本大道久久精品懂色aⅴ| 欧美日韩成人在线| 久久99国产精品自在自在app| 日韩在线播放av| 在线看一区二区| 日韩中文字幕网| 日本午夜在线亚洲.国产| 国产999精品久久久| 精品一区在线播放| 我的公把我弄高潮了视频| 日韩三级电影网| 三上悠亚一区| 97超碰国产精品| 污色网站在线观看| 欧美自拍电影| 男女网站在线观看| 国产高清不卡av| 精品99999| 国产婷婷一区二区| 91精品一区国产高清在线gif| fc2ppv国产精品久久| 六月丁香激情网| 成人黄色短视频在线观看| 亚洲第一天堂av| 久久久不卡影院| 亚洲第一黄色| 日韩黄色三级| 神马精品久久| 少妇久久久久久被弄到高潮| 日韩免费观看视频| 亚洲黄色在线观看| 亚洲一区在线观看免费| 美国十次了思思久久精品导航| 欧洲亚洲视频| 国产理论电影在线| 国产精品久久久久永久免费看| 久久青青草综合| 欧美激情一区二区三级高清视频| 欧美蜜桃一区二区三区| 国产欧美精品国产国产专区| 亚洲专区一区二区三区| 西野翔中文久久精品国产|