计算机网络课后作业习题解答
北邮计算机学院 王晓茹制作
作业:分析网络协议的有效性
1.普通的距离矢量协议;
2. 使用带水平分割的距离矢量协议;
3. 使用水平分割+毒性逆转方法。
A
0
-
D
1
D
B
1
B
B 路由表的格式如下,
目的地
跳数
下一跳
解题思路:
本题考察的是距离矢量路由算法的原理,以及为了避免“计数无穷大”而采取的方法。
1。普通的路由协议
1)在初始状态,A, B, C, D 分别测量到各自邻居的距离,得到各自初始的路由表。
A 路由表的格式如下,
目的地
跳数
下一跳
C 路由表的格式如下,
目的地
跳数
下一跳
2) 每个路由器先利用当前的路由表,通过删除转发项生成距离表,发送给邻居。然后放弃
当前的路由表,然后重新测算到邻居的距离,以 A 路由器为例:
A 收到邻居 B 和 D 发送来的距离表
B 的距离表如下,
目的地
跳数
下一跳
D 路由表的格式如下
D 的距离表如下
A
1
A
B
0
-
C
1
C
C
1
C
D
0
-
A
1
A
B
1
B
C
0
-
D
1
D
目的地
跳数
A
1
B
0
C
1
目的地
跳数
A
1
C
1
D
0
0
-
1
2
1
2
目的地
跳数
下一跳
目的地
跳数
下一跳
c 路由器如下
或者如下:
A B C D
1
2
1
B B
D
0
-
A B C D
0
1
1
A A C
-
2
A B C D
0
1
- B B D
A B C D
0
1
- B D D
A B C D
1
1
2
A
C A
则 A 再利用重新测算的到邻居的距离,生成新的路由表,如下
期中,A 到 C 有两条跳数相同的路由,可借助 B 或 D,则任选一个
A 路由表的格式如下,
目的地
跳数
下一跳
同理其它路由器路由表如下:
B 路由表的格式如下,
目的地
跳数
下一跳
D 路由表的格式如下,
目的地
跳数
下一跳
2.当 A 路由器发生故障,不使用任何控制手段
1)当了交换距离表的时刻,每个路由器先测算到邻居的距离,然后生成距离表,得到路由
表如下:
以 B 为例,B 收到 C 发来的距离表
目的地
跳数
B 路由表的格式如下,
目的地
跳数
下一跳
C 路由表的格式如下,不变
目的地
跳数
下一跳
A B C D
1
3
2
C
C C
0
-
A B C D
2
1
1
D
B B
0
-
A B C D
1
2
1
0
D 路由表如下
目的地
跳数
下一跳
A B C D
0
3
1
C C C
-
2
B C D
1
1
0
B C D
1
0
2
-
C C
此后,关于到达路由器 A 的路由跳数就不断增加,知道加到 16,方能意识到这个错误。
3.当 A 路由器发生故障,使用水平分隔技术
1)当了交换距离表的时刻,每个路由器先测算到邻居的距离,然后生成距离表,得到路由
表如下:
以 B 为例,B 收到 C 发来的距离表,与 2 过程不同,C 不能告诉 B 关于 A 的消息:
目的地
跳数
B 路由表的格式如下,B 不能到达 A 了。
目的地
跳数
下一跳
C 路由表的格式如下,不变
目的地
跳数
下一跳
此后,在下次交换距离表时,C 方能纠正这个错误。
4。当路由器发生故障时,使用水平分隔+毒性逆转
1)当了交换距离表的时刻,每个路由器先测算到邻居的距离,然后生成距离表,得到路由
表如下:以 B 为例,B 收到 C 发来的距离表,与 3 过程不同,C 告诉 B 关于 A 的消息:
目的地
跳数
A B C D
1
2
1
D
B B
B C D
1
2
0
-
C C
目的地
跳数
下一跳
D 路由表如下
0
-
A B C D
1
无
穷
1
0
B 路由表的格式如下,B 不能到达 A 了。
目的地
跳数
下一跳
C 路由表的格式如下,不变
B C D
1
0
2
-
C C
D 路由表如下
A B C D
1
2
1
B B
D
目的地
跳数
下一跳
此后,在下次交换距离表时,C 方能纠正这个错误。
0
-
目的地
跳数
下一跳
B C D
0
2
1
C C
-
解题思路:理解链路状态路由协议原理,对比距离矢量路由协议,链路状协议的每个路由器
都准确知道整个网络的拓扑结构。
请画出该网络的拓扑结构.
v1
3
4
v3
1
3
v2
3
v4
vs
8
2
6
(Vs 即 V0)
计算 V0 的路由.
目的
V1
V2
V3
V4
下一跳
V3
V3
V3
V3
费用
6
3
2
5
路径
V3 v2 v1
V3 v2
V3
V3 v4
第五章习题
习题 6:假设所有的路由器和主机都正常工作,并且它们的软件也都没有
错误,请问一个分组被递交到错误目的地的可能性有没有(无论可能性有
多少)?
解 答 如 下 : 有 可 能 。
习题 7:如下图,忽略权值。假设使用扩散算法作为路由算法。如果一个
从 A 发向 D 的分组的最大跳数值为 3,请列出它将要走的所有路径。同时
也说明它需要消耗多少跳带宽。
ABCD,ABCF,ABEF,ABEG,AGHD,AGHF,AGEB,AGEF
24 条 .
习题 9:考虑图 5.13(a)中的子网。该子网使用了距离矢量路由算法,下面
的矢量刚刚到达路由器 C;来自 B 的矢量为(5,0,8,12,6,2);来自 D 的矢量
为(16,12,6,0,9,10);来自 E 的矢量为(7,6,3,9,0,4)。经测
量,到 B,D 和 E 的延迟分别为 6,3 和 5。请问 C 的新路由表将会怎么样?
请给出将使用的输出线路以及期望的延迟。
解题思路:
按照下面的步骤来计算路由表。
1) 对于 C 先放弃原有的路由表;
2) C 开始测量到邻居节点的延迟;
3) 利用邻居节点发过来的矢量,计算路由表。
矢量表的格式如下,以从 B 获得的矢量表为例。
目的地
延迟
特点是,邻居 B 只告诉 C,它能到达 A,B,C,D,E,F 以及分别的延迟是多少,而通过那个路由
器到达没有告诉 C。矢量表的这种格式,决定了 C 只是“傻傻”地接收了信息,而计算出
D
12
A
5
B
0
C
8
E
6
F
2
C
0
-
D
3
D
E
5
E
F
8
B
A
11
B
的路由表可能是带有回路错误的。
4) 不断操作 3),最后计算出新路由表,格式如下:
路由表的格式如下,
目的地
B
6
延迟
下一跳
B
特点是,比矢量表多来转发项(下一条)。可以看出每个路由器发给邻居的矢量表,就是在
自己的老路由表基础上,去掉转发项(下一跳)后产生的。
解答如下:
1) C 将原有的路由表,去掉转发项变成矢量表后,发给它的邻居;然后删除这个路由表;
2) 从题目已知中获得,到达邻居 B 的延迟=6,到 D=3,到 E=5;
3) 利用 B 发过来的矢量表,得到路由表
路由表的格式如下,
目的地
B
6
延迟
下一跳
B
A
11
B
C
14
B
D
18
B
E
12
B
F
8
B
利用 D 发过来的矢量表,得到路由表
路由表的格式如下,
B
目的地
延迟
15
D
下一跳
A
19
D
C
9
D
D
3
D
E
12
D
利用 E 发过来的矢量表,得到路由表
路由表的格式如下,
B
目的地
11
延迟
下一跳
E
A
12
E
C
8
E
D
14
E
E
5
E
F
13
D
F
9
E
从上述路由表中找出最小值,(包括 C 到达自己)得到新路由表
路由表的格式如下,
目的地
B
6
延迟
下一跳
B
A
11
B
C
0
-
D
3
D
E
5
E
F
8
B
习题 10:假设在一个 50 台路由器的网络中,用 8 比特记录延迟信息,并
且每秒钟交换延迟矢量两次,请问,分布式路由算法需要在每条(全双工)
线路上消耗多少带宽?假设每台路由器有三条线路连接到其他的路由器。
解答如下:
路由器每次将矢量表发送给其邻居节点,根据习题 9 的介绍,矢量表格的结构使得本题
中每次发送的矢量表表项应该有 50 个,每个 8bit,所以矢量表的大小=50×8=400bit;
在一条线路上,因为是全双工的,所以在每个方向上都能发和收。
在一个方向上,每秒发送两次延迟,每次 400bit,所以共发送 400×2=800 比特。
习题 22:一个数据报子网允许路由器在必要的时候丢弃分组。一台路由器
丢弃一个分组的概率为 P。请考虑这样的情形:源主机连接到源路由器,
源路由器连接到目标路由器,然后目标路由器连接到目标主机。如果任一
台路由器丢掉了一个分组,则源主机最终会超时,然后再重试发送。如果
主机至路由器以及路由器至路由器之间的线路都计为一跳,那么:
(a)一个分组每次传输中的平均跳数是多少?
(b)一个分组的平均传输次数是多少?
(c)每个接收到的分组平均要求多少跳?
解答如下:
先画出之间的连接图,然后分析:
(a) 一个分组每次传输中的平均跳数是多少?
一个分组,从主机发送出来,可能到源路由器时就被丢弃了,则跳数为 1 跳,概率为 P;
一个分组,从主机发送出来,过了源路由器(概率为(1-P)),到目标路由器时就被丢
弃了,则跳数为 2 跳,概率为(1-P)P;
一个分组,从主机发送出来,经过源路由器转发(概率 1-P),到目标路由器也未被丢
弃(概率为(1-P)),成功到达目的主机,则跳数为 3 跳,概率为(1-P)2;
则利用加权平均,计算出平均跳数=1×P+2×(1-P)P+3×(1-P)2=P2-3P+3;
(b) 一个分组的平均传输次数是多少?
一个分组,如果一次成功的到达目的地主机,必然要经过 3 跳,概率=(1-P)2;
令 A=(1-P)2;
则两次才成功的概率为(1-A)A;
3 次才成功的概率为(1-A)2A
利用加权平均,计算一个分组的平均发送次数(传输次数)T
T=A+2(1-A)A+3(1-A)2A+…=1/(1-P)2;
(c) 每个接收到的分组平局要求多少跳?
平均跳数= 平均发送次数 × 平均跳数=(P2-3P+3)/ (1-P)2;
习题 27:在一个 6Mbps 的网络上,有一台主机通过一个令牌桶进行流量调
整。令牌桶的令牌到达速率为 1Mbps。初始时候它被填充到 8Mb 的容量。
请问该计算机以 6Mbps 的全速率可以传输多长时间?
解题思路:
本题就是考察同学们对令牌桶原理的理解。解这类题可从下面的步骤进行分析计算:
当大量突发性数据到来时,如果令牌桶是满的,并且到来的数据>令牌桶容量,则:
1) 先以全速率发送,利用公式 S=C/(M-P)可计算机出全速的发送时间;
2) 当令牌桶中的令牌全部用完,而还有数据剩下要发送,则剩下的发送速率将=令牌到达
的速率匀速发送。
本题只用到了第一个步骤就可以了。
解答如下:
套用公式 S=C/(M-P)=1.6s;
习题 28:与习题 27 解题思路类似,略。
判断题:使用令牌桶和漏桶算法时,都会有突发数据输出?
错误。因为,漏桶是不能有突发的,只有令牌桶可能有突发数据流。
习题 34:假设主机 A 被连接到一台路由器 R1 上,R1 又连接到另一台路由
器 R2 上,R2 又被连接到主机 B。假定一条 TCP 消息包含 900 字节的数据
和 20 字节的 TCP 头,现在该消息被传递给主机 A 的 IP 代码,请它递交给
主机 B。请写出在三条链路上传输的每个分组中 IP 头部的 Total lenghth、
Identification、DF、MF 和 Fragment offset 域。假定链路 A-R1 可以支持的
最大帧长度为 1024 字节,其中包括 14 字节的帧头;链路 R1---R2 可以支持
的最大帧长度为 512 字节,其中包括 8 字节的帧头;链路 R2-B 可以支持
的最大帧长度为 512 字节,其中包括 12 字节的帧头。
解题思路:
本题其实考察的是同学们网络的体系结构运行模式以及对分片的理解。
1)先分析网络的体系结构:
这是一个典型的应用层->TCP 传输层->IP 网络层->数据链路层->物理层的模型,
其中在应用层和物理层不需要考虑头部的开销,其他层都需要。