计网第五版(严伟-潘爱民)第三章课后习题答案

第三章

1.

2.

字节计数法头字节需要祯长度信息4 比特流为 00000100(该字节表示长度4)  01000111 11100011   11100000   01111110 (后四字节保持原样)

字节填充标志字节 FLAG是起始结束标志,ESC是转义字节。数据中有的ESC 和FLAG前面需加转义字节 所以比特序列为
01111110  01000111  11100011  11100000  11100000  11100000  01111110
FLAG       A        B         ESC       ESC      ESC     FLAG

比特填充的首尾标志字节。首尾标志FLAG 添加到比特流的首尾位置。若数据中遇到连续5个1 则添加0,用来区别标志位和数据。
01111110  01000111 110100011  111000000  011111010  01111110
FLAG A B ESC FLAG FLAG

3.ESC 和FLAG 需要添加转义,所以最后输出为 A  B  ESC  ESC  C  ESC  ESC  ESC  FLAG  ESC  FLAG  D

4.如果数据全是ESC 和 FLAG构成,在这种情况下 开销将增大一倍

5.如果祯是络绎不绝的,一个标志位也许足够。但如果祯结束了,但在很长时间内没有新的祯,接收者要如何判断下一字节是线路的干扰还是原来的祯数据。

6.每5个1添加一个0  所以填充后为01111011111001111010

7.a.传输延迟非常长,如空间卫星传输,正向纠错是必要的。B.开环协议也适用于军事上,接受者不希望在传输过程中暴露它的位置。C.如果错误率非常低,并且纠错码足够好,也可使用开环协议。D.实时系统中无法忍受等待重传的情况

8.

 9.根据上表 需要5位校验码,参考海明码计算 最后结果011010110011001110101

10.根据上表只可能是8位数据码 4位校验码,但是第二校验位出错,需要修正,所以实际上收到的是0XA4F,所以原码是0XAF。

11.1位错误,不管是行校验还是列校验都能被检测出来
2位错误,如果在不同行,行校验位就可以检测,如果在相同行,列校验位可以检测
3位错误,如果2位错误在同一行,至少一个列校验可以检测出来,如果2位错误在同一列,至少一个行校验可以检测出来。
4位错误,如果4个错误分布在4个角落组成方形,错误无法被检测出来

12.使用海明码,每个块至少需要10个校验位。总的数据位数是1010位。如果是检错的话,那么只需要1位检验位。假设出错率是x/bit 那么一个块出错的次数为1000x。每次出错1001bit 需要重传,所以总传的位数为1001+1000x*1001。要使检错机制更优秀,要使1001+1000x*1001<1010。所以出错率必须小玉9*10^6。

13.

14.输入 第一位时  S[1..6] = 100000 输出为 11
输入第二位时  S[1..6] = 010000 输出为 01
输入第三位时  S[1..6] = 101000 输出为00
...
最后结果为 11 01 00 10 10 00 11 00

15.

 

17.比特流是10011101 生成多项式为1001  生成多项式阶位为3,所以后面补三个0 得到1001 1101 000 用1001 1101 000 整除1001 得到余数100 ,所以最后位串为1001 1101 100。如果第三位变反后,得出的数字不能整除1001。但如果出错后的位串仍能被1001整除,则错误无法检测出来,最简单的就是 所有位都为0。

18.A.可以,所有的一位错误都能被检测
B.正确,所有的双位错误都能够检测出来
C.错误CRC不能检测出所有偶数个孤立错误
D.正确,CRC可以检测出奇数个孤立错误,前提是以x+1作为因子
E.正确,CRC可以检测出位数小于r位(这里32位)突发错误
F正确,CRC不能用于检测超过r位的突发错误

19.可能,ACK到达的时候,定时器超时的时候。这个情况会出现由于CPU的过载,使ACK延迟发送

20.要使效率达到50%,必须使传输数据包的时间等于来回的传输延迟。在4kbps的速率下,160bit 需要40ms(2倍的传输延迟)。所以祯大于160bit 时,才能获得50%的效率

21.可能,假设祯的发送和ACK的回复非常迅速,主函数执行第二个循环的时候,当定时器还在运行的时候,祯已被发送出去

22.为使操作有效,序列空间必须足够大,使得在第一个ACK返回之前,其他数据还能继续传输。传播时间为3000km*6us/km = 18ms。T1是速率是1.536Mbps,64byte的祯传输 需要0.300ms。所以第一祯到达的时间是18.3ms。ACK回复需要18ms。所以第一祯发送到收到应答需要36.3ms。所以发送的串口大小必须大到足够保持36.3ms的传输时间,每个祯需要0.3ms,所以在这段时间内可以传输36.3ms/0.3ms = 121个祯。所以需要7位序列。

23.

