本文首发于稀土掘金。该平台的作者 逐光而行 也是本人。
参考书籍
- 《Computer Networks (the fifth edition) 》
- 计网老师课上的讲解
概念题
- 当发生错误时,接收方简单地丢弃所有后续帧,不对丢弃的帧发送任何确认,这称为“回退n帧协议”(Go-Back-N)
- 通过位填充,数据
01111101
传输的比特序列为:011111001
思路:见于HDLC协议,传输的比特序列变形规则为:遇到5个1就在后面补0。
计算大题
- 假设帧是10111101,生成器为$x^3+x+1$,计算冗余码,并写出在网络中传输的序列。
思路:这用到了CRC校验(Cyclic Redundancy Check)。步骤分三步:
利用生成器来确定冗余位数和除数。G(x)为发送方和接收方共同认定的一个准则。它有两个用途:
- 该二项式的最高次数表示冗余位的位数。比如本题的生成器最高项为x^3,说明冗余位有3位。
- 该二项式对应的二进制表示为除数。如本题的式子可表示为1011。
- 将补适当0后的帧除以除数,得到的余数就是冗余码(如果位数不够,前补0)
原则:使用模2除法,即加法不进位,减法不借位。
在本题中,余数为110
。
所以传输中的码为10111101110
。
- 画出比特流的曼彻斯特编码和差分曼彻斯特编码,假设初始为低电平
思路:只需记住:两种曼彻斯特编码的共同特点:周期内跳变
- 普通曼彻斯特编码:1-初始为高电平;0-初始为低电平
- 差分(diff)曼彻斯特编码:0变1不变
解释:1就是延续上一个阶段的状态,而0是和上一个阶段的末状态相反。
- 请描述CSMA/CD的原理
CSMA/CD(Carrier Sense Multiple Access Protocols with Collision Detection),中文释义:含冲突检测的载波监听与多路访问。
发送数据前,先监听信道是否空闲,如果空闲,立即发送数据。如果信道繁忙,则等待一段时间,直到信道中的信息传输完成后再发送数据;如果在最后一次信息传输后,同时有两个或两个以上的节点请求发送,则判定为冲突。如果检测到冲突,立即停止发送数据,等待一段随机时间,然后重试。
- 4公里长,20Mbps CSMA/CD局域网(不是802.3)的传播速度为$2*10^8$m/s,计算网络的最小帧大小。
思路:
解释:
$t>=2τ$ 指的是数据的发送时间应大于等于数据的往返传播时延。
为什么?
因为这样才可以保证在传输过程中发生冲突时,冲突能被听到并重发。