3.3 KiB
3.3 KiB
1、IPv4数据报格式
2、version
- 4个比特构成
- 表示IP首部的版本号
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 显式拥塞通告
5、总长度 Total Length
- 首部+数据部分总长度
- 长为16比特
- IP包的最大长度为65535字节,2^16
6、标识 ID:Identification
- 16比特构成
- 用于分片重组
- 同意分片的标识值相同
- 每发送一个IP包,数值自增
- ID相同,如果目标地址源地址或协议不同的话,也是不同的分片
7、标志 Flags
- 3比特构成
- 表示包被分片的相关信息
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比特构成
- 表示包内数据使用的是哪一个协议
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首部中所有二进制整数在网络中传输都要求大端序,因此又称作网络字节序
- 以其他形式存储二进制整数的机器,必须在传输数据之前把首部转换成网络字节序