计算机网络(第7版) - 第四章 网络层 - 习题

第四章、网络层

本章的习题

  1. 网络层向上提供的服务有哪两种?试比较其优缺点。
    网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务。 前者预约了双方通信所需的一切网络资源。优点是能提供服务质量的承诺。即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限。缺点是路由器复杂,网络成本高;后者无网络资源障碍,尽力而为,优缺点与前者互易。

  2. 网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?
    网络互联可扩大用户共享资源范围和更大的通信区域。 
    进行网络互连时,需要解决共同的问题有: 
    ⑴不同的寻址方案;
    ⑵不同的最大分组长度;
    ⑶不同的网络接入机制;
    ⑷不同的超时控制;
    ⑸不同的差错恢复方法;
    ⑹不同的状态报告方法;
    ⑺不同的路由选择技术;
    ⑻不同的用户接入控制;
    ⑼不同的服务(面向连接服务和无连接服务);
    ⑽不同的管理与控制方式。

  3. 作为中间设备,转发器、网桥、路由器和网关有何区别?
    中间设备又称为中间系统或中继(relay)系统。 
    ⑴物理层中继系统:集线器,转发器(repeater)。 
    ⑵数据链路层中继系统:交换机,网桥或桥接器(bridge)。 
    ⑶网络层中继系统:路由器(router)。 
    ⑷网桥和路由器的混合物:桥路器(brouter)。 
    ⑸网络层以上的中继系统:网关(gateway)。

  4. 试简单说明下列协议的作用:IP、ARP、RARP和ICMP。
    IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议TCP、IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。 
    ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。 RARP协议:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。 
    ICMP协议:提供差错报告和询问报文,以提高IP数据交付成功的机会。 因特网组管理协议
    IGMP协议:用于探寻、转发本局域网内的组成员关系。

  5. IP地址分为几类?各如何表示?IP地址的主要特点是什么?
    分为 A、B、C、D、E,5 类; 
    每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。各类地址的网络号字段 net-id 分别为 1,2,3,0,0 字节;主机号字段 host-id 分别为 3 字节、2 字节、1 字节、4 字节、4 字节。
    特点: 
    (1)IP 地址是一种分等级的地址结构。分两个等级的好处是: 
    第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。 
    第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。  
    (2)当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。 
    (3)用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。 
    (4)所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

  6. 试根据IP地址的规定,计算出表4-2中的各项数据。
    计算机网络(第7版) - 第四章 网络层 - 习题_第1张图片

表4-2中IP地址的指派范围如下:

网络类别 最大可指派的网络数 第一个可指派的网络号 最后一个可指派的网络号 每个网络中的最大主机数
A 126 ( 2 7 − 2 ) 126(2^7-2) 126(272) 1 126 16777214
B 16383 ( 2 14 − 1 ) 16383(2^{14}-1) 16383(2141) 128.1 191.255 65534
C 2091751(2^{21}-1) 192.0.1 223.255.255 254

① A类地址(在二进制数字中,有下划线的数字是可指派的):
最大可指派的网络数 = 2 7 − 2 2^7-2 272 = 126;
第一个可指派的网络号 = 1(最小的可指派的 net-id = 0000001);
最后一个可指派的网络号 = 126(最大的可指派的 net-id = 01111110);【目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。】
每个网络中的最大主机数(host-id 是 24 位)= 2 24 − 2 2^{24} - 2 2242 = 16777216 - 2 = 16777214
(全 0 和全 1 的主机号不指派)
② B类地址:
最大可指派的网络数 = 2 14 − 1 2^{14}-1 2141 = 16384 = 16383;
第一个可指派的网络号 = 128.1(最小的可指派的 net-id = 10000000 00000001);
最后一个可指派的网络号 = 191.255(最大的可指派的 net-id = 10111111 11111111);
每个网络中的最大主机数(host-id 是 24 位)= 2 16 − 2 2^{16} - 2 2162 = 65536 - 2 = 65534
(全 0 和全 1 的主机号不指派)
③ C类地址:
最大可指派的网络数 = 2 21 − 2 2^{21}-2 2212 = 2097152 - 1 = 2097151;
第一个可指派的网络号 = 192.0.1(最小的可指派的 net-id = 11000000 00000000 00000001);
最后一个可指派的网络号 = 223.255.255(最大的可指派的 net-id = 11011111 11111111 11111111);
每个网络中的最大主机数(host-id 是 24 位)= 2 8 − 2 2^{8} - 2 282 = 256- 2 = 254
(全 0 和全 1 的主机号不指派)

  1. 试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?
    IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32 位的标识符。从而把整个因特网看成为一个单一的、抽象的网络。在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 
    MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象,IP地址给予逻辑域的划分、不受硬件限制。

  2. IP地址方案与我国的电话号码体制的主要不同点是什么?
    与网络的地理分布无关

  3. (1)子网掩码为255.255.255.0代表什么意思?
    C类地址对应的子网掩码默认值。但也可以是A类或B类地址的掩码,即主机号由最后8位决定,而路由器寻找网络由前24位决定。 
    有三种含义: 
    其一是一个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
    每一个子网上的主机为 ( 2 3 ) = 6 (2^3)=6 (23)=6 台,掩码位数 29
    该网络能够连接 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。试问在其中每一个子网上的主机数最多是多少?
    ( 240 ) 10 = ( 128 + 64 + 32 + 16 ) 10 = ( 11110000 ) 2   (240)_{10}=(128+64+32+16)_{10}=(11110000)_2  (240)10=(128+64+32+16)10=(11110000)2
    Host-id 的位数为 4 + 8 = 12
    因此,最大主机数为: 2 12 − 2 = 4096 − 2 = 4094 2^{12}-2=4096-2=4094 2122=40962=4094
    11111111.11111111.11110000.00000000,主机数 = 2 12 − 2 2^{12}-2 2122 =  4094
    (5)一A类网络的子网掩码为 255.255.0.255;它是否为一个有效的子网掩码?
    是。11111111.11111111.00000000.11111111,但不推荐。
    (6)某个IP地址的十六进制表示 C2.2F.14.81,试将其转化为点分十进制的形式。这个地址是哪一类IP地址?
    C2.2F.14.81 → ( 12 ∗ 1 6 1 + 2 ∗ 1 6 0 12*16^1+2*16^0 12161+2160).( 2 ∗ 1 6 1 + 15 ∗ 1 6 0 2*16^1+15*16^0 2161+15160).( 1 ∗ 1 6 1 + 4 ∗ 1 6 0 1*16^1+4*16^0 1161+4160).( 8 ∗ 1 6 1 + 1 ∗ 1 6 0 8*16^1+1*16^0 8161+1160) → 194.47.20.129    
    194.47.20.129 → 11000010.00101111.00010100.10000001,为C类地址 
    (7)C类网络使用子网掩码有无实际意义?为什么?
    有实际意义。C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号。如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数相应的减少。

  4. 试辨认以下 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 类。

  5. IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
    在首部中的错误比在数据中的错误更严重,例如,一个坏的地址可能导致分组被投寄到错误的主机。许多主机并不检查投递给他们的分组是否确实是要投递给它们,它们假定网络从来不会把本来是要前往另一主机的分组投递给它们。 
    数据不参与检验和的计算,因为这样做代价大,上层协议通常也做这种检验工作,从而引起重复和多余。因此,这样做可以加快分组的转发,但是数据部分出现差错时不能及早发现。

  6. 当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要 求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?
    纠错控制由上层(传输层)执行。IP首部中的源站地址也可能出错,请错误的源地址重传数据报是没有意义的。不采用CRC简化解码计算量,提高路由器的吞吐量。

  7. 设IP数据报使用固定首部,其各字段的具体数值如图所示(除IP地址外,均为十进 制表示)。试用二进制运算方法计算应当写入到首部检验和字段中的数值(用二进制表 示)。
    计算机网络(第7版) - 第四章 网络层 - 习题_第2张图片
    把以上数据写成二进制数字,按每 16 位对齐,然后计算反码运算的和:

前8位 后八位
4,5 和 0 01000101 00000000
28 00000000 00011100
1 00000000 00000001
0 和 0 00000000 00000000
4 和 17 00000100 00010001
0 00000000 00000000
10.12 00001010 00001100
14.5 00001110 00000101
12.6 00001100 00000110
7.9 00000111 00001001
01110100 01001110
检验和 10001011 10110001

例如,最低位相加,一共有 4 个 1,相加后得二进制的 100,把最低位的 0 写下,作为和的最低位。进位中的 0 不必管它,进位中的 1 要与右边第 3 位相加。
右边第 2 位相加时,只有一个 1,相加后得 1,没有进位。把 1写在右边第 2 位上。
右边第 3 位相加时,共有 4 个 1 和一个进位的 1,即总共 5 个 1,相加后得 101。把这个和最右边的 1 写在和的右边第 3 位上。进位的 1 应当与右边第 5 位的数字相加,等等。

  1. 重新计算上题,但使用十六进制运算方法(每16位二进制数字转换为4个十六进制 数字,再按十六进制加法规则计算)。比较这两种方法。
