Bootstrap

计算机网络:P4.1-网络层(上)

本系列文章为湖南科技大学高军老师的计算机网络微课堂学习笔记,前面的系列文章链接如下:
计算机网络:P1-概述
计算机网络:P2-物理层
计算机网络:P3.1-数据链路层(上)
计算机网络:P3.2-数据链路层(中)
计算机网络:P3.3-数据链路层(下)


一、网络层概述

网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。

如图所示,这些异构型网络如果只是需要各自内部通信,那它们只要实现各自的物理层和数据链路层即可。
在这里插入图片描述
但是,如果需要将这些异构型网络互联起来,形成一个更大的互联网,就需要使用网络层互连设备路由器。
在这里插入图片描述
需要说明的是,为了简单起见,有时我们可以不用画出这些网络,而将它们看作是一条链路即可。
在这里插入图片描述


网络层需要解决的问题

对于互联网而言,仅实现计算机网络体系结构中的物理层和数据链路层,是不能实现数据包在互联网中各网络之间传输的。要实现该功能,就必须实现网络层。网络层需要解决以下主要问题
①首要问题是网络层应该向其上面的运输层提供怎样的服务?是可靠传输服务还是不可靠传输服务?
回答: 我们在之前的课程中曾介绍过,数据包在传输过程中可能会出现误码,也有可能由于路由器繁忙而被路由器丢弃,还有可能出现按序发送的数据包不能按序到达接收方。如果网络层对于上述传输错误不采取任何措施,则提供的是不可靠传输服务。如果网络层对于上述传输错误采取措施,并使得接收方能正确接收发送方所发送的数据包,则提供的是可靠传输服务。不同网络体系结构所提供的服务可能是不同的。例如,因特网使用的TCP/IP协议体系的网际层提供的是无连接的、不可靠的数据报服务。而ATM、帧中继和X.25的网络层提供的都是面向连接的可靠的虚电路服务.
②网络层需要解决的第二个主要问题是寻址问题。
回答: TCP/IP协议体系的网际层使用IP地址,例如下面是网络N1上两个路由器接口各自所分配的IP地址,它们的前三个数是相同的,可以看作是它们所在网络的网络编号。而第四个数各不相同,用于区分这两个不同的路由器接口。这是网络N3上两个路由器接口各自所分配的IP地址,它们的前两个数是相同的,可以看作是它们所在网络的网络编号。而后两个数不完全相同,用于区分这两个不同的路由器接口。这是网络N7上两个路由器接口各自所分配的IP地址,它们的第一个数是相同的,可以看作是它们所在网络的网络编号。而后三个数不完全相同,用于区分这两个不同的路由器接口。
在这里插入图片描述
③网络层需要解决的第三个主要问题是路由选择问题。如图所示,数据包从源站到达目的站可以有多条路径。那么,路由器收到数据包后,是依据什么来决定将数据包从自己的哪个接口转发出去的呢?
在这里插入图片描述
回答: 这个问题在我们之前的博客中简单介绍过,依据的是数据包中的目的地址和路由器中的路由表。例如,这是路由器R1的路由表,里面记录着路由器R1所知道的网络,以及数据包要到达这些网络应该从哪个接口转发。假设R1知道数据包要到达网络N7,下一跳应将其转发给路由器R4,则路由表中应该有相应记录。而数据包要到达网络N6,下一跳应将其转发给路由器R2,则路由表中应该有相应记录。
在这里插入图片描述
刚才是我们假设R1知道这些路由记录。但在实践中,路由器是如何得出这样的路由记录呢?有两种方法:①由用户或网络管理员进行人工配置。这种方法只适用于规模较小且网络拓扑不改变的小型互联网。②实现各种路由选择协议。由路由器执行路由选择协议中所规定的路由算法而自动得出路由表中的路由记录。这种方法更适用于规模较大且网络拓扑经常改变的大型互联网。


TCP/IP的网际层

因特网是目前全世界用户数量最多的互联网,它使用四层协议体系的TCP/IP协议栈。由于TCP/IP协议栈的网络层使用网际协议IP,它是整个协议栈的核心协议。因此,在TCP/IP协议栈中,网络层常称为网际层。由于TCP/IP协议栈在全世界被广泛使用,因此,在本章中,我们主要基于TCP/IP协议栈的网际层来学习计算机网络体系结构中的网络层的理论知识和实践技术。另外需要说明的是,TCP/IP协议栈的网际层中除网际协议IP外,还包含有我们之前课程中已经介绍过的地址解析协议ARP以及在本章后续课程中将要介绍的网际控制报文协议ICMP和网际组管理协议IGMP等。
在这里插入图片描述


小测验

1、以下属于网络层范畴的是
A. 透明传输比特流
B. 媒体接入控制
C. IP地址
D. 实现进程之间的通信
答案:C

2、在因特网使用的TCP/IP协议栈中,核心协议是
A. TCP
B. IP
C. ARP
D. HTTP
答案:B


二、网络层提供的两种服务

网络层提供两种服务,一种是面向连接的虚电路服务,另一种是无连接的数据包服务。

面向连接的虚电路服务

如图所示,这是一个小型的互联网。这是主机中的五层原理体系结构。
在这里插入图片描述
虚电路服务的核心思想是可靠通信应由网络自身来保证。当两台计算机进行通信时,应当首先建立网络层的连接,也就是建立一条虚电路,以保证通信双方所需的一切网络资源。然后双方就沿着已建立的电路发送分组。
在这里插入图片描述
需要说明的是:
①虚电路表示这是一条逻辑上的连接,分组都沿着这条逻辑连接,按照存储转发方式传送,而不是真正建立了一条物理连接。而采用电路交换的电话通信,则是先建立一条真正的连接。因此,分组交换的虚连接与电路交换的连接只是类似,但并不完全一样。
②分组的首部仅在连接建立阶段使用完整的目的主机地址,之后每个分组的首部只需携带一条虚电路编号即可。
③这种通信方式如果在使用可靠传输的网络协议,就可使所发送的分组最终正确到达接收方。
④通信结束后需要释放之前所建立的虚电路。
⑤很多广域分组交换网都使用这种面向连接的虚电路服务。例如曾经的X.25和逐渐过时的帧中继、异步传输模式等。


无连接的数据报服务

然而,因特网的先驱者并没有采用这种设计思路,而是采用了无连接的数据报服务。数据报服务的核心思想是可靠通信应当由用户主机来保证。当两台计算机进行通信时,它们的网络层不需要先建立连接,每个分组可走不同的路径。因此,分组的首部必须携带目的主机的完整地址。
在这里插入图片描述
这种通信方式所传送的分组可能误码、丢失、重复和失序。这些传输差错我们在之前的博客中已经介绍过了,就不再赘述了。由于网络本身不提供端到端的可靠传输服务,这就使得网络中的路由器可以做得比较简单,比电信网交换机价格低廉。因特网就采用了这种设计思想,将复杂的网络处理功能至于因特网的边缘,也就是用户主机和其内部的运输层。而将相对简单的、尽最大努力的分组交付功能置于因特网核心。采用这种设计思想的好处是网络的造价大大降低,运行方式灵活,能够适应多种应用。