24.这样协议是错,假设使用3位的序列,考虑以下场景
A 发送了祯7
B接收了祯并返回ACK
A收到ACK后,发送祯0-6,所有的祯丢失
B定时超时后,重发了ACK 7。
当r.ack = 7 到达 A收到ACK之后,A的AckExpected = 0,r.ack=7 NextFrameToSend=7。使A认为丢失的祯是已经回复了ACK。

 25.影响了协议正确性,可能造成死锁。假设一批祯已经到达并且被接收。接收者会推进它的窗口。如果所有ACK丢失,发送定时器会超时,并重新发送一个祯,接收者会发送NAK。如果这个包丢失,那么发送者会保持超时,并发送第一个已经被接收祯,而接收者不再管它,那么发送者就会不断发送,最终造成死锁

26.这会造成死锁,这是唯一用来处理ACK的进程,如果没有这段代码,那么发送者会保持超时,并不做任何事。

27.信道利用率为(1/(1+2BD))
BD = 带宽延迟输出/祯大小
延迟 = 9*10^10 / 3*10^8 = 300s
带宽延迟输出=64Mbps *300=19.2GB
BD = 19.2GB / 32KB = 600000
信道利用率=8.33*10^(-7)

28.发送窗口大小为w 信道利用率为w/(1+2BD) 所以需要w=1200001

29.考虑一下场景 A发送0到B ,B接收后返回ACK  但ACK丢失, A超时重发0,但现在B期望的是1,所以B返回了NAK。如果此时A将r.ack+1,那么他会发送1,错误就被纠正过来了。

30.假设A向B发送一个祯,并且正确到达了,但此时确认定时器。A超时重发,B会注意到序列号出错了,它就会发送NAK。所以每个包平均发送两次。

31.不能,MAX_SEQ=4时,NrBufs=2,偶数序列使用buffer0,奇数序列使用buffer1。这样的规划意味着,祯4 和0 使用同一个buffer。假设祯0-3已经接收并确认。接收者的窗口包含4和0,如果4丢失了,而0到达,这将被放入buffer0,并且arrive[0]也会标记为真。这样循环在代码中被执行一次,一个不规则的消息就会被传送到主机。这个协议要求MaxSeq必须是偶数。但是其他滑动窗口协议不一定都有这个特性。

32.祯发送时间需要1000bit/1Mbps=1s,假设t=0,在t=1ms时,第一个祯被发送出来。在t=270+1=271ms 时,第一个祯达到。T=271*2=542ms时,第一个祯的ACK到达。所以循环周期是542ms。总共有k个祯在542ms 被发送,信道利用率=k/542。
A. k=1,信道利用率为1/542=0.18%(k必须=1)
B.k=7,信道利用率为7/542 = 1.29%(k=2^n-1 = 7)
C k=4,信道利用率为4/542=0.74%(窗口空间不应超过序列空间的一半为4))

33.50kbps的信道上使用8位的序列号,重传率为0.01(错误率为1%),每个安全到达的祯会浪费40bit (header)。每100祯需要增加40bit的NAK祯,平均每祯需要付出0.4bit。平均每个祯需要付出1%*4000bits = 40bit的代价。所以平均每祯需要浪费40+40+0.4=80.4。所以浪费的带宽和开销占80.4/(80.4+3960)=1.99%。

34.假设传输开始时间t=0,第一个祯发送时间为512/64kbps = 8ms。t=8+270=278ms时,到达。t=278+270=548ms时,ACK返回。这里数据吞吐量为512/548ms=934bps(窗口大小为1)。
若窗口大小为7,在548ms内,可以传输7*512=3548bit,吞吐量为3548/548ms=6.54kbps。
若窗口大小为15 在548ms 内,可以传输15*512 = 7680bit ,吞吐量为7680/548ms = 14kbps。
窗口大小为127时,已经超过卫星信道全速,所以吞吐量为64kbps

35.线缆传播速度是200km/ms。所以100km,需要传输时间为500us。每个T1祯为193bit,在125us内发送出去,所以线上的祯总是为4个祯为772bit

36.PPP是被设计用来软件处理的,并不是用硬件处理的。对于软件来说处理byte数据,显然比处理bit数据要简单的多。另外PPP是设计用在modem上,而modem 允许按字节传输而不是按bit传输

37.PPP至少含有2个标志字节,1个协议字节,2个校验字节,总共5字节开销。最大含有2个标志字节,地址和控制位各需1个,2位协议字节,4位校验字节,总共10字节开销

38.AAL5祯含有2个PPP协议位,100个有效负载字节,一些填充字节,和8个祯尾。要使这个祯长度为48的整数,填充字节需要34个。这使得最终AAL5祯长为144bytes。可以分成3个ATM信元。第一个信元包含2个PPP协议字节,46字节的IP包。第二个信元包含后继的48字节IP包。第三个信元包含最后6个字节IP包,34个填充字节和8个祯尾

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值