IP数据报:首部(固定长度20字节+可变长度)+数据
固定部分
- 版本:占四位,通信双方版本须一致,目前采用IPv4,以后IPv6。
- 首部长度:占四位,一个单位为32位字,占四字节。最小值为5(20字节,0101)最大值为15(60字节,1111)当长度不是四字节整数倍,利用填充字段填充。
- 分区服务:占八位。
- 总长度:16位,2^16-1=65535字节,但由于数据链路层最大传送单元MTU的存在,一般不超过1500字节。否则分片处理。分片后的数据报总长度字段,指的是分片后的总长度。不是原数据报的总长度。
- 标识:16位,每发送一个数据报,标识加1,但标识不是为了建立顺序(IP数据报无连接,不按序接受)分片后,同一数据报标识不变,方便接收端识别。
- 标志:占三位,两位有意义。最低位MF=1则还有分片数据报,MF=0表示为最后一个分片。DF=0才允许分片。
- 片偏移:注意首尾部分的字节数字。
- 生存时间:TTL,跳数,经过路由器的数量。每经过一个TTL减1.
- 协议:8位,表明所携带数据是何种协议。
- 首部检验和:16位,每转发一次都要检验首部,更新首部。
- 原地址,目的地址。各占32位。
可变部分
用于排错及测量。
分组转发
步骤如下:
- 首部提取目的主机IP地址d,得出目的网络地址n
- 查找n,直接交付。
- 特定主机路由
- 查找n
- 默认路由
- 报错