00000000 00000001 00000000-00000000 0 0 0 1 0 0 0 0 00000100 000010001 xxxxxxxx xxxxxxxx 0 4 1 1 0 0 0 0 00001010 00001100 00001110 00000101 0 A 0 C 0 E 0 5 00001100 00000110 00000111 00001001 0 C 0 6 0 7 0 9 01011111 00100100 00010101 00101010 5 F 2 4 1 5 2 A
5 F 2 4 1 5 2 A
7 4 4 E-?8 B B 1
4-15.什么是最大传送单元MTU?它和IP数据报的首部中的哪个字段有关系? 答:IP层下面数据链里层所限定的帧格式中数据字段的最大长度,与IP数据报首部中的总长度字段有关系
4-16 在因特网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。 答案:前一种方法对于所传数据报来将仅需要进行一次分段一次组装,用于分段和组装的开销相对较小。
但主机若在最终组装时发现分组丢失,则整个数据报要重新传输,时间开销很大。 后一种方法分段和组装的次数要由各个网络所允许的最大数据报长度来决定,分段和组装的开销相对较大。但若通过一个网络后组装时发现分段丢失,可以及时地重传数据报,时间开销较前者小,同时可靠性提高。
4-17 一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来。但第二个局域网所能传送的最长数据帧中的数据部分只有1200位。因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然指的是局域网看见的数据)? 答案:IP数据报的长为:3200+160=3360 bit
第二个局域网分片应分为 [3200/1200]=3片。 三片的首部共为:160*3=480 bit
则总共要传送的数据共3200+480=3680 bit。
4-18(1)有人认为:“ARP协议向网络层提供了转换地址的服务,因此ARP应当属于数据链路层。”这种说法为什么是错误的?
(2)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置得太大或太小会出现什么问题?
(3)至少举出两种不需要发送ARP请求分组的情况(即不需要请求将某个项目的IP地址解析为相应的硬件地址)。 答案:(1)ARP不是向网络层提供服务,它本身就是网络层的一部分,帮助向传输层提供服务。在数据链路层不存在IP地址的问题。数据链路层协议是像HDLC和PPP这样的协议,它们把比特串从线路的一端传送到另一端。
(2)ARP将保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10~20分钟)。凡超过生存时间的项目就从高速缓存中删除掉。设置这种地址映射项目的生存时间是很重要的。设想有一种情况,主机A和B通信,A的ARP高速缓存里保存有B的物理地址,但B的网卡突然坏了,B立即更换了一块,因此B的硬件地址就改变了。A还要和B继续通
信。A在其ARP高速缓存中查找到B原先的硬件地址,并使用该硬件地址向B发送数据帧,但B原先的硬件地址已经失效了,因此A无法找到主机B。是过了一段时间,A的ARP高速缓存中已经删除了B原先的硬件地址(因为它的生存时间到了),于是A重新广播发送ARP请求分组,又找到了B。
时间设置太大,造成A一直空等而产生通讯时延,网络传输缓慢。若太小,有可能网络状况不好,B暂时没有应答A,但A已经认为B的地址失效,A重新发送ARP请求分组,造成通讯时延。
(3)主机A和B通讯,A的ARP高速缓存里保存有B的物理地址,此时不需要发送ARP请求分组。
当主机A向B发送数据报时,很可能不久以后主机B还要向A发送数据报,因而主机B也可能要向A发送ARP请求分组。为了减少网络上的通信量,主机A在发送其ARP请求分组时,就将自己IP地址到硬件的映射写入ARP请求分组。当主机B收到A的ARP请求分组时,就将主机A的这一地址映射写入主机B自己的ARP高速缓存中。这对主机B以后向A发送数据报时就更方便了。
4-19. 主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程总共使用几次ARP?
解:前提,理论上当前主机路由器arp表中都没有下一跳路由器MAC 共需6次,主机A先通过arp得到第一个路由器的MAC,之后每一个路由器转发前都通过ARP得到下一跳路由器的MAC,最后一条路由器将IP包发给B前仍要通过ARP得到B的MAC,共6次。
4-20. 设某路由器建立了如下路由表(这三列分别是目的网络、子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去):
目的网络 子网掩码 下一跳
128.96.39.0 255.255.255.128 接口0 128.96.39.128 255.255.255.128 接口1 128.96.40.0 255.255.255.128 R2 192.4.153.0 255.255.255.192 R3
*(默认) - R4 现共收到5个分组,其目的站IP地址分别为: (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,可见该分组经接口0转发。
(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转发。
4-21某单位分配到一个B类IP地址,其net-id为129.250.0.0。该单位有4000台机器,平均分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一地点分配一个子网号码,并计算出每个地点主机号码的最小值和最大值。
答:4000/16=250,平均每个地点250台机器。如选255.255.255.0为掩码,则每个网络所连主机数=28-2=254>250,共有子网数=28-2=254>16,能满足实际需求。
可给每个地点分配如下子网号码
地点: 子网号(subnet-id) 子网网络号 主机IP的最小值和最大值
1: 00000001 129.250.1.0 129.250.1.1---129.250.1.254 2: 00000010 129.250.2.0 129.250.2.1---129.250.2.254 3: 00000011 129.250.3.0 129.250.3.1---129.250.3.254 4: 00000100 129.250.4.0 129.250.4.1---129.250.4.254 5: 00000101 129.250.5.0 129.250.5.1---129.250.5.254 6: 00000110 129.250.6.0 129.250.6.1---129.250.6.254 7: 00000111 129.250.7.0 129.250.7.1---129.250.7.254 8: 00001000 129.250.8.0 129.250.8.1---129.250.8.254 9: 00001001 129.250.9.0 129.250.9.1---129.250.9.254 10: 00001010 129.250.10.0 129.250.10.1---129.250.10.254 11: 00001011 129.250.11.0 129.250.11.1---129.250.11.254 12: 00001100 129.250.12.0 129.250.12.1---129.250.12.254 13: 00001101 129.250.13.0 129.250.13.1---129.250.13.254 14: 00001110 129.250.14.0 129.250.14.1---129.250.14.254 15: 00001111 129.250.15.0 129.250.15.1---129.250.15.254 16: 00010000 129.250.16.0 129.250.16.1---129.250.16.254
4-22 一具数据报长度为4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
答:IP数据报固定首部长度为20字节 节) 原始数据报 数据报片1 数据报片2 数据报片3 1500 1500 1040 1480 1480 1020 1 1 0 0 185 370 4000 总长度(字节) 3980 0 0 数据长度(字MF 片偏移
4-23 分两种情况(使用子网掩码和使用CIDR)写出因特网的IP层查找路由的算法。 答:见课本P134、P139
4-24 试找出可产生以下数目的A类子网的子网掩码(采用连续掩码) (1)2,(2)6,(3)20,(4)62,(5)122,(6)250
答:(3)20+2=22<25(加2即将不能作为子网号的全1和全0的两种,所以子网号占用5bit,所以网络号加子网号共13bit,子网掩码为前13个1后19个0,即255.248.0.0。依此方法:
(1)255.192.0.0,(2)255.224.0.0,(4)255.252.0.0,(5)255.254.0.0,(6)255.255.0.0
4-25 以下有四个子网掩码,哪些是不推荐使用的?为什么?
(1)176.0.0.0,(2)96.0.0.0,(3)127.192.0.0,(4)255.128.0.0 答:只有(4)是连续的1和连续的0的掩码,是推荐使用的。
4-26 有如下的四个/24地址块,试进行最大可能的聚合。 212.56.132.0/24 212.56.133.0/24 212.56.134.0/24 212.56.135.0/24
答:212=(11010100)2,56=(00111000)2 132=(10000100)2, 133=(10000101)2 134=(10000110)2, 135=(10000111)2
所以共同的前缀有22位,即11010100 00111000 100001,聚合的CIDR地址块是:212.56.132.0/22
4-27 有两个CIDR地址块208.128/11和208.130.28/22。是否有哪一个地址块包含了另一地址块?如果有,请指出,并说明理由。
答:208.128/11的前缀为:11010000 100
208.130.28/22的前缀为:11010000 10000010 000101,它的前11位与208.128/11的前缀是一致的,所以208.128/11地址块包含了208.130.28/22这一地址块。
4-28已知路由器R1的路由表如表4-12所示。
表4-12 习题4-28中的路由器R1的路由表 地址掩码 /26 /24 /16 /16 /16 默认 目的网络地址 140.5.12.64 130.5.8.0 110.71.0.0 180.15.0.0 190.16.0.0 默认 下一跳地址 180.15.2.5 190.16.6.2 ---- ---- ---- 110.71.4.5 路由器接口 M2 M1 M0 M2 M1 M0 试画出各网络和必要的路由器的连接拓扑,标注出必要的IP地址和接口。对不能确定的情况应当指明。
答案:图形见课后答案P380
4-29一个自治系统有5个局域网,其连接图如图4-55示。LAN2至LAN5上的主机数分别为:91,150,3和15.该自治系统分配到的IP地址块为30.138.118/23.试给出每一个局域网的地址块(包括前缀)。
图4-55 习题4-29的图
78
答案:对LAN3,主机数150,(2-2)<150+1<(2-2),所以主机位为8bit,网络前缀为24,分配地址块30.138.118.0/24。(第24位为0)
67
对LAN2,主机数91,(2-2)<91+1<(2-2),所以主机位为7bit,网络前缀为25,分配地址块30.138.119.0/25。(第24、25位为10)
45
对LAN5,主机数15,(2-2)<15+1<(2-2),所以主机位为5bit,网络前缀为27,分配地址块30.138.119.192/27。(第24、25、26、27位为1110)
23
对LAN1,主机数3,(2-2)<3+1<(2-2),所以主机位为3bit,网络前缀为29,分配地址块30.138.119.232/29。(第24、25、26、27、28、29位为111101)
23
对LAN4,主机数3,(2-2)<3+1<(2-2),所以主机位为3bit,网络前缀为29,分配地址块30.138.119.240/29。(第24、25、26、27、28、29位为111110)
4-30 一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24。公司的网络布局如图4-56。总部共有五个局域网,其中LAN1~LAN4都连接到路由器R1上,R1再通过LAN5与路由其R5相连。R5和远地的三个部门的局域网LAN6~LAN8通过广域网相连。每个局域网旁边标明的数字是局域网上主机数。试给每个局域网分配一个合适的网络前缀。