小测验

1、【2011年 题33】TCP/IP参考模型的网络层提供的是
A. 无连接不可靠的数据报服务
B. 无连接可靠的数据报服务
C. 有连接不可靠的虚电路服务
D. 有连接可靠的虚电路服务
答案:A


三、IPv4地址及其应用

3.1 IPv4地址概述

IPv4是什么

IPv4地址就是给因特网上的一台主机或路由器的每一个接口分配一个在全世界范围内是唯一的32比特的标识符,IP地址由因特网名字和数字分配机构进行分配。
----我国用户可向亚太网络信息中心申请IP地址,这需要缴纳费用,一般并不接受个人申请。
----2011年2月3日,互联网号码分配管理局宣布,IPv4地址已经分配完毕。
----我国在2014至2015年也逐步停止了向新用户和应用分配IPv4地址。同时,全面开展商用部署IPv6。
IPv4地址的编址方法经历了如下三个历史阶段:分类编址的IP地址(1981年)、划分子网的IP地址(1985年)、无分类编址的IP地址(1993年)。


IPv4地址的表示方法

为了能够更好的掌握IPv4地址的编制方法,我们首先应该掌握IPv4地址的表示方法。由于32比特的IPv4地址不方便阅读、记录以及输入等。因此,IPv4地址采用点分十进制表示方法,以方便用户使用。
例子:
这是某个32比特的IPv4地址: 00001010111100000000111110101010 00001010111100000000111110101010 00001010111100000000111110101010
将每八个比特分为一组,共四组。写出每组8比特所对应的十进制数,每个十进制数之间用点来分隔,这就是IPV4地址的点分十进制表示方法。
在这里插入图片描述
练习:
00001010 11111110 00001111 11110000->10.254.15.240
10101100 00010000 10111111 11110111->172.16.191.247
11000000 10101000 10100101 00000111->192.168.165.7


8位无符号二进制整数转十进制数

8位无符号二进制整数转十进制数的方法如下:
( b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 ) 2 = ( b 7 × 2 7 + b 6 × 2 6 + b 5 × 2 5 + b 4 × 2 4 + b 3 × 2 3 + b 2 × 2 2 + b 1 × 2 1 + b 0 × 2 0 ) 10 (b_7b_6b_5b_4b_3b_2b_1b_0)_2=(b_7 \times 2^7+b_6 \times 2^6+b_5 \times 2^5+b_4 \times 2^4+b_3 \times 2^3+b_2 \times 2^2+b_1 \times 2^1+b_0 \times 2^0)_{10} (b7b6b5b4b3b2b1b0)2=(b7×27+b6×26+b5×25+b4×24+b3×23+b2×22+b1×21+b0×20)10
表达式左边是8位无符号二进制整数的一般形式, b 0 b_0 b0 是8位无符号二进制整数的最低位,第7位是最高位,括号外面的2表示这是一个二进制数。将8位无符号二进制整数的各位乘以其权值后再相加,就可以得出相应的十进制数。我们应该熟记8位无符号二进制整数各位的权值,由高到低依次为128、64、32、16、8、4、2、1。
在这里插入图片描述

例子:

①将8位无符号二进制整数10101010转换为十进制数。
解析: 就是将它的个位乘以其权值后再相加,最后可以计算出十进制数为170。
在这里插入图片描述
②将8位无符号二进制整数11111100转换为十进制数。
解析: 对于这种比特0在整个8位无符号二进制整数中数量不多的情况,我们可以用十进制数255减去这些比特0位的权值,这样计算更简单。例如,本例用255减去最低两位各自的权值2和1,得到十进制数252。即 ( 11111100 ) 2 = ( 255 − 2 − 1 ) 10 = ( 252 ) 10 (11111100)_2=(255-2-1)_{10}=(252)_{10} (11111100)2=(25521)10=(252)10
③将8位无符号二进制整数1111000转换为十进制数。
解析: ( 11110000 ) 2 = ( 255 − 8 − 4 − 2 − 1 ) 10 = ( 240 ) 10 (11110000)_2=(255-8-4-2-1)_{10}=(240)_{10} (11110000)2=(2558421)10=(240)10
④将8位无符号二进制整数10000001转换为十进制数。
解析: 对于这种比特1在整个8位无符号二进制整数中数量不多的情况,我们可以直接将这些比特1位的权值相加,而不用写出整个转换表达式,这样计算更简单。例如本例最高位和最低位都为1,其他位为0。最高位的权值为128,最低位的权值为1。因此用128加1得到十进制数129。 ( 10000001 ) 2 = ( 128 + 1 ) 10 = ( 129 ) 10 (10000001)_2=(128+1)_{10}=(129)_{10} (10000001)2=(128+1)10=(129)10


十进制正整数转8位无符号二进制数

在进行IPV4地址的相关计算时,将点分十进制的IPV4地址中的十进制正整数转换为8位无符号二进制数也是经常需要用到的。
①将十进制正整数转换为二进制数的常用方法是除二取余法
例子: 将十进制数130转换为二进制数。
用130除以2得商65余0、用65除以2得商32余1、用32除以2得商16余0、用16除以2得商8余0、用8除以2得商4余0、用4除以得商2余0、用2除以2得商1余0、用1除以2得商0余1。做到商为0时结束,从下往上将余数写成比特串,就可得到所转换出的二进制数。
在这里插入图片描述
②除二取余法是十进制整数转二进制数的一般方法。对于IPV4地址的点分十进制数转换为八位无符号二进制整数这种特定应用,我们可以采用更快速的凑值法来进行。这需要大家熟记八位二进制无符号整数各位的权值。
例子: 将十进制数171转换为二进制数。
只要我们熟悉8位二进制无符号整数个位的权值,就不难写出这样的凑值表达式。
在这里插入图片描述


小测验

1、构成IPv4地址的比特数量和构成以太网MAC地址的比特数量分别是
A. 16,24
B. 32,48
C. 64,96
D. 128,192
答案:B

2、IPv4编址方法的三个历史阶段不包含
A. 分类编址
B. 划分子网
C. 路由选择
D. 无分类编址
答案:C

3、某个IPv4地址的二进制形式为11000000111111100000111111110000,则点分十进制形式为
A. 192.254.15.240
B. 240.15.254.192
C. 96.128.51.120
D. 120.51.128.96
答案:A


3.2 分类编址的IPv4地址

分类编址的IPv4地址

