作者math120908 (小小郭)
看板PangSir
標題Re: [CN] 問題~(上週上課的內容)
時間Wed May 5 11:08:34 2010
是說我不確定我說的是不是對的~~
不過就說說我的想法吧:)
如果有錯煩請更正>"<\\\
感恩<(_ _)>
※ 引述《anfranion (南‧生命的意義是經歷)》之銘言:
: 1. GBN的timer究竟從什麼時候開始呢?
根據我的理解...應該是當傳送第一個pkt的時候timer就開始計了,
然後一旦
最早被送出且
還未收到ACK的pkt
收到他的ACK時(應該就是base) 時間就會重新開始計
如果base = newseqnum的話就停止
所以說timeout這樣子的計法
不一定是某個pkt 從送出開始經過的一段時間
而是距離上一次ACK 經過的一段時間。
像在ppt 3-45的那個圖 timeout就是sender端
rcv ACK1 send pkt5 ~~ pkt2 timeout 這段時間造成的 timeout
: 2. GBN的highest in-order seq # 指的是小的還是大的呢
意思應該是說 如果他連續收到一堆in-order的pkt
他就不需要一個ACK一個ACK慢慢送 而是只要送最後的那位seqnum的ACK就好了吧?
因為seqnum是循環數...所以應該有可能比較小也有可能比較大吧XD?
不過就你的意思應該是比較大的數...吧^^"?
: 3. GBN out of order的packet是直接丟掉的意思嗎?
嗯 假如receiver先收到後面的pkt 應該就會直接丟掉
因為他沒辦法記錄哪些已經ACK了~
: 4. 投影片Ch03partI 46頁 again limits # of sent, unACKed pkts
: 這是什麼意思呢?是說我們在window size N的範圍內還要另外做限制嗎?
應該是不用 意思只是說window的size是N是固定的
因為window裡面最多N個pkt 所以sender沒收到ACK的個數最多只會到N個~~
: 5. 投影片Ch03partI 最後一頁在描述的是什麼樣的問題呢?
: N <= seq num * 1/2又是怎麼來的呢?
最後說的是因為window size跟seqnum的個數差不多的時候
對receiver端可能會有ambiguous的狀況
假設window size = k , seqnum的個數 = n
第i輪的seq num=j的pkt記作 pkt(i,j) , ACK標記也一樣~
圖說明當k=3 n=4 的時候可能發生的問題:
fig(a) 說當sender送了pkt(1,0~2)給receiver
receiver送了ACK(0,0~2)給sender
可是中途都lost掉了 所以sender timeout之後還是會送一開始的那個pkt(1,0)
在fig(b)理 sender同樣送了pkt(1,0~2)給receiver
receiver同樣送了ACK(0,0~2)給sender
然後sender這裡都get到了 於是shift window繼續送pkt(1,3),pkt(2,0),pkt(2,1)
可是當他送出pkt(1,3)的時候 中途lost掉了
當receiver收到pkt(2,0)的時候 他就囧了~
因為他不知道這個pkt的狀況是pkt(1,0)還是pkt(2,0)~~~
也就是他會不知道是sender沒收到ACK還是sender送的東西lost掉了
這個問題主要是k跟n太接近的關係~~
明顯的一定要k<=n 不然可能在一輪中就會ambiguous
然後看看這兩種狀況 (綠色底是window)
CASE 1:
0, ... k-1, ... N-1, 0, ... --送k個pkt-→
0, ... k-1,
k, ... 2k-1
←-全部lost--
0, ... k-1, ... N-1, 0, ...
-還是送pkt(1,0~k-1)→ get pkt(1,0~k-1)
CASE 2:
0, ... k-1, ... N-1, 0, ... --送k個pkt-→
0, ... k-1,
k, ... 2k-1
←-使命必達--
0, ... k-1,
k, ... 2k-1
-送k個pkt
前幾個lost掉→
get後面幾個pkt
可以知道如果n-1 < 2k-1
那pkt(2,0)會出現在
k, ... 2k-1 這個區塊裡面 假設是t好了, k <= t <= 2k-1
然後在CASE 2中的最後一個步驟 假如在k~t-1之間的pkt都lost掉了
最後get到的pkt就會是pkt(2,t-k ~ 2k-1-t) 之類的pkt
=pkt(2, 0 ~ 2k-1-t)
然後receiver又囧了呀 他又會搞不清楚到底什麼狀況了~"~
不過如果2k-1 <= n-1
那 t會在
k, ... 2k-1的後面
在CASE2裡面不管怎麼lost 都不會出現pkt(2,0) 所以也就不會有ambiguous的狀況了喵~
//不知道思考上有沒有什麼漏洞OAQ~
: 抱歉問題有點多 ′▽`)"
: 謝謝~
謝謝<(_ _)>。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84