计算机网络 - 第5版 - 严伟 - 潘爱民 - 课后答案 下载本文

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

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

9.

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

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.错误的可能总共有 nk(nk-1)(nk-2)(nk-3)。如果左下角错误出现的坐标为(p,q),则出现4个角错误的可能有(k-p-1)(n-q-1) ,所以出现在四个角的错误的可能有

所以刚好不能检测的概率为

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.将序列按4位一个值分解为 1001 1100 1010 0011

高位溢出的值,需要带回低位重新计算。

16.

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.设发送者的窗口边界是(Sl,Su) ,接收者的窗口边界是(Rl,Ru)。窗口大小为W。他们之间的

关系是

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个祯尾

1. 第四章

1.根据4.1.1标准排队理论

C=100Mbps = 10^8 。1/u = 10000bit/frame,

u=10^(-4)。λ=90frame/s 时 ,T = 0.1ms 。λ=900frame/s 时 ,T = 0.11ms 。λ=9000frame/s 时 ,T = 1ms 。

2.使用纯ALOHA,最大吞吐量为0.184*56kbps = 10.3kbps。每个站需要1000bit/100s = 10bps。所以N= 10.3kbps/10bps=1030个站

3.纯ALOHA可以立即开始发送,在负载低的情况下,碰撞小,传输成功可能性大,基本上没有延迟。在分槽ALOHA,需要等待下一个时间槽到达次才能发送。会产生半个时间槽的延迟。

4.a.请求频率50/s。G = 40ms*50/s=2,根据泊松分布第一次发送成功的概率是e^(-2),课本205公式Pk=....。