分类编址的IPv4地址分为A、B、C、D、E5类。
①A类地址的网络号部分占8比特,主机号部分占24比特,网络号的最高1位固定为0。
②B类地址的网络号部分和主机号部分各占16比特,网络号的最高两位固定为10。
③C类地址的网络号部分占24个比特,主机号部分占8个比特,网络号的最高3位固定为110。
④D类地址是多播地址,其最高4位固定为1110。
⑤E类地址是保留地址,其最高4位固定为1111。
在这里插入图片描述
需要注意的是,只有A类、B类和C类地址可分配给网络中的主机或路由器的各个接口。主机号为全0的地址是网络地址,不能分配给主机或路由器的各个接口。主机号为全1的地址是广播地址,不能分配给主机或路由器的各个接口。


A类地址

我们首先来看A类地址的细节
在这里插入图片描述
①8位网络号的最高位固定为0,低七位全部取0时,就是A类网络的最小网络号,其十进制值为0。该网络号被保留,不能指派。因此,A类网络第一个可指派的网络号为最高位固定为0,低七位为0000001,其十进制值为1。将24位的主机号全部取零,就可以得到该网络的网络地址,其点分十进制为1.0.0.0。
在这里插入图片描述
②当8位网络号的低七位全部取1时,就是A类网络的最大网络号,其十进制值为127。该网络号被用于本地软件环回测试,不能指派。将127开头的IPv4地址的主机号部分的最低位取1,其他位取0,就可得到最小的本地软件环回测试地址,其点分十进制为127.0.0.1。将127开头的IPv4地址的主机号部分的最低位取0,其他位取1,就可得到最大的本地软件环回测试地址,其点分十进制为127.255.255.254。
在这里插入图片描述
③因此,A类网络最后一个可指派的网络号为最高位固定为0,低七位为1111110,其十进制值为126。将24位的主机号全部取0,就可以得到该网络的网络地址,其点分十进制为126.0.0.0
在这里插入图片描述
思考: 可指派的A类网络的数量是多少?
答: 2 ( 8 − 1 ) − 2 = 126 2^{(8-1)}-2=126 2(81)2=126个。由于网络号占8位,并且其最高位固定为0,因此网络号有 2 7 = 128 2^7=128 27=128 个组合。减2的原因是要去掉最小网络号0和最大网络号127,它们不能指派。
思考: 每个A类网络中可分配的IP地址数量是多少?
答: 2 24 − 2 = 16777214 2^{24}-2=16777214 2242=16777214个。由于主机号占24位,因此主机号有 2 24 2^{24} 224 个组合。减2的原因是要去掉主机号为全0的网络地址和主机号为全1的广播地址。


B类地址

再来看B类地址的细节。
在这里插入图片描述
①16位网络号的最高两位固定为10,低14位全部取0时,就是B类网络的最小网络号,其点分十进制为128.0,该网络号是B类网第一个可指派的网络号。将16位的主机号全部取0,就可以得到该网络的网络地址,其点分十进制为128.0.0.0。
在这里插入图片描述
②16位网络号的最高两位为191.255,该网络号是B类网最后一个可指派的网络号。将16位的主机号全部取0,就可以得到该网络的网络地址,其点分十进制为191.255.0.0。
在这里插入图片描述
思考: 可指派的B类网络的数量是多少?
答: 2 ( 16 − 2 ) = 16384 2^{(16-2)}=16384 2(162)=16384个。由于网络号占16位,并且其最高两位固定为10,因此网络号有 2 14 2^{14} 214 个组合。
思考: 每个B类网络中可分配的IP地址数量是多少?
答: 2 16 − 2 = 65534 2^{16}-2=65534 2162=65534个。由于主机号占16位,因此主机号有 2 16 2^{16} 216 个组合。减2的原因是要除去全0的网络地址和全1的广播地址。
注意: 有些教材中指出主机号128.0是保留网络号,B类第一个可指派的网络号为128.1。但根据2002年9月发表的RFC3330文档,128.0网络号已经可以分配了。


C类地址

再来看C类地址的细节。
在这里插入图片描述
①24位网络号的最高三位固定为110。低21位全部取0时,就是C类网络的最小网络号,其点分十进制为192.0.0,该网络号是C类网第一个可指派的网络号。将8位的主机号全部取0,就可以得到该网络的网络地址,其点分十进制为192.0.0.0。
在这里插入图片描述
②24位网络号的最3位固定为110,低21位全部取1时,就是C类网络的最大网络号,其点分十进制为223.255.255,该网络号是C类网最后一个可指派的网络号。将8位的主机号全部取0,就可以得到该网络的网络地址,其点分十进制为223.255.255.0。
在这里插入图片描述
思考: 可指派的C类网络的数量是多少?
答: 2 ( 24 − 3 ) = 2097152 2^{(24-3)}=2097152 2(243)=2097152个。由于网络号占24位,并且其最高3位固定为110,因此网络号有 2 21 2^{21} 221 个组合。
思考: 每个C类网络中可分配的IP地址数量是多少?
答: 2 8 − 2 = 254 2^8-2=254 282=254个。由于主机号占8位,因此主机号有 2 8 2^8 28 个组合。减2的原因是要除去全0的网络地址和全1的广播地址。
注意: 有些教材中指出192.0.0是保留网络号,C类第一个可指派的网络号为192.0.1。但根据2002年9月发表的RFC3330文档,192.0.0网络号已经可以分配了,只不过目前还没有分配出去。


练习

判断这些IPv4地址属于哪个类别,是否可以分配给主机或路由器的各个接口。
在这里插入图片描述
解析:
①根据地址左起第一个十进制数的值,可以判断出网络类别(小于127的为A类、128到191的为B类、192到223的为C类)
②根据网络类别,就可找出地址中的网络号部分和主机号部分(A类地址的网络号为左起第一个字节,B类地址的网络号为左起前两个字节,C类地址的网络号为左起前三个字节)。
③以下三种情况的地址不能指派给主机或路由器接口:
----A类网络号0和127不能指派。
----主机号为全0的地址不能指派,因为这是网络地址。
----主机号为全1的地址不能指派,因为这是广播地址。
填写上面两个表格的内容,结果如下:
在这里插入图片描述


例题

【2017年题36】下列IP地址中,只能作为IP分组的源IP地址但不能作为目的IP地址的是 (A)
A. 0.0.0.0
B. 127.0.0.1
C. 20.10.10.3
D. 255.255.255.255
解析: ①地址0.0.0.0是一个特殊的IPv4地址,只能作为源地址使用,表示在本网络上的本主机。封装有DHCP Discovery报文的IP分组的源地址使用0.0.0.0。
②以127开头,且后面三个字节非全0或全1的IP地址是一类特殊的IPv4地址。既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试。例如常用的环回测试地址为127.0.0.1。
③地址255.255.255.255是一个特殊的IPv4地址,只能作为目的地址使用,表示只在本网络上进行广播,各路由器均不转发。
注: 这些是一般不使用的特殊IP地址
在这里插入图片描述


