關於滑動視窗的小小小tip

2021-07-25 08:49:16 字數 877 閱讀 3623

@(計算機網路)

如果提出來乙個結論:視窗大小 = 傳送視窗大小+接收視窗大小。

不知道會多少人覺得這是在幹啥。

對於n位元編號的資料幀,曾經討論過,傳送

視窗+接

收視窗≤

2n時可以區分新舊輪次。

這篇記錄了一點點那天晚上挺煎熬的思考,因為找不到合適的論據,也沒有足夠的抽象能力抽出這樣的結論,所以只能猜測,後來想明白就是這樣。

那麼理解了區分新舊輪次的計算式,就很容易理解本文最上面提出的結論,但是這也是很容易被忽視的點,認為傳送視窗和接收視窗天各一方,愛誰誰,有啥關係。實際二者大小此消彼長,共用n位元編出的離散狀態作為自己的視窗資料編號。

有這些,就可以愉快的判斷下面的幾個結論了。

i. 對於視窗大小為n的滑動視窗,最多可以有n幀已經傳送但是沒有確認。

ii. 假設幀序號有3位,採用連續arq協議,傳送視窗的最大值是4.

iii. 在gbn協議中,如果傳送視窗大小是16,則至少需要4位序列號才能保證協議不出錯。

分析:視窗大小,嗯,不是傳送視窗。接收視窗至少是1吧,傳送視窗最大時n-1,最多,頂天了只能連續傳送n-1個幀。i,妥妥地錯。概念挖坑。

3位,離散狀態有8個,連續arq,可以的,讓接收視窗最小,為1.傳送視窗將獨佔7個狀態,大小為7。ii,妥妥地錯。

gbn,回退n幀,n是傳送視窗的大小。為什麼要回退n幀?接收慢唄。一次只能接收乙個(接收視窗為1),一旦出錯就要gbn回退n,重新來。2n

≥16+1

→n=5

(atl

east

) . iii.妥妥地錯。

於是我想:

有些貌似正確的錯誤。

有些正確的廢話。

都是需要過濾的。

滑動視窗的小小總結

滑動視窗問題通常會給出一長一短的兩個字串 s和t 核心目的是讓你判斷s中是否包含t 整體的思路如下 初始化兩個雜湊表,need表示字串t各個字元的個數,window表示當前視窗內各個所需字元的個數,用變數missingtype表示當前視窗缺少的字元種類 用 left 和 right 兩個指標形成左閉...

乙個Weex的小小小小小小頁面示例

使用weex實現的乙個頁面效果 下面列出主要的 index.vue justify content center align items center logo greeting message commontitle.vue元件 pointsmallhome.vue 頁面暫時模擬假資料 banne...

關於Split的小小應用

using system using system.collections.generic using system.linq using system.text namespace splitstring foreach string s in split 下面是另一種方法,明顯比我的要好,所以拿...