ip报文
时间: 2025-06-18 11:12:05 浏览: 14
### IP报文结构及组成
IP报文是互联网通信中的基本单元,其结构由多个字段组成,这些字段共同定义了数据在网络中的传输方式。以下是IP报文的主要组成部分及其功能:
#### 1. 版本 (Version)
该字段占用4位,表示当前使用的IP协议版本。对于IPv4而言,此字段固定为`0100`[^3]。
#### 2. 首部长度 (Header Length, HLEN)
同样占据4位,用来描述IP首部的长度(以32比特为单位)。由于标准IP首部长为20字节,因此默认值通常设置为`0101`二进制形式,即5个32比特组[^3]。
#### 3. 服务类型 (Type of Service, TOS)
这是一个8位字段,用于指定服务质量参数,比如优先级、延迟需求等。它帮助路由器决定如何处理特定的数据包。
#### 4. 总长度 (Total Length)
这个16位字段指明整个IP数据报的大小,包括头部和负载部分,单位是以字节数计量。最大可能值接近于65KB[^3]。
#### 5. 标识符 (Identification)
另一个16位域,主要用于分片重组过程中识别属于同一个原始数据报的不同片段。
#### 6. 标志与偏移量 (Flags and Fragment Offset)
这部分共占用了3位作为标记以及后续13位来记录碎片相对于原消息起始位置的位置信息。当DF(Don't Fragment)被置一时,则不允许对该数据包执行任何分割操作;MF(More Fragments)则指示还有更多跟随而来的片段存在[^3]。
#### 7. 生存时间 (Time To Live, TTL)
每经过一个路由节点时减去一定数值直至达到零为止从而防止循环转发无限期持续下去的情况发生。初始设定依据应用层协议不同有所差异[^3]。
#### 8. 协议编号 (Protocol Number)
表明载荷所遵循的具体高层协议种类,例如TCP对应的是6,UDP则是17等等[^3]。
#### 9. 头部校验和 (Header Checksum)
为了检测接收端收到的信息是否完好无损,在发送前会基于所有其他字段计算得出的一个简单奇偶检验码,并将其存储在此处以便验证准确性。
#### 10. 源地址(Source Address) 和目标地址(Destination Address)
各需四个八位组分别代表发起请求设备自身的公网身份编码以及期望抵达终点机器对应的唯一标识号码[^3]。
```c
typedef struct _iphdr{
unsigned char h_lenver; // 4位IP版本号+4位首部长度
unsigned char tos; // 8位服务类型TOS
unsigned short total_len; // 16位IP包总长度(字节)
unsigned short ident; // 16位标识,用于辅助IP包的拆装
unsigned short frag_and_flags;// 3位标志位+13位偏移位,也是用于IP包的拆装
unsigned char ttl; // 8位IP包生存时间TTL
unsigned char proto; // 8位协议(TCP,UDP或其他)
unsigned short checksum; // 16位IP首部校验和
unsigned int sourceIP; // 32位源IP地址
unsigned int destIP; // 32位目的IP地址
}IP_HEADER;
```
以上便是典型的IPv4数据包包头格式说明。
阅读全文
相关推荐