练习

给出下图各网络的IPv4地址分配方案,请按照节约IP地址的原则进行分配。
在这里插入图片描述
①首先应该找出图中都有哪些网络。左边有两个网络、右边三台交换机互连起来的交换式以太网也是一个网络、两台路由器通过一段链路直连它们的直连接口也属于同一个网络,所以一共有4个网络。在这里插入图片描述
②之后可以根据各网络中主机和路由器接口总数量来决定给个网络分配哪个类别的网络号。
----黄色部分网络的主机数量为65534,加上一个路由器接口,需要可分配的IP地址数量为65535。只能给该网络分配一个A类网络号。
----蓝色部分网络的主机数量为254,加上一个路由器接口,需要可分配的IP地址数量为255。可以给该网络分配一个A类或B类网络号。本着节约IP地址的原则,给该网络分配一个B类网络号。
----绿色部分网络的主机数量为40,加上一个路由器接口,需要可分配的IP地址数量为41。给该网络分配一个A类、B类或C类网络号都可以。本着节约IP地址的原则,给该网络分配一个C类网络号。
----红色部分网络没有主机,只有两个路由器接口,需要可分配的IP地址数量为2。给该网络分配一个A类、B类或C类网络号都可以。本着节约IP地址的原则,给该网络分配一个C类网络号。
③选取网络号和IP地址
依据所确定的网络号类别,为每个网络挑选一个网络号。A类网络号的取值范围是1到126,B类网络号的取值范围是128.0到191.255,C类网络号的取值范围是192.0.0到223.255.255。不同网络的网络号不能相同,网络号分配完毕后,就可给个网络中的各主机和路由器的各个接口分配IP地址了。需要注意的是,所分配的IP地址应该互不相同。并且其主机号部分不能出现全0,因为这是网络地址。也不能出现全1,因为这是广播地址。网络地址或广播地址都不能分配给主机或路由器的各个接口,因为他们无法唯一标识一台主机或路由器的某个接口。
在这里插入图片描述


小测验

1、分类编址的IPv4地址共分
A. 3类
B. 4类
C. 5类
D. 6类
答案:C

2、在IPv4地址的分类编址阶段,A类网的数量为
A. 2 7 − 1 2^7-1 271
B. 2 7 − 2 2^7-2 272
C. 2 7 + 1 2^7+1 27+1
D. 2 7 + 2 2^7+2 27+2
答案:B

3、在IPv4地址的分类编址阶段,每个B类网包含的IP地址数量为
A. 2 8 2^8 28
B. 2 8 − 2 2^8-2 282
C. 2 16 2^{16} 216
D. 2 16 − 2 2^{16}-2 2162
答案:C

4、在IPv4地址的分类编址阶段,每个C类网可分配给主机或路由器接口的IP地址数量为
A. 2 8 2^8 28
B. 2 8 − 2 2^8-2 282
C. 2 16 2^{16} 216
D. 2 16 − 2 2^{16}-2 2162
答案:B

5、以下属于C类IPv4地址,但又不能分配给主机的是
A. 196.2.3.8
B. 192.0.0.255
C. 191.255.255.252
D. 126.255.255.255
答案:B


3.3 划分子网的IPv4地址

为什么会出现划分子网这样的需求

如图所示,某单位有一个大型的局域网,需要连接到因特网。如果申请一个C类网络地址,其可分配的IP地址数量只有254个,不够使用。因此,该单位申请了一个B类网络地址,其可分配的IP地址数量达到了65534个。给每台计算机和路由器的接口分配一个IP地址后,还有大量的IP地址剩余。这些剩余的IP地址只能由该单位的同一个网络使用,而其它单位的网络不能使用。
在这里插入图片描述
随着该单位计算机网络的发展和建设,该单位又新增了一些计算机,并且需要将原来的网络划分成三个独立的网络,我们称其为子网1、子网2和子网3。
在这里插入图片描述
问题: 假设子网1仍然使用原先申请到的B类网络地址,那么就需要为子网2和子网3各自申请一个网络地址。但这样会存在一些弊端,申请新的网络地址需要等待很长的时间,并且要花费更多的费用。即便申请到了两个新的网络地址,这也会使其它路由器的路由表新增针对这两个新的网络的路由记录。另外,这样还会浪费原有网络中剩余的大量IP地址。
解决方案: 如果可以,从IP地址的主机号部分借用一些位作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量IP地址,而不用申请新的网络地址。例如,对于本例,我们可以借用16位主机号中的8位作为子网号。假设我们给子网1分配的子网号为0,给子网2分配的子网号为1,给子网3分配的子网号为2。之后就可以给各子网中的主机和路由器接口分配IP地址了。
在这里插入图片描述
思考: 如果我们未在图中标记子网号部分,那么我们和计算机又是如何知道分类地址中主机号有多少位被用作了子网号呢?这样我们就引出了一个划分子网的工具,它就是子网掩码。


子网掩码

①32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几位作为子网号。
如图所示,这是32比特的分类IPv4地址,它由网络号和主机号两部分构成。
在这里插入图片描述
当我们从主机号部分借用一些位作为子网号时,IP地址从两级结构的分类IP地址变成了三级结构的划分子网的IP地址。
在这里插入图片描述
我们用连续的比特1来对应网络号和子网号,用连续的比特0来对应主机号。这样就构成了这个划分子网的IP地址的32比特的子网掩码。
在这里插入图片描述
将划分子网的IP地址与相应的子网掩码进行逻辑与运算,也就是逐比特相与,就可得到IP地址所在子网的网络地址。这样,网络号和子网号被保留,而主机号被清零,结果为IP地址所在子网的网络地址。
在这里插入图片描述


划分子网的细节

