文章目录
版本(Version)
- 占4位
- 数据报的IP协议版本
- 不同的IP版本使用不同的数据报格式
- 通过查看版本号,路由器能够确定如何解释IP数据报的剩余部分
- 0100=4 即:IPv4
- 0110=6 即:IPv6
首部长度(Header Length)
- 占4位,步长4B
- 最小值 0101=5, 即:5 * 4B = 20B
- 最大值1111=15, 即:15 * 4B = 60B
- 有可选项时,若首部长度不是4B的整数倍,必须利用最后的填充字段加以填充
服务类型(Type of Service, ToS)
- 占8位
- 指定特殊数据报的处理方式
总长度(Total Length)
- 占16位,单位:字节
- 首部长度 + 数据长度
- 理论最大长度:216-1 = 65535B
标识(Identifier)
- 占16位
- 标识(Identifier)、标记(Flag)、片偏移(Fragment Offset) 这三个字段 用于数据报的分片
标识如何产生?
标记(Flag)
- 占3位
未定义 | DF | MF |
---|---|---|
此位未定义作用 | DF=0 可以分片 DF=1 不能对数据报进行分片 | MF=0 此分片是最后一个分片 MF=1 不是最后一个分片 |
片偏移(Fragment Offset)
- 占13位,步长8B
- 某片在原数据报的相对位置,用于指明分片的起始点相对于报头起始点的偏移量
生存时间(Time To Live,TTL)
- 占8位
- 最多可经过的三层设备(如:路由器)的数量
- 为避免环路导致网络拥塞,数据报每经过一台三层设备,TTL值减1,然后判断TTL值是否为0,若为0,则丢弃数据报。
协议(Protocol)
- 占8位
- 表明数据报的数据部分应该交给哪一个上层协议
1 | 2 | 6 | 17 | 89 |
---|---|---|---|---|
ICMP | IGMP | TCP | UDP | OSPF |
首部检验和(Header Checksum)
- 占16位
- 帮助路由器检测收到的数据报中的比特错误。只检验首部,因为TCP、UDP等都有各自的检验和
- 由于每台路由器都会减少TTL值,所以每台路由器都必须重新计算检验和
源地址(Source Address)
- 占32位,4B
目的地址(Destination Address)
- 占32位,4B
可选项(Options)
- 允许IPv4数据报首部被扩展
- 很少使用,主要用于测试
- 常用的可选项如下:
- 松散路由选择(Loose Source Routing)
- 严格路由选择(Strict Source Routing)
- 记录路由(Record Route)
记录自己到过哪里
- 时间戳(TimeStamp)
记录到达的时间
参考资料
- 《TCP/IP路由技术》
- 《计算机网络-自顶向下方法》