给定几个关系:

停止等待的发送窗口、接收窗口均是一个大小

后退法的发送可以是多个、接收是一个

选择重传的发送是多个,接收也同样是多个


关系内,若给帧编号,停止等待仅需要两个编号即可

后退法需要发送窗口数+接收窗口数一个,即A+1

选择重传需要发送窗口数+接收窗口数个,即对应的A+B个


其中,选择重传更进一步的关系

接收窗口需要小于发送窗口,书上的推导均来自于该几个逻辑,无非是把编号换为几位进制

这个地方还是比较容易出考点,尤其要重视总帧号、发送窗口、接受窗口大小的关系


另外需要区分清楚,帧号数量和窗口数量之间的关系

计算信道利用率,算出来的是,一个周期内需要至少发送的帧数,至少的发送窗口大小

但一定还要注意的是,接收窗口也是需要计算的,为了保证不出现问题

需要满足A+B<2^n,而这一点恰是非常容易忽略的,在课后习题的24题最后一句

这类综合题是比较重要的,也是很容易出错的,如果当时24题给你的结果是16个窗口大小

然后问你需要多少位,那么是不是非常容易错,这样就需要5位了

同时,这里如果考察是选择重传,那么也可能存在“至少”、“至多”两种考察法

至少,那么就是算出来的发送窗口大小+2,因为接收至少是大于一个窗口的

不过一般情况都是相等的,这个至少也只是理论的结果,没有具体的解释说明在

至多,那么就是发送窗口+接收窗口(两倍的发送窗口大小),考察形式就有区别


关于确认帧、重发帧问题:

记住,后退方式确认是对前N个的一起确认,而选择重传是每一帧都需要确认一次

仅有当没有收到确认帧、并且超时的情况下才考虑转发


信道利用率中:

停止、等待只能做到一个传输周期内顶多发一个,必须等到第一个确认收到才能再发新的

另外两个是连续ARQ协议内的,最高可以做到百分百的利用率,即一直发发发

相应的计算也比较简单,只需要一个传输周期内,彻底填满,让其没有任何空隙即可

例如单个的传输、确认周期是640ms,而单个的传输仅需要64ms,那么就可以装最多十个

如果是650ms呢?那么就给我装十一个,一毫秒都不能浪费,相应也需要十一个发送帧

如果单纯只是没有占据满一个发送周期,应该怎么计算?

从第一个周期确认完成以后,再次开始发送,中间发送完了距离确认完还有空闲时间

对于确认,这里说两句

如果是短帧确认,即不考虑确认帧的,那么就不用把确认时间算入

如果是有确认帧的,那么就需要考虑确认帧,把确认帧也算入一个发送时间内

当确认帧也完成了以后,才能开始下一组的发送

另外,计算有效时间,需要注意,只有数据帧传输是有效发送,其余均不是有效时间


这一块的内容,虽然说题目错误率确实是不高,但个人认为依旧没有完全覆盖考点

所以有空还是要多想、多练,这一块的答案也同样多看几遍为好


规格化复用那边,前面有一个1/m,挺容易漏看的


纯ALOHA协议方法:

直接什么都不管直接发送出去,然后等一会看有没有回来的确认

有,那么发送成功

没有,那么就要重新传,先等一会(随机时间),然后再重新传输重复该几步骤

其中这个没有确认一般就是产生了冲突


时隙ALOHA:

只有当时间片开始的时候才能传数据,发送的时间必须小于时间片长

所以在时间片内过来的,就会在各个站产生缓存,如果两个站在该时间各自有了缓存

那么下次一定会冲突,那么就是冲突处理重新传送,等待随机时间重传即可


CSMA/CD:

适用于总线型、半双工网络环境,全双工不可能产生冲突,只有半双或总线需要抢信道

其适用于广播局域网,有线情况下

其工作原理是:

先坚持一直监听有没有空闲,有空闲则开始发送

在发送过程中一直监听,如果监听到了冲突,那么停止发送,随机时间等待后重发

这个不需要进行多轮等待如CSMA/CA般,因为其只需要检验冲突,不需要尽可能避免冲突


其最短帧长,其本质是一个逻辑关系:

争用期内如果不冲突,那么数据一定能完全传送(因为必然抢夺成功了信道

争用期间内如果产生了冲突,那么数据一定要重发,也就是冲突下数据最长长度能确认

因而传送若小于该数据,必然冲突,超过该数据,必然不冲突

以太网规定了争用期长度为发送64B的时间,这个是题目内默认给出的

最短帧长就是两个传播时延内发送出去的数据长度,超过该数据必不冲突,反之亦然

自然的,得到的帧长若小于最短帧长直接丢掉,其他情况就应该接受

发送帧的长度自然是要长于最短帧长的,同时发送帧的时间应该大于双向时延

否则你发了一个小于最短帧长的,直接给你丢了,所以才需要提出补充长度的概念

计算的时候注意下,这个延迟时长是双向的,也就是双程的,这个非常容易漏忘


关于最短帧长的补充:

规定了最短帧长,那么一旦发送或者接收大于这个帧长的,都会认为没错

如果两端的传播延迟过长的话,就会导致在冲突发生后,会延迟更久才能发回来有冲突

而在这个时间内,是一直在发送的,意味着发送的长度会大于最短帧长,却认为没错

而实际上已经产生冲突了,却没办法判断出来到底有没有产生冲突,因为帧长确大于最短

这样就会影响最终的冲突判断

简单来说,最短帧长的规定同时规定了最长的双向传播时延,如果时延超过这个值

就会导致所谓的“最短”发送长度必然超过了实际规定的最短帧,导致冲突判断失效

这也是三十八题所谓相距最远距离的来源

此外,这题的Hub很明显是双向的,两边的传输都是需要重生比特流的

100Base-T的含义是,基带传输,100Mb/s,采用以太网,64B为最短帧长度默认规定

如果采用最短帧长不变,而减少电缆长度

那么实际上的最短帧是要小于定义的最短帧的,例如原先定义64B为最小帧

现在线路缩短,一次往返时延内可能只能发54B,小于54B的才是必然产生问题的

但定义64B同样不会产生问题,因为小于64B必然包括了小于54B

同时因为定了最短帧长,所以每次发送的长度都是大于等于64B,少于其必然是出错的


最短帧长这一块的解释比较一般,可能还是需要后续的补充


动态退避就是用于先前的等待随机时间的补充,这个算法并不难,记住就行了


CSMA/CA:

适用于无线广播局域网,其工作流程较为繁琐

其有一个特性:采用停止-等待协议,且每次一旦传输必然是整个传输,中间不检测冲突

其整个流程中有一大堆等待时间,就是为了“避免冲突”而存在的


中继器转发、集线器转发、路由器、交换机转发应该都是需要时间的吧?