已知某个网络地址为218.75.230.0,使用子网掩码255.255.255.128对其进行子网划分,请给出划分细节。
解析:
这是题目给定的网络地址,218.75.230.0。从它的左起第一个十进制数可知,这是一个C类网络地址。因此,网络号占3个字节,主机号占1个字节。
在这里插入图片描述
这是题目给定的子网掩码,255.255.255.128。这3个十进制数255其二进制为24个连续的比特1,它们对应IP地址中的网络号部分。
在这里插入图片描述
而该子网掩码中的十进制数128用来表示从IP地址的主机号部分借用多少比特来作为子网号,我们将其转换为8个二进制比特,为10000000。其中只有1个比特1,这就表明从主机号部分借用1个比特作为子网号。
在这里插入图片描述
因此,可划分出的子网数量为 2 1 = 2 2^1=2 21=2 个,每个子网可分配的地址数量为 2 8 − 1 − 2 = 126 2^{8-1}-2=126 2812=126。由于原来的8位主机号被借走1位作为子网号,因此主机号还剩7位,这就是表达式中8减1的原因。但是我们还要去掉主机号为全0的网络地址和全1的广播地址,这就是表达式中减2的原因。
在这里插入图片描述
我们先来看看题目所给的C类网地址218.75.230.0的细节。218.75.230.0是该网络上的第一个地址,由于这是一个C网地址,因此网络号占3个字节,主机号占1个字节。将网络号保持不变,而主机号取最大值255,这就是该网络上的最后一个地址。该C类网共有256个地址,其中第1个地址作为该网络的网络地址,也就是主机号全0的地址。最后一个地址作为该网络的广播地址,也就是主机号全1的地址。
在这里插入图片描述
这是比网络地址大1的地址,也就是该网络可分配给主机或路由器接口的最小地址。
在这里插入图片描述
这是比广播地址小1的地址,也就是该网络可分配给主机或路由器接口的最大地址。因此,该网络可分配给主机或路由器接口的地址数量为254个。
在这里插入图片描述
之前我们已经分析过了,题目所给的子网掩码表明从主机号部分借用1个比特作为子网号,也就是将该C类网均分为两个子网。我们将主机号写成8比特的形式,从主机号借用一个比特作为子网号,子网号只能是0或1。这就是子网的网络地址,我们将其写成点分十进制形式。
在这里插入图片描述
保持网络号和子网号不变,主机号从7个比特0增加到7个比特1,这就是子网的广播地址,我们将其写成点分十进制形式。
在这里插入图片描述
这是比子网的网络地址大1的地址,也就是子网0可分配给主机或路由器接口的最小地址,我们将其写成点分十进制形式。
在这里插入图片描述
这是比子网的广播地址小1的地址,也就是子网0可分配给主机或路由器接口的最大地址,我们将其写成点分十进制形式。
在这里插入图片描述
这是比子网0的广播地址大1的地址。请注意,它的子网号部分为1个比特1,主机号部分为7个比特0。也就是说,这是子网1的网络地址,我们将其写成点分十进制形式。
在这里插入图片描述
保持网络号和子网号不变,主机号从7个比特0增加到7个比特1,这就是子网1的广播地址,我们将其写成点分十进制形式。
在这里插入图片描述
这是比子网1的网络地址大1的地址,也就是子网1可分配给主机或路由器接口的最小地址,我们将其写成点分十进制形式。
在这里插入图片描述
这是比子网1的广播地址小1的地址,也就是子网1可分配给主机或路由器接口的最大地址,我们将其写成点分十进制形式。
在这里插入图片描述
可见使用子网掩码255.255.255.128可将C类网218.75.230.0均分为两个子网。
在这里插入图片描述


练习

已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.192对其进行子网划分,请给出划分细节。
解析:
①根据所给网络地址可知其为C类网络地址,网络号占3个字节,主机号占1个字节。
②所给子网掩码中的十进制数192,用来表示从IP地址的主机号部分借用多少比特来作为子网号,我们将其转换为8个二进制比特,为11000000。其中有2个比特1,这就表明从主机号部分借用2个比特作为子网号,可以划分为 2 2 = 4 2^2=4 22=4 个子网,每个子网可分配的地址数量为 2 ( 8 − 2 ) − 2 = 62 2^{(8-2)}-2=62 2(82)2=62
划分后的结果如下:
在这里插入图片描述


例题

【2012年题39】某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0,如该主机向其所在子网发送广播分组,则目的地址可以是 (D)
A. 180.80.76.0
B. 180.80.76.255
C. 180.80.77.255
D. 180.80.79.255
解析:
①根据题目所给的IP地址,从它的左起第一个十进制数可知,是一个B类网络地址。因此网络号占2个字节,主机号也占2个字节。
在这里插入图片描述
②根据题目所给定的子网掩码,这两个十进制数255,其二进制为16个连续的比特1,它们对应IP地址中的网络号部分。而该子网掩码中,后面两个十进制数252和0用来表示从IP地址的主机号部分借用多少个比特来作为子网号。我们将其转换为16个二进制比特,为11111100.000000。其中有连续6个比特1,这就表明从主机号部分借用6个比特作为子网号。我们将IP地址的主机号部分转换成二进制形式,然后将子网掩码中连续六个比特1所对应的主机号部分作为子网号。
在这里插入图片描述
③将网络号和子网号保持不变,而将主机号的十个比特全部取0,就可以得到该主机所在子网的网络地址,写成点分十进制形式为180.80.76.0。
在这里插入图片描述
④将网络号和子网号保持不变,而将主机号的10个比特全部取1,就可以得到该主机所在子网的广播地址,写成点分十进制形式为180.80.79.255。
在这里插入图片描述
因此,只有D在范围内。


默认子网掩码

默认子网掩码是指在未划分子网的情况下使用的子网掩码。
①这是A类地址,由8位网络号和24位主机号构成。根据子网掩码的构成规则,我们用8个连续的比特1对应IP地址中的8位网络号,用24个连续的比特0对应IP地址中的24位主机号。这样就构成了A类地址的默认子网掩码,其点分十进制形式为255.0.0.0。
在这里插入图片描述
②这是B类地址,由16位网络号和16位主机号构成。根据子网掩码的构成规则,我们用16个连续的比特1对应IP地址中的16位网络号。用16个连续的比特0对应IP地址中的16位主机号。这样就构成了B类地址的默认子网掩码,其点分十进制形式为255.255.0.0。
在这里插入图片描述
③这是C类地址,由24位网络号和八位主机号构成。根据子网掩码的构成规则,我们用24个连续的比特1对应IP地址中的24位网络号。用8个连续的比特0对应IP地址中的8位主机号,这样就构成了C类地址的默认子网掩码,其点分十进制形式为255.255.255.0。
在这里插入图片描述


小测验

1、已知某个网络的地址为192.168.0.0,使用子网掩码255.255.255.128对其进行子网划分,可划分出的子网数量为 (A)
A. 2
B. 4
C. 8
D. 16
解析: 根据IP地址可知这是个C类地址,网络号占3字节,主机号占1字节。子网掩码的最后1个字节用于表示从主机号借用多少位来表示子网号,将其转换为二进制为10000000。其中包含1个1,所以划分为 2 1 = 2 2^1=2 21=2 个子网。

2、已知某个网络地址为10.0.0.0,使用子网掩码255.255.192.0对其进行子网划分,则每个子网包含的地址数量为 ©
A. 2 10 2^{10} 210
B. 2 10 − 2 2^{10}-2 2102
C. 2 14 2^{14} 214
D. 2 14 − 2 2^{14}-2 2142
解析: 根据IP地址可知这是个A类地址,网络号占1字节,主机号占3字节。子网掩码的最后3个字节用于表示从主机号借用多少位来表示子网号,将其转换为二进制为11111111 11000000 0000000。其中包含10个1,所以划分为 2 1 0 = 1024 2^10=1024 210=1024 个子网。每个子网包含 2 3 × 8 − 10 = 2 14 2^{3\times8-10}=2^{14} 23×810=214 个地址。

