1. 数据报(Datagram)格式:
2. 长度字段
(1)首部长度字段,HLEN,4 bits
- 以 4 字节(即32bits)为单位
- 取值:5~15(即首部长度为20 ~ 60 bytes)
(2)总长度字段,Total length, 16 bits
- 以字节单位
- 首部长度(即 4 * HLEN)+ 数据长度
备注:IP分组的最大长度是多少 ?
解答:65535
3. 服务类型字段(Service type)
(1)Type of Service(TOS),8 bits
- 该分组所期望的服务质量
4. 分片控制字段
(1)标识字段,Identification,16 bits
- 源站每发送一个分组,标识值+1
- (源IP地址,标识) ---> 全网唯一分组标识
(2)标志字段,Flags, 3 bits
(3)片偏移字段,Fragmentation offset, 13 bits
- 以 8 bytes 为单位
备注:IP数据报为什么需要被分片?
解答:物理网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU。IP把MTU与数据报长度进行比较,如果需要则进行分片。
( 最大传输单元(Maximum Transmission Unit:MTU):是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。)
5. 生存时间字段
Time to Live(TTL),8 bits
- 分组寿命:防止路由成环时,IP被无限次转发
- 取值:分组传输时间+路由器转发处理时间 ---> 困难
- 实际:源和目的之间的路由器个数(跳数)
- 路由器转发时将 TTL值减1 ,TTL值为零时丢弃该分组
6. 协议字段
Protocol, 8 bits
协议字段指出此数据携带的数据是使用哪种协议的,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
使用IP服务的高层协议
7. 校验和 字段
(1)Checksum, 16 bits
差错检测
(2)只校验首部,数据部分由高层协议校验
- 无须重复校验数据部分
- 缩短了路由器转发分组时的处理时间
8. IP分组封装
(1)直接封装在数据链路帧中
例如:Ethernet帧
IP分组实例:
9. IP分组的处理:
(1)合法性处理
- 版本
- 长度
- TTL
- Protocol
- Checksum
- IP地址
(2)分片操作
(3)重组操作
(4)选项处理