《计算机网络》课程
实验七 子网划分和子网掩码
一、为什么要划分子网
在 20 世纪 70 年代初期,建立 Internet 的工程师们并未意识到计算机和通信在未来的
迅猛发展。局域网和个人电脑的发明对未来的网络产生了巨大的冲击。开发者们依据他们当
时的环境,并根据那时对网络的理解建立了逻辑地址分配策略。他们知道要有一个逻辑地址
管理策略,并认为 32 位的地址已足够使用。为了给不同规模的网络提供必要的灵活性,IP
地址的设计者将 IP 地址空间划分为五个不同的地址类别,如下表所示,其中 A,B,C 三类最
为常用:
IP 地址
第一字节
二进制
二进制
二进制
类型
十进制范围
固定最高位
网络位
主机位
A 类 0-127
B 类 128-191
0
10
8 位 24 位
16 位 16 位
C 类 192-223
110
24 位 8 位
D 类 224-239
E 类 240-255
1110
1111
组播地址
保留试验使用
从当时的情况来看,32 位的地址空间确实足够大,能够提供 232(4,294,967,296,约
为 43 亿)个独立的地址。这样的地址空间在因特网早期看来几乎是无限的,于是便将 IP
地址根据申请而按类别分配给某个组织或公司,而很少考虑是否真的需要这么多个地址空
间,没有考虑到 IPv4 地址空间最终会被用尽。但是在实际网络规划中,它们并不利于有效
地分配有限的地址空间。对于 A、B 类地址,很少有这么大规模的公司能够使用,而 C 类
地址所容纳的主机数又相对太少。所以有类别的 IP 地址并不利于有效地分配有限的地址空
间,不适用于网络规划。
二、如何划分子网
为了提高 IP 地址的使用效率,引入了子网的概念。将一个网络划分为子网:采用借位
的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得 IP
地址的结构分为三级地址结构:网络位、子网位和主机位。这种层次结构便于 IP 地址分配
和管理。它的使用关键在于选择合适的层次结构--如何既能适应各种现实的物理网络规模,
又能充分地利用 IP 地址空间(即:从何处分隔子网号和主机号)。
三、子网掩码的作用
简单地来说,掩码用于说明子网域在一个 IP 地址中的位置。子网掩码主要用于说明如
何进行子网的划分。掩码是由 32 位组成的,很像 IP 地址。对于三类 IP 地址来说,有一些
1
《计算机网络》课程
自然的或缺省的固定掩码。
四、如何来确定子网地址
如果此时有一个 I P 地址和子网掩码,就能够确定设备所在的子网。子网掩码和 IP 地
址一样长,用 32bit 组成,其中的 1 表示在 IP 地址中对应的网络号和子网号对应比特,0
表示在 IP 地址中的主机号对应的比特。将子网掩码与 IP 地址逐位相“与”,得全 0 部分为
主机号,前面非 0 部分为网络号。
要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得出结
论,但采用十进制计算方法看起来要比二进制方法简单许多,经过一番观察和总结,我终于
得出了子网掩码及主机块的十进制算法。
首先要明确一些概念:
类范围:IP 地址常采用点分十进制表示方法 X.Y.Y.Y,在这里
X=1--126 时称为 A 类地址;
X=128--191 时称为 B 类地址;
X=192--223 时称为 C 类地址;
如 10.202.52.130 因为 X=10 在 1--126 范围内所以称为 A 类地址
类默认子网掩码:A 类为 255.0.0.0
B 类为 255.255.0.0
C 类为 255.255.255.0
当我们要划分子网用到子网掩码 M 时,类子网掩码的格式应为
A 类为 255.M.0.0
B 类为 255.255.M.0
C 类为 255.255.255.M
M 是相应的子网掩码如:255.255.255.240
十进制计算基数:256,等一下我们所有的十进制计算都要用 256 来进行。
几个公式变量的说明:
Subnet_block:可分配子网块大小,指在某一子网掩码下的子网的块数。
Subnet_num:实际可分配子网数,指可分配子网块中要剔除首、尾两块,这是某一子
网掩码下可分配的实际子网数量,它等于 Subnet_block-2。
IP_block:每个子网可分配的 IP 地址块大小。
IP_num:每个子网实际可分配的 IP 地址数,因为每个子网的首、尾 IP 地址必须保留
(一个为网络地址,一个为广播地址),所以它等于 IP_block-2,IP_num 也用于计算主机
段
M:子网掩码(net mask)。
它们之间的公式如下:
M=256-IP_block
IP_block=256/Subnet_block,反之 Subnet_block=256/IP_block
IP_num=IP_block-2
Subnet_num=Subnet_block-2
2 的冥数:要熟练掌握 2^8(256)以内的 2 的冥代表的十进制数,如 128=2^7、64=2^6…,
这可使我们立即推算出 Subnet_block 和 IP_block 数。
现在我们举一些例子:
一、 已知所需子网数 12,求实际子网数
解 : 这 里 实 际 子 网 数 指 Subnet_num , 由 于 12 最 接 近 2 的 冥 为 16 ( 2^4 ), 即
2
《计算机网络》课程
Subnet_block=16,那么 Subnet_num=16-2=14,故实际子网数为 14。
二、 已知一个 B 类子网每个子网主机数要达到 60x255(约相当于 X.Y.0.1--X.Y.59.254
的数量)个,求子网掩码。
解:1、60 接近 2 的冥为 64(2^6),即,IP_block=64
2、子网掩码 M=256-IP_block
=256-64=192
3、子网掩码格式 B 类是:255.255.M.0.
所以子网掩码为:255.255.192.0
三、 如果所需子网数为 7,求子网掩码
解:1、7 最接近 2 的冥为 8,但 8 个 Subnet_block 因为要保留首、尾 2 个子网块,即
8-2=6<7,并不能达到所需子网数,所以应取 2 的冥为 16,即 Subnet_block=16
2、IP_block=256/Subnet_block=256/16=16
3、子网掩码 M=256-IP_block=256-16=240。
四、 已知网络地址为 211.134.12.0,要有 4 个子网,求子网掩码及主机段。
解:1、211.y.y.y 是一个 C 类网,子网掩码格式为 255.255.255.M
2、4 个子网,4 接近 2 的冥是 8(2^3),所以 Subnet_block=8
Subnet_num=8-2=6
3、IP_block=256/Subnet_block=256/8=32
4、子网掩码 M=256-IP_block=256-32=224
5、所以子网掩码表示为 255.255.255.224
6、因为子网块(Subnet_block)的首、尾两块不能使用,所以可分配 6 个子网块
(Subnet_num),每块 32 个可分配主机块(IP_block)
即:32-63、64-95、96-127、128-159、160-191、192-223
首块(0-31)和尾块(224-255)不能使用
7、每个子网块中的可分配主机块又有首、尾两个不能使用(一个是子网网络地址,一
个 是子网广播地址),所以主机段分别为:
33-62、65-94、97-126、129-158、161-190、193-222
8、所以子网掩码为 255.255.255.224
主机段共 6 段为:211.134.12.33--211.134.12.62
211.134.12.65--211.134.12.94
211.134.12.97--211.134.12.126
211.134.12.129--211.134.12.158
211.134.12.161--211.134.12.190
211.134.12.193--211.134.12.222
可以任选其中的 4 段作为 4 个子网。
总之,只要理解了公式中的逻辑关系,就能很快计算出子网掩码,从而得出可分配的主
机段,参加 MCSE 和 CCNA 考试的时候使用这种方法可以顺利地通过相关试题的考试,而
不用象记 9×9 乘法口诀表一样去背什么二进制掩码表了。
实验目的
1.掌握子网划分的方法和子网掩码的设置
2.理解 IP 协议与 MAC 地址的关系
3.熟悉 ARP 命令的使用:arp [–d], [-a]
3
实验步骤:
实验 1:
子网划分后的实验拓扑图
《计算机网络》课程
PC7
验证网卡
子网4
PC8
验证网卡
PC6
验证网卡
子网3
子网1
子网2
PC1
验证网卡
PC2
验证网卡
PC3
验证网卡
PC4
验证网卡
PC5
验证网卡
1) 两人一组,设置两台主机的 IP 地址与子网掩码:
A: 10.2.2.x
B: 10.2.3.y
2)两台主机均不设置缺省网关。
3)用 arp -d 命令清除两台主机上的 ARP 表,然后在 A 与 B 上分别用 ping 命令与对方
255.255.254.0
255.255.254.0
(x = 座位号)
(y = 座位号)
通信,观察并记录结果,并分析原因。
4)在两台 PC 上分别执行 arp -a 命令,观察并记录结果,并分析原因。
提示:由于主机将各自通信目标的 IP 地址与自己的子网掩码相"与"后,发现目标主机
与自己均位于同一网段(10.2.2.0),因此通过 ARP 协议获得对方的 MAC 地址,从而实现
在同一网段内网络设备间的双向通信。
实验 2.
1)将 A 的子网掩码改为:255.255.255.0,其他设置保持不变。
2)在两台 PC 上分别执行 arp -d 命令清除两台主机上的 ARP 表。然后在 A 上"ping"B,
观察并记录结果。
3)在两台 PC 上分别执行 arp -a 命令,观察并记录结果,并分析原因。
提示:A 将目标设备的 IP 地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相"与
"得 10.2.3.0,和自己不在同一网段(A 所在网段为:10.2.2.0),则 A 必须将该 IP 分组首先
发向缺省网关。
4
《计算机网络》课程
实验 3
1)按照实验 2 的配置,接着在 B 上"ping"A,观察并记录结果,并分析原因。
2)在 B 上执行 arp -a 命令,观察并记录结果,并分析原因。
提示:B 将目标设备的 IP 地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相"与
",发现目标主机与自己均位于同一网段(10.2.2.0),因此,B 通过 ARP 协议获得 A 的 MAC
地址,并可以正确地向 A 发送 Echo Request 报文。但由于 A 不能向 B 正确地发回 Echo Reply
报文,故 B 上显示 ping 的结果为"请求超时"。
在该实验操作中,通过观察 A 与 B 的 ARP 表的变化,可以验证:在一次 ARP 的请求
与响应过程中,通信双方就可以获知对方的 MAC 地址与 IP 地址的对应关系,并保存在各
自的 ARP 表中。
实验报告
1.分别叙述各实验的记录结果并分析其原因。
2.在 B 类网络中,能使用掩码 255.255.255.139 吗?为什么?
3.说出地址和子网掩码的不同?
5