IPv4 分组(数据报)

分组格式

字段说明
版本IP 协议版本号(IPv4 = 4)
首部长度4B 为单位,最小 5(20B),最大 15(60B)
总长度首部 + 数据,最大 65535B
标识同一数据报的分片具有相同标识
标志(3 位)MF(More Fragment)、DF(Don’t Fragment)、保留位
片偏移8B 为单位,表示分片在原始数据报中的位置
TTL生存时间,每经过一个路由器减 1
协议标识上层协议(TCP=6, UDP=17)
首部校验和只校验首部,不校验数据部分
源地址发送方 IPv4 地址(32 位)
目的地址接收方 IPv4 地址(32 位)

关键标志位

  • MF = 1:表示后面还有分片(最后一片 MF = 0)
  • DF = 0:数据报可以被分片;DF = 1 时不可分片,超长则丢弃

分片与重组

  • MTU(最大传输单元):以太网 1500B,广域网 576B
  • 分片在目的主机重组,不在路由器重组
  • 片偏移计算:数据起始位置 / 8

IPv4 地址

地址结构

IP 地址 = {<网络号>, <主机号>}

地址分类

类别第一个字节范围网络号位数主机号位数最大网络数每个网络最大主机数
A 类1-12682412616,777,214
B 类128-191161616,38465,534
C 类192-2232482,097,152254
D 类224-239组播地址---
E 类240-255保留---

特殊 IP 地址

地址含义
主机号全 0网络本身(如 192.168.1.0)
主机号全 1广播地址(如 192.168.1.255)
127.x.x.x环回自检地址(Loopback),不进入网络
0.0.0.0本网络上的本主机
255.255.255.255受限广播地址(整个 TCP/IP 网络)

网络地址转换 NAT

将私有 IP 地址转换为公有 IP 地址,工作在传输层(需要查看端口号)。

私有 IP 地址网段

类别网段范围数量
A 类10.0.0.0 ~ 10.255.255.2551 个
B 类172.16.0.0 ~ 172.31.255.25516 个
C 类192.168.0.0 ~ 192.168.255.255256 个

使用私有 IP 的互联网称为专用互联网或本地互联网。

子网划分与 CIDR

子网划分

IP 地址 = {<网络号>, <子网号>, <主机号>}

通过借用主机号的若干位作为子网号,将一个大网络划分为多个子网。

子网掩码

与 IP 地址进行按位与运算得到网络地址。

  • 子网掩码中连续 1 对应网络位,连续 0 对应主机位

无类别域间路由 CIDR

IP 地址 = {<网络前缀>, <主机号>}

  • 使用斜线记法(如 192.168.1.0/24)
  • 路由聚合:多个子网聚合成一个超网
  • 最长前缀匹配:转发时选择最具体的路由项

网络层转发分组

直接交付

发送站和目的站在同一物理网络上,直接交付。

间接交付

发送站和目的站不在同一网络,需要通过路由器转发。

转发过程

  1. 提取目的 IP 地址,计算网络地址
  2. 查找路由表匹配
  3. 通过 ARP 将下一跳 IP 地址转换为 MAC 地址
  4. 将 MAC 地址放入 MAC 帧首部,通过物理网络发送

注意:不同网络间传送时,MAC 帧的源地址和目的地址会发生变化。

网络层协议

ARP(地址解析协议)

  • 网络层协议
  • 功能:根据 IP 地址查询对应的 MAC 地址
  • 工作范围:同一局域网内

DHCP(动态主机配置协议)

  • 应用层协议,基于 UDP
  • 采用 C/S 模型
  • 功能:动态为主机分配 IP 地址、子网掩码、默认网关、DNS 服务器
  • 提供报文包含 IP 地址、租用期等信息

ICMP(网际控制报文协议)

  • 网络层协议
  • 目的:提高 IP 数据报交付成功的机会

ICMP 差错报告报文

类型说明
终点不可达路由器无法交付分组
源点抑制拥塞导致分组丢弃
时间超过TTL 减为 0
参数问题分组首部有错误
改变路由(重定向)通知主机更优路由

ICMP 询问报文

类型说明
回送请求和回答ping 命令
时间戳请求和回答时间同步
掩码地址请求和回答获取子网掩码
路由器询问和通告发现附近路由器