IPv4 地址包括网络部分和主机部分。我们将地址的网络部分的比特位数称为前缀长度。前缀是定义网络部分的一种方式,可以人工读取。数据网络也必须定义地址的这个网络部分。

 
为了定义地址的网络部分和主机部分,设备另行使用称为子网掩码的一个 32 位形式,如图所示。表示子网掩码使用的点分十进制格式与 IPv4 地址相同。在代表网络部分的每个位的位置上置入二进制 1,在代表主机部分的每个位的位置上置入二进制 0 即可创建子网掩码。
 
前缀和子网掩码都代表地址的网络部分,是两种不同的方式。
 

子网掩码_休闲

如图所示,前缀 /24 以子网掩码表示即为 255.255.255.0 (11111111.11111111.11111111.00000000)。子网掩码的其余各位(低位)均为零,表示该网络中的主机地址。
 
子网掩码在主机上与 IPv4 地址一起配置,用于定义该地址的网络部分。
 
以主机 172.16.4.35/27 为例:
 
地址
172.16.20.35 
 
10101100.00010000.00010100.00100011
子网掩码
 
255.255.255.224 
 
11111111.11111111.11111111.11100000
网络地址
 
172.16.20.32 
 
10101100.00010000.00010100.00100000
 
因为子网掩码的高位都是 1,因此一个二进制八位数中可能存在的子网值数量有限。您应该还记得,我们只需要展开划分网络部分和主机部分那个二进制八位数。因此,地址掩码中使用的 8 位模式数量有限。
 
这些模式有:
 
00000000 = 0
10000000 = 128
 
11000000 = 192
 
11100000 = 224
 
11110000 = 240
 
11111000 = 248
 
11111100 = 252
 
11111110 = 254
 
11111111 = 255
 
如果某个二进制八位数的子网掩码表示为 255,则地址中该二进制八位数对应的所有位均是网络位。同理,如果某个二进制八位数的子网掩码表示为 0,则地址的该二进制八位数对应的所有位均是主机位。在上述每种情况下,都无需将该二进制八位数展开为二进制即可确定网络部分和主机部分。