作者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