当前位置:文档之家› IP数据包格式简介

IP数据包格式简介

IP 数据包格式
IP 数据包是网络传输的信封,它说明了数据发送的源地址和目的地址,以及数据传输状态。

一个完整的数据包由首部和数据两部分组成。

首部前20字节属于固定长度,是所有IP 数据包必须有的,后面是可选字段,其长度可变,首部后面是数据包携带的数据,见图5.3.1。

48
16
19
31
版本号
标志
生存时间

议标

服务类型数据包总长度
段偏移首




源地址目
的地址可
选字段+ 填
充位首部长度

据部



首部首部
IP 数据包
发送
图5.3.1 IP 数据包格式
1. 版本号(4bit )
版本号占4位,是IP 协议所使用的版本号,目前是广泛使用的是第四版本,即IPv4。

2. 首部长度(4bit )
首部长度用于指出IP 包头长度,用于标识数据包头在何处结束,所携带的数据在何处开始。

首部长度占四位,数值范围5~15,以4字节为单位,则IP 首部长度为20字节~60字节。

如假设首部长度取值“1010”,转换为十进制为“10”,表示IP 包头长度为10×4=40字节,数据从第41字节开始。

3. 服务类型(8bit )
服务类型用于获得更好服务,大多数情况下并不使用。

当网络流量较大时,路由器会根据不同数据包服务类型取值决定哪些先发送,哪些后发送,见图5.3.2。

D 优先级T R C 未用
0 1 2
3 4 5
6 7
图5.3.2 服务类型格式
(1)前3个bit 表示优先级,取值范围0~7共8个优先级,数值越低优先级越高。

(2)后四位是服务类型子字段,用于标识QOS 质量服务。

D :表示要求更低时延 T :表示要求更多吞吐量 R :表示要求更多可靠性 C :表示要求更小路径开销
注:DTRC 默认4位值都为0,表示一般服务;
DTRC只能1为设为1,如T为1,其余三位只能为0。

(3)最后1位尚未使用
4. 数据包总长度(16bit)
数据包总长度用于标识整个数据包(包含包头和数据)的总长度,结合首部长度可以计算出数据包所携带数据的起始地址和长度。

数据包总长度占16bit,最大取值为16个“1”,以字节为单位,因此数据包最大长度为655351字节。

但由于与以太网(局域网)允许的最大包长为1500字节,当超过网络允许的最大长度时需将过长的数据包分片。

5. 标识(16bit)
标识占16bit,用于数据包在分片重组时标识其序列号。

网络层将数据分片打包后,由于数据包会沿着不同路径在网络中投递,抵达接收方会存在乱序现象。

解决方法是将数据包贴上标识,抵达目的地再根据序号重组还原成数据。

6. 标志(3bit)
标志用于表示数据包分片信息,见图5.3.3。

0 1 2
MF DF未用
图 5.3.3 标志格式
(1)MF:更多数据包(More Fragment)。

MF=1表示后面还有分片的数据包;MF=0表示没有更多分片,本数据包是最后一个分片。

(2)DF:不分段(Do Not Fragment),DF=1表示该数据包不能被分片,DF=0表示该数据包可以被分片。

(3)最后1位尚未使用
7. 段偏移(13 bit)
段偏移用于标识本片数据在初始数据报文中的偏移量,占13位,偏移单位为8字节。

当较长的数据分片后,其中原数据的相对位置。

8. 生存时间(8 bit)
生存时间TTL(Time To Live)占8位。

TTL初始值由操作系统设置,数据包每经一个路由器转发其值减一,减至0时被丢弃,避免数据包在找不到目的地时不断被转发,堵塞网络带宽。

9. 协议(8 bit)
协议字段用于标识数据包所使用的传输协议,如TCP协议还是UDP协议。

目的主机收到数据包后会根据协议字段值交付上层相应协议处理。

10. 首部校验和(16 bit)
首部校验和只对IP数据包首部进行校验,不包含数据部分。

数据包每经过一个中间节点投递都要重新计算首部校验和,对首部进行校验。

11. 源地址(4 Byte)
源地址用于标识发送主机的IP地址。

由于IP地址长度为32位,因此源地址段占4字节。

12. 目的地址
目的地址用于标识接收主机的IP地址。

1“1111111111111111”共16个“1”转换为十进制为65535。

13. 选项字段和填充(40 bit)
有时需要在选项字段填充额外的“0”以保证 IP包头长度是32位的整数倍。

选项字段很少使用,并非所有主机和路由器都支持可选项,这里不做介绍。

相关主题