3、已知某个网络地址为172.16.0.0,使用子网掩码255.255.224.0对其进行子网划分,则所划分出的最后一个子网的广播地址是 (B)
A. 172.16.0.255
B. 172.16.255.255
C. 172.0.255.255
D. 172.255.255.255
解析: 根据IP地址可知这是个B类地址,网络号占2字节,主机号占2字节。直接可以知道最后一个子网的广播地址就是前面2字节的网络号不变,后面2字节的子网号+主机号全为1,就是172.16.255.255

4、已知某个网络地址为192.168.1.0,使用子网掩码255.255.255.128对其进行子网划分,则所划分出的第一个子网的广播地址是 (A)
A. 192.168.1.127
B. 192.168.1.128
C. 192.168.1.254
D. 192.168.1.255
解析: 根据IP地址可知这是个C类地址,网络号占3字节,主机号占1字节。子网掩码的最后1个字节用于表示从主机号借用多少位来表示子网号,将其转换为二进制为1000000。其中包含1个1,所以划分为 2 1 = 2 2^1=2 21=2 个子网。我们将子网的最后1个字节写成二进制,所以第1个子网的网络地址为192.168.1.00000000(即192.168.1.0),广播地址为192.168.1.01111111(即192.168.1.127)。第2个子网的网络地址为192.168.1.10000000(即192.168.1.128),广播地址为192.168.1.11111111(即192.168.1.255)。

5、某主机的IP地址是166.66.66.66,子网掩码为255.255.192.0,若该主机向其所在子网发送广播分组,则目的地址可以是 (D)
A. 166.66.66.255
B. 166.66.255.255
C. 166.255.255.255
D. 166.66.127.255
解析: 根据IP地址可知这是个B类地址,网络号占2字节,主机号占2字节。子网掩码的最后2个字节用于表示从主机号借用多少位来表示子网号,将其转换为二进制为1100000。其中包含2个1,所以划分为 2 2 = 4 2^2=4 22=4 个子网。我们将子网的最后2个字节写成二进制,并将网络号和子网号保持不变,主机号从全0和全1的地址就是网络地址和广播地址。所以166.66.01000000.00000000166.66.01111111.11111111,即166.66.64.0和166.66.127.255


3.4 无分类编址的IPv4地址

无分类编址的IPv4地址来源

尽管我们上次课所介绍的划分子网的IPv4地址在一定程度上缓解了因特网在发展中遇到的困难。但是,数量巨大的C类网因为其地址空间太小,并没有得到充分使用。而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。为此,因特网工程任务组IETF又提出了采用无分类编址的方法来解决IPv4地址紧张的问题。同时还专门成立了IPv6工作组,负责研究新版本IP以彻底解决IP地址耗尽的问题。1993年,因特网工程任务组发布了无分类域间路由选择CIDR(Classless Inter-Domain Routing,可以读作sider)的相关RFC文档。CIDR消除了传统A类、B类和C类地址以及划分子网的概念,因此可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前允许因特网的规模继续增长。


CIDR原理

CIDR使用斜线记法,或称为CIDR记法,也就是在IPV4地址后面加上斜线/,在斜线后面写上网络前缀所占的比特数量。
例子: 我们现在有这样一个IPv4地址,128.14.35.7/20
解析: 斜线后面的数字是20,这就表明该32位IPv4地址的前20个比特为网络前缀,剩余12个比特为主机号。实际上,CIDR将网络前缀都相同的连续的IP地址组成一个CIDR地址块。我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节。这包括地址块的最小地址、地址块的最大地址、地址块中的地址数量、地址块聚合某类网络(ABC类网络)的数量、地址掩码。
我们来给出CIDR地址块128.14.35.7/20的全部细节:
①斜线后面的数字为20,表明该IPv4地址的前20个比特为网络前缀。也就是说,所给地址左起第1个字节、第2个字节以及第3个字节的前4个比特构成20比特的网络前缀。剩余12个比特为主机号。因此,我们需要将该地址的第3个字节和第4个字节转换成二进制的形式。这样我们就可以很容易看出20比特的网络前缀和12比特的主机号。
在这里插入图片描述
②将20比特的网络前缀保持不变,12比特的主机号全部取0,就可以得到该地址块的最小地址,其点分十进制为128.14.32.0。
在这里插入图片描述
③将20比特的网络前缀保持不变,12比特的主机号全部取1,就可以得到该地块的最大地址,点分十进制为128.14.47.255。
在这里插入图片描述
④该地址块中的地址数量为 2 32 − 20 = 2 12 2^{32-20}=2^{12} 23220=212 个。因为32比特的IPV4地址中,前20个比特为网络前缀,剩余12比特为主机号。
⑤聚合C类网的数量用该地址块中地址数量除以一个C网的地址数量( 2 8 2^8 28)即可得出,即 2 32 − 20 ÷ 2 8 = 2 4 2^{32-20} \div 2^8=2^4 23220÷28=24
⑥地址掩码为20个连续的比特1和12个连续的比特0。20个连续的比特1用来对应网络前缀,12个连续的比特0用来对应主机号。将其写成点分十进制为255.255.240.0。
在这里插入图片描述


练习

请给出CIDR地址块206.0.64.8/18的全部细节(最小地址,最大地址,地址数量,聚合C类网数量,地址掩码)。
解析:
①斜线后面的数字为18,表明该IPv4地址的前18个比特为网络前缀。也就是说,所给地址左起第1个字节、第2个字节以及第3个字节的前2个比特构成18比特的网络前缀。剩余14个比特为主机号。因此,我们需要将该地址的第3个字节和第4个字节转换成二进制的形式,这样我们就可以很容易看出18比特的网络前缀和14比特的主机号。
在这里插入图片描述
②将18比特的网络前缀保持不变,14比特的主机号全部取0,就可以得到该地址块的最小地址,其点分十进制为206.0.60.0。
③将18比特的网络前缀保持不变,14比特的主机号全部取1,就可以得到该地块的最大地址,点分十进制为206.0.127.255。
在这里插入图片描述
④该地址块中的地址数量为 2 32 − 18 = 2 14 2^{32-18}=2^{14} 23218=214 个。因为32比特的IPV4地址中,前18个比特为网络前缀,剩余14比特为主机号。
⑤聚合C类网的数量用该地址块中地址数量除以一个C网的地址数量( 2 8 2^8 28)即可得出,即 2 32 − 18 ÷ 2 8 = 2 6 2^{32-18} \div 2^8=2^6 23218÷28=26
⑥地址掩码为18个连续的比特1和14个连续的比特0。18个连续的比特1用来对应网络前缀,14个连续的比特0用来对应主机号。将其写成点分十进制为255.255.192.0。
在这里插入图片描述


