### 1、IPv4数据报格式

![image-20230709145705180](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709145705180.png)

### 2、version

- 4个比特构成
- 表示IP首部的版本号

![image-20230709145940327](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709145940327.png)

### 3、首部长度 IHL

- Internet Header Length
- 4比特构成
- 表示IP首部的大小
- 单位为4字节（32比特）
- 没有可选项，没有数据的IP数据报，首部长度字段为5，也就是首部真实数据长度为20字节

### 4、区分服务 TOS

- Type Of Service
- 8比特构成
- 表明服务质量
- 通常有应用指定
- 有人提出将TOS字段划分为 DSCP和ECN两个字段
  - DSCP Differential Services Codepoint 差分服务代码点
  - Explicit Congestion Notification 显式拥塞通告

![image-20230709150354408](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709150354408.png)

### 5、总长度 Total Length

- 首部+数据部分总长度
- 长为16比特
- IP包的最大长度为65535字节，2^16

### 6、标识 ID:Identification

- 16比特构成
- 用于分片重组
- 同意分片的标识值相同
- 每发送一个IP包，数值自增
- ID相同，如果目标地址源地址或协议不同的话，也是不同的分片

###  7、标志 Flags

- 3比特构成
- 表示包被分片的相关信息

![image-20230709151237049](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151237049.png)

### 8、片便宜 FO Frament Offset

- 13比特构成
- 用来标识被分片的每个分段相对于原始数据的位置
- 第一个分片该字段为0
- 对多可以表示8192个相对位置
- 单位为8字节
- 最大可表示原始数据 8 * 8192 = 65536字节的位置

### 9、生存时间 TTL Time To Life

- 8比特构成
- 中转多少个路由器的意思
- 每经过一个路由器，TTL自动减少1
- 对多中转次数不会超过256次，可以避免IP包在网络内无限传递
- 变成0时，该包被丢弃

### 10、协议编号 Protocol

- 8比特构成
- 表示包内数据使用的是哪一个协议

![image-20230709151906055](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151906055.png)

![image-20230709151917758](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709151917758.png)

### 11、首部校验和 Header Checksum

- 16比特构成
- 只用于校验首部，不校验数据部分
- 首部校验和计算方式 TODO

### 12、可选项 Options

- 长度可变
- 包含以下信息
  - 安全级别
  - 源路径
  - 路径记录
  - 时间戳

### 13、填充 Padding

- 在有可选项的情况下，首部长度可能不是32比特的整数倍
- 向字段填充0，调整为32比特的整数倍



### 14、网络字节序

- 大端序：4个字节的32bit用下面的次序传输
  - 首先是0-7bit
  - 其次8-15bit
  - 然后16-23bit
  - 最后24-31bit
- TCP/IP首部中所有二进制整数在网络中传输都要求大端序，因此又称作网络字节序
- 以其他形式存储二进制整数的机器，必须在传输数据之前把首部转换成网络字节序

### 15、特殊IP地址

![image-20230716172604785](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230716172604785.png)