IPv4 与 IPv6 原理深度解析
Internet Protocol (IP) 是现代互联网的基石。本站旨在提供从历史演进到底层字节结构的完整技术图谱。
IP 协议发展简史
为什么要发明 IP?在 20 世纪 70 年代,存在各种互不兼容的网络(卫星网、无线电网、有线网)。IP 的设计初衷就是为了“互联(Inter-networking)”这些异构网络。
TCP/IP 的诞生
Vint Cerf 和 Bob Kahn 发表了著名的论文《A Protocol for Packet Network Intercommunication》。他们提出了核心概念:网络不应保证可靠性,可靠性应由端到端(主机)负责。这奠定了 IP "尽力而为(Best Effort)" 的设计哲学。
Flag Day
ARPANET 正式将核心协议从 NCP 切换到 TCP/IP。这一天被认为是现代互联网的诞生日。IPv4 (RFC 791) 开始统治世界。
地址危机与 CIDR
互联网爆炸式增长,A/B/C 类地址分类法导致严重的地址浪费。IETF 引入了 CIDR (无类别域间路由) 和 NAT 技术,为 IPv4 续命。
IPv6 标准化
IANA 宣布 IPv4 顶级地址池耗尽。IPv6 (RFC 8200) 成为互联网标准,彻底解决了地址枯竭问题,并优化了包头处理效率。
TCP/IP 协议栈定位
理解 IP 的第一步是明确它在 OSI 模型或 TCP/IP 模型中的位置。IP 位于网络层 (Layer 3),负责点对点的逻辑寻址和路由。
封装逻辑: 当你发送一个 HTTP 请求时,数据层层向下包裹。IP 协议给 TCP 段加上 IP 头(包含源/目的 IP),使其能在复杂的路由网格中找到路径。
IPv4 vs IPv6:底层逻辑重构
IPv6 不仅仅是地址加长(从 32 位到 128 位),更是一次对数据平面处理逻辑的彻底重构。
| 特性机制 | IPv4 逻辑 | IPv6 变革逻辑 |
|---|---|---|
| 报文头结构 | 变长 20-60字节。包含 Options 字段,路由器处理慢。 | 定长 40字节。移除 Options(改为扩展头),移除 Checksum,硬件转发效率极高。 |
| 分片 (Fragmentation) | 路径上的路由器如果发现包大于 MTU,可以进行分片。 | 路由器不再分片。仅源主机可分片。如果包太大,路由器直接丢弃并回传 ICMPv6 Packet Too Big,强迫源端使用 PMTU 发现机制。 |
| 地址解析 | 使用 ARP (广播)。存在广播风暴,不仅消耗带宽,还打断局域网所有主机的 CPU。 | 使用 NDP (邻居发现协议)。基于 ICMPv6 和被请求节点组播地址。仅相关主机收到解析请求,不仅高效而且更安全。 |
| 生存时间 | TTL (Time To Live),单位理论上是秒,实际作为跳数。 | Hop Limit (跳数限制)。名称更准确地反映了其用途:防止路由环路。 |
开发者视角:Socket 编程适配
对于后端工程师,从 IPv4 迁移到 IPv6 意味着数据结构的变更。不要硬编码 AF_INET,应拥抱 getaddrinfo 自动适配。