前4位 5-8位 9-12位 13-16位
4,5 和 0 4 5 0 0
28 0 0 1 C
1 0 0 0 1
0 和 0 0 0 0 0
4 和 17 0 4 1 1
0 0 0 0 0
10.12 0 A 0 C
14.5 0 E 0 5
12.6 0 C 0 6
7.9 0 7 0 9
7 4 4 E
检验和 8 B B 1

两着相互比较, ( 8 B ) 16 = 10001011 (8B)_{16} = 10001011 (8B)16=10001011,而 ( B 1 ) 16 = 10110001 (B1)_{16} = 10110001 (B1)16=10110001

  1. 什么是最大传送单元MTU?它和IP数据报的首部中的哪个字段有关系?
    答:IP层下面数据链里层所限定的帧格式中数据字段的最大长度,与IP数据报首部中的总长度字段有关系。

  2. 在互联网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。
    在目的站而不是在中间的路由器进行组装是由于:
    (1)路由器处理数据报更简单些;效率高,延迟小。 
    (2)数据报的各分片可能经过各自的路径。因此在每一个中间的路由器进行组装可能总会缺少几个数据报片; 
    (3)也许分组后面还要经过一个网络,它还要给这些数据报片划分成更小的片。如果在中间的路由器进行组装就可能会组装多次。 
      为适应路径上不同链路段所能许可的不同分片规模,可能要重新分片或组装。

  3. 一个3200位长的TCP报文传到IP层,加上160位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来。但第二个局域网所能传送的最长数据帧中的数据部分只有1200位。因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然指的是局域网看见的数据)?
    第二个局域网所能传送的最大数据帧中的数据只有 1200 bit,可见每一个IP数据报的最大长度是1200bit,故其数据部分最多为:
    IP数据报的总长度 - IP数据报的首部 = 1200 - 160 = 1040 bit
    而 TCP 交给 IP 的数据共 3200 bit = 1040 + 1040 +1040 + 80,因此 3200 bit 的数据必须划分为 4 个数据报片
    四个数据报片的首部均为 160 bit(但里面内容并不相同),这四个数据报片的总长度(首部加上数据部分)分别为 1200 bit,1200 bit,1200 bit 和 240 bit。
    上面这些就是第二个局域网向其上层传送的数据。
    因此,第二个局域网向上传送 1200 + 1200 + 1200 + 240 = 3840 bit。

  4. 请回答一下问题:
    (1)有人认为:“ARP协议向网络层提供了转换地址的服务,因此ARP应当属于数据链路层。”这种说法为什么是错误的?
    答:因为ARP本身是网络层的一部分(但IP使用ARP),ARP协议为IP协议提供了转换地址的服务。数据链路层使用硬件地址而不使用IP地址,无需ARP协议数据链路层本身即可正常运行。因此ARP不在数据链路层。 
    (2)试解释为什么ARP高速缓存每存入一个项目就要设置10~20分钟的超时计时器。这个时间设置的太大或太小会出现什么问题?
    答:考虑到IP地址和MAC地址的映射可能发生变化(更换网卡,或动态主机配置)。10-20分钟更换一块网卡是合理的。超时时间太短会使ARP请求和响应分组的通信量太频繁,而超时时间太长会使更换网卡后的主机迟迟无法和网络上的其他主机通信。 
    (3)至少举出两种不需要发送ARP请求分组的情况(即不需要请求将某个目的IP地址解析为相应的硬件地址)。
    答:在源主机的ARP高速缓存中已经有了该目的IP地址的项目;源主机发送的是广播分组;源主机和目的主机使用点对点链路。

  5. 主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?  
    6次,主机用一次,每个路由器各使用一次。

  6. 设某路由器建立了如下路由表: 
    目的网络        子网掩码           下一跳 
    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.153.17 
    (5)192.4.153.90 
    试分别计算下一跳。

    IP 地址的 4 个字节分别表示为 B1,B2,B3 和 B4。把路由表中的 4 个目的地址分别记为 N 1 N_1 N1 N 2 N_2 N2,… , N 4 N_4 N4。收到的5个分组的目的地址分别记为 D 1 D_1 D1 D 2 D_2 D2,…, D 5 D_5 D5
    请注意,在进行 AND 运算时,只要把掩码地址中非全 1(即非 25 5 10 255_{10} 25510)的哪一个字节换成二进制即可。全 1 字节与任何一个数 X 相与时,结果一定是 X,非常简单。

(1)路由器收到的分组的目的地址 D_1 = 128.96.39.10。
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 D 1 D_1 D1 进行 AND 运算:

B1 B2 B3 B4
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (点分十进制) 255 255 255 128
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 1 D_1 D1 (第 4 字节用二进制表示) 128 96 39 00001010
( M 1 M_1 M1) AND ( D 1 D_1 D1) (第 4 字节用二进制表示) 128 96 39 00000000
( M 1 M_1 M1) AND ( D 1 D_1 D1) (点分十进制) 128 96 39 0

所得结果与 N 1 N_1 N1 匹配。故选“接口 m0”。后面不用计算。

(2)路由器收到的分组的目的地址 D_2 = 128.96.40.12。
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 D 2 D_2 D2 进行 AND 运算:

B1 B2 B3 B4
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (点分十进制) 255 255 255 128
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 2 D_2 D2 (第 4 字节用二进制表示) 128 96 40 00001100
( M 1 M_1 M1) AND ( D 2 D_2 D2) (第 4 字节用二进制表示) 128 96 40 00000000
( M 1 M_1 M1) AND ( D 2 D_2 D2) (点分十进制) 128 96 40 0

所得结果与 N 1 N_1 N1 不匹配。再试下一个。

网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 D 2 D_2 D2 进行 AND 运算:

B1 B2 B3 B4
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (点分十进制) 255 255 255 128
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 2 D_2 D2 (第 4 字节用二进制表示) 128 96 40 00001100
( M 2 M_2 M2) AND ( D 2 D_2 D2) (第 4 字节用二进制表示) 128 96 40 00000000
( M 2 M_2 M2) AND ( D 2 D_2 D2) (点分十进制) 128 96 40 0

所得结果与 N 2 N_2 N2 不匹配。再试下一个。

网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 D 2 D_2 D2 进行 AND 运算:

B1 B2 B3 B4
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (点分十进制) 255 255 255 128
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 2 D_2 D2 (第 4 字节用二进制表示) 128 96 40 00001100
( M 3 M_3 M3) AND ( D 2 D_2 D2) (第 4 字节用二进制表示) 128 96 40 00000000
( M 3 M_3 M3) AND ( D 2 D_2 D2) (点分十进制) 128 96 40 0

所得结果与 N 3 N_3 N3 匹配。故选“下一跳为R2”。后面就不用计算了。

(3)路由器收到的分组的目的地址 D_3 = 128.96.40.151。
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 D 2 D_2 D2 进行 AND 运算:

B1 B2 B3 B4
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (点分十进制) 255 255 255 128
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 3 D_3 D3 (第 4 字节用二进制表示) 128 96 40 10010111
( M 1 M_1 M1) AND ( D 3 D_3 D3) (第 4 字节用二进制表示) 128 96 40 10000000
( M 1 M_1 M1) AND ( D 3 D_3 D3) (点分十进制) 128 96 40 128

所得结果与 N 1 N_1 N1 不匹配。再试下一个。

网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 D 3 D_3 D3 进行 AND 运算:

B1 B2 B3 B4
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (点分十进制) 255 255 255 128
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 3 D_3 D3 (第 4 字节用二进制表示) 128 96 40 10010111
( M 2 M_2 M2) AND ( D 3 D_3 D3) (第 4 字节用二进制表示) 128 96 40 10000000
( M 2 M_2 M2) AND ( D 3 D_3 D3) (点分十进制) 128 96 40 128

所得结果与 N 2 N_2 N2 不匹配。再试下一个。

网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 D 3 D_3 D3 进行 AND 运算:

B1 B2 B3 B4
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (点分十进制) 255 255 255 128
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 3 D_3 D3 (第 4 字节用二进制表示) 128 96 40 10010111
( M 3 M_3 M3) AND ( D 3 D_3 D3) (第 4 字节用二进制表示) 128 96 40 10000000
( M 3 M_3 M3) AND ( D 3 D_3 D3) (点分十进制) 128 96 40 128

所得结果与 N 3 N_3 N3 不匹配。再试下一个。

网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 D 3 D_3 D3 进行 AND 运算:

B1 B2 B3 B4
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (点分十进制) 255 255 255 192
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (第 4 字节用二进制表示) 255 255 255 11000000
收到的分组的目的地址 D 3 D_3 D3 (第 4 字节用二进制表示) 128 96 40 10010111
( M 4 M_4 M4) AND ( D 3 D_3 D3) (第 4 字节用二进制表示) 128 96 40 10000000
( M 4 M_4 M4) AND ( D 3 D_3 D3) (点分十进制) 128 96 40 128

所得结果与 N 4 N_4 N4 不匹配。因此下一跳为默认接口 R 4 R_4 R4

(4)路由器收到的分组的目的地址 D_4 = 192.4.153.17。
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 D 4 D_4 D4 进行 AND 运算:

B1 B2 B3 B4
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (点分十进制) 255 255 255 128
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 4 D_4 D4 (第 4 字节用二进制表示) 192 4 153 00010001
( M 1 M_1 M1) AND ( D 4 D_4 D4) (第 4 字节用二进制表示) 192 4 153 00000000
( M 1 M_1 M1) AND ( D 4 D_4 D4) (点分十进制) 192 4 153 0

所得结果与 N 1 N_1 N1 不匹配。再试下一个。

网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 D 4 D_4 D4 进行 AND 运算:

B1 B2 B3 B4
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (点分十进制) 255 255 255 128
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 4 D_4 D4 (第 4 字节用二进制表示) 192 4 153 00010001
( M 2 M_2 M2) AND ( D 4 D_4 D4) (第 4 字节用二进制表示) 192 4 153 00000000
( M 2 M_2 M2) AND ( D 4 D_4 D4) (点分十进制) 192 4 153 0

所得结果与 N 2 N_2 N2 不匹配。再试下一个。

网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 D 4 D_4 D4 进行 AND 运算:

B1 B2 B3 B4
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (点分十进制) 255 255 255 128
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 4 D_4 D4 (第 4 字节用二进制表示) 192 4 153 00010001
( M 3 M_3 M3) AND ( D 4 D_4 D4) (第 4 字节用二进制表示) 192 4 153 00000000
( M 3 M_3 M3) AND ( D 4 D_4 D4) (点分十进制) 192 4 153 0

所得结果与 N 3 N_3 N3 不匹配。再试下一个。

网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 D 4 D_4 D4 进行 AND 运算:

B1 B2 B3 B4
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (点分十进制) 255 255 255 192
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (第 4 字节用二进制表示) 255 255 255 11000000
收到的分组的目的地址 D 4 D_4 D4 (第 4 字节用二进制表示) 192 4 153 00010001
( M 4 M_4 M4) AND ( D 4 D_4 D4) (第 4 字节用二进制表示) 192 4 153 00000000
( M 4 M_4 M4) AND ( D 4 D_4 D4) (点分十进制) 192 4 153 0

所得结果与 N 4 N_4 N4 匹配。故选择下一跳为 R 3 R_3 R3

(5) 路由器收到的分组的目的地址 D_5 = 192.4.153.90。
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 D 5 D_5 D5 进行 AND 运算:

B1 B2 B3 B4
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (点分十进制) 255 255 255 128
网络 N 1 N_1 N1 的子网掩码 M 1 M_1 M1 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 5 D_5 D5 (第 4 字节用二进制表示) 192 4 153 01011010
( M 1 M_1 M1) AND ( D 5 D_5 D5) (第 4 字节用二进制表示) 192 4 153 00000000
( M 1 M_1 M1) AND ( D 5 D_5 D5) (点分十进制) 192 4 153 0

所得结果与 N 1 N_1 N1 不匹配。再试下一个。

网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 D 5 D_5 D5 进行 AND 运算:

B1 B2 B3 B4
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (点分十进制) 255 255 255 128
网络 N 2 N_2 N2 的子网掩码 M 2 M_2 M2 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 5 D_5 D5 (第 4 字节用二进制表示) 192 4 153 01011010
( M 2 M_2 M2) AND ( D 5 D_5 D5) (第 4 字节用二进制表示) 192 4 153 00000000
( M 2 M_2 M2) AND ( D 5 D_5 D5) (点分十进制) 192 4 153 0

所得结果与 N 2 N_2 N2 不匹配。再试下一个。

网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 D 5 D_5 D5 进行 AND 运算:

B1 B2 B3 B4
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (点分十进制) 255 255 255 128
网络 N 3 N_3 N3 的子网掩码 M 3 M_3 M3 (第 4 字节用二进制表示) 255 255 255 10000000
收到的分组的目的地址 D 5 D_5 D5 (第 4 字节用二进制表示) 192 4 153 01011010
( M 3 M_3 M3) AND ( D 5 D_5 D5) (第 4 字节用二进制表示) 192 4 153 00000000
( M 3 M_3 M3) AND ( D 5 D_5 D5) (点分十进制) 192 4 153 0

所得结果与 N 3 N_3 N3 不匹配。再试下一个。

网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 D 5 D_5 D5 进行 AND 运算:

B1 B2 B3 B4
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (点分十进制) 255 255 255 1920
网络 N 4 N_4 N4 的子网掩码 M 4 M_4 M4 (第 4 字节用二进制表示) 255 255 255 11000000
收到的分组的目的地址 D 5 D_5 D5 (第 4 字节用二进制表示) 192 4 153 01011010
( M 4 M_4 M4) AND ( D 5 D_5 D5) (第 4 字节用二进制表示) 192 4 153 01000000
( M 4 M_4 M4) AND ( D 5 D_5 D5) (点分十进制) 192 4 153 64

所得结果与 N 4 N_4 N4 不匹配。故选择下一跳为默认接口 R 4 R_4 R4

  1. 某单位分配到一个B类IP地址,其net-id为129.250.0.0.该单位有4000多台计算机,分布在16个不同的地点。如选用子网掩码为255.255.255.0,试给每一个地点分配一个子网码,并算出每个地点主机号码的最小值和最大值?
    ① 4000 台计算机,平均分配在 16 个不同的地方。每个地方有 250 台计算机。因此,主机号 host-id 有 8 位就够了。而 16 个不同地方需要 16 个子网。考虑到不使用全 1 和 全 0 的子网号,因此子网号 subnet-id 至少 5 为(可以有 30 个子网)。这样,子网号可以从 5 位到 8 位。
    ② 但题目已经给定了子网掩码为 255.255.255.0,就是说,题目已经确定了采用 8 位的子网号,因此可以选用子网号从 00000001 到 00010000 这样 16 个号码。每一个地点的主机号 host-id 从 00000001 到 11111010 共 250 个号码。
    可给每个地点分配如下子网号码,并计算出每个地点主机IP的最小值和最大值如下表:
    计算机网络(第7版) - 第四章 网络层 - 习题_第3张图片
  2. 一个数据报长度为4000字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF标志应为何数值?
    数据报的总长度减去首部长度,得出 IP 数据报的数据部分长度为:
    4000 − 20 = 3980 B 4000-20=3980B 400020=3980B
    划分出一个数据报片(首部有 20 字节):3980 - 1480 = 2500 B,剩下的数据部分,大于 MTU。
    再划分出一个数据报片:2500 - 1480 = 1020 B,剩下的数据长度,小于 MTU。
    故划分出 3 个数据报片,其数据字段长度分别为:1480,1480 和 1020 字节。
    片偏移字段的值分别为:0,1480 / 8 = 185 和 2 * 1480 / 8 = 370。
    MF 字段的值分别为 1,1 和 0。
    【注意:MF(More Fragment),MF = 1,后面还有分片,MF = 0,表示这已经是若干个数据报片的最后一个;片偏移,除最后一个数据报片外,每个分片的长度一定是 8 字节的整数倍。】

IP数据报固定首部长度为20字节。

