IP报文格式

IP报文格式

报文格式

图1 IP头格式

字段 长度 含义
Version 4比特 * 4:表示为IPV4; * 6:表示为IPV6。
IHL 4比特 首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位。
Type of Service 8比特 服务类型。只有在有QoS差分服务要求时这个字段才起作用。
Total Length 16比特 总长度,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
Identification 16比特 标识,主机每发一个报文,加1,分片重组时会用到该字段。
Flags 3比特 标志位: 图2IP Flag字段格式 * Bit 0: 保留位,必须为0。 * Bit 1: DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。 * Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。
Fragment Offset 12比特 片偏移:分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
Time to Live 8比特 生存时间:可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
Protocol 8比特 协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。 常见值: * 0: 保留Reserved * 1: ICMP, Internet Control Message [RFC792] * 2: IGMP, Internet Group Management [RFC1112] * 3: GGP, Gateway-to-Gateway [RFC823] * 4: IP in IP (encapsulation) [RFC2003] * 6: TCP Transmission Control Protocol [RFC793] * 17: UDP User Datagram Protocol [RFC768] * 20: HMP Host Monitoring Protocol [RFC 869] * 27: RDP Reliable Data Protocol [ RFC908 ] * 46: RSVP (Reservation Protocol) * 47: GRE (General Routing Encapsulation) * 50: ESP Encap Security Payload [RFC2406] * 51: AH (Authentication Header) [RFC2402] * 54: NARP (NBMA Address Resolution Protocol) [RFC1735] * 58: IPv6-ICMP (ICMP for IPv6) [RFC1883] * 59: IPv6-NoNxt (No Next Header for IPv6) [RFC1883] * 60: IPv6-Opts (Destination Options for IPv6) [RFC1883] * 89: OSPF (OSPF Version 2) [RFC 1583] * 112: VRRP (Virtual Router Redundancy Protocol) [RFC3768] * 115: L2TP (Layer Two Tunneling Protocol) * 124: ISIS over IPv4 * 126: CRTP (Combat Radio Transport Protocol) * 127: CRUDP (Combat Radio User Protocol) * 132: SCTP (Stream Control Transmission Protocol) * 136: UDPLite [RFC 3828] * 137: MPLS-in-IP [RFC 4023]
Header Checksum 16比特 首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
Source Address 32比特 源IP地址。
Destination Address 32比特 目的IP地址。
Options 可变 选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
Padding 可变 填充字段,全填0。
[表1IP头字段解释]
CLASS NUMBER 长度 含义
0 0 - Code为0代表了选项列表的结束,放在所有选项链表的后面,用来补字节对齐。 该选项无长度字段,占一个字节。
0 1 - 表示无操作的选项。用在各种选项之间,占一个字节。用于填充4字节对齐。
0 2 11字节 表示安全和处理限制的选项。 该选项提供一种主机可以发送安全、分隔、处理限制及TCC(关闭使用组)的参数功能。 * **Type=130(10000010):**占1字节,code 的值此处设为130 * **length=11:**占1字节,长度选项固定为11,表示该选项的长度为11字节 * **SSS:**占2字节,表示安全域,下面列出了16种不同的安全标准,其中8个至今还没使用,预留将来使用,列表如下: 00000000 00000000 - Unclassified 11110001 00110101 - Confidential 01111000 10011010 - EFTO 10111100 01001101 - MMMM 01011110 00100110 - PROG 10101111 00010011 - Restricted 11010111 10001000 - Secret 01101011 11000101 - Top Secret 00110101 11100010 - (Reserved for future use) 10011010 11110001 - (Reserved for future use) 01001101 01111000 - (Reserved for future use) 00100100 10111101 - (Reserved for future use) 00010011 01011110 - (Reserved for future use) 10001001 10101111 - (Reserved for future use) 11000100 11010110 - (Reserved for future use) 11100010 01101011 - (Reserved for future use) * **CCC:**占2个字节,表示分隔域,当传输的数据没被分隔的时候,此值设为0,其他的具体值可以从国防情报局获取。 * **HHH:**占2个字节,操作限制域,该值由国防情报局DIAM手册65-19,《标准安全记号》描述。 * **TCC:**占3个字节,传输控制码。提供一种传输隔离的手段,该值为3字母词,可用值从HQ DCA Code 530。
0 3 可变 松散的源站选路(为数据报指定一系列必须经过的IP地址) 选项格式如下: * Type: 类型。占1字节,此处设为131。 * length: 占1字节,记录整个选项的长度。 * pointer: 指针项,占1个字节,指向下一个被处理的源站地址,最小值为4。 * route data: 路由数据。
0 7 可变 记录路径(让每个路由器都记下它的IP地址)。 选项格式如下: * Type: 指明IP选项的类型。此处值为7。 * length: 选项的总字节长度。不包含填充的长度,IP填满时最大为39;。 * pointer: 它是一个基于1的指针,指向存放下一个IP地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,ptr的值分别为8,12,16,最大到36,当记录下9个IP地址后,ptr的值为40,表示清单已满。 * route data: 路由数据。
0 8 4字节 流标识选项。该选项长度固定为4字节,code值为136,后面的字段固定为0x02,流ID为2字节。该选项提供了一种携带SATNET流标识符通过不支持流方式的网络。
0 9 可变 严格的源站选路选项。与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址。 * **Type=137(10001001):**占1字节,code 的值此处设为137。 * **length:**占1字节,记录整个选项的长度。 * **pointer:**指针项,占1个字节,指向下一个被处理的源站地址,最小值为4。
2 4 可变 时间戳选项。 * **Type (01000100):**时间戳选项,代码为68; * **length:**选项的总长度(一般为36或40); * **ponter:**指向下一个可用空间的指针(5,9,13等); * **oflw:**表示溢出字段; * flg: 表示标志字段: * 0:只记录时间戳。 * 1:每台路由器都记录它的IP地址和时间戳。在选项列表中只有存放4对地址和时间戳的空间。 * 3:发送端对选项列表进行初始化,存放了4个IP地址和4个取值为0的时间戳值。只有当列表中的下一个IP地址与当前路由器地址相匹配时,才记录它的时间戳。
[表2IP Header Options]
参考标准
标准Standard Description
RFC 791 INTERNET PROTOCOL
相关推荐
幽兰的天空1 小时前
介绍 HTTP 请求如何实现跨域
网络·网络协议·http
lisenustc1 小时前
HTTP post请求工具类
网络·网络协议·http
心平气和️1 小时前
HTTP 配置与应用(不同网段)
网络·网络协议·计算机网络·http
心平气和️1 小时前
HTTP 配置与应用(局域网)
网络·计算机网络·http·智能路由器
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
Mbblovey2 小时前
Picsart美易照片编辑器和视频编辑器
网络·windows·软件构建·需求分析·软件需求
北顾南栀倾寒3 小时前
[Qt]系统相关-网络编程-TCP、UDP、HTTP协议
开发语言·网络·c++·qt·tcp/ip·http·udp
GZ_TOGOGO3 小时前
PIM原理与配置
网络·华为·智能路由器
7ACE3 小时前
Wireshark TS | 虚假的 TCP Spurious Retransmission
网络·网络协议·tcp/ip·wireshark·tcpdump