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

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

在这里插入图片描述

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

                                          ​​​  \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的博客-CSDN博客_信道利用率

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

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

在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。希望各位能够理解吧,哈哈。

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

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
后退N帧协议GBN)是在停止-等待协议的基础上进行改进的一种协议。它是一种滑动窗口协议,用于在发送方和接收方之间进行可靠的数据传输。在GBN协议中,发送方可以连续发送多个帧,而不需要等待确认。发送方维护一个发送窗口,其中包含了已发送但未收到确认的帧。接收方按序接收帧,并发送累计确认,告知发送方该窗口中的帧已经成功接收。如果发送方在超时时间内没有收到确认,那么它会重传窗口中的所有帧。 在GBN协议中,发送方的数据分类可以分为两类:已发送但未确认的帧和未发送的帧。发送方需要响应的事件包括累计确认和超时发送机制。接收方需要响应的事件包括按序接收和确认帧发送机制。 GBN协议的运行细节包括发送方和接收方之间的数据传输和确认机制。发送方的发送窗口长度决定了可以连续发送的帧的数量。GBN协议的性能可以通过重传没有被确认的帧来衡量。 综上所述,后退N帧协议GBN)是一种滑动窗口协议,用于在发送方和接收方之间进行可靠的数据传输。它通过允许发送方连续发送多个帧来提高传输效率,并通过确认和超时机制来确保数据的可靠传输。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【计算机网络】数据链路层 : 后退 N 帧协议 GBN ( 滑动窗口 | 发送窗口长度 | “发送方“ 累计确认、超时...](https://blog.csdn.net/han1202012/article/details/108070859)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值