以下是计算机网络(第五版)第三章部分习题与解析。

10、接收方收到一个12位的海明码,其16进制值为0xE4F。试问该码的原始值是多少?假设至多发生了一位错误。

海明码:在海明码中,数据位和校验位被编好号,2的幂次方位(1、2、4、8…)存放校验信息,剩余位用来填充数据。数据位的编号可以被拆成1+2、1+4、1+2+4等由2的幂次方组成的等式,例编号为11数据位可以被拆成8+2+1,那么第1、2、8位都会包含第11位的校验信息。要计算第1位校验码,需要对所有等式含1的位(包括它自己)进行偶校验(通过改变校验位的取值,使这些位中1的个数为偶数;也可以使用奇校验,原理相同)。要检验数据是否正确,需要对校验位重新计算(包括收到的校验位和新校验位,即多了一位),验证新的校验位是否等于0(等于0说明符合偶校验)。如果检验的结果不全为0,意味着出现了一位错误(海明码能纠正一位错误,不考虑多位错误),通过新校验位的结果可以确定错误的位。假如一个码有4个校验位,第8、4、2、1校验位计算出的新校验位分别等于0、1、0、1,由此得出的错误位等于0101即十进制中的5,也可以用4+1的方式计算出等于5,要修复这个错误,只需要将第5位取反。接收方丢弃掉校验位后,得到数据位,即最终的消息。

0xE4F转化为二进制即111001001111,第1(对应1、3、5、7、9、11位)、2(对应2、3、6、7、10、11)、4(对应4、5、6、7、12)、8(对应8、9、10、11、12)位为校验位,计算结果分别等于0、1、0、0,即0010位出错,也就是十进制第2位,将第2位取反,得到十六进制值0xA4F

20、考虑一个具有4kbps速率和20毫秒传输延迟的信道。试问帧的大小在什么范围内,停-等式协议才能获得至少50%的效率。

带宽延迟积(bandwith-delay product):例如50kbps的带宽和250ms的单向延迟,其带宽延迟乘积为50*10^3*250*10^-3=12.5kb。带宽延迟积意味着在信道上最多同时有这么多数据。

链路利用率:我们假定确认了帧的大小,用带宽延迟积除以帧的大小得到信道上同时存在的帧的数量,称为BD。同时,虽然需要确认,但我们连续发送w个帧以使信道尽可能被利用,不至于阻塞。链路利用率的理论上限为w/(1+2BD),其中w最大等于1+2BD,关于这个式子,我们可以设想信息在信道上传输的状态:帧已到达接收方,接收方收到完整的帧后(花掉一个帧的时间)发送极短的确认帧(花掉延时的时间),接着发送方发送帧到接收方处(花掉延时的时间)。这个过程不断循环,每一个周期的时间等于一帧传输的时间+两倍延迟,同时乘以带宽再除以帧的大小得到1+2BD个帧。如果w过小,那么在两倍延迟的时间内,信道没有被充分利用,如果w过大,信道最大容量不变,显然速率不会变。

停-等式协议:即发送方为了防止发送速度过快,每次发送完一帧,等待接收方发送确认帧后才继续发送。

该信道的带宽延迟积为80b,要达到50%利用率,又因为是停等式(w=1),1/(1+2BD)=50%说明BD=1/2,说明帧大小等于160b。

22、使用协议5在一条3000千米长的T1中继线上传输64字节的帧。如果信号的传播速度为6微秒/千米,试问序号应该有多少位?

T1线路:T1包括24条信道,每帧包含24*8=192比特,帧前有一个比特用于帧同步和信令,每125微秒产生一帧(每秒8000帧)。T1中继线的速率计算得193*8000=1.544Mbps。

协议5/回退N协议

未完待续…