注:本文基于模型知识整理,建议结合权威教材与 RFC 原文核对细节。
一句话定义
IPv4 地址是分配给主机或路由器接口的 32 位网络层标识符,用于在全球范围内定位通信端点;分类编址(classful addressing)是互联网早期按首字节把地址划入 A、B、C、D、E 五类的分配方案。
为什么重要
IP 地址是网络层一切讨论的坐标系:子网划分、路由查找、NAT 转换、防火墙规则都建立在地址结构之上。看不懂地址结构,就看不懂路由表为什么要最长前缀匹配,也解释不了「内网地址为什么能上网」「127.0.0.1 到底是什么」这类日常问题。它同时是工程排障与技术面试中出现频率最高的知识点之一。
前置知识
建议先读 kp-004《封装、解封装与复用/分用》,理解分层模型中网络层与链路层的分工,以及报文逐层封装时地址字段的位置;还需要二进制与十进制互转的基本能力。
核心概念
- 32 位与点分十进制:IP 地址由 32 个二进制位组成,书写时按每 8 位一组转为十进制、用点分隔,称为点分十进制记法(dotted decimal notation)。例如 11000000.10101000.00000001.00000101 就是 192.168.1.5。
- 分类编址五类:A 类首位为 0,网络号占 8 位,首字节 1~126(0 与 127 另有专用);B 类前两位 10,网络号 16 位,首字节 128~191;C 类前三位 110,网络号 24 位,首字节 192~223;D 类前四位 1110,首字节 224~239,用于多播(multicast);E 类前四位 1111,首字节 240~255,保留作实验用途。
- 子网掩码(subnet mask):与地址等长的 32 位串,网络位全 1、主机位全 0,作用是把地址切成「网络部分」与「主机部分」,用按位与运算从 IP 地址得到网络地址。A、B、C 类默认掩码分别为 255.0.0.0、255.255.0.0、255.255.255.0。
- 特殊地址:0.0.0.0 表示「本机任意地址」,也是路由表里默认路由的目的地;127.0.0.0/8 是环回(loopback)地址,流量不出物理网卡,127.0.0.1 最常用;169.254.0.0/16 是链路本地(link-local)地址,DHCP 获取失败时系统自行配置,仅在本链路有效;主机位全 0 的地址是网络地址,代表整个网络;主机位全 1 是直接广播地址,发往目标网络内所有主机;255.255.255.255 是受限广播地址,只在本链路广播,路由器不转发。
- 私有地址(RFC 1918):10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 三段,可在内网自由使用但不保证全球唯一,公网路由器按约定不转发,出网必须经 NAT 转换(见 kp-016)。
- IP 与 MAC 的本质区别:IP 地址层次化、可按网络聚合,标识「你在网络的哪个位置」,随位置迁移而改变;MAC 地址平面化、全球唯一固化在网卡中,标识「你是谁」,跟随设备不变。跨网络通信时端到端靠 IP 定位,逐链路投递靠 MAC。
公式与模型
每个字节的二进制值按权展开:十进制值 = b7×128 + b6×64 + b5×32 + b4×16 + b3×8 + b2×4 + b1×2 + b0×1,其中 bi 取 0 或 1。反向换算用除 2 取余法:连续除以 2 并记下余数,把余数倒排即得 8 位二进制。
图示
32 位地址结构(以 192.168.1.10/24 为例)
11000000 . 10101000 . 00000001 . 00001010
|<------- 网络号 24 位 ------->|<- 主机号 8 位 ->|
192 168 1 10
子网掩码 11111111 . 11111111 . 11111111 . 00000000
= 255.255.255.0
IP 按位与掩码 = 网络地址 192.168.1.0
五类地址首字节分布
A 类 0xxxxxxx 1~126 超大机构(127 为环回段)
B 类 10xxxxxx 128~191 中型机构
C 类 110xxxxx 192~223 小型机构
D 类 1110xxxx 224~239 多播组
E 类 1111xxxx 240~255 保留实验原理与机制
分类编址的设计逻辑是「按机构体量发号」:巨型机构拿 A 类(约 1677 万主机),中型拿 B 类(6.5 万),小型拿 C 类(254)。子网掩码是硬件实现友好的切分手段:路由器把目的地址与掩码做按位与,一次运算就取出网络号用于查表,不需要任何复杂的解析。私有地址能工作的前提有两条:一是 RFC 1918 约定公网路由器不转发这些目的地址,二是边界网关做地址转换,把「全球唯一性」的重担从地址本身转移到端口号上。IP 与 MAC 的分工来自分层原则:IP 负责端到端寻址与路由聚合,使全球路由表可以按前缀收敛;MAC 负责单条链路内的帧投递,二者在每一跳同时存在、各司其职,这个分层是理解后续转发过程(kp-012)的地基。
实例分析
换算练习:把 11011100.01110010.00001010.10000001 转为点分十进制。逐字节按权展开:11011100 = 128+64+16+8+4 = 220;01110010 = 64+32+16+2 = 114;00001010 = 10;10000001 = 128+1 = 129,结果为 220.114.10.129。再做一次掩码运算:主机 192.168.1.5 配掩码 255.255.255.0,按位与得 192.168.1.0,说明它属于 192.168.1.0/24 网络;该网络的网络地址为 192.168.1.0,直接广播地址为 192.168.1.255,可用主机从 192.168.1.1 到 192.168.1.254 共 254 台。
常见误区
- 把 127.0.0.1 当成普通本机 IP:环回流量不经过物理网卡,与本机对外地址不等价。
- 看到 169.254.x.x 以为网络正常:它恰恰说明 DHCP 失败,只能同链路互访。
- 以为 IP 绑定设备:IP 绑定的是接口,一台路由器多个接口各配不同网段的地址。
- 混淆两类广播:255.255.255.255 只在本链路;主机位全 1 的直接广播可被路由到目标网络后再转为链路内广播。
自测题
- 将 11000000.10101000.00000001.00001010 转为点分十进制。
答案要点:各字节按权展开得 192、168、1、10,即 192.168.1.10。
- 判断 172.20.1.5 的类别、默认掩码与网络地址。
答案要点:首字节 172 落在 128~191 之间,为 B 类;默认掩码 255.255.0.0;网络地址 172.20.0.0,广播地址 172.20.255.255。
- 私有地址为什么不能直接出现在公网?
答案要点:它们不保证全球唯一,被无数内网重复使用;公网路由器按 RFC 1918 约定不转发这些目的地址,出网须经 NAT 转成公网地址。
- 受限广播地址与直接广播地址有何区别?
答案要点:255.255.255.255 只在本链路广播且路由器不转发;直接广播地址主机位全 1(如 192.168.1.255),报文可被路由到目标网络后再转发给全网主机。
- 笔记本从公司带到家里联网,MAC 与 IP 各变不变?为什么?
答案要点:MAC 不变,它是固化在网卡的平面标识、跟随设备;IP 通常改变,它是层次化的位置标识,随所处网络重新分配。
延伸阅读
- RFC 791《Internet Protocol》
- RFC 1918《Address Allocation for Private Internets》
- 谢希仁《计算机网络》
- W. Richard Stevens《TCP/IP 详解 卷 1:协议》