IP 地址与子网掩码
IP 地址是网络层为每台主机分配的逻辑"门牌号",子网掩码则用来划分"哪些主机属于同一网络"。后端面试中的子网计算、网段判断、公网/私网地址辨析都围绕这两个概念展开,云上 VPC 规划同样依赖它。
IPv4 地址结构
IPv4 共 32 位,通常写成点分十进制,例如 192.168.1.10:
二进制: 11000000 . 10101000 . 00000001 . 00001010
十进制: 192 . 168 . 1 . 10
一个 IP 由两部分组成:网络号(标识主机所在网络)+ 主机号(标识网内某一台主机)。
子网掩码的作用
子网掩码连续 1 的位数代表网络号长度。把 IP 与掩码按位与,得到的就是网络号:
IP: 192.168.1.10 11000000 10101000 00000001 00001010
掩码: 255.255.255.0 11111111 11111111 11111111 00000000
按位与 => 网络号 192.168.1.0
掩码写成"斜杠 + 位数"的形式称为 CIDR 记法:255.255.255.0 即 /24,代表前 24 位是网络号。
传统分类与 CIDR
| 类别 | 首字节范围 | 默认掩码 | 适用规模 |
|---|---|---|---|
| A 类 | 1 ~ 126 | /8 | 超大型网络 |
| B 类 | 128 ~ 191 | /16 | 中型网络 |
| C 类 | 192 ~ 223 | /24 | 小型网络 |
传统分类编址浪费地址,现已基本被 CIDR(无类域间路由) 取代——掩码长度可任意指定(如 /26、/27),规划更灵活。
公网、私网与特殊地址
私网地址不会在公网上路由,仅供内部使用,通过 NAT 共享公网出口:
| 私网段 | CIDR | 可用范围 |
|---|---|---|
| A 类 | 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 |
| B 类 | 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 |
| C 类 | 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 |
另需记住:127.0.0.1 是回环地址(指向本机);169.254.x.x 是 DHCP 分配失败时的自动私有地址。
子网划分计算实例
需求:把 192.168.1.0/24 划分成 4 个子网。
分成 4 个子网 → 需要借 2 位主机号做子网号 → 掩码变为 /26
子网1: 192.168.1.0 ~ 192.168.1.63 网络号 .0
子网2: 192.168.1.64 ~ 192.168.1.127 网络号 .64
子网3: 192.168.1.128 ~ 192.168.1.191 网络号 .128
子网4: 192.168.1.192 ~ 192.168.1.255 网络号 .192
每子网可用主机数 = 2^(32-26) - 2 = 62
减去的 2 分别是最小值(网络号)与最大值(广播地址),它们不能分配给主机。
判断是否同一网段
两台主机通信前先判断对方是否同网段:分别把双方 IP 与同一掩码按位与,网络号相同则在同网段,可直接经交换机通信;否则要交给路由器转发。
NAT 与 IPv6
私网地址无法直接访问公网,由路由器做 NAT:把内网主机的源地址统一转换为公网 IP,回包再映射还原。IPv6 采用 128 位地址(如 2001:db8::1,十六进制冒号分隔),从根上解决地址枯竭,并减少对 NAT 的依赖。
小结:记住"IP 与掩码按位与得网络号"这一核心操作,会换算 CIDR、能区分私网/公网并完成简单子网划分,就掌握了网络配置与面试计算的命门。