下图显示了IPv4的数据报格式。
用 C++ 语言定义它的源代码如下:
typedef struct ip_hdr // 定义 IP 首部
{
// 第一个32比特
unsigned char h_verlen; // 4 位首部长度,4 位 IP版本号
unsigned char tos; // 8 位服务类型 TOS
unsigned short total_len; // 16 位总长度(字节)
// 第二个32比特
unsigned short ident; // 16 位标识
unsigned short frag_and_flags; // 3 位标识位 + 13 比特片偏移
// 第三个32比特
unsigned char ttl; // 8 位生存时间 ttl
unsigned char proto; // 8 位协议(TCP、UDP 或其他)
unsigned short checksum; // 16 位 IP 首部校验和
// 第四个32比特
unsigned int sourceIP; // 32 位源 IP 地址
// 第五个32比特
unsigned int destIP; // 32 位目的 IP 地址
} IPHEADER;