关于GBN 回退N协议的一些理解

本文探讨了停等协议与Go-Back-N (GBN) 协议中的信道利用率计算,指出在GBN中帧大小与信道利用率的关系,并解释了为何帧越小,信道利用率可能越高。作者通过分析传输周期和窗口大小,揭示了信道利用率公式背后的博弈关系,并提供了一种确定最佳帧长度的方法。文章还涉及了最小帧长在CSMA/CA中的应用,并对之前的理解进行了修正和重述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习计网时遇到的一个题:

在这里插入图片描述

首先给出停等协议中的信道利用率计算公式(这里强调是停等协议):

                                          ​​​  \alpha = \frac{T1}{T1+2T0+T2}

 注意这里的T1是一个帧的发送时间,因为在停等式中是以一个帧的发送周期为单位来考虑的。这里再说一下帧的发送周期:T = 发送时间T1 + 2倍的传输时延T0 + 响应帧的发送时间T2

周期就是:对发送方而言,发送方从发送第一个数据开始,到接收到该确认所经过的时间。

这里如果惯性思维直接把公式带入计算,不难发现,帧越长,信道利用率越高。

在这个题中,T1=T2。             \alpha = \frac{T1}{2(T1+T0)}=\frac{1}{2}(1-\frac {T0}{T1+T0})

T0是定值,T1越大,\alpha越大。如果是这么做的话就直接取512byte了,会得到一个错误的答案。

        我们需要仔细想一下的是,这是GBN协议,不是只传一个帧就不动了,后续传输的帧难道不纳入信道利用率的计算范围吗。这样的出来的结论在GBN里想想都是错的,迷惑我们的只是惯性思维而已。

        最开始我对GBN的理解是一直发送帧,然后那个帧出错了,就退到那个帧去,继续往后发。这么理解显然没错,但是太浅显了。因此我突然无法理解为啥GBN中需要有窗口大小这个东西,但仔细一思考之后,会考虑到这个问题,怎么退回到前N帧,帧的序号位数必定是有限的,那么窗口的大小就大概确定了:1~2^n-1,n为帧的序号位数。

        再说一下GBN的详细解释:在一个帧的发送周期内继续发送之后的帧,出错后回退N帧。前面这句话很重要,方便了理解和记忆。因为一个发送周期内的帧的数量必定是有限的,这里是不是可以理解为这一个周期内的帧数就是窗口大小,我们只需对这一个窗口的帧进行编号,那么那个帧错了就可以立马回退N帧。那就是说,在传输时延确定的情况下,窗口大小只和帧的大小有关,并且为反比关系,帧越小,窗口越大。

N=\frac{T1+2T0+T2}{T1}=2+\frac{2T0}{T1}

        上面\alpha的计算公式:

\alpha = \frac{T1}{2(T1+T0)}=\frac{1}{2}(1-\frac {T0}{T1+T0})

可以理解为:相同数据大小下,发送窗口越大,信道利用率越高。为了解释这句话,我们吹毛求疵的再来理解一下信道利用率的定义,在一个传输周期内实际传输数据所用时间和周期时间之比,即为信道的利用率。周期时间之前讲过,就不赘述。那么在GBN中实际数据的传输时间不就是窗口的所有数据传输时间吗,周期还是一个帧的传输周期。那么上面计算\alpha的公式就是对的,只需要把T1理解为整个窗口数据的传输时间即可。(上面的周期时间为2(T0+T1)只针对此题,一般周期时间的计算上面有提)。这样的话是不是窗口越大,T1越大,信道利用率越高了。

再回到开始的题目,就很好理解了。我们只需要求窗口大小就行。

这里把逻辑理一遍,帧越小,窗口越大,信道利用率越高。

这里还需要确定T1的大小,也就是一个帧的发送时间,不然无法计算。首先是要确定帧长,给出的最合理的解释是由于响应帧与发送帧等长,要减小响应帧的开销,于是取128kb。这里就是我不太认同的地方,于是有了上述推敲,用数学的方法来论证为什么要取128kb。

计算得N=10.4,显然要取n=4。2^4-1=15>10.4

做到这个题的时候看了两篇文章,都觉得讲的有些瑕疵,也看了视频,觉得是在敷衍我,才写下这么多。希望能帮到在做这个题的人理解一下关于信道利用率,GBN的内容。计算都不难,最主要是理解。这里给一下这两篇文章与视频的链接。

Reference:

计算机网络 408 考研【2012年 题36】GBN协议信道利用率相关计算(无字幕版)_哔哩哔哩_bilibili

计网真题:信道利用率计算_suliangkuanjiayou的博客-优快云博客_信道利用率

关于信道利用率的总结与一道习题的最终解释_Bing's Blog-优快云博客_信道利用率定义

最后补充一点关于最小帧长的内容,算是复习计网的笔记:

在CSMA/CA中,在最坏的情况下,冲突被被检测到的时延是2T0(T0为传输时延),就是发送方的数据刚到接收方时耗时T0,接收方此时发送数据造成冲突,冲突消息再传回给发送方耗时T0。

CSMA/CA存在一种边发边听的机制,这样就要求我们在数据的发送期间要能监听到冲突的发生(如果不这样的话发送方没检测到冲突会误以为发送成功)。于是必须要限制最小帧长使得 发送时间T1\geq2T0,这样最小帧长M=V发送速率*2T0。

#######################################################

2023.11.4  修改内容:

回过头来看这里我感觉写的还是有点问题,参数的指代,公式的推导等,决定重新推导一下。

GBN的信道利用率\alpha计算公式应该如下:

\alpha =\frac{ NT_1}{2(T_1+T_0)}=\frac{N}{2+\frac{2T_0}{T_1}}

可以看到\alpha与N和T_1都是成正比,而N与T_1是成反比的(参照N的计算公式),这里N和T_1就有一个博弈关系了。这里我的方法是对在计算\alpha的基础上N和T_1同时乘2,然后计算他们的比值  k  ,观察其大于一或者小于一。

对N乘2结果为:\frac{ 2NT_1}{2(T_1+T_0)}=\frac{NT_1}{T_1+T_0}

T_1乘2结果为:\frac{2NT_1}{2(2T_1+T_0))}=\frac{NT_1}{2T_1+T_0}

显然   \frac{NT_1}{T_1+T_0}/\frac{NT_1}{2T_1+T_0}   是大于一的,也就是说优先取N最大,即窗口大小最大,对应的T_1最小,T_1=帧长/传输速率,对应的就是帧长最小,取128 byte。希望各位能够理解吧,哈哈。

######################################################

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值