16. 7 5 1 被生成多项式 3
x x + + x +1除,试问,所得余数是什么? 答:所得余数为 2 x + +x 1
18.发送一个长度为 1024位的消息,其中包含 992个数据位和 32位 CRC校验位 。CRC 计算采用了 IEEE 802 标准,即 32 阶的 CRC 多项式。对于下面每种 情况,说明在消息传输中出现的错误能否被接收方检测出来: (a) 只有一位错误;
(b) 有 2个孤立的一位错误;(c) 有 18个孤立的一位错误; (d) 有 47个孤立的一位错误;
(e) 有一个长度为 24位的突发错误; (f) 有一个长度为 35位的突发错误。 答:CRC 校验共 32位,那么(a)可以;(b)可以;(c)不可以;(d)可以; (e)可以;(f)不可以。
20.考虑一个具有 4kbps 速率和20毫秒传输延迟的信道。试问帧的大小在什么范 围内,停-等式协议才能获得至少50%的效率?
答:当发送一帧的时间等于信道的传播延迟的2倍时,也就是说发送一帧的时间 等于来回路程的传播延迟时,信道的利用率为 50%,在帧长满足发送时间大 于延迟的两倍时,效率会高于50%。
对于 4kbps 的速率,20*2=40毫秒可以发送 160bit,所以,当帧长大于 160bit 时,停-等协议可以获得至少50%的效率。
22.使用协议 5 在一条 3000 千米长的 T1 中继线上传输 64 字节的帧。如果信号 的传播速度为6微秒/千米,试问序号应该有多少位?
答:为了有效运行,序列空间(实际上就是发送窗口大小)必须足够大,以允许 发送方在收到第一个确认应答之前可以不断发送。信号在线路上的传播时间 为:6*3000=18000微秒,即18毫秒。
在 T1 中继线上,发送 64 字节的数据帧需要花的时间: 64*8/(1.536*1024*1024)=0.32毫秒。
所以,第一帧从开始发送起,18.32 毫秒后完全到达接收方。确认应答又花 了很少的发送时间(忽略不计)和回程的 18毫秒,加在一起的时间时 36.32 毫秒。发送方应该有足够大的窗口,从而能够连续发送 36.32毫秒
36.32/0.32=113.5
也就是说,为充满线路管道,需要至少114帧,因此序列号为 7位。
27.地球到一个遥远行星的距离大约是 10 9 10 × 米。如果采用停-等式协议在一条 64Mbps 的点到点链路上传输帧,试问信道的利用率是多少?假设帧的大小为 32KB,光的速度是 8
3 10 × m/s。
答:地球到行星的传播延迟为 秒,发送一帧所需的时间为 毫秒,若采用停 - 等协议,信道利用率为 10 8
9 10 / (3 10 ) 300 × ×= 4
6.67*10 %? = 3
32 8 / (64 10 ) 4 × ×=
0.004 / (300 300 + +0.004)28.在上题的问题中,假设用滑动窗口协议来代替停-等协议。试问多大的发送窗
口才能使得链路利用率为 100%?发送方和接收方的协议处理时间可以忽略 不计。
答:若要链路利用率为 100% ,则需要发送窗口为 (300 300 0.004) / 0.004 150001 ++ =
34.考虑在一个无错的 64kbps 卫星信道上单向发送512字节长的数据帧,来自另 一个方向反馈的确认帧非常短。对于窗口大小为1、7、15和 127的情形,试 问最大的吞吐量分别是多少?从地球到卫星的传播时间为 270毫秒。 答:使用卫星信道端到端的传输延迟为 270ms,以 64kps 发送,周期 270+270+512*8/64=604 毫秒。发送一帧的时间为 64 毫秒,我们需要 604/64=9个帧才能保持通道不空。
对于窗口值 1,每 604毫秒发送 4096位,吞吐量为 4096/0.604=6.8kps
对于窗口值 7,每 604毫秒发送4096*7位,吞吐量为4096*7/0.604=47.5kps 对于窗口值超过 9(包括 15、127)的情形,吞吐量达到最大值,即 64kps
39.本实验练习的目标是用本章描述的标准CRC 算法实现一个错误检测机制。编 写两个程序:generator和 verifier。generator程序从标准输入读取一行 ASCII 文本,该文本包含由 0 和 1 组成的 n 为消息。第二行是个 k 位多项式,也是 以ASCII 码表示。程序输出到标准输出设备上的是一行 ASCII 码,由n+k个 0 和 1 组成,表示被发送的消息。然后,它输出多项式,就像它输入的那样 。verifier 程序读取generator 程序的输出,并输出一条消息指示正确与否。最 后,再写一个程序 alter,它根据参数(从最左边开始 1 的比特数)反转第一 行中的比特1,但正确复制两行中的其余部分。通过键入: generator 你应该能看到正确的消息,但键入: generator 说明:本题是首先发送方通过 CRC 算法将数据帧(0 和 1 的字符串)根据生成 多项式算出其校验和,然后附加到数据帧的尾部,作为输出,此部分通过 generator 程序实现;然后接收方读取带校验和的数据帧,用生成多项式去 除它,通过余数是否为 0 判定传输是否出错,此部分通过 verifier 程序实 现;最后通过改变数据帧中的某位,用 verifier 再去验证,得出数据帧有 误的结论,此部分通过 alter 程序实现。 本题为此课程四次实验(至少选做两个)之一,此程序的检查放在后面的 实验课上。 计算机网络第四次参考答案 4.一大群 ALOHA 用户每秒钟产生 50 个请求,包括原始请求和重传请求。时间槽单位为 40 毫秒。 (a)试问:第一次发送成功的机会是多少? (b)试问:恰好 K 次冲突之后 概率是多少? (c)试问:所需传输次数的期望值是多少? 解: (a)取 G ,根据泊松分布公式 ! Pr[ ] k G e k k ,可得几率为 e (b) G k G k (1 (c)传输次数的期望值: G E e 6.试问在下列两种情况下 CSMA/CD 的竞争时间槽是多少? (a)一个 2 千米的双导线电缆(twin-lead cable)(信号传播速度是信号在真空中传播速 度的 82%)? (b)40 千米长的多模光纤(信号传播速度是信号在真空中传播速度的 65%)? 解: (a)信号传播速度在双导线电缆中是 2.46 10 m/s 8 。则信号在其中传播2km时间是 8.13。 所以, 竞争时间槽是 16.26 (b)信号传播速度在多模光纤中是1.95 10 m/s 8 。则信号在其中传播40km时间是 205.13。 所以, 竞争时间槽是 410.26 8.在二进制倒计数协议中,试问为什么一个编号较低的站有可能得不到发送数据报的机会。 解:如果编号较高的站和一个编号较低的站同时有数据报要发送,编号较高的站总能优先得 到发送的机会。根据这样的前提,若有编号较高的站点一直持续地发送数据报,那么一个编 号较低的站就得不到发送数据报的机会。 14.假设经典以太网使用曼彻斯特编码,请画出比特流 0001110101 的编码输出。 解:这里低-高电平跳变表示 0, 高-低的电平跳变表示 1。15.一个 1 千米长、10Mbps 的 CSMA/CD LAN(不是 802.3),其传播速度为 200 米/微秒。这个 系统不允许使用中继器。数据帧的长度是 256 位,其中包括 32 位的头、校验和以及其他开 销。在一次成功传输后的第一个比特槽被预留给接收方,以便它抓住信道发送的 32 位确认 帧。假定没有冲突,试问除去开销之后的有效数据率是多少? 解:数据来回传输一次需要时间:2*1000/200 ,完整的数据帧传输分为六个状态: 1. 传输方占用信道:10 2.传输数据: 25.6 3.最后一比特到达延迟:5 4.接收方占用信道:10 5.确认帧发送时间:3.2 6. 最后一比特到达延迟:5 总时间为58.8,这段时间内有224位数据被发送,即得有效数据率为3.8Mbps. 16.两个 CSMA/CD 都企图传送大文件(多个帧)。每发出一帧,他们就使用二进制指数后退算 法竞争信道。试问 K 轮结束竞争的概率是多少?每个竞争周期的平均次数是多少? 解:竞争从1开始,第i次竞争是在第 1 2 i个时间槽中。所以,第i次冲突的可能性为 ( 1) 2 。 由于K-1次竞争失败,则第K次竞争成功为 1 1 ( 1) ( 1) (1 2 ) 2 k i i i Pk ,公式可简化为 ( 1) ( 1)( 2)/2 (1 2 )2 k k k Pk 每个竞争周期的平均次数为: 18.以太网帧必须至少 64 字节长,才能确保当电缆另一端发生冲突时,发送方仍处于发送过 程中。快速以太网也有同样的 64 字节最小帧长度限制,但是它可以快 10 倍的速度发送数据。 试问它如何有可能维持同样的最小帧长度限制? 解:快速以太网的最大线路延迟只有以太网的 1/10. 25.假设一个 11Mbps 的 802.11bLAN 正在无线信道上传送一批连续的 64 字节帧,比特错误 率为 7 10。试问平均每秒钟将有多少帧被损坏? 解:一帧含有 512bit,比特错误率为: 7 10 p ,512bit 的所有数据都正确的概率为512 (1大约为 5 5 10 ,大约为 0.9999488。那么数据损坏率 ,每秒所发送的帧数 为:11 10 / 512 6 ,约为 21484,故每秒钟的损坏帧数为 21484 5 10 1 5 27.为什么有些网络用纠错码而不用检错码和重传机制?请给出理由。 解:原因一是实时服务质量的要求所致,即使发现错误,也没有时间重发一次。但是数据必 须连续发送,这里可使用前置纠错。另一个原因是信道质量很差的情况下,会导致错误率太 高而不得不重发所有帧,而重发的帧也可能损坏。为了避免上述情况发生,前置纠错被用于 提高到达帧的成功率。