Skip to content

IP 协议

IP 协议 的核心任务是:根据数据包的目的地址,将数据从源主机跨越多个网络,“路由”到目标主机。它定义了数据包的格式(IP 数据报)以及寻址规则。

1. IP 协议的核心特点

  • 无连接 (Connectionless):IP 协议在发送数据前不需要建立连接。每个数据包(数据报)都是独立发送的,路径可能不同。
  • 不可靠 (Best-effort Delivery):IP 协议提供的是“尽力而为”的交付。它不保证数据包一定到达,也不保证按序到达,更不处理重复或损坏。
    • 注:可靠性由上一层的 TCP 协议来保障。
  • 点对点 (Point-to-Point):IP 协议负责主机到主机的通信。
  • 媒体无关性:无论底层是光纤、Wi-Fi 还是电缆,IP 协议都能运行。

2. IPv4 vs. IPv6 对比表

随着互联网设备的爆发式增长,传统的 IPv4 地址已经耗尽,IPv6 正在全面普及。

特性IPv4IPv6
地址长度32 位 (4 字节)128 位 (16 字节)
地址数量约 43 亿个 ($2^{32}$)约 $3.4 \times 10^{38}$ 个 ($2^{128}$)
表示格式点分十进制 (如 192.168.1.1)冒号十六进制 (如 2001:0db8:85a3...)
首部长度可变长度 (20 ~ 60 字节)固定长度 (40 字节),解析效率更高
安全性可选 (需额外支持 IPsec)内置支持 IPsec
配置方式依赖 DHCP 或手动配置支持无状态自动配置 (SLAAC)

3. IP 数据报首部结构 (以 IPv4 为例)

每一份在互联网上传输的数据,前面都贴着一张“IP 首部”标签:

  • 版本 (4位):指明是 IPv4 还是 IPv6。
  • 首部长度 (4位):告诉接收方首部在哪里结束,数据从哪里开始。
  • 生存时间 (TTL, 8位)极其重要! 数据包每经过一个路由器,TTL 就减 1。当 TTL 降为 0 时,数据包被丢弃。这防止了数据包在网络中由于路由环路而无限循环。
  • 协议 (8位):指明上一层使用的是什么协议(如 6 代表 TCP,17 代表 UDP,1 代表 ICMP)。
  • 源 IP 地址 (32位):发件人地址。
  • 目的 IP 地址 (32位):收件人地址。

4. IP 协议的核心机制

4.1 分片与重组 (Fragmentation & Reassembly)

由于不同的网络链路有不同的 MTU (最大传输单元),如果 IP 数据包太大超过了链路限制,路由器会将其切成碎片发送。只有到达最终目的地的主机才会负责将这些碎片拼回去。

4.2 路由选择 (Routing)

IP 协议通过查询“路由表”来决定下一个“跳”(Next Hop)去哪里。它不关心全程路径,只关心下一站是谁。

5. 常见问题 (FAQ)

5.1 IP 协议既然不可靠,为什么还要用它?

  • 答:为了效率和灵活性。 网络层的任务就是快速转发数据。如果把重传、排序等复杂逻辑都放在这一层,路由器的负担会太重,导致全网变慢。复杂的逻辑交给端点(主机)的 TCP 层去处理,实现了“简单网络,复杂终端”的优秀设计理念。

5.2 IP 地址和 MAC 地址有什么区别?

  • IP 地址 (逻辑地址):像你的“收货地址”(如 某省某市某街道)。它是动态分配的,决定了你在网络中的逻辑位置,用于跨网络定位。
  • MAC 地址 (物理地址):像你的“身份证号”。它是固化在网卡里的,全球唯一。它负责在同一个局域网内找到对应的硬件设备。
  • 联系: ARP 协议 负责通过 IP 地址找到对应的 MAC 地址。

5.3 什么是私有 IP 和公有 IP?

  • 公有 IP:全球唯一,可以直接在互联网上被访问。
  • 私有 IP:用于家庭、公司内部局域网(如 192.168.x.x)。它们在互联网上不可见。通过 NAT (网络地址转换) 技术,多个私有 IP 可以共享一个公有 IP 来上网。

5.4 什么是静态 IP 和动态 IP?

  • 静态 IP:固定不变的地址,通常给服务器使用,方便别人访问。
  • 动态 IP:每次上网时通过 DHCP 协议 临时分配的地址,资源利用率更高,适合普通家用电脑和手机。

5.5 如果 TTL 设得太小会怎样?

  • 数据包可能还没到达目的地,就在半路因为 TTL 耗尽而被路由器丢弃。你会收到一个 ICMP Time Exceeded 的报错信息。