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 位 标识符。
分类编址 重点
结构:
{<网络号>, <主机号>}
类 范围 (首字节) 网络号 / 主机号 最大网络数 / 主机数 A 1~126 8 / 24 bit 126 / 16,777,214 B 128~191 16 / 16 bit 16,384 / 65,534 C 192~223 24 / 8 bit 2,097,152 / 254 D 224~239 多播地址 - E 240~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 时,必须进行分片。
首部相关字段 重点
- 标识 (Identification):同一数据报的所有分片标识符相同。
- 标志 (Flags):
- DF (Don’t Fragment):1 表示禁止分片。
- MF (More Fragment):1 表示后面还有分片,0 表示最后一片。
- 片偏移 (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
争议
指向原始笔记的链接
- 违反了 端到端原则(网络层本应只负责转发,不应修改端口)。
- 增加了路由器的处理负担。