1. 举例说明 GBN 算法窗口大小取值不当会出现什么问题?
假设发送分组序号为 0/1/2/3/0/1/2/3…。
(1).当发送窗口最大值为 2^n=2^2=4 时:发送方发送序号从 0-3 的 4 个帧,等
待确认。接受方正确收到这 4 个帧,进行确认。发送方有两种情况:(1)发送
序号为 0-3 的 4 个新帧(2)因确认丢失而超时,重发 4 个老帧。此时接受方无
法判断收到的是 4 个新帧还是重发的 4 个老帧。
产生错误。
(2).当发送窗口最大值为 2^n-1=2^2-1=3 时,发送方发送序号从 0-2 的 3 个帧,
等待确认。接受方正确收到这 3 个帧,进行确认。此时发送方有两种情况:(1)
收到确认,发送序号为 3 及 0-1 的 3 个新帧(2)因确认丢失超时,重发序号为 0-2
的 3 个老帧。收方如果收到序号为 3 的帧,表明这一批是新帧就接收并且对序号
2 确认,如果没有收到序号为 3 的帧,则对 0-2 序号的帧不予接收,并重发对序
号 3 的确认帧。知道收到正确的帧。
没有矛盾。
2. 举例说明 SR 算法窗口大小取值不当会出现什么问题?
假设发送分组序号为 0/1/2/3/0/1/2/3…。
如果窗口取值 2^n=2^2=4
发送方传 012,接收方收到,滑动窗口前进至 3,0,1,接收方发回 ack,ack 丢失,
发送方重传 0,1,2,如果第一个序列的 3 丢失了,此时接收方不能判断是发送方
重传的 0,1,2 还是发送方传了第二个重复序列的 0,1。
产生错误。
SR 算法窗口取值为 2^(n-1)=2
发送方传 0,1,接收方收到,滑动窗口移动至 2,3,发回 ack,ack 丢失,发送方
重传 0,1,接收方看到发送方发 0,1,与当前窗口不符,判断重传
没有矛盾。
评论0