路由聚合

路由聚合,也称为构造超网。
例子: 如图所示,路由器R1与5个网络以及路由器R2直接相连。路由器R1和R2互为相邻路由器,它们周期性的通告自己所知道的路由信息给对方。
在这里插入图片描述
思考: R1应该将怎样的路由信息通告给R2呢?如果R1将自己直连的这五个网络的路由记录都通告给R2,则R2的路由表会增加5条路由记录。为了减少路由记录对路由表的占用,能否将这五条路由记录聚合成一条呢?
在这里插入图片描述
答案: 可以。其方法是找共同前缀,也就是找出这5个目的网络地址的共同前缀。这5个目的网络地址的左起前2个字节都是相同的,从第三个字节开始不同。因此,只需将第3个字节转换成二进制形式,这样就可以很容易找出这5个目的网络地址的共同前缀。
在这里插入图片描述
可以看出共22个比特,我们将其记为 /22。将共同前缀保持不变,而剩余的10个比特全部取0,然后写成点分十进制形式,放在斜线22的前面,就是聚合后的地址块,也可以称为超网。就是172.1.00000100.00000000/22,及172.1.4.0/22
总结: 通过本例我们还可以看出,网络前缀越长,地址块越小,路由就越具体。需要说明的是,若路由器查表转发分组时发现有多条路由可选,则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。


例题

【2011年题38】在子网192.168.4.0/30中,能接收目的地址为192.168.4.3的IP分组的最大主机数是 ©
A. 0
B. 1
C. 2
D. 4
解析: 斜线后面的数字为30,表明该IPV4地址的前30个比特为网络前缀。也就是说,所给地址左起第1个字节、第2个字节、第3个字节以及第4个字节的前6个比特构成30比特的网络前缀,剩余2个比特位为主机号。因此,我们需要将该地址的第4个字节转换成二进制的形式,这样我们就可以很容易看出30比特的网络前缀和2比特的主机号。
①将30比特的网络前缀保持不变,2比特的主机号全部取0,就可以得到该网络的最小地址,这也是该网络的网络地址,其点分十进制为192.168.4.0。
在这里插入图片描述
②将30比特的网络前缀保持不变,2比特的主机号全部取1,就可以得到该网络的最大地址,这也是该网络的广播地址,其点分十进制为192.168.4.3。
在这里插入图片描述
③比网络地址大1的地址,也就是该网络中可分配给主机或路由器接口的最小地址,其点分十进制为192.168.4.1。
④比广播地址小1的地址,也就是该网络中可分配给主机或路由器接口的最大地址,其点分十进制为192.168.4.2。
在这里插入图片描述
题目中给定IP分组的目的地址为192.168.4.3,这是该网络的广播地址,因此该网络上的所有主机都能收到。由于该网络只有两个可分配的IP地址,因此网络中的主机数量最大为2,那么可以收到该IP分组的最大主机数就是2。

例题

【2018年 题38】某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21和35.230.56.0/21,将该4条路由聚合后的目的网络地址为
A. 35.230.0.0/19
B. 35.230.0.0/20
C. 35.230.32.0/19
D. 35.230.32.0/20
解析: 路由聚合的方法是找共同前缀,也就是找出题目所给的这4个目的网络地址的共同前缀。这4个目的网络地址的左起前2个字节都是相同的,从第3个字节开始不同。因此,只需将第3个字节转换成二进制形式。这样就可以很容易找出这4个目的网络地址的共同前缀,共19个比特。我们将其记为 /19。将共同前缀保持不变,而剩余的13个比特全部取0,然后写成点分十进制形式,放在斜线19的前面。结果为35.230.00100000.00000,即35.230.32.0/19,这就是聚合后的目的网络地址。
在这里插入图片描述


小测验

1、某个IPv4地址的CIDR表示形式为126.166.66.99/22,则以下描述错误的是
A. 网络前缀占用22个比特
B. 主机编号占用10个比特
C. 所在地址块包含地址数量
D. 126.166.66.99是所在地址块中的第一个地址
答案:D

2、CIDR地址块10.0.0.0/10中的最后一个地址是
A. 10.63.255.255
B. 10.255.255.255
C. 10.0.255.255
D. 10.0.0.255
答案:A

3、某个网络所分配到的地址块为172.16.0.0/29,能接收目的地址为172.16.0.7的IP分组的最大主机数是
A. 4
B. 5
C. 6
D. 7
答案:C

4、某路由表中有转发接口相同的2条路由表项,其目的网络地址分别为202.118.133.0/24和202.118.130.0/24,将这2条路由聚合后的目的网络地址为
A. 202.118.128.0/21
B. 202.118.128.0/22
C. 202.118.130.0/22
D. 202.118.132.0/20
答案:A

5、地址172.16.2.160属于下面哪一个地址块
A. 172.16.2.64/26
B. 172.16.2.96/26
C. 172.16.2.128/26
D. 172.16.2.192/26
答案:C


3.5 IPv4地址的应用规划

IPv4地址的应用规划

IPv4地址的应用规划就是给定一个IPv4地址块,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中的不同网络,进而可以给个网络中的主机和路由器接口分配IPv4地址。一般有以下两种方法:
①采用定长的子网掩码(FLAM, Fixed Length Subnet Mask)进行划分。
所谓定长的子网掩码,就是使用同一个子网掩码来划分子网。采用定长的子网掩码来划分子网,每个子网所分配的IP地址数量相同,容易造成IP地址浪费。
②另一种是采用变长的子网掩码(VLSM, Variable Length Subnet Mask)进行划分。
所谓变长的子网掩码,就是使用不同的子网掩码来划分子网。每个子网所分配的IP地址数量可以不相同,尽可能减少了对IP地址的浪费。


采用定长的子网掩码划分子网

