IPv4 是互联网的核心协议,提供不可靠、无连接、尽最大努力交付的数据报服务。

IPv4 分组格式 重点

  • 一个 IP 数据报由 首部数据 两部分组成。
  • 固定首部 (20 字节)
    • 版本 (4 bit):IPv4 为 4。
    • 首部长度 (4 bit):以 4 字节为单位,最大 60 字节。
    • 总长度 (16 bit):首部 + 数据,最大 65535 字节。
    • 标识、标志、片偏移:用于 IP分片与重装
    • 生存时间 (TTL) (8 bit):最大跳数,每过一个路由器减 1,减为 0 丢弃。
    • 协议 (8 bit):指示交给哪个传输层协议 (TCP=6, UDP=17)。
    • 首部校验和 (16 bit):仅校验首部。
    • 源地址、目的地址 (各 32 bit)。

IPv4地址

IPv4 地址是分配给每个连接在互联网上的主机或路由器接口的 32 位 标识符。

分类编址 重点

结构:{<网络号>, <主机号>}

范围 (首字节)网络号 / 主机号最大网络数 / 主机数
A1~1268 / 24 bit126 / 16,777,214
B128~19116 / 16 bit16,384 / 65,534
C192~22324 / 8 bit2,097,152 / 254
D224~239多播地址-
E240~255保留实验-
  • 特殊地址
    • 127.0.0.1:本地环回 (Loopback)。
    • 0.0.0.0:本网络上的本主机。
    • 255.255.255.255:受限广播地址。

重要特点

  • 分等级:方便管理,减小路由表。
  • 接口属性:一个主机连接两个网络(多归属)有两个 IP 地址;路由器每个接口都有不同网络号的 IP。
指向原始笔记的链接

子网划分与CIDR

子网划分 (Subnetting) 重点

  • 思路:从主机号“借用”若干位作为 子网号
  • 结构{<网络号>, <子网号>, <主机号>}
  • 子网掩码 (Subnet Mask)
    • 将 IP 地址与掩码进行 按位与 (AND) 运算得出网络地址。
    • A 类默认掩码:255.0.0.0
    • B 类默认掩码:255.255.0.0
    • C 类默认掩码:255.255.255.0

无分类编址 (CIDR) 重点

  • 消除类别:不再区分 A/B/C 类。
  • 网络前缀:使用斜线记法,如 128.14.32.0/20 表示前缀占 20 位。
  • 路由聚合 (Route Aggregation)
    • 将多个网络合并为一个较大的 超网 (Supernet)
    • 优点:减少路由表项。
  • 最长前缀匹配:查找路由表时,若有多个匹配项,选择前缀最长(最具体)的。

地址块计算示例

  • /20 地址块有 个地址。
  • 起始地址主机号全 0,最后地址主机号全 1。
指向原始笔记的链接

IP分片与重装

由于不同链路层协议规定的 最大传输单元 (MTU) 不同,当 IP 数据报长度超过 MTU 时,必须进行分片。

首部相关字段 重点

  1. 标识 (Identification):同一数据报的所有分片标识符相同。
  2. 标志 (Flags)
    • DF (Don’t Fragment):1 表示禁止分片。
    • MF (More Fragment):1 表示后面还有分片,0 表示最后一片。
  3. 片偏移 (Fragment Offset):以 8 字节 为单位,表示该片在原分组中的相对位置。

重装

  • 分片的重装仅在 目的主机 进行,中间路由器不重装。
  • 优点:减轻中间路由器的负担。
  • 缺点:丢失一个片会导致整个数据报重传。
指向原始笔记的链接

NAT

  • 解决 IPv4 地址短缺问题。
  • 本地网络内部可以使用私有 IP 地址,对外只占用一个公网 IP。
  • 增强内部网络安全性(外部无法直接访问内部主机)。

实现原理

  • NAT 转换表:记录 {私有IP:端口, 公网IP:端口} 的映射对。
  • 出站:路由器替换源地址和源端口。
  • 入站:路由器根据转换表还原目的地址和目的端口。

私有地址范围

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

争议

  • 违反了 端到端原则(网络层本应只负责转发,不应修改端口)。
  • 增加了路由器的处理负担。
指向原始笔记的链接