一个字段则是主机号host-id,它标志该主机(或路由器)。
各类地址的网络号字段net-id分别为1,2,3,0,0字节;主机号字段host-id分别为3字节、2字节、1字节、4字节、4字节。
特点:
(1)IP地址是一种分等级的地址结构。分两个等级的好处是:
第一,IP地址管理机构在分配IP地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了IP地址的管理。
第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
(2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号net-id必须是不同的。这种主机称为多归属主机(multihomedhost)。
由于一个路由器至少应当连接到两个网络(这样它才能将IP数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的IP地址。
(3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号net-id。 (4)所有分配到网络号net-id的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。 7-04 试根据IP地址的规定,计算出表7-1(p148)中的各项数据。
解:1)A类网中,网络号占七个bit,则允许用的网络数为2的7次方,为128,但是要除去0和127的情况,所以能用的最大网络数是126,第一个网络号是1,最后一个网络号是126。主机号占24个bit,则允许用的最大主机数为2的24次方,为16777216,但是也要除去全0和全1的情况,所以能用的最大主机数是16777214。
2)B类网中,网络号占14个bit,则能用的最大网络数为2的14次方,为16384,第一个网络号是128.0,因为127要用作本地软件回送测试,所以从128开始,其点后的还可以容纳2的8次方为256,所以以128为开始的网络号为128.0~~128.255,共256个,以此类推,第16384个网络号的计算方法是:16384/256=64128+64=192,则可推算出为191.255。主机号占16个bit,则允许用的最大主机数为2的16次方,为65536,但是也要除去全0和全1的情况,所以能用的最大主机数是65534。
3)C类网中,网络号占21个bit,则能用的网络数为2的21次方,为2097152,第一个网络号是192.0.0,各个点后的数占一个字节,所以以192为开始的网络号为192.0.0~~192.255.255,共256*256=65536,以此类推,第2097152个网络号的计算方法是:2097152/65536=32192+32=224,则可推算出为223.255.255。主机号占8个bit,则允许用的最大主机数为2的8次方,为256,但是也要除去全0和全1的情况,所以能用的最大主机数是254。
7-05 试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?
如上图所示,IP地址在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层以上使用的是IP地址,而链路层及以下使用的是硬件地址。
在IP层抽象的互连网上,我们看到的只是IP数据报,路由器根据目的站的IP地址进行选路。在具体的物理网络的链路层,我们看到的只是MAC帧,IP数据报被封装在MAC帧里面。MAC帧在不同的网络上传送时,其MAC帧的首部是不同的。这种变化,在上面的IP层上是看不到的。每个路由器都有IP地址和硬件地址。使用IP地址与硬件地址,尽管连接在一起的网络的硬件地址体系各不相同,但IP层抽象的互连网却屏蔽了下层这些很复杂的细节,并使我们能够使用统一的、抽象的IP地址进行通信。
IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。从而把整个因特网看成为一个单一的、抽象的网络
在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象、IP地址给予逻辑域的划分、不受硬件限制。 7-06 (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)一A类网络和一B网络的子网号subnet-id分别为16个1和8个1,问这两个子网掩码有何不同? A类网络:11111111111111111111111100000000 给定子网号(16位“1”)则子网掩码为255.255.255.0 B类网络11111111111111111111111100000000
给定子网号(8位“1”)则子网掩码为255.255.255.0但子网数目不同
(3)一个B类地址的子网掩码是255.255.240.0。试问在其中每一个子网上的主机数最多是多少? (240)10=(128+64+32+16)10=(11110000)2 Host-id的位数为4+8=12,因此,最大主机数为: 2-2=4096-2=4094
11111111.11111111.11110000.00000000主机数2-2
(4)一A类网络的子网掩码为255.255.0.255;它是否为一个有效的子网掩码?
子网掩码由一连串的1和一连串的0组成,1代表网络号和子网号,0对应主机号.255.255.0.255变成二进制形式是:11111111111111110000000011111111.可见,是一个有效的子网掩码,但是不是一个方便使用的解决办法,不推荐这样使用。
(5)某个IP地址的十六进制表示C2.2F.14.81,试将其转化为点分十进制的形式。这个地址是哪一类IP地址? C22F1481--(12*16+2).(2*16+15).(16+4).(8*16+1)---194.47.20.129 C22F1481--- 11000010.00101111.00010100.10000001,C类地址。 (6)C类网络使用子网掩码有无实际意义?为什么?
有实际意义。C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号。如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数相应减少。
7-07 试辨认以下IP地址的网络类别。
(1)128.36.199.3(2)21.12.240.17(3)183.194.76.253 (4)192.12.69.248(5)89.3.0.1(6)200.3.6.2 (2)和(5)是A类,(1)和(3)是B类,(4)和(6)是C类.
7-08 试找出可产生以下数目的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 7-09 以下有四个子网掩码,哪些是不推荐使用的?
(1)176.0.0.0,(2)96.0.0.0,(3)127.192.0.0,(4)255.128.0.0 答:只有(4)是连续的1和连续的0的掩码,是推荐使用的。
7-12 IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
在首部中的错误比在数据中的错误更严重,例如,一个坏的地址可能导致分组被投寄到错误的主机。许多主机并不检查投递给他们的分组是否确实是要投递给它们,它们假定网络从来不会把本来是要前往另一主机的分组投递给它们。
数据不参与检验和的计算,因为这样做代价大,上层协议通常也做这种检验工作,从前,从而引起重复和多余。 因此,这样做可以加快分组的转发,但是数据部分出现差错时不能及早发现。
7-13 当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?
答:纠错控制由上层(传输层)执行,IP首部中的源站地址也可能出错,请错误的源地址重传数据报是没有意义的。不采用CRC,简化解码计算量,提高路由器的吞吐量
7-14 在因特网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。
在目的站而不是在中间的路由器进行组装是由于: (1)路由器处理数据报更简单些;效率高,延迟小。
(2)数据报的各分片可能经过各自的路径。因此在每一个中间的路由器进行组装可能总会缺少几个数据报片;
12
12
(3)也许分组后面还要经过一个网络,它还要给这些数据报片划分成更小的片。如果在中间的路由器进行组装就可能会组装多次。 (为适应路径上不同链路段所能许可的不同分片规模,可能要重新分片或组装) 7-15 (1)有人认为:“ARP协议向网络层提供了转换地址的服务,因此ARP应当属于数据链路层。”这种说法为什么是错误的? 因为ARP本身是网络层的一部分,ARP协议为IP协议提供了转换地址的服务,数据链路层使用硬件地址而不使用IP地址,无需ARP协议数据链路层本身即可正常运行。因此ARP不再数据链路层。 (2)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题? 答:考虑到IP地址和Mac地址均有可能是变化的(更换网卡,或动态主机配置) 10~20分钟更换一块网卡是合理的。超时时间太短会使ARP请求和响应分组的通信量太频繁,而超时时间太长会使更换网卡后的主机迟迟无法和网络上的其他主机通信。 (3)至少举出两种不需要发送ARP请求分组的情况(即不需要请求将某个目的IP地址解析为相应的硬件地址)。 在源主机的ARP高速缓存中已经有了该目的IP地址的项目;源主机发送的是广播分组;源主机和目的主机使用点对点链路。 7-17 一个数据报长度为4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值? IP数据报固定首部长度为20字节 总长度(字节) 数据长度(字节) F 原始数据报 数据报片1 数据报片2 数据报片3 4000 1500 1500 1040 3980 1480 1480 1020 0 1 1 0 0 0 185 370 M片偏移 7-18 某单位分配到一个B类IP地址,其net-id为129.250.0.0.该单位有4000台机器,分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一个地点分配一个子网掩码号,并算出每个地点主机号码的最小值和最大值 4000/16=250,平均每个地点250台机器。如选255.255.255.0为掩码,则每个网络所连主机数=2-2=254>250,共有子网数=2-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 7-20 有两个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这一地址块。 887-21 有如下的4个/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
7-23 设某路由器建立了如下路由表(这三列分别是目的网络、子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去):
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转发。
7-24 一个自治系统有5个局域网,其连接图如图7-36示(p199)。LAN2至LAN5上的主机数分别为:91,150,3和15。该自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块(包括前缀)。
答:本题的解答有很多种,下面给出两种不同的答案: 第一组答案 第二组答案
LAN1:30.138.119.192/29 30.138.118.192/27 LAN2: 30.138.119.0/25 30.138.118.0/25 LAN3: 30.138.118.0/24 30.138.119.0/24 LAN4: 30.138.119.200/29 30.138.118.224/27 LAN5: 30.138.119.128/26 30.138.118.128/27 再给出一组解答:
30.138.118/23-- 30.138.0111011 分配网络前缀时应先分配地址数较多的前缀
题目没有说LAN1上有几个主机,但至少需要3个地址给三个路由器用。 写成二进制表示:00011110 10001010 01110110 00000000 掩码 11111111 11111111 11111110 00000000

