网络层向上提供的服务有哪两种?试比较其优缺点。
网络层向运输层提供 “面向连接”虚电路(Virtual Circuit)服务或“无连接”数据报服务。 前者预约了双方通信所需的一切网络资源。优点是能提供服务质量的承诺。即所传送的分组不出错、丢失、重复和失序(不按序列到达终点),也保证分组传送的时限。缺点是路由器复杂,网络成本高;后者无网络资源障碍,尽力而为,优缺点与前者互易。
网络互连有何实际意义?进行网络互连时,有哪些共同的问题需要解决?
网络互联可扩大用户共享资源范围和更大的通信区域。
进行网络互连时,需要解决共同的问题有:
⑴不同的寻址方案;
⑵不同的最大分组长度;
⑶不同的网络接入机制;
⑷不同的超时控制;
⑸不同的差错恢复方法;
⑹不同的状态报告方法;
⑺不同的路由选择技术;
⑻不同的用户接入控制;
⑼不同的服务(面向连接服务和无连接服务);
⑽不同的管理与控制方式。
作为中间设备,转发器、网桥、路由器和网关有何区别?
中间设备又称为中间系统或中继(relay)系统。
⑴物理层中继系统:集线器,转发器(repeater)。
⑵数据链路层中继系统:交换机,网桥或桥接器(bridge)。
⑶网络层中继系统:路由器(router)。
⑷网桥和路由器的混合物:桥路器(brouter)。
⑸网络层以上的中继系统:网关(gateway)。
试简单说明下列协议的作用:IP、ARP、RARP和ICMP。
IP协议:实现网络互连。使参与互连的性能各异的网络从用户看起来好像是一个统一的网络。网际协议TCP、IP是TCP/IP体系中两个最主要的协议之一,与IP协议配套使用的还有四个协议。
ARP协议:是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。 RARP协议:是解决同一个局域网上的主机或路由器的硬件地址和IP地址的映射问题。
ICMP协议:提供差错报告和询问报文,以提高IP数据交付成功的机会。 因特网组管理协议
IGMP协议:用于探寻、转发本局域网内的组成员关系。
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 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
表4-2中IP地址的指派范围如下:
网络类别 | 最大可指派的网络数 | 第一个可指派的网络号 | 最后一个可指派的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A | 126 ( 2 7 − 2 ) 126(2^7-2) 126(27−2) | 1 | 126 | 16777214 |
B | 16383 ( 2 14 − 1 ) 16383(2^{14}-1) 16383(214−1) | 128.1 | 191.255 | 65534 |
C | 2091751(2^{21}-1) | 192.0.1 | 223.255.255 | 254 |
① A类地址(在二进制数字中,有下划线的数字是可指派的):
最大可指派的网络数 = 2 7 − 2 2^7-2 27−2 = 126;
第一个可指派的网络号 = 1(最小的可指派的 net-id = 0000001);
最后一个可指派的网络号 = 126(最大的可指派的 net-id = 01111110);【目的地址为环回地址的IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。】
每个网络中的最大主机数(host-id 是 24 位)= 2 24 − 2 2^{24} - 2 224−2 = 16777216 - 2 = 16777214
(全 0 和全 1 的主机号不指派)
② B类地址:
最大可指派的网络数 = 2 14 − 1 2^{14}-1 214−1 = 16384 = 16383;
第一个可指派的网络号 = 128.1(最小的可指派的 net-id = 10000000 00000001);
最后一个可指派的网络号 = 191.255(最大的可指派的 net-id = 10111111 11111111);
每个网络中的最大主机数(host-id 是 24 位)= 2 16 − 2 2^{16} - 2 216−2 = 65536 - 2 = 65534
(全 0 和全 1 的主机号不指派)
③ C类地址:
最大可指派的网络数 = 2 21 − 2 2^{21}-2 221−2 = 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 28−2 = 256- 2 = 254
(全 0 和全 1 的主机号不指派)
试说明IP地址与硬件地址的区别,为什么要使用这两种不同的地址?
IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32 位的标识符。从而把整个因特网看成为一个单一的、抽象的网络。在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。
MAC地址在一定程度上与硬件一致,基于物理、能够标识具体的链路通信对象,IP地址给予逻辑域的划分、不受硬件限制。
IP地址方案与我国的电话号码体制的主要不同点是什么?
与网络的地理分布无关
(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 212−2=4096−2=4094
11111111.11111111.11110000.00000000,主机数 = 2 12 − 2 2^{12}-2 212−2 = 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 12∗161+2∗160).( 2 ∗ 1 6 1 + 15 ∗ 1 6 0 2*16^1+15*16^0 2∗161+15∗160).( 1 ∗ 1 6 1 + 4 ∗ 1 6 0 1*16^1+4*16^0 1∗161+4∗160).( 8 ∗ 1 6 1 + 1 ∗ 1 6 0 8*16^1+1*16^0 8∗161+1∗160) → 194.47.20.129
194.47.20.129 → 11000010.00101111.00010100.10000001,为C类地址
(7)C类网络使用子网掩码有无实际意义?为什么?
有实际意义。C类子网IP地址的32位中,前24位用于确定网络号,后8位用于确定主机号。如果划分子网,可以选择后8位中的高位,这样做可以进一步划分网络,并且不增加路由表的内容,但是代价是主机数相应的减少。
试辨认以下 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 类。
IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
在首部中的错误比在数据中的错误更严重,例如,一个坏的地址可能导致分组被投寄到错误的主机。许多主机并不检查投递给他们的分组是否确实是要投递给它们,它们假定网络从来不会把本来是要前往另一主机的分组投递给它们。
数据不参与检验和的计算,因为这样做代价大,上层协议通常也做这种检验工作,从而引起重复和多余。因此,这样做可以加快分组的转发,但是数据部分出现差错时不能及早发现。
当某个路由器发现一IP数据报的检验和有差错时,为什么采取丢弃的办法而不是要 求源站重传此数据报?计算首部检验和为什么不采用CRC检验码?
纠错控制由上层(传输层)执行。IP首部中的源站地址也可能出错,请错误的源地址重传数据报是没有意义的。不采用CRC简化解码计算量,提高路由器的吞吐量。
设IP数据报使用固定首部,其各字段的具体数值如图所示(除IP地址外,均为十进 制表示)。试用二进制运算方法计算应当写入到首部检验和字段中的数值(用二进制表 示)。
把以上数据写成二进制数字,按每 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 位的数字相加,等等。
项 | 前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
什么是最大传送单元MTU?它和IP数据报的首部中的哪个字段有关系?
答:IP层下面数据链里层所限定的帧格式中数据字段的最大长度,与IP数据报首部中的总长度字段有关系。
在互联网中将IP数据报分片传送的数据报在最后的目的主机进行组装。还可以有另一种做法,即数据报片通过一个网络就进行一次组装。试比较这两种方法的优劣。
在目的站而不是在中间的路由器进行组装是由于:
(1)路由器处理数据报更简单些;效率高,延迟小。
(2)数据报的各分片可能经过各自的路径。因此在每一个中间的路由器进行组装可能总会缺少几个数据报片;
(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。
请回答一下问题:
(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地址的项目;源主机发送的是广播分组;源主机和目的主机使用点对点链路。
主机A发送IP数据报给主机B,途中经过了5个路由器。试问在IP数据报的发送过程中总共使用了几次ARP?
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。
IP数据报固定首部长度为20字节。
总长度(字节) | 数据长度(字节) | MF | 片偏移 |
---|---|---|---|
原始数据报 | 4000 | 3980 | 0 |
数据报片1 | 1500 | 1480 | 1 |
数据报片2 | 1500 | 1480 | 1 |
数据报片3 | 1040 | 1020 | 0 |
子网掩码 | 把前两个字节写成二进制 | 去掉全 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) |
地址掩码 | 目的网络地址 | 下一跳地址 | 路由器接口 |
---|---|---|---|
/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 地址和接口。对不能确定的情况应当指明。
有三个网络直接和 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 之间用虚线表示。
分配网络前缀时应先分配地址数较多的前缀。题目没有说 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 232−23=29=512
这个自治系统有地址块 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 个地址留到以后再分配。
这个分配方案同样把总地址块分成 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。
下面给出其中一种答案(先选择需要较大的网络前缀):
名称 | 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 26−2=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 LAN3、LAN6、LAN7、LAN8 所需主机数分别为 30、20、20、25,则选择网络前缀为 /27, 32 − 27 = 5 32 - 27 = 5 32−27=5, 2 5 − 2 = 30 2^5-2=30 25−2=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 LAN3、LAN6、LAN7、LAN8 分配给前面四个地址,即:
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 LAN2、LAN4所需主机数都为 10,则选择网络前缀为 /28, 2 4 − 2 = 14 > 10 2^4-2 = 14>10 24−2=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 LAN2、LAN4,即:
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 23−2=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 WAN1、WAN2、WAN3,每个路由器需要两个地址,所以选择网络前缀为/30, 2 2 − 2 = 2 2^2-2=2 22−2=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
原文:一个计算机网络题目——给局域网分配合适的网络前缀。
以下地址中的哪一个和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.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 匹配
下面的前缀中哪一个和地址 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,匹配
与下列掩码相对应的网络前缀各多少位?
(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 位
已知地址块中的一个地址是 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 232−20=212=4096,相当于 16 个 C 类地址
已知地址块中的一个地址是 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 232−29=23=8,相当于 1 32 \frac{1}{32} 321 个 C 类地址
某单位分配到一个地址块 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。
IGP和EGP这两类协议的主要区别是什么?
IGP是内部网关协议,即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如RIP和OSPF协议。
EGP是外部网关协议,用于在不同的自治系统边界传递路由信息,与AS内部使用何种路由协议无关。目前使用最多的是BGP-4。
试简述RIP、OSPF和BGP路由选择协议的主要特点。
① RIP是一种分布式的基于距离向量的路由选择协议,其主要特点:
(1)仅和相邻路由器交换信息。
(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
(3)按固定的时间间隔交换路由信息,例如,每隔30秒。
② OSPF最主要的特征就是使用分布式的链路状态协议,其主要特点:
(1)使用洪泛法向本自治系统中所有路由器发送信息。
(2)发送的信息是与本路由器相邻的所有路由器的链路状态。
(3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
③ BGP是不同自治系统的路由器之间交换路由信息的协议,它采用路径向量路由选择协议,其主要特点:
(1)BGP在自治系统AS之间交换“可达性”信息(即“可到达”或“不可到达”)。
(2)自治系统AS之间的路由选择必须考虑有关策略。
(3)BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。
RIP 使用 UDP,OSPF 使用 IP,而 BGP 使用 TCP。这样做有什么优点?为什么 RIP 周期性地和邻站交换路由信息而 BGP 却不这样做?
RIP 只和邻站交换信息,UDP 虽不保证可靠交付,但 UDP 开销小,可以满足 RIP 的要求。
OSPF 使用可靠的泛洪法,并直接使用 IP,好处是灵活性好和开销更小。
BGP 需要交换整个的路由表(在开始时)和更新信息,TCP 提供可靠交付以减少带宽的消耗。
RIP 使用不保证可靠交付的 UDP,因此必须不断地(周期性地)和邻站交换信息才能使路由信息及时得到更新。但 BGP 使用可靠交付的 TCP,因此不需要这样做。
假定网络中的路由器 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 不同的下一跳,距离更大,不改变
假定网络中的路由器 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 不同的下一跳,距离更大,不改变
IGMP协议的要点是什么?隧道技术在多播中是怎样使用的?
IGMP可分为两个阶段:
第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员。本地的多播路由器收到IGMP报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
隧道技术:
多播数据报被封装到一个单播IP数据报中,可穿越不支持多播的网络,到达另一个支持多播的网络。单播数据报到达另一头的路由器后,再剥去其首部,使它又恢复为原来的多播数据报,继续向多个目标转发。
什么是 VPN?VPN 有什么特点和优缺点?VPN 有几种类别?
① VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。
② 优点:与传统的广域网相比,虚拟专用网能够减少运营成本以及降低远程用户的连接成本。此外,虚拟专用网固定的通讯成本有助于企业更好地了解自己的运营开支。虚拟专用网还能够提供低成本的全球网络机会。
缺点:基于互联网的虚拟专用网的可靠性和性能不再企业的直接控制之下。机构必须依靠提供虚拟专用网的互联网服务提供商保持服务的启动和运行。这个因素对于与互联网服务提供商协商一个服务级协议,从而创建一个保证各种性能指标的协议,是非常重要的。
优点:虚拟专用网提供一个高水平的安全,使用高级的加密和身份识别协议防止数据被窥探,防止数据窃贼和其它非授权的用户窥探数据。
缺点:企业创建和部署一个虚拟专用网并不是非常容易。这个技术需要对网路和安全问题有高水平的理解以及认真地规划和配置。因此,选择一个互联网服务提供商处理更多的具体的运营问题是一个好主意。
优点:设计良好的宽带虚拟专用网是模块化的和伸缩性的。虚拟专用网技术能够让应用者使用容易设置的互联网基础设施,允许迅速地和方便地向这个网络增加新用户。这个能力意味着企业不必增加额外的基础设施就能够提供大量的网络容量和应用。
缺点:不同厂商的虚拟专用网产品和解决方案并不是总是相互兼容的,因为许多厂商不愿意或者没有能力遵守虚拟专用网技术标准。因此,设备的混合搭配可能引起技术难题。另一方面,使用一家供应商的设备也许会增加成本。
优点:虚拟专用网能够让移动员工、远程办公人员、业务合作伙伴和其他人利用本地可用的、高速宽带接入技术访问公司的网络,如DSL、线缆和wifi等技术。此外,高速宽带连接为连接远程办公室提供一个节省成本的方法。
缺点:虚拟专用网在与无线设备一起使用时会产生安全风险。接入点之间的漫游特别容易出现问题。当用户在接入点之间漫游的时候,任何依靠高水平加密的解决方案都会被攻破。幸运的是有一些第三方解决方案能够解决这个缺陷。
③ 按实用技术不同又分为以下类别 pptp , ,ipsec , ssl ,mpls .QVM VPN等等
参考链接: 什么是VPN?VPN有什么特点和优缺点?VPN有几种类别?
什么是NAT? NAP有哪些特点? NAT的优点和缺点有哪些?
NAT就是在内部专用网络中使用内部地址(不可路由),而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址替换成全局地址,即可路由的合法注册地址,从而在外部公共网上正常使用,其具体的做法是把IP包内的地址域用合法的IP地址来替换。
NAPT特点:将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
NAT的优点:
① 节省公有合法IP地址
② 处理地址交叉
③ 增强灵活性
④ 安全性
NAT的缺点:
① 延迟增大
② 配置和维护的复杂性
③ 不支持某些应用
参考链接: 什么是NAT?NAPT有哪些特点?NAT的优点和缺点有哪些?
试把下列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
下列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)二进制记法和点分十进制激发混合使用是不允许的。
假设一段地址的首地址为 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 3∗2561+255∗2560+1=1024
( 32 − 29 ) ∗ 2 8 + 255 + 1 = 1024 (32-29)*2^8+255+1=1024 (32−29)∗28+255+1=1024
求下列每个地址的类别。
(1)00000001 00001011 00001011 11101111
(2)11000001 10000011 00011011 11111111
(3)10100111 11011011 10001011 01101111
(4)11110011 10011011 11111011 00001111
(1)第一位是 0 ,这是 A 类地址
(2)前两位是 11,第三位是 0,这是 C 类地址
(3)第一位是 1,第二位是 0,这是 B 类地址
(4)前四位是 1,这是 E 类地址
求下列每个地址的类别:
(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 类地址
给出某地址块中的一个地址为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 =232−8=224=16777216,
该地址块的地址数为 16777216。
把地址中的 24 位主机号都置为 0,就得到首地址是 73.0.0.0/8。首地址被称为网络地址,它不会指派给任何主机,而是用来定义这个网络的。
把地址中的 24 位主机号都置为 1,就得到末地址是 73.255.25.255。这个地址也不分配给主机用。
已知某网络有一个地址是 167.199.170.82/27,问这个网络的网络掩码、网络前缀长度和网络后缀的长度是多少?
因为地址是:167.199.170.82/27,所以网络掩码是 27 个和 5 个 0,即 255.255.255.224。这个网络前缀长度是 27,网络后缀为 5。
已知地址块中的一个地址是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)路由器 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-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,是三个都匹配的结果中前缀最长的一个。
问题: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
已知一 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 类地址。
建议 IPv6 协议没有首部检验和。这样做的优缺点是什么?
对首部的处理更简单。数据链路层已经将有差错的帧丢弃了,因此网络层可省去这意步骤。但可能遇到数据链路层检测不出来的差错(此概率极小)。
在 IPv4 首部中有一个“协议”字段,但在 IPv6 的固定首部中却没有。这是为什么?
在IP数据报传送的路径上所有路由器都不需要这一字段的信息,只有目的主机才需要协议字段。在IPv6使用“下一个首部”字段完成IPv4中的“协议”字段的功能。
当使用 IPv6 时,ARP 协议是否需要改变?如果需要改变,那么应当进行概念性的改变还是技术性的改变?
从概念上来讲没有变化,但因为IPv6地址长度增大了,所以相应的字段都需要增大。
IPv6 只允许在源点进行分片。这样做有什么好处?
答:分片与重装是非常耗时的操作。IPv6 把这一功能从路由器中删除,并移到网络边缘的主机中,就可以大大加快网络中 IP 数据报的转发速度。
设每隔 1 微微就分配出 100 万个 IPv6 地址。试计算大约要用多少年才能将 IPv6 地址空间全部用光。可以和宇宙的年龄(大约 100 亿年)进行比较。
IPv6 的地址空间共有 2 128 2^{128} 2128 个地址,或 3.4 ∗ 1 0 38 3.4*10^{38} 3.4∗1038
1 微微秒分配出 100 万个地址,相当于 1 秒钟分配 10 0 18 100^{18} 10018 个地址
1 年 = 365 ∗ 24 ∗ 3600 365 * 24 * 3600 365∗24∗3600 = 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.4∗1038=3.4∗1020 秒 = 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.1536∗1073.4∗1020≈1.078∗1013 年
1 秒钟分配 1 0 18 10^{18} 1018 个地址,可分配 1.078 ∗ 1 0 1 3 1.078*10^13 1.078∗1013 年。大约是宇宙年龄的 1000 倍。地址空间的利用不会是均匀的。但即使只利用整个地址空间的 1/1000,那也是不可能用完的。
试把以下的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
试把以下的零压缩的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。
从 IPv4 过渡到 IPv6 的方法有哪些?
目前,从 IPv4 过渡到 IPv6 的方法有 3 种:兼容 IPv4 的 IPv6 地址、双 IP 协议栈和基于 IPv4 隧道的 IPv6。
多协议标记交换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.