计算机网络(第七版)谢希仁编著 第四章课后答案详解
第四章:
1、IP地址分为几类?各如何表示?IP地址的主要特点是什么?
答:在IPv4的地址中,所有的地址都是32位,并且可记为:
IP地址={<网络号>,<主机号>}
IP地址共分为ABCDE 5类。
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。
各类地址的网络号字段net-id分别为1,2,3,0,0字节;主机号字段host-id分别为3字节、2字节、1字节、4字节、4字节。
A类地址最前面的1位是0;B类地址最前面的2位是10;C类地址最前面的3位是110。D类地址用于多播,最前面的4位是1110;E类地址保留今后使用,最前面的4位是1111。
特点:
(1)每一个IP地址都由网络号和主机号两部分组成。IP地址是一种分等级的地址结构。分两个等级的好处是:
第一,IP地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP地址的管理。
第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
(2)实际上 IP地址是标志一个主机(或路由器)和一条链路的接口。换言之,IP地址并不仅仅指明一个主机,同时还指明了主机所连接到的网络。
由于一个路由器至少应当连接到两个网络(这样它才能将 IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP地址。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id的网络(不管是范围很小的局域网,还是可能覆盖很大地理范围的广域网)都是平等的。
2、试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?
答:从层次的角度来看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构的网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此由用户或用户主机来完成这项工作几乎是不可能的事。但统一的IP地址把这个复杂的问题解决了,连接到互联网的主机只需要拥有统一的IP地址,它们之间的通信就像连接在同一个网络上那样方便。
并且IP地址只指明了目的网络主机地址,而数据在传输过程中要经过路由器的分组转发,那么就必须知道路由器的地址,这个地址由物理地址指明,这样数据才能从源主机到达目的主机。
3、(1)子网掩码为255.255.255.0代表什么意思?
答:有三种含义:
其一是一个A类网的子网掩码,对于A类网络的IP地址,前8位表示网络号,后24位表示主机号,使用子网掩码255.255.255.0表示前8位为网络号,中间16位用于子网段的划分,最后8位为主机号。
第二种情况为一个B类网,对于B类网络的IP地址,前16位表示网络号,后16位表示主机号,使用子网掩码255.255.255.0表示前16位为网络号,中间8位用于子网段的划分,最后8位为主机号。
第三种情况为一个C类网,这个子网掩码为C类网的默认子网掩码。
(2)一网络的现在掩码为255.255.255.248,问该网络能够连接多少个主机?
答:255.255.255.248即11111111.11111111.11111111.11111000。
掩码位数29,每一个子网上的主机为(2^3)=8台
理论上该网络能够连接8个主机,但是扣除全1和全0的情况后,该网络实际上能够连接6个主机。
(3)一A类网络和一B网络的子网号subnet-id分别为16个1和8个1,问这两个子网掩码有何不同?
答:A类网络:11111111 11111111 11111111 00000000
给定子网号(16位“1”)则子网掩码为255.255.255.0
B类网络:11111111 11111111 11111111 00000000
给定子网号(8位“1”)则子网掩码为255.255.255.0
可见这两个网络的子网掩码一样,但它们的子网数目不同。
(4)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少?
答:IP地址的第3个字节是(240)10=(128+64+32+16)10=(11110000)2
B类地址的子网掩码是:11111111.11111111.11110000.00000000
主机号的位数为4+8=12,因此,最大主机数为:2^12-2=4096-2=4094个。
(5)一A类网络的子网掩码为255.255.0.255;它是否为一个有效的子网掩码?
答:A类网络的子网掩码为10111111 11111111 00000000 11111111
他是一个有效的子网掩码,但不推荐这样使用,因为子网中的1不是连续的。
(6)某个IP地址的十六进制表示C2.2F.14.81,试将其转化为点分十进制的形式。这个地址是哪一类IP地址?
答: C2 2F 14 81=(12*16+2).(2*16+15).(16+4).(8*16+1)=194.47.20.129
C2 2F 14 81=11000010.00101111.00010100.10000001
前3位是110,所以这个地址是C类地址。
(7)C类网络使用子网掩码有无实际意义?为什么?
答:有实际意义。C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号。如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数量减少。
4、设某路由器建立了如下路由表:
目的网络 | 子网掩码 | 下一跳 |
128.96.39.0 | 255.255.255.128 | 接口m0 |
128.96.39.128 | 255.255.255.128 | 接口m1 |
128.96.40.0 | 255.255.255.128 | R2 |
192.4.153.0 | 255.255.255.192 | R3 |
*(默认) | —— | R4 |
现共收到5个分组,其目的地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.4.153.17
(5)192.4.153.90
试分别计算其下一跳。
答:(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口m0转发。
(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发。
5、分两种情况(使用子网掩码和使用CIDR)写出互联网的IP层查找路由的算法。
答:第一种情况:使用子网掩码。
(1) 从收到的数据报的首部提取目的IP地址D。
(2) 先判断是否直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐位相与,看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行(目的网络地址,子网掩码,下一条地址),用其中的子网掩码和D逐位相与,其结果为N。若N与改行的目的网络地址匹配,则把数据报传送给改行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。
第二种情况:使用CIDR。
使用CIDR时,互联网的IP层查找路由算法和上面的算法并无什么不同。但应注意的是,在使用CIDR时,我们使用地址掩码。它的前一部分是一连串的1,对应于CIDR中的网络前缀。而掩码中的后一部分是一连串的0,对应于CIDR中的网络后缀(即对应于主机号部分)。路由表中由“网络前缀”和“下一条地址”组成。但是在查找路由表时可能会得到不止一个匹配结果,这是应当从匹配结果中选择具有最长网络前缀的路由。如果在路由表中的各项目是按网络前缀的长度排序的,把最长的网络前缀放在最前面,那么当查找路由表找到匹配时,就是找到了正确的路由,因而结束了查找。但如果在路由表中的各项目不是按网络前缀的长度排序,那么就应当从匹配结果中选择具有最长网络前缀的路由。
6、有如下的4个/24地址块,试进行最大可能性的聚合。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
答:这几个地址的前面2个字节都一样,因此只需要比较第3个字节。
212=(11010100)2,56=(00111000)2
132=(10000100)2,
133=(10000101)2
134=(10000110)2,
135=(10000111)2
所以共同的前缀有22位,即11010100 00111000100001,聚合的CIDR地址块是:212.56.132.0/22
32.以下地址中的哪一个地址2.52.90.140匹配?请说明理由。
(1)0/4;(2)32/4;(3)4/6(4)80/4
答:给出的四个地址的前缀有4位和6位两种,因此我们就观察地址2.52.90.140的第一字节。
2.52.90.140/4 是 0000 0010,2.52.90.140/6 是 0000 0010。
0/4 是 0000 0000;
32/4 是 0010 0000;
4/6 是 0000 0100;
80/4 是 0101 0000。
因此只有前缀(1)和地址2.52.90.140匹配。
33.下面的前缀中的哪一个和地址152.7.77.159及152.31.47.252都匹配?请说明理由。
(1)152.40/13;(2)153.40/9;(3)152.64/12;(4)152.0/11。
答:给出的四个地址的前缀是9位到12位,因此我们就观察这两个地址的第二字节。
这两个地址的前两个字节的二进制是:
10011000 0000 0111和10011000 00011111。
152.40/13的前缀是13位:10011000 00101000,与这两个地址不匹配;
153.40/9 的前缀是9位:10011001 00101000,与这两个地址不匹配;
152.64/12的前缀是12位:10011000 01000000,与这两个地址不匹配;
152.0/11的前缀是11位:10011000 00000000,与这两个地址都匹配。
35. 已知地址块中的一个地址是140.120.84.24/20。试求这个地址块中的最小地址和最大地址。地址掩码是什么?地址块*有多少个地址?相当于多少个C类地址?
答:给定地址的前缀是20位,因此我们只要观察地址的第三字节,只把第三字节写成二进制。
140.120.84.24 是 140.120.(0101 0100).24,取前20位,后面全是0,即得出最小地址。取前20位,后面全是1,即得出最大地址。
最小地址是: 140.120.(0101 0000).0/20= 140.120.80.0/20;
最大地址是: 140.120.(0101 1111).255/20=140.120.95.255/20。
地址数是212=4096,相当于16个C类地址。
36.已知地址块中的一个地址是190.87.140.202/29。重新计算上题。
答:给定地址的前缀是29位,因此我们只要观察地址的第四字节,只把第四字节写成二进制。
190.87.140.202/29 是 190.87.140.(1100 1010)/29,取前29位,后面全是0,即得出最小地址。取前29位,后面全是1,即得出最大地址。
最小地址是 190.87.140.(11001000)/29 = 190.87.140.200/29;
最大地址是 190.87.140.(1100 1111)/29 = 190.87.140.207/29。
地址数是23=8,相当于1/32个C类地址。
37.某单位分配到一个地址块136.23.12.64/26。现在需要进一步划分为4个一样大的子网。试问:
(1)每一个子网的网络前缀有多长?
(2)每一个子网中有多少个地址?
(3)每一个子网的地址是什么?
(4)每一个子网可分配给主机使用的最小地址和最大地址是什么?
答:
(1)原来网络前缀是26位,需要再增加2位,才能划分4个一样大的子网,每个子网前缀28位。
(2)每个子网的地址中有4位留给主机用,因此共有16个地址。(可用的有14个地址)
(3)四个子网的地址块是:
第一个地址块136.23.12.64/28,可分配给主机使用的:
最小地址:136.23.12.0100 0001=136.23.12.65/28
最大地址:136.23.12.0100 1110=136.23.12.78/28
第二个地址块136.23.12.80/28,可分配给主机使用的:
最小地址:136.23.12.0101 0001=136.23.12.81/28
最大地址:136.23.12.0101 1110=136.23.12.94/28
第三个地址块136.23.12.96/28,可分配给主机使用的:
最小地址:136.23.12.0110 0001=136.23.12.97/28
最大地址:136.23.12.0110 1110=136.23.12.110/28
第四个地址块136.23.12.112/28,可分配给主机使用的:
最小地址:136.23.12.0111 0001=136.23.12.113/28
最大地址:136.23.12.0111 1110=136.23.12.126/28
39. 试简述RIP,OSPF和BGP路由选择协议的主要特点。
41. 假定网络中的路由器B的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”)
N1 7 A
N2 2 B
N6 8 F
N8 4 E
N9 4 F
现在B收到从C发来的路由信息(这两列分别表示“目的网络”“距离”):
N2 4
N3 8
N6 4
N8 3
N9 5
试求出路由器B更新后的路由表(详细说明每一个步骤)。
答:先把收到的路由信息中的“距离”加1:
N2 5
N3 9
N6 5
N8 4
N9 6
路由器B更新后的路由表如下:
N17A 无新信息,不改变
N25C 相同的下一跳,更新
N39C 新的项目,添加进来
N65C 不同的下一跳,距离更短,更新
N84E 不同的下一跳,距离一样,不改变
N94F 不同的下一跳,距离更大,不改变
42. 假定网络中的路由器A的路由表有如下的项目(格式同上题):
N1 4 B
N2 2 C
N3 1 F
N4 5 G
现将A收到从C发来的路由信息(格式同上题):
N1 2
N2 1
N3 3
N4 7
试求出路由器A更新后的路由表(详细说明每一个步骤)。
答:先把收到的路由信息中的“距离”加1:
N1 3
N2 2
N3 4
N4 8
路由器A更新后的路由表如下:
N13C 不同的下一跳,距离更短,改变
N22C 不同的下一跳,距离一样,不变
N31F 不同的下一跳,距离更大,不改变
N45G 不同的下一跳,距离更大,不改变
54、某单位分配到一个起始地址为14.24.74.0/24的地址块。该单位需要用到三个子网,它们的三个子地址块的具体要求是:子网N1需要120个地址,N2需要60个地址,N3需要10个地址。请给出地址块的分配方案。
答:这个单位的地址块的网络前缀是24位,因此主机号有8位,即一共有256个地址。可以拿总地址的一半(128个)分配给子网N1。这个地址块的网络前缀是25位。
再将剩下的一半(64个)分配给子网N2。这个地址块的网络前缀是26位。
还剩下的64个地址,可以拿出1/4(即16个地址)分配给子网N3。这个地址块的网络前缀是28位。
最后剩下的48个地址留给以后再用。
这样,分配给子网N1的首地址是14.24.74.0/25,末地址是14.24.74.127/25。
分配给子网N2的首地址是14.24.74.128/26,末地址是14.24.74.191/26。
分配给子网N3的首地址是14.24.74.192/28,末地址是14.24.74.207/28。
65、试把以下零压缩的IPV6地址写成原来的形式。
(1)0::0
(2)0:AA::0
(3)0:1234::3
(4)123::1:2
答:被恢复的零压缩用下划线的0表示。
1、0000:0000:0000:0000:0000:0000:0000:0000
2、0000:00AA:0000:0000:0000:0000:0000:0000
3、0000:1234:0000:0000:0000:0000:0000:0003
4、0123:0000:0000:0000:0000:0000:0001:0002
66、从IPV4过渡到IPV6的方法有哪些?
答:由于现在整个互联网上使用IPV4的路由器数量太大,向IPV6过渡只能采用逐步演进的办法,同时,还必须使新安装的IPV6系统能够向后兼容。
下面介绍两种向IPV6过渡的策略,即使用双协议栈和隧道技术。
双协议栈是指在完全过渡到IPV6之前,使一部分主机装有两个协议栈,因此双协议栈主机既能够和IPV6的系统通信,又能够和IPV4的系统通信。
隧道技术的要点是在IPV6数据报要进入IPV4网络时,把IPV6数据报封装成为IPV4数据报。然后,IPV6数据报就在IPV4网络的隧道中传输。当IPV4数据报离开IPV4网络中的隧道时再把数据部分交给主机的IPV6协议栈。