以字節(jié)為單位的滑動(dòng)窗口
發(fā)布時(shí)間:2014/9/6 21:00:04 訪問(wèn)次數(shù):1973
TCP的滑動(dòng)窗口是以字節(jié)為單位的。為了便于說(shuō)明,我們故意把后面圖5-15至圖5-18中的字節(jié)編號(hào)都取得很小,F(xiàn)假定A收到了B發(fā)來(lái)的確認(rèn)報(bào)文段,其中窗口是20(字節(jié)),MSS5131-183MLC而確認(rèn)號(hào)是31(這表明B期望收到的下一個(gè)序號(hào)是31,而序號(hào)30為止的數(shù)據(jù)已經(jīng)收
到了)。根據(jù)這兩個(gè)數(shù)據(jù),A就構(gòu)造出自己的發(fā)送窗口,其位置如圖5-15所示。
圖5-15根據(jù)B給出的窗口值,A構(gòu)造出自己的發(fā)送窗口
我們先討論發(fā)送方A的發(fā)送窗口。發(fā)送窗口表示:在沒(méi)有收到B的確認(rèn)的情況下,A可以連續(xù)把窗口內(nèi)的數(shù)據(jù)都發(fā)送出去。凡是已經(jīng)發(fā)送過(guò)的數(shù)據(jù),在未收到確認(rèn)之前都必須暫時(shí)保留,以便在超時(shí)重傳時(shí)使用。
發(fā)送窗口里面的序號(hào)表示允許發(fā)送的序號(hào)。顯然,窗口越大,發(fā)送方就可以在收到對(duì)方確認(rèn)之前連續(xù)發(fā)送更多的數(shù)據(jù),因而可熊獲得更高的傳輸效率。但接收方必須來(lái)得及處理這些收到的數(shù)據(jù)。
發(fā)送窗口后沿的后面部分表示已發(fā)送且已收到了確認(rèn)。這些數(shù)據(jù)顯然不需要再保留了。而發(fā)送窗口前沿的前面部分表示不允許發(fā)送的,因?yàn)榻邮辗蕉紱](méi)有為這部分?jǐn)?shù)據(jù)保留臨時(shí)存放的緩存空間。
發(fā)送窗口的位置由窗口前沿和后沿的位置共同確定。發(fā)送窗口后沿的變化情況有兩種可能,即不動(dòng)(沒(méi)有收到新的確認(rèn))和前移(收到了新的確認(rèn))。發(fā)送窗口后沿不可能向后移動(dòng),因?yàn)椴荒艹蜂N掉已收到的確認(rèn)。發(fā)送窗口前沿通常是不斷向前移動(dòng),但也有可能不動(dòng)。這對(duì)應(yīng)于兩種情況:一是沒(méi)有收到新的確認(rèn),對(duì)方通知的窗口大小也不變:二是收到了新的確認(rèn)但對(duì)方通知的窗口縮小了,使得發(fā)送窗口前沿正好不動(dòng)。
發(fā)送窗口前沿也有可能向后收縮。這發(fā)生在對(duì)方通知的窗口縮小了。但TCP的標(biāo)準(zhǔn)強(qiáng)烈不贊成這樣做。因?yàn)楹芸赡馨l(fā)送方在收到這個(gè)通知以前已經(jīng)發(fā)送了窗口中的許多數(shù)據(jù),現(xiàn)在又要收縮窗口,不讓發(fā)送這些數(shù)據(jù),這樣就會(huì)產(chǎn)生一些錯(cuò)誤。
現(xiàn)在假定A發(fā)送了序號(hào)為31~41的數(shù)據(jù)。這時(shí),發(fā)送窗口位置并未改變(圖5-16),但發(fā)送窗口內(nèi)靠后面有11個(gè)字節(jié)(灰色小方框表示)表示已發(fā)送但未收到確認(rèn)。而發(fā)送窗口內(nèi)靠前面的9個(gè)字節(jié)(42一50)是允許發(fā)送但尚未發(fā)送的。
TCP的滑動(dòng)窗口是以字節(jié)為單位的。為了便于說(shuō)明,我們故意把后面圖5-15至圖5-18中的字節(jié)編號(hào)都取得很小,F(xiàn)假定A收到了B發(fā)來(lái)的確認(rèn)報(bào)文段,其中窗口是20(字節(jié)),MSS5131-183MLC而確認(rèn)號(hào)是31(這表明B期望收到的下一個(gè)序號(hào)是31,而序號(hào)30為止的數(shù)據(jù)已經(jīng)收
到了)。根據(jù)這兩個(gè)數(shù)據(jù),A就構(gòu)造出自己的發(fā)送窗口,其位置如圖5-15所示。
圖5-15根據(jù)B給出的窗口值,A構(gòu)造出自己的發(fā)送窗口
我們先討論發(fā)送方A的發(fā)送窗口。發(fā)送窗口表示:在沒(méi)有收到B的確認(rèn)的情況下,A可以連續(xù)把窗口內(nèi)的數(shù)據(jù)都發(fā)送出去。凡是已經(jīng)發(fā)送過(guò)的數(shù)據(jù),在未收到確認(rèn)之前都必須暫時(shí)保留,以便在超時(shí)重傳時(shí)使用。
發(fā)送窗口里面的序號(hào)表示允許發(fā)送的序號(hào)。顯然,窗口越大,發(fā)送方就可以在收到對(duì)方確認(rèn)之前連續(xù)發(fā)送更多的數(shù)據(jù),因而可熊獲得更高的傳輸效率。但接收方必須來(lái)得及處理這些收到的數(shù)據(jù)。
發(fā)送窗口后沿的后面部分表示已發(fā)送且已收到了確認(rèn)。這些數(shù)據(jù)顯然不需要再保留了。而發(fā)送窗口前沿的前面部分表示不允許發(fā)送的,因?yàn)榻邮辗蕉紱](méi)有為這部分?jǐn)?shù)據(jù)保留臨時(shí)存放的緩存空間。
發(fā)送窗口的位置由窗口前沿和后沿的位置共同確定。發(fā)送窗口后沿的變化情況有兩種可能,即不動(dòng)(沒(méi)有收到新的確認(rèn))和前移(收到了新的確認(rèn))。發(fā)送窗口后沿不可能向后移動(dòng),因?yàn)椴荒艹蜂N掉已收到的確認(rèn)。發(fā)送窗口前沿通常是不斷向前移動(dòng),但也有可能不動(dòng)。這對(duì)應(yīng)于兩種情況:一是沒(méi)有收到新的確認(rèn),對(duì)方通知的窗口大小也不變:二是收到了新的確認(rèn)但對(duì)方通知的窗口縮小了,使得發(fā)送窗口前沿正好不動(dòng)。
發(fā)送窗口前沿也有可能向后收縮。這發(fā)生在對(duì)方通知的窗口縮小了。但TCP的標(biāo)準(zhǔn)強(qiáng)烈不贊成這樣做。因?yàn)楹芸赡馨l(fā)送方在收到這個(gè)通知以前已經(jīng)發(fā)送了窗口中的許多數(shù)據(jù),現(xiàn)在又要收縮窗口,不讓發(fā)送這些數(shù)據(jù),這樣就會(huì)產(chǎn)生一些錯(cuò)誤。
現(xiàn)在假定A發(fā)送了序號(hào)為31~41的數(shù)據(jù)。這時(shí),發(fā)送窗口位置并未改變(圖5-16),但發(fā)送窗口內(nèi)靠后面有11個(gè)字節(jié)(灰色小方框表示)表示已發(fā)送但未收到確認(rèn)。而發(fā)送窗口內(nèi)靠前面的9個(gè)字節(jié)(42一50)是允許發(fā)送但尚未發(fā)送的。
熱門點(diǎn)擊
- 錫的基本物理和化學(xué)特性
- 數(shù)據(jù)偏移
- 網(wǎng)橋中的轉(zhuǎn)發(fā)表并非總是包含所有站點(diǎn)的信息
- 數(shù)據(jù)報(bào)的分片舉例
- 時(shí)分復(fù)用可能會(huì)造成線路資源的浪費(fèi)
- lP數(shù)據(jù)報(bào)首部檢驗(yàn)和的計(jì)算過(guò)程
- 輸入耦合方式
- 以字節(jié)為單位的滑動(dòng)窗口
- MF47型萬(wàn)用表的功能
- 檢測(cè)所用導(dǎo)線是否導(dǎo)通
推薦技術(shù)資料
- 滑雪繞樁機(jī)器人
- 本例是一款非常有趣,同時(shí)又有一定調(diào)試難度的玩法。EDE2116AB... [詳細(xì)]
- F28P65x C2000 實(shí)時(shí)微控制器
- ARM Cortex-M33 內(nèi)核̴
- 氮化鎵二極管和晶體管̴
- Richtek RT5716設(shè)
- 新一代旗艦芯片麒麟9020應(yīng)用
- 新品WTOLC-4X50H32
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究