<div style="text-indent: 2em;"><p>下图显示了IPv4的数据报格式。</p><p><span class="Apple-style-span" style="background-color: rgb(255, 255, 255); "><img onload="ResizeImage(this,520)" src="https://raw.githubusercontent.com/Jeff-Tian/blogengine.net/master/Source/BlogEngine/BlogEngine.NET/App_Data/files/image_390.png" alt="" title=""></span></p><p>用 C++ 语言定义它的源代码如下:</p>
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;