答:有实际意义。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,与这两个地址都匹配。