总长度(字节) 数据长度(字节) MF 片偏移
原始数据报 4000 3980 0
数据报片1 1500 1480 1
数据报片2 1500 1480 1
数据报片3 1040 1020 0
  1. 分两种情况(使用子网掩码和使用CIDR)写出互联网的IP成查找路由的算法
    使用子网掩码的路由器转发分组的算法:
    (1) 从收到的分组的首部提取目的 IP 地址 D。 
    (2) 直接交付:先用直接相连网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。 
    (3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。 
    (4) 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。 
    (5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。 
    (6) 报告转发分组出错。 
    使用CIDR的路由器转发分组的算法:
    (1) 最长前缀匹配 
    使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。 
    (2) 使用二叉线索查找路由表  当路由表的项目数很大时,为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。
  2. 试找出可产生以下数目的A类子网的子网掩码(采用连续掩码)。
    (1)2,(2)6,(3)30,(4)62,(5)122,(6)250
子网掩码 把前两个字节写成二进制 去掉全 0 和全 1 的子网数
(1) 255.192.0.0 11111111 11000000 2
(2) 255.224.0.0 11111111 11100000 6
(3) 255.248.0.0 11111111 11111000 30
(4) 255.252.0.0 11111111 11111100 62
(5) 255.254.0.0 11111111 11111110 126(大于 122)
(6) 255.255.0.0 11111111 11111111 254(大于 250)
  1. 以下有4个子网掩码。哪些是不推荐使用的?为什么?  
    (1)176.0.0.0
    (2)96.0.0.0
    (3)127.192.0.0
    (4)255.128.0.0。

    (1)176.0.0.0 的第一个字节的二进制表示:10110000,“1” 不连续。不推荐使用
    (2)96.0.0.0 的第一个字节的二进制表示:01100000,“1” 前面有0。不推荐使用
    (3)127.192.0.0 的第一个字节的二进制表示:01111111,“1” 前面有0。不推荐使用
    (4)255.128.0.0 的前面两个字节的二进制表示:11111111 10000000。推荐使用。所有的 1 是连续的,1 的前面没有 0。
  2. 有如下的4个/24地址块,试进行最大可能性的聚合。
    212.56.132.0/24 
    212.56.133.0/24 
    212.56.134.0/24 
    212.56.135.0/24

    这几个地址的前面两个字节都一样,因此,只需要比较三个字节。
    212.56.132.0/24 的第三个字节的二进制表示是 10000100;
    212.56.133.0/24 的第三个字节的二进制表示是 10000101;
    212.56.134.0/24 的第三个字节的二进制表示是 10000110;
    212.56.135.0/24 的第三个字节的二进制表示是 10000101。
    可以看出来,仅最后两位不一样。这 4 个地址共同前缀是两个字节加上 6 位,即 22 位,11010100 00111000 100001。
    最大可能聚合的 CIDR 地址块是:212.56.132.0/22。
  3. 是否有那一个地址块包含了另一个地址?如果有,请指出,并说明理由。
     208.128/11的网络前缀是由下划线所示的 11 位:11010000 10000000;
     208.130.28/22网络前缀是由下划线所示的 22 位:11010000 10000010 00011100,它的前11位与 208.128/11 的前缀是一致的,所以 208.128/11 地址块包含了 208.130.28/22 这一地址块。
  4. 已知路由器 R 1 R_1 R1 的路由器如下表所示:
地址掩码 目的网络地址 下一跳地址 路由器接口
/26 140.5.12.64 180.15.2.5 m2
/24 130.5.8.0 190.16.6.2 m1
/16 110.71.0.0 - - - m0
/16 180.15.0.0 - - - m2
/16 190.16.0.0 - - - m1
默认 默认 110.71.4.5 m0

试画出各网络和必要路由器的连接拓扑,标注出必要的 IP 地址和接口。对不能确定的情况应当指明。
计算机网络(第7版) - 第四章 网络层 - 习题_第4张图片
有三个网络直接和 R 1 R_1 R1 相连,有两个网络间接和 R 1 R_1 R1 相连,这是因为在 “下一条地址” 中没有写上任何地址。这就表明到了路由器 R 1 R_1 R1 后,不需要再转发(没有下一跳),而是直接交付主机。可见这三个网络是直接和路由器 R 1 R_1 R1 相连的。
还应当有三个路由器。这从下一跳地址可看出,因为既然给出了下一跳的 IP 地址就知道是和哪一个相连接。默认路由器一定是和路由器相连的。例如,下一跳地址是 190.16.6.2,具有这个地址的路由器一定是与网络 190.16.0.0 相连接的。
但网络 130.5.8.0 是怎么和路由器 190.16.6.2 连接的,它们之间还要经过多少个路由器,现在都是不知道的。因此网络 130.5.8.0 和 路由器 190.16.6.2 之间用虚线表示。

  1. 一个自治系统有5个局域网,其连接图如图4-55示。LAN2至LAN5上的主机数分别为:91,150,3和15。该自治系统分配到的IP地址块为30.138.118/23。试给出每一个局域网的地址块(包括前缀)。
    计算机网络(第7版) - 第四章 网络层 - 习题_第5张图片

分配网络前缀时应先分配地址数较多的前缀。题目没有说 L A N 1 LAN_1 LAN1 上有几个主机,但至少需要 3 个地址给三个路由器用。本题的解答有很多种,下面给出两种不同的答案:

第一组答案 第二组答案
L A N 1 LAN_1 LAN1 30.138.119.192/29 30.138.118.192/27
L A N 2 LAN_2 LAN2 30.138.119.0/25 30.138.118.0/25
L A N 3 LAN_3 LAN3 30.138.118.0/24 30.138.119.0/24
L A N 4 LAN_4 LAN4 30.138.119.200/29 30.138.118.224/27
L A N 5 LAN_5 LAN5 30.138.119.128/26 30.138.118.128/27

30.138.118/23 = (30.138).01110110.00000000【23位的网络前缀有下划线】,该自治系统可分配的IP地址数为: 2 32 − 23 = 2 9 = 512 2^{32-23}=2^9=512 23223=29=512
计算机网络(第7版) - 第四章 网络层 - 习题_第6张图片
这个自治系统有地址块 A,即共有 512 个 IP 地址,其网络前缀 n = 23。32 位地址中有 23 位是网络前缀,剩下 9 位是主机号,因此共有 2 9 = 512 2^9 = 512 29=512 个 IP 地址。
把地址总数分为两大块,每一块的地址数是 256 个,其网络前缀增加了一位(请注意:网络前缀每增加一位,地址数就减半),即 n = 24。这就是图中的 B 和 C 两大块。
把地址块 B 分配给 L A N 3 LAN_3 LAN3,而把地址块 C 继续分下去。
地址块 C 的一半是 D,地址数减半,是 128,网络前缀增加一位,n = 25。 L A N 2 LAN_2 LAN2 得到了地址块 D。
地址块 C 的另一半的一半是 F,地址数是 64,网络前缀 n = 26。地址块 F 分配给 L A N 5 LAN_5 LAN5
在其余的 64 个地址中,给 J 和 K 各分配 8 个地址,其网络前缀 n = 29。
最后剩下的 48 个地址留到以后再分配。
计算机网络(第7版) - 第四章 网络层 - 习题_第7张图片
这个分配方案同样把总地址块分成 B 和 C 两大块,把地址块 C 分配给 L A N 3 LAN_3 LAN3
然后把地址块 B 继续分下去。把地址块 B 的一半 D 分配给 L A N 2 LAN_2 LAN2,共有 128 个地址,其网络前缀 n = 25;地址块 B 的另一半分为四等分,每一块有 32 个地址,网络前缀 n = 27。用这四块地址中的三个(图种 E,F 和 G),分配给 L A N 5 LAN_5 LAN5 L A N 1 LAN_1 LAN1 L A N 4 LAN_4 LAN4

  1. 一个大公司有一个总部和三个下属部门。公司分配到的网络前缀是192.77.33/24。公司的网络布局如下图。总部共有五个局域网,其中 L A N 1 ~ L A N 4 LAN_1~LAN_4 LAN1LAN4 都连接到路由器 R 1 R_1 R1 上, R 1 R_1 R1 再通过 L A N 5 LAN_5 LAN5 与路由其 R 5 R_5 R5 相连。 R 2 R_2 R2 和远地的三个部门的局域网 L A N 6 ~ L A N 8 LAN_6~LAN_8 LAN6LAN8 通过广域网相连。每个局域网旁边标明的数字是局域网上主机数。试给每个局域网分配一个合适的网络前缀。
    计算机网络(第7版) - 第四章 网络层 - 习题_第8张图片
    ① 50 个主机的 L A N 1 LAN_1 LAN1 需要前缀 /26 (主机号 6 位,62 个主机号【 2 6 − 2 = 62 2^6-2=62 262=62】),30 个主机的 L A N 3 LAN_3 LAN3 需要前缀 /27 (主机号 5 位,30个主机号),两个 10 个主机的 L A N 2 LAN_2 LAN2 L A N 4 LAN_4 LAN4 各需要一个前缀 /28 (主机号 4 位,14个主机号)
    L A N 6 ~ L A N 8 LAN_6~LAN_8 LAN6LAN8 (加上路由器)各需要一个前缀 /27 (主机号 5 位,30 个主机号),3 个 WAN 各有两个端点,各需要一个前缀 /30 (主机号 2 位, 2 个主机号)。$ LAN_5 $ 需要前缀 /30 (主机号 2 位,2 个主机号),但考虑到以太网上可能还要再接几个主机,故留有余地,可分配一个 /29 (主机号 3 位, 6 个主机号)。

下面给出其中一种答案(先选择需要较大的网络前缀):

名称 IP
L A N 1 LAN_1 LAN1 192.77.33.0/26
L A N 3 LAN_3 LAN3 192.77.33.64/27
L A N 6 LAN_6 LAN6 192.77.33.96/27
L A N 7 LAN_7 LAN7 192.77.33.128/27
L A N 8 LAN_8 LAN8 192.77.33.160/27
L A N 2 LAN_2 LAN2 192.77.33.192/27
L A N 4 LAN_4 LAN4 192.77.33.208/28
L A N 5 LAN_5 LAN5 192.77.33.224/29
W A N 1 WAN_1 WAN1 192.77.33.232/30
W A N 2 WAN_2 WAN2 192.77.33.236/30
W A N 3 WAN_3 WAN3 192.77.33.240/30

转载:
(1) L A N 1 LAN_1 LAN1 有 50 台机子,所以 2 6 − 2 = 62 > 50 2^6-2=62>50 262=62>50,所以选用网络前缀为 /26,相当于 1 4 \frac{1}{4} 41 个 C 类地址,将 192.77.33/24 划分为 4 个子网:
① 192.77.33.0/26
② 192.77.33.64/26
③ 192.77.33.128/26
④ 192.77.33.192/26
将第一个地址分配给 L A N 1 LAN_1 LAN1 使用,即:
L A N 1 LAN_1 LAN1 → 192.77.33.0/26

(2) L A N 3 、 L A N 6 、 L A N 7 、 L A N 8 LAN_3、LAN_6、LAN_7、LAN_8 LAN3LAN6LAN7LAN8 所需主机数分别为 30、20、20、25,则选择网络前缀为 /27, 32 − 27 = 5 32 - 27 = 5 3227=5 2 5 − 2 = 30 2^5-2=30 252=30,所以将前面剩余的地址再划分:
① 192.77.33.64/26划分为:192.77.33.64/27 和 192.77.33.96/27【bin(64) = 0b01000000 ,bin(96) = 0b01100000,前缀 27 位】
② 192.77.33.128/26划分为:192.77.33.128/27 和 192.77.33.160/27
③ 192.77.33.192/26划分为:192.77.33.192/27 和 192.77.33.224/27。
L A N 3 、 L A N 6 、 L A N 7 、 L A N 8 LAN_3、LAN_6、LAN_7、LAN_8 LAN3LAN6LAN7LAN8 分配给前面四个地址,即:
L A N 3 LAN_3 LAN3 → 192.77.33.64/27
L A N 6 LAN_6 LAN6 → 192.77.33.96/27
L A N 7 LAN_7 LAN7 → 192.77.33.128/27
L A N 8 LAN_8 LAN8 → 192.77.33.160/27

(3) L A N 2 、 L A N 4 LAN_2、LAN_4 LAN2LAN4所需主机数都为 10,则选择网络前缀为 /28, 2 4 − 2 = 14 > 10 2^4-2 = 14>10 242=14>10,将192.77.33.192/27划分子网:
192.77.33.192/27划分为:192.77.33.192/28、192.77.33.224/28、192.77.33.208/28
将前面两个地址分配给 L A N 2 、 L A N 4 LAN_2、LAN_4 LAN2LAN4,即:
L A N 2 LAN_2 LAN2 → 192.77.33.192/27
L A N 4 LAN_4 LAN4 → 192.77.33.208/28

(4) L A N 5 LAN_5 LAN5 需要 4 个地址,选择网络前缀为 /29, 2 3 − 2 = 6 > 4 2^3-2=6>4 232=6>4,所以将192.77.33.224/28 划分 1 个子网:192.77.33.224/29。
将地址分配给 L A N 5 LAN_5 LAN5 ,即:
L A N 5 LAN_5 LAN5 → 192.77.33.224/29

(5)三个路由器 W A N 1 、 W A N 2 、 W A N 3 WAN_1、WAN_2、WAN_3 WAN1WAN2WAN3,每个路由器需要两个地址,所以选择网络前缀为/30, 2 2 − 2 = 2 2^2-2=2 222=2,192.77.33.224/29再划分得到:192.77.33.224/30、192.77.33.230/30、192.77.33.232/30、192.77.33.236/30、192.77.33.240/30 等等
将前面三个地址分配给三个路由器,即:
W A N 1 WAN_1 WAN1 → 192.77.33.232/30
W A N 2 WAN_2 WAN2 → 192.77.33.236/30
W A N 3 WAN_3 WAN3 → 192.77.33.240/30

原文:一个计算机网络题目——给局域网分配合适的网络前缀。

  1. 以下地址中的哪一个和86.32/12匹配:请说明理由。   
    (1)86.33.224.123:(2)86.79.65.216;(3)86.58.119.74; (4)86.68.206.154。

    观察地址 86.32/12 的第二个字节 0x32 = 00100000,前缀 12 位,说明第二字节的前 4 位 0010 在前缀中。
    把给出的四个地址的第二字节转换为二进制,看哪一个前 4 位是 0010。
    (1)0x33 = 00100001,前 4 位是:0010
    (2)0x79 = 01001111,前 4 位是:0100
    (3)0x58 = 00111010,前 4 位是:0011
    (4)0x68 = 01000100,前 4 位是:0100
    因此只有(1)的地址 86.33.224.123 是和 86.32/12 匹配的。

  2. 以下地址中的哪一个地址 2.52.90.140 匹配?请说明理由。    
    (1)0/4;(2)32/4;(3)4/6;(4)152.0/11
      
    给出的四个地址的前缀有 4 位和 6 位两种,因此我们就观察地址 2.52.90.140 的第一字节。
    2.52.90.140/4 是 00000010,2.52.90.146/6 是 00000010
    (1)0/4;0000
    (2)32/4;0010
    (3)4/6;000001
    (4)152.0/11;0101
    因此只有前缀(1)和地址 2.52.90.140 匹配

  3. 下面的前缀中哪一个和地址 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 00000111 和 10011000 00011111
    (1)的前缀是 13 位:10011000 00101000,不匹配
    (2)的前缀是 9 位:10011001 00101000,不匹配
    (3)的前缀是 12 位:10011000 01000000,不匹配
    (4)的前缀是 11 位:10011000 00000000,匹配

  4. 与下列掩码相对应的网络前缀各多少位?
    (1)192.0.0.0(2)240.0.0.0(3)255.224.0.0(4)255.255.255.252

    (1)192.0.0.0 = 1100000000(剩下 24 个 0),网络前缀:2 位
    (2)240.0.0.0 = 11110000(剩下 24 个 0),网络前缀:4 位
    (3)255.224.0.0 = 11111111 11100000(剩下 16个 0),网络前缀:11 位
    (4)255.255.255.252 = 11111111 11111111 11111111 11111100,网络前缀:30 位

  5. 已知地址块中的一个地址是 140.120.84.24/20。试求这个地址块中的最小地址和最大地址5。地址掩码是什么? 地址块中共有多少个地址? 相当于多少个C类地址?
    给定地址的前缀是 20 位,因此只要观察地址的第三字节即可。只把第三字节写成二进制,其它三个字节用 B1,B2和 B4 表示。
    B1.B2.01010100.B4/20 取前 20 位,后面全部为 0,即最小地址。
    最小地址:B1.B2.01010000.00000000/20 = 140.120.80.0/20
    最大地址:B1.B2.01011111.11111111/20 = 140.120.95.255/20
    地址数: 2 32 − 20 = 2 12 = 4096 2^{32-20}=2^{12}=4096 23220=212=4096,相当于 16 个 C 类地址

  6. 已知地址块中的一个地址是 190.87.140.202/29。重新计算上题
    给定地址的前缀是 29 位,因此只要观察第四字节即可。只把第四字节写成二进制,其它三个字节用 B1,B2和 B3 表示。
    B1.B2.B3.11001010./29 取前 29 位,后面全部为 0,即最小地址。
    最小地址:B1.B2.B3.11001000./29 = 190.87.140.200/29
    最大地址:B1.B2.B3.11001111./29 = 190.87.140.207/29
    地址数: 2 32 − 29 = 2 3 = 8 2^{32-29}=2^3=8 23229=23=8,相当于 1 32 \frac{1}{32} 321 个 C 类地址

  7. 某单位分配到一个地址块 136.23.12.64/26。现在需要进一步划分 4 个一样大的子网。试问:
    (1)每个子网的前缀有多长? 
    (2)每一个子网中有多少个地址? 
    (3)每一个子网的地址块是什么? 
    (4)每一个子网可分配给主机使用的最小地址和最大地址是什么?

    (1)原来网络前缀是 26 位,需要再增加 2 位,才能划分 4 个一样大的子网。因此每个子网前缀是 38 位。
    (2)每个子网的地址中有 32 - 28 = 4 位留给主机用,因此共有 16 个地址(可用的为 14 个)
    (3)四个字网的地址块为:
    ① 136.23.12.64/28
    ② 136.23.12.80/28
    ③ 136.23.12.96/28
    ④ 136.23.12.112/28
    int(‘1000000’, 2) = 64
    int(‘1010000’, 2) = 80
    int(‘1100000’, 2) = 96
    int(‘1110000’, 2) = 112
    int(‘0110000’, 2) = 48
    int(‘0010000’, 2) = 16
    (4)地址中的前三个字节分别记为 B1,B2 和 B3。
    ① 第一个地址块 136.23.12.64/28 可分配给主机使用的:
    最小地址:B1 B2 B3 01000001 = 136.23.12.65/28;
    最大地址:B1 B2 B3 01001110 = 136.23.12.78/28。
    ② 第一个地址块 136.23.12.80/28 可分配给主机使用的:
    最小地址:B1 B2 B3 01010001 = 136.23.12.81/28;
    最大地址:B1 B2 B3 01011110 = 136.23.12.94/28。
    ③ 第一个地址块 136.23.12.96/28 可分配给主机使用的:
    最小地址:B1 B2 B3 01100001 = 136.23.12.97/28;
    最大地址:B1 B2 B3 01101110 = 136.23.12.110/28。
    ④ 第一个地址块 136.23.12.112/28 可分配给主机使用的:
    最小地址:B1 B2 B3 01110001 = 136.23.12.113/28;
    最大地址:B1 B2 B3 01111110 = 136.23.12.126/28。

  8. IGP和EGP这两类协议的主要区别是什么?
    IGP是内部网关协议,即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如RIP和OSPF协议。 
    EGP是外部网关协议,用于在不同的自治系统边界传递路由信息,与AS内部使用何种路由协议无关。目前使用最多的是BGP-4。

  9. 试简述RIP、OSPF和BGP路由选择协议的主要特点。
    ① RIP是一种分布式的基于距离向量的路由选择协议,其主要特点: 
    (1)仅和相邻路由器交换信息。 
    (2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 
    (3)按固定的时间间隔交换路由信息,例如,每隔30秒。 
    ② OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:
    (1)使用洪泛法向本自治系统中所有路由器发送信息。 
    (2)发送的信息是与本路由器相邻的所有路由器的链路状态。 
    (3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。 
    ③ BGP是不同自治系统的路由器之间交换路由信息的协议,它采用路径向量路由选择协议,其主要特点: 
    (1)BGP在自治系统AS之间交换“可达性”信息(即“可到达”或“不可到达”)。 
    (2)自治系统AS之间的路由选择必须考虑有关策略。 
    (3)BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。

  10. RIP 使用 UDP,OSPF 使用 IP,而 BGP 使用 TCP。这样做有什么优点?为什么 RIP 周期性地和邻站交换路由信息而 BGP 却不这样做?
    RIP 只和邻站交换信息,UDP 虽不保证可靠交付,但 UDP 开销小,可以满足 RIP 的要求。
    OSPF 使用可靠的泛洪法,并直接使用 IP,好处是灵活性好和开销更小。
    BGP 需要交换整个的路由表(在开始时)和更新信息,TCP 提供可靠交付以减少带宽的消耗。
    RIP 使用不保证可靠交付的 UDP,因此必须不断地(周期性地)和邻站交换信息才能使路由信息及时得到更新。但 BGP 使用可靠交付的 TCP,因此不需要这样做。

  11. 假定网络中的路由器 B 的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”) 
    N1   7   A 
    N2   2   C 
    N6   8   F 
    N8   4   E 
    N9   4   F 
    现在 B 收到从 C 发来的路由信息(这两列分别表示“目的网络”和“距离” ): 
    N2   4 
    N3   8 
    N6   4 
    N8   3 
    N9   5 
    试求出路由器 B 更新后的路由表(详细说明每一个步骤)。

    先把收到的路由信息的“距离”加 1:
    N2   4+1=5
    N3   9 
    N6   5 
    N8   4 
    N9   6 
    路由器 B 更新后的路由表如下:
    N1   7   A   无新信息,不改变
    N2   5   C   相同的下一跳,更新
    N3   9   C   新的项目,添加进来
    N6   5   C   不同的下一跳,距离更短,更新
    N8   4   E   不同的下一跳,距离一样,不改变
    N9   4   F   不同的下一跳,距离更大,不改变

  12. 假定网络中的路由器 A 的路由表有如下的项目(这三列分别表示“目的网络”、“距离”和“下一跳路由器”) 
    N1   4   A 
    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 
    路由器 B 更新后的路由表如下:
    N1   3   C   不同的下一跳,距离更短,更新
    N2   2   C   相同的下一跳,距离一样,不改变
    N3   1   F   不同的下一跳,距离更大,不改变
    N4   5   G   不同的下一跳,距离更大,不改变

  13. IGMP协议的要点是什么?隧道技术在多播中是怎样使用的?
    IGMP可分为两个阶段:
    第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他多播路由器。
    第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
    隧道技术:
    多播数据报被封装到一个单播IP数据报中,可穿越不支持多播的网络,到达另一个支持多播的网络。单播数据报到达另一头的路由器后,再剥去其首部,使它又恢复为原来的多播数据报,继续向多个目标转发。

  14. 什么是 VPN?VPN 有什么特点和优缺点?VPN 有几种类别?
    ① VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。
    ② 优点:与传统的广域网相比,虚拟专用网能够减少运营成本以及降低远程用户的连接成本。此外,虚拟专用网固定的通讯成本有助于企业更好地了解自己的运营开支。虚拟专用网还能够提供低成本的全球网络机会。
    缺点:基于互联网的虚拟专用网的可靠性和性能不再企业的直接控制之下。机构必须依靠提供虚拟专用网的互联网服务提供商保持服务的启动和运行。这个因素对于与互联网服务提供商协商一个服务级协议,从而创建一个保证各种性能指标的协议,是非常重要的。
    优点:虚拟专用网提供一个高水平的安全,使用高级的加密和身份识别协议防止数据被窥探,防止数据窃贼和其它非授权的用户窥探数据。
    缺点:企业创建和部署一个虚拟专用网并不是非常容易。这个技术需要对网路和安全问题有高水平的理解以及认真地规划和配置。因此,选择一个互联网服务提供商处理更多的具体的运营问题是一个好主意。
    优点:设计良好的宽带虚拟专用网是模块化的和伸缩性的。虚拟专用网技术能够让应用者使用容易设置的互联网基础设施,允许迅速地和方便地向这个网络增加新用户。这个能力意味着企业不必增加额外的基础设施就能够提供大量的网络容量和应用。
    缺点:不同厂商的虚拟专用网产品和解决方案并不是总是相互兼容的,因为许多厂商不愿意或者没有能力遵守虚拟专用网技术标准。因此,设备的混合搭配可能引起技术难题。另一方面,使用一家供应商的设备也许会增加成本。
    优点:虚拟专用网能够让移动员工、远程办公人员、业务合作伙伴和其他人利用本地可用的、高速宽带接入技术访问公司的网络,如DSL、线缆和wifi等技术。此外,高速宽带连接为连接远程办公室提供一个节省成本的方法。
    缺点:虚拟专用网在与无线设备一起使用时会产生安全风险。接入点之间的漫游特别容易出现问题。当用户在接入点之间漫游的时候,任何依靠高水平加密的解决方案都会被攻破。幸运的是有一些第三方解决方案能够解决这个缺陷。
    ③ 按实用技术不同又分为以下类别 pptp , ,ipsec , ssl ,mpls .QVM VPN等等
    参考链接: 什么是VPN?VPN有什么特点和优缺点?VPN有几种类别?

  15. 什么是NAT? NAP有哪些特点? NAT的优点和缺点有哪些?
    NAT就是在内部专用网络中使用内部地址(不可路由),而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址替换成全局地址,即可路由的合法注册地址,从而在外部公共网上正常使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。
    NAPT特点:将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
    NAT的优点:
    ① 节省公有合法IP地址
    ② 处理地址交叉
    ③ 增强灵活性
    ④ 安全性
    NAT的缺点:
    ① 延迟增大
    ② 配置和维护的复杂性
    ③ 不支持某些应用
    参考链接: 什么是NAT?NAPT有哪些特点?NAT的优点和缺点有哪些?

  16. 试把下列IPv4地址从二进制记法转换为点分十进制记法
    (1)10000001 00001011 00001011 11101111
    (2)11000001 10000011 00011011 11111111
    (3)11100111 11011011 10001011 01101111
    (4)11111001 10011011 11111011 00001111

    把每 8 位一组转化成等值的十进制数,并增加分隔的点,得到:
    (1)129.11.11.239
    (2)193.131.27.255
    (3)231.219.139.111
    (4)249.155.251.15

  17. 下列IPv4地址是否有错误?如有,请指出。
    (1)111.56.045.78
    (2)221.34.7.8.20
    (3)75.45301.14
    (4)11100010.23.14.67

    (1)在点分十进制记法中不应该有以0开头的数(045)。
    (2)IPv4地址不能超过4字节。
    (3)每个字节必须小于或等于255,而301超过了这个范围【 ( 11111111 ) 2 = ( 255 ) 10 (11111111)_2=(255)_{10} (11111111)2=(255)10 十进制】
    (4)二进制记法和点分十进制激发混合使用是不允许的。

  18. 假设一段地址的首地址为 146.102.29.0,末地址为 146.102.32.255,求这个地址段的地址数。
    从末地址减去首地址,得出的结果是:0.0.3.255,因此地址的数目 = 3 ∗ 25 6 1 + 255 ∗ 25 6 0 + 1 = 1024 3*256^1+255*256^0+1=1024 32561+2552560+1=1024
    ( 32 − 29 ) ∗ 2 8 + 255 + 1 = 1024 (32-29)*2^8+255+1=1024 (3229)28+255+1=1024

  19. 求下列每个地址的类别。
    (1)00000001 00001011 00001011 11101111
    (2)11000001 10000011 00011011 11111111
    (3)10100111 11011011 10001011 01101111
    (4)11110011 10011011 11111011 00001111

    计算机网络(第7版) - 第四章 网络层 - 习题_第9张图片
    (1)第一位是 0 ,这是 A 类地址
    (2)前两位是 11,第三位是 0,这是 C 类地址
    (3)第一位是 1,第二位是 0,这是 B 类地址
    (4)前四位是 1,这是 E 类地址

  20. 求下列每个地址的类别:
    (1)227.12.14.87
    (2)193.14.56.22
    (3)14.23.120.8
    (4)252.5.15.111

    (1)第一个地址是 227(在 224 ~ 239 之间), ( 227 ) 10 = ( 11100011 ) 2 (227)_{10}=(11100011)_2 (227)10=(11100011)2,是 D 类地址
    (2)第一个地址是 193(在 192 ~ 223 之间), ( 193 ) 10 = ( 11000001 ) 2 (193)_{10}=(11000001)_2 (193)10=(11000001)2,是 C 类地址
    (3)第一个地址是 14(在 0 ~ 127 之间), ( 14 ) 10 = ( 00001110 ) 2 (14)_{10}=(00001110)_2 (14)10=(00001110)2,是 A 类地址
    (4)第一个地址是 252(在 240 ~ 255 之间), ( 252 ) 10 = ( 11111100 ) 2 (252)_{10}=(11111100)_2 (252)10=(11111100)2,是 E 类地址

  21. 给出某地址块中的一个地址为73.22.17.25。求该地址块的地址数及其首地址和末地址。
    73.22.17.25 的二进制表示 0100 1001.0001 0110.0001 0001.0001 10001
    因为 73 在 0 ~ 127 之间,所以这个地址为 A 类地址。
    地址块数 = 2 32 − 8 = 2 24 = 16777216 =2^{32-8}=2^{24}=16777216 =2328=224=16777216
    该地址块的地址数为 16777216。
    把地址中的 24 位主机号都置为 0,就得到首地址是 73.0.0.0/8。首地址被称为网络地址,它不会指派给任何主机,而是用来定义这个网络的。
    把地址中的 24 位主机号都置为 1,就得到末地址是 73.255.25.255。这个地址也不分配给主机用。

  22. 已知某网络有一个地址是 167.199.170.82/27,问这个网络的网络掩码、网络前缀长度和网络后缀的长度是多少?
    因为地址是:167.199.170.82/27,所以网络掩码是 27 个和 5 个 0,即 255.255.255.224。这个网络前缀长度是 27,网络后缀为 5。

  23. 已知地址块中的一个地址是167.199.170.82/27,求这个地址块的地址数、首地址以及末地址各是多少?

点分十进制表示的地址 167 199 170 82
二进制表示的地址 10100111 11000111 10101010 01010010
网络掩码(27个1) 11111111 11111111 11111111 11100000
地址块的首地址 10100111 11000111 10101010 01000000
地址块的末地址 10100111 11000111 10101010 01011111

从首地址和末地址的数值不难看出,该地址块的地址数为 32 个。

  1. 某单位分配到一个起始地址为 14.24.74.0/24 的地址块。该单位需要用到三个子网,他们的三个地址块的具体要求是:子网 N 1 N_1 N1 需要120个地址,子网 N 2 N_2 N2 需要 60 个地址,子网 N 3 N_3 N3 需要 10 个地址。请给出地址块的分配方案。
    ① 这个单位的地址块的网络前缀是 24 位,因此主机号有 8 位,即一共有 256 个地址,可以拿总地址的一半(128 个)分配给子网 N 1 N_1 N1 (实际上可以使用的地址数是 126 个)。这个地址块的网络前缀是 26 位。
    ② 再将剩下地址的一半(64 个)分配给子网 N 2 N_2 N2 (实际上可以使用的地址数是 62个)。这个地址块的网络前缀是 27 位。
    ③ 还剩下 64 个地址,可以拿出 1 4 \frac{1}{4} 41(即 16 个地址)分配给子网 N 3 N_3 N3 (实际上可以使用的地址数是 14 个)。这个地址块的网络前缀是 28 位。
    ④ 最后剩下的 48 个地址留给以后再使用。
    分配给子网N1的首地址是14.24.74.0/25,末地址是14.14.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。
    计算机网络(第7版) - 第四章 网络层 - 习题_第10张图片
    计算机网络(第7版) - 第四章 网络层 - 习题_第11张图片
  2. 如图所示,网络 145.13.0.0/16 划分为四个子网 N 1 N_1 N1 N 2 N_2 N2 N 3 N_3 N3 N 4 N_4 N4。这四个子网与路由器 R 连接的接口分别是m0,m1,m2 和 m3。路由器 R 的第五个接口m4 连接到互联网。
    计算机网络(第7版) - 第四章 网络层 - 习题_第12张图片

(1)路由器 R 的路由器表如下表所示:

目的网络地址 目的网络的子网掩码 下一跳
145.13.0.0 255.255.192.0 直接交付,接口 m0
145.13.64.0 255.255.192.0 直接交付,接口 m1
145.13.128.0 255.255.192.0 直接交付,接口 m2
145.13.192.0 255.255.192.0 直接交付,接口 m3
其他 M 默认路由器,接口 m4

192 的原因,划分为 4 个子网,主机号就多占用 2 位,网络前缀从原来的 16 变为了 18,所以掩码的二进制 1 延伸至第 18 位,即 ( 11111111111111111000000000000 ) 2 = 255.255.192.0 (11111111 1111111 11000000 000000)_2=255.255.192.0 (11111111111111111000000000000)2=255.255.192.0
前四项的子网掩码都是 18 个连续的 1,后面 14 个连续的 0
只要到达的分组的目的地址不再表中给出的前 4 个地址中,就作为“其他”地址分组,统统送交默认路由器(通过路由器的接口 m4)。请注意,图中并没有给出路由器 R 是怎样连接默认路由器的,也没有给出默认路由器的 IP 地址和它的掩码 M。因此在路由器 R 的路由表中最后一行“目的网络子网掩码”一栏没有具体的掩码值,而是写上了M。
(2)路由器 R 收到一个分组,其目的地址是 145.13.160.78。
路由表四个子网掩码是 18 个 1,因此只需把 D 的第三字节换算为二进制,见下表:

收到的分组的目的地址 D 145 13 160 78
用二进制表示 D 的第三个字节 145 13 10100000 78
网络掩码(18个1) 11111111 11111111 11000000 000000
(网络掩码)AND(D) 145 13 10000000 0
用点分十进制表示 AND 运算结果 145 13 128 0

AND 运算 = 异或运算
此结果与路由表中第一行的网络地址不匹配
此结果与路由表中第二行的网络地址不匹配
此结果与路由表中第三行的网络地址匹配。因此,收到的分组从路由器的接口 m2 转发,实际上就是直接交付连接在这个网络上的目的主机。

  1. 收到一个分组,其目的地址 D = 11.1.2.5。要查找的路由表中有这样三项:
    路由器1 到达网络 11.0.0.0/8
    路由器2 到达网络 11.1.0.0/16
    路由器3 到达网络 11.1.2.0/24
    试问在转发这个分组时应当选择哪一个路由?

把收到的分组的目的地址以及路由 1-3 都表示为二进制数字,网络前缀使用粗体字加上下划线:

目的地址 D 11.1.2.5 00001011 00000001 00000010 0000101
路由 1 的目的网络 11.0.0.0/8 00001011 00000000 00000000 00000000
路由 2 的目的网络 11.1.0.0/16 00001011 00000001 00000000 00000000
路由 3 的目的网络 11.1.2.0/24 00001011 00000001 00000010 00000000

① 当查找路由 1 时,目的网络的掩码是 8 个 1 和 24 个 0,即 255.0.0.0。和 D 进行 AND 操作时,得到 11.0.0.0,结果是匹配的
① 当查找路由 2 时,目的网络的掩码是 16 个 1 和 16 个 0,即 255.255.0.0。和 D 进行 AND 操作时,得到 11.1.0.0,结果是匹配的
① 当查找路由 3 时,目的网络的掩码是 24 个 1 和 8 个 0,即 255.255.255.0。和 D 进行 AND 操作时,得到 11.1.2.0,结果是匹配的
根据最长前缀匹配准则,应当选择路由 3,因为路由 3 的目的网络的前缀为 24,是三个都匹配的结果中前缀最长的一个。

  1. 同上题。假定路由 1 的目的网络 11.0.0.0/8 中有一台主机 H,其 IP 地址是 11.1.2.3。当我们发送一个分组给主机 H 时,根据最长前缀匹配准则,上面的这个路由表却把这个分组转发到路由 3 的目的网络 11.1.2.0/24。是最长前缀匹配准则有时会出错吗?
    ① 最长前缀匹配准则是没有问题的,问题出在主机 H 的 IP 地址。
    ② 如果单纯地看网络 11.0.0.0/8,那么就知道这个网络的前缀是 8 位,剩下的 24 位是主机号 host-id,因此把 host-id = 1.2.3 分配给某个主机是完全可以的。
    ③ 请注意,网络 11.1.2.0/24 是网络 11.0.0.0/8 的一个子网,而 IP 地址 11.1.2.3 正是子网11.1.2.0/24 中一个合法 IP 地址。网络 11.0.0.0/8 在分配本网络的主机号时,不允许重复使用子网 11.1.2.0/24 中的任何一个地址。因此,网络 11.0.0.0/8 给它的一台主机分配 IP 地址 11.1.2.3 是不允许的。这样做就和网络 11.1.2.0/24 中 host-id = 3 的 IP 地址 11.1.2.3 重复,因而引起了地址上的混乱。

问题:A 主机的 IP 地址为 192.168.1.100/24,B 主机的 IP 地址为 192.168.2.100/16,请问两个主机可以相互通信吗?
答案:在通讯之前,主机首先需要判断目标 IP 是不是跟自己在一个网段中(因为源主机只知道目标主机的 IP 地址,并不知道他的子网掩码,所以,源主机会将目标 IP 与自己的子网掩码进行比较,得出一个网络 ID)。
A 主机发起通讯:A 经过计算,会得出 B 主机跟自己不在一个网段中,会将将 ping 包发送给网关(路由器):目标主机不可到达。
B 主机发起通讯:B 经过计算,会得出 A 主机跟自己在一个网段中,B 发出 ping 包,A 可以收到,但是 A 找不到 B:超时。
问题:211.201.188.199/20;211.201.180.199/20;这两个主机可以通讯吗?
答案:在,因为两个主机在一个网段中,网络 ID:211.201.176.0

  1. 已知一 CIDR 地址块为 200.56.168.0/21。
    (1)试用二进制表示这个地址块。
    (2)这个 CIDR 地址块包括有多少个 C 类地址块?

    (1)200.56.168.0/21 = 11001000 00111000 10101000 00000000(有下划线的粗体数字表示网络前缀)。
    (2)C 类地址块的网络号是 24 位,比上面的 CIDR 地址块多 3 位。因此这个 CIDR 地址块包含了 2 3 = 8 2^3 = 8 23=8 个 C 类地址。

  2. 建议 IPv6 协议没有首部检验和。这样做的优缺点是什么?
    对首部的处理更简单。数据链路层已经将有差错的帧丢弃了,因此网络层可省去这意步骤。但可能遇到数据链路层检测不出来的差错(此概率极小)。

  3. 在 IPv4 首部中有一个“协议”字段,但在 IPv6 的固定首部中却没有。这是为什么?
    在IP数据报传送的路径上所有路由器都不需要这一字段的信息,只有目的主机才需要协议字段。在IPv6使用“下一个首部”字段完成IPv4中的“协议”字段的功能。

  4. 当使用 IPv6 时,ARP 协议是否需要改变?如果需要改变,那么应当进行概念性的改变还是技术性的改变?
    从概念上来讲没有变化,但因为IPv6地址长度增大了,所以相应的字段都需要增大。

  5. IPv6 只允许在源点进行分片。这样做有什么好处?
    答:分片与重装是非常耗时的操作。IPv6 把这一功能从路由器中删除,并移到网络边缘的主机中,就可以大大加快网络中 IP 数据报的转发速度。

  6. 设每隔 1 微微就分配出 100 万个 IPv6 地址。试计算大约要用多少年才能将 IPv6 地址空间全部用光。可以和宇宙的年龄(大约 100 亿年)进行比较。
    IPv6 的地址空间共有 2 128 2^{128} 2128 个地址,或 3.4 ∗ 1 0 38 3.4*10^{38} 3.41038
    1 微微秒分配出 100 万个地址,相当于 1 秒钟分配 10 0 18 100^{18} 10018 个地址
    1 年 = 365 ∗ 24 ∗ 3600 365 * 24 * 3600 365243600 = 31536000 秒
    3.4 ∗ 1 0 38 1 0 18 = 3.4 ∗ 1 0 20 \frac{3.4*10^{38}}{10^{18}} = 3.4*10^{20} 10183.41038=3.41020 秒 = 3.4 ∗ 1 0 20 3.1536 ∗ 1 0 7 ≈ 1.078 ∗ 1 0 13 \frac{3.4*10^{20}}{3.1536*10^7}\approx1.078*10^{13} 3.15361073.410201.0781013
    1 秒钟分配 1 0 18 10^{18} 1018 个地址,可分配 1.078 ∗ 1 0 1 3 1.078*10^13 1.0781013 年。大约是宇宙年龄的 1000 倍。地址空间的利用不会是均匀的。但即使只利用整个地址空间的 1/1000,那也是不可能用完的。

  7. 试把以下的IPv6地址用零压缩方法写成简洁形式:
    (1) 0000:0000:0F53:6382:AB00:67DB:BB27:7332
    (2) 0000:0000:0000:0000:0000:0000:004D:ABCD
    (3) 0000:0000:0000:AF36:7328:0000:87AA:0398
    (4) 2819:00AF:0000:0000:0000:0035:0CB2:B271

    (1)0000:0000:0F53:6382:AB00:67DB:BB27:7332 中有下划线的一串 0 可以用两个冒号表示,即 ::F53:6382:AB00:67DB:BB27:7332
    (2)0000:0000:0000:0000:0000:0000:004D:ABCD 中有下划线的一串 0 可以用两个冒号表示,即 ::4D:ABCD
    (3)0000:0000:0000:AF36:7328:0000:87AA:0398 中有下划线的一串 0 可以用两个冒号表示,即 ::AF36:7328:0:87AA:398
    (4)2819:00AF:0000:0000:0000:0035:0CB2:B271,即 2819:AF::35:CB2:B271

  8. 试把以下的零压缩的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,最前面的 0000 原来是用一个 0 表示的,而 00AA 原来被简写为 AA
    (3) 0000:1234:0000:0000:0000:0000:0000:0003,最前面的 0000 原来是用一个 0 表示的
    (4) 0123:0000:0000:0000:0000:0000:0001:0002,最前面的 0123 原来简写成 123,而后面的 0002 原来简写成 2。

  9. 从 IPv4 过渡到 IPv6 的方法有哪些?
    目前,从 IPv4 过渡到 IPv6 的方法有 3 种:兼容 IPv4 的 IPv6 地址、双 IP 协议栈和基于 IPv4 隧道的 IPv6。

  10. 多协议标记交换MPLS的工作原理是怎样的?它有哪些主要的功能?
    MPLS 是基于标记的 IP 路由选择方法。这些标记可以被用来代表逐跳式或者显式路由并指明服务质量、虚拟专网以及影响一种特定类型的流量、在网络上的传输方式等各类信息。 MPLS 采用简化了的技术来完成第三层和第二层的转换。它可以提供每个 IP 数据包一个标记将之与 IP 数据包封装于新的 MPl5 数据包由此决定 IP 数据包的传输路径以及优先顺序而与 MPLS 兼容的路由器会在将 IP 数据包按相应路径转发之前仅读取该 MPLS 数据包的包头标记无须再去读取每个 IP 数据包中的 IP 地址位等信息因此数据包的交换转发速度大大加快。IP 包进入网络核心时边界路由器给它分配一个标记。自此 MPLS 设备就会自始至终查看这些标记信息将这些有标记的包交换至其目的地。由于路由处理减少网络的等待时间也就随之缩短而可伸缩性却有所增加。 MPLS 的一个重要功能就是可以构成协议栈(Label Stack)。MPLS 标记一旦产生就压入到标记栈中而整个标记栈放在数据链路层首部和IP首部之间。MPLS 的标记栈用于当MPLS域出现嵌套的情况。MPLS 协议在转发分组时采用标记对换技术这是一种用于网络层信息包转发的新方法。

部分答案转载自:计算机网络第四章答案 复习四(网络层)
转载自 《计算机网络(第7版)》著者:谢希仁

点我回顶部 ☚

 
 
 
 
 
 
 
Fin.

你可能感兴趣的:(网络通信学习)