假设我们申请到了一个C类网络218.75.230.0,要使用定长的子网掩码给图中所示的小型互联网中的各设备分配IP地址。
在这里插入图片描述
①我们首先来统计一下图中各网络所需的IP地址数量。
----N1中有6台主机,因此主机需要的地址数量为6个。有1个路由器接口,因此路由器接口需要的地址数量为1个。再加上N1自身的网络地址1个和广播地址1个,总共需要9个IP地址。
----N2中有25台主机,因此主机需要的地址数量为25个。有1个路由器接口,因此路由器接口需要的地址数量为1个。再加上N2自身的网络地址1个和广播地址1个,总共需要28个IP地址。
----类似的,可以很容易地统计出网络N3和N4各自所需的IP地址数量,我们就不再赘述了。
----请注意,我们可将图中两个路由器之间的这段链路看成是网络N5。其中没有主机,因此主机需要的地址数量为0。有2个路由器接口,因此路由器接口需要的地址数量为2个。再加上N5自身的网络地址1个和广播地址1个,总共需要4个IP地址。
在这里插入图片描述
②这样我们就可得到本例的应用需求,也就是将C类网218.75.230.0划分成5个子网,每个子网上可分配的IP地址数量不得少于各自的需求。所申请到的C类网地址是218.75.230.0,这是它的网络号为前3字节,主机号为最后1个字节。我们需要从主机号部分借用3个比特作为子网号,这样可划分出的子网数量为 2 3 = 8 2^3=8 23=8个,可以满足我们对子网数量的要求。而每个子网上的地址数量为 2 8 − 3 = 32 2^{8-3}=32 283=32个,可以满足我们对子网上IP地址数量的要求。这样我们就可以得出划分子网所需的子网掩码,用3个十进制数255来对应网络号部分,也就是用24个连续的比特1来对应网络号。而最后8个比特为11100000,其中3个连续的比特1表示从主机号部分借用3个比特作为子网号。将这8比特写成十进制数为224,子网掩码就是255.255.255.224。
在这里插入图片描述
划分子网的细节
将子网号取000,主机号分别为全0和全1时,对应就是子网1的网络地址和广播地址,它的点分十进制形式如下。
在这里插入图片描述
这是比子网1的网络地址大1的地址是子网1上可分配给主机或路由器接口的最小地址。这是比子网的广播地址小1的地址,它是子网1上可分配给主机或路由器接口的最大地址。他们的点分十进制形式如下。
在这里插入图片描述
这是比子网1的广播地址大1的地址就是子网2的网络地址。将网络号和子网号保持不变,主机号从五个比特0增长到五个比特1就可得到子网2的广播地址。他们的点分十进制形式如下。比子网二的网络地址大1的地址是子网2上可分配给主机或路由器接口的最小地址。比子网2的广播地址小1的地址是子网2上可分配给主机或路由器接口的最大地址。它们的点分十进制形式如下
在这里插入图片描述
以此类推,我们可以得到划分子网的全部细节。
在这里插入图片描述
现在我们就可以从子网1到8中任选5个分配给图中的网络N1到N5。通过本地可以看出,采用定长的子网掩码进行子网划分只能划分出 2 N 2^N 2N 个子网。其中N是从主机号部分借用的用来作为子网号的比特数量。每个子网所分配的IP地址数量相同,容易造成IP地址的浪费。例如,图中的网络5只需要4个IP地址,但是我们只能给它分配32个IP地址,这样就造成了IP地址的严重浪费。在这里插入图片描述


采用变长的子网掩码划分子网

本例与上面的例子前提条件一样,只是划分子网的方法改为采用变长的子网掩码。
①这是我们之前就统计过的个网络所需IP地址的数量。
在这里插入图片描述
----既然网络N1需要9个地址,那么分配给网络N1的地址的主机号应为4个比特,因为 2 4 = 16 2^4=16 24=16。由于使用4个比特作为主机号,因此剩余28个比特可作为网络前缀。
----既然网络N2需要28个地址,那么分配给网络N2的地址的主机号应该为5个比特,因为 2 5 = 32 2^5=32 25=32。由于使用5个比特作为主机号,因此剩余27个比特可作为网络前缀。
----根据以上我们可以很容易得出分配给网络N3N4N5的地址中的主机号所占比特数量和网络前缀所占比特数量,我们就不再赘述了。
----我们将所得出的各网络所需地址块的大小标注在他们各自的旁边,这样我们就可得到本例的应用需求,也就是从地址块218.75.230.0/24中取出5个地址块按需分配给图中所示的五个网络。
在这里插入图片描述
218.75.230.0/24地址块所包含的全部地址如下所示。我们需要在该地址块中给图中所示的网络N1到N5分配子块,分配的原则是每个字块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点。建议大家先给大的子块进行分配。
在这里插入图片描述
例如,将最前面32个地址作为一个地址块分配给网络N2,地址块中最小的地址就是N2的网络地址,最大的地址就是N2的广播地址。网络地址和广播地址之间的这些地址可分配给N2中的主机或路由器接口,我们将网络N2所分配到的地址块标注在它的旁边。
在这里插入图片描述
将这N2后面的16个地址作为一个地址块分配给网络N1。地址块中最小的地址就是N1的网络地址,最大的地址就是N1的广播地址。网络地址和广播地址之间的这些地址可分配给N1中的主机或路由器接口,我们将网络N1所分配到的地址块标注在它的旁边。
在这里插入图片描述
将N2后面这16个地址作为一个地址块分配给网络N3。地址块中最小的地址就是N3的网络地址,最大的地址就是N3的广播地址。网络地址和广播地址之间的这些地址可分配给N3中的主机或路由器接口,我们将网络N3所分配到的地址块标注在它的旁边。
在这里插入图片描述
将N3后面这16个地址作为一个地址块分配给网络N4。地址块中最小的地址就是N4的网络地址,最大的地址就是N3的广播地址。网络地址和广播地址之间的这些地址可分配给N4中的主机或路由器接口,我们将网络N4所分配到的地址块标注在它的旁边。
在这里插入图片描述
将N4后面这4个地址作为一个地址块分配给网络N5。地址块中最小的地址就是N5的网络地址,最大的地址就是N5的广播地址。网络地址和广播地址之间的这些地址可分配给N5中的主机或路由器接口,我们将网络N5所分配到的地址块标注在它的旁边。
在这里插入图片描述
原地址块中还剩余这些地址,可以留作今后分配。
在这里插入图片描述
通过本例可以看出,采用变长的子网掩码进行子网划分可以按需划分出相应数量的子网。每个子网所分配到的IP地址数量可以不相同,尽可能减少了对IP地址的浪费。例如,图中的网络5只需要4个IP地址,我们也非常精确的给他分配了4个IP地址,没有造成IP地址的浪费。


练习

假设地址块为192.168.252.0/24,请分别使用定长的子网掩码和变长的子网掩码给下图所示的小型互联网中的各设备分配IP地址
在这里插入图片描述


小测验

1、在一条点对点的链路上,为了减少地址的浪费,地址掩码应该指定为
A. 255.255.255.252
B. 255.255.255.248
C. 255.255.255.240
D. 255.255.255.196
答案:A

2、若将某个C类网络划分出5个子网,每个子网最多20台主机,则使用的子网掩码是
A. 255.255.255.192
B. 255.255.255.224
C. 255.255.255.240
D. 255.255.255.248
答案:B

3、下面有关FLSM与VLSM的说法中,错误的是
A. FLSM使用同一个子网掩码来划分子网
B. VLSM可以使用不同的子网掩码来划分子网
C. 使用FLSM划分的子网,每个子网所分配的IP地址数量相同
D. 使用VLSM划分子网,只能划分出偶数个子网
答案:D

;