因为早期设计的IP地址利用率低、会使路由表变得太大及两级IP地址不够灵活的缺陷,我们在IP地址中再增加一个子网号字段。使两级IP地址变为三级IP地址,也就是划分子网。
IP地址 ::={<网络号>, <子网号>, <主机号>}
1、不划分子网
假设有一c类IP地址,默认子网掩码为255.255.255.0,则网络号由IP地址与子网掩码通过与运算得到:
IP地址 | 195.169.20.50 |
---|---|
子网掩码 | 255.255.255.0 |
网络号 | 195.169.20.0 |
这里的网络号为195.169.20
,主机号为50
,IP地址范围为195.169.20.1~195.169.20.254
(去掉主机号全0全1)。
2、划分子网
IP地址不变,子网掩码为255.255.255.224,子网的网络地址仍然通过IP地址和子网掩码与运算得到:
IP地址 | 195.169.20.50 |
---|---|
子网掩码 | 255.255.255.224 |
子网的网络地址 | 195.169.20.32 |
为了大家看得清楚,我再用二进制来表示一遍:
‘’ | 二进制表示 |
---|---|
IP地址 | 11000011.10101001.00010100.00110010 |
子网掩码 | 11111111.11111111.11111111.11100000 |
子网的网络地址 | 11000011.10101001.00010100.00100000 |
这里的网络号为195.169.20
,子网号为001
(二进制),主机号为10010
,IP地址范围为主机号00001~11110
,也就是195.169.20.33~195.169.20.62
(去掉主机号全0全1)。
这时我们就能注意到 子网掩码 的作用,它能将一个“大网”分为多个“小网”。之前在做项目的时候,遇到一个问题,比方说在一个10.0.0.1的局域网下,一个IP地址为10.0.1.1的想要与一个IP地址为10.0.2.1的通信,通常要将子网掩码设为255.255.0.0,这样进行与运算的时候,才能将这两个地址同时连接到一个10.0的“小网”内进行通信。