子网掩码的计算与划分详解
一、子网掩码的计算
TCP/IP 网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网
间网规模的迅速扩展对 IP 地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负
担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不
仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷
新时的开销,从而加重网络负担。
因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在
内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是 IP 网络地址的
多重复用技术应运而生。通过复用技术,使若干物理网络共享同一 IP 网络地址,无疑将减少网络地址数。
子网编址(subnet addressing)技术,又叫子网寻径(subnet routing),英文简称 subnetting,
是最广泛使用的 IP 网络地址复用方式,目前已经标准化,并成为 IP 地址模式的一部分。
32 位的 IP 地址分为两部分,即网络号和主机号,分别把他们叫做 IP 地址的“网间网部分”和“本地部分”。
子网编址技术将“本地部分”进一步划分为“物理网络”部分和“主机”两部分,其中“物理网络”部分用于标识同
一 IP 网络地址下的不同物理网络,常称为“掩码位”、“子网掩码号”,或者“子网掩码 ID”,不同子网就是依
据这个掩码 ID 来识别的。
按 IP 协议的子网标准规定,每一个使用子网的网点都选择一个 32 位的位模式,若位模式中的某位置 1,
则对应 IP 地址中的某位为网络地址(包括网络部分和子网掩码号)中的一位;若位模式中的某位置 0,则
对应 IP 地址中的某位为主机地址中的一位。
例如二进制位模式:11111111 11111111 11111111 00000000 中,前三个字节全 1,代表对应 IP
地址中最高的三个字节为网络地址;后一个字节全 0,代表对应 IP 地址中最后的一个字节为主机地址。为
了使用的方便,常常使用“点分整数表示法”来表示一个 IP 地址和子网掩码,例如 B 类地址子网掩码
(11111111 11111111 1111111100000000)为:255.255.25.0。
IP 协议关于子网掩码的定义提供一定的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网
掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的
位,因此在实际应用中通常各网点采用连续方式的子网掩码。像 255.255.255.64 和 255.255.255.160
等一类的子网掩码不推荐使用
子网掩码与 IP 地址结合使用,可以区分出一个网络地址的网络号和主机号。例如:有一个 C 类地址为:
192.9.200.13,按其 IP 地址类型,它的缺省子网掩码为:255.255.255.0,则它的网络号和主机号可
按如下方法得到:
第 1 步,将 IP 地址 192.9.200.13 转换为二进制 11000000 00001001 11001000 00001101
第 2 步,将子网掩码 255.255.255.0 转换为二进制 11111111 11111111 11111111 00000000
第 3 步,将以上两个二进制数逻辑进行与(AND)运算,得出的结果即为网络部分。“11000000
00001001 11001000 00001101”与“11111111 11111111 11111111 00000000”进行“与”运算
后得到“11000000 00001001 11001000 00000000”,即“192.9.200.0”,这就是这个 IP 地址的网
络号,或者称“网络地址”。
第 4 步,将子网掩码的二进制值取反后,再与 IP 地址进行与(AND)运算,得到的结果即为主机部分。
如将“00000000 00000000 00000000 11111111(子网掩码的取值)反”与“11000000 00001001
11001000 00001101”进行与运算后得到“00000000 00000000 00000000 00001101”,即
“0.0.0.13”,这就是这个 IP 地址主机号(可简化为“13”)。
二、子网掩码的划分
如果要将一个网络划分成多个子网,如何确定这些子网的子网掩码和 IP 地址中的网络号和主机号呢?本
节就要向大家介绍。子网划分的步骤如下: