ipv4协议报头 – CButtonST的专栏 – 博客频道 – CSDN.NET

IP v4协议报头格式 

 

0                        4                          8                                               16                     19                          24                                          32 

版本

Version

IP头长度

IHL

服务类型(TOS

Type of Service

总长度

        Total Length        

标识符号

          Identification       

标记

Flags

分段偏移量

Fragment Offset

存活时间

Time to Live

协议

Protocol  

包头校验和

Header Checksum  

                      源IP地址

                         Source Address  

                     目的IP地址

                                               Destination Address                     

IP选项(若有的话)

Options

填充

Padding

说明:

Version : 4 bits

显示当前正在运行的IP版本信息。当前为4

IHL :   4 bits

标明了以32比特为单位的消息中数据报报头的长度,这是所有报头的总长度。

注意:它的最小值为5

Type of Service : 8 bits

标明了一个特定的上层协议所分配的重要等级。

TOS字段包括一个3 bit的优先权子字段(现在已被忽略),4 bit的TOS子字段和1 bit未用位但必须置0。4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4 bit中只能置其中1 bit。如果所有4 bit均为0,那么就意味着是一般服务。每TOS值最多只能有一个为1.

如下所示

协议                       TOS 值

         TELNET/RLOGIN (1)      1000                  (minimize delay)

          FTP

           Control                         1000                  (minimize delay)

           Data (2)                        0100                 (maximize throughput)

         TFTP                              1000                 (minimize delay)

         SMTP (3)

           Command phase         1000                 (minimize delay)

           DATA phase                0100                 (maximize throughput)

        Domain Name Service

           UDP Query                  1000                 (minimize delay)

           TCP Query                  0000

           Zone Transfer              0100                 (maximize throughput)

        NNTP                             0001                 (minimize monetary cost)

        ICMP

           Errors                          0000

           Requests                    0000 (4)

           Responses        <same as request> (4)

         Any IGP                       0010                 (maximize reliability)

         EGP                             0000

        SNMP                          0010                 (maximize reliability)

        BOOTP                        0000

 

Total Length:  16 bits

标明整个分组的长度,以字节为单位。总长度减去IHL就是数据有效载荷的长度。

理论上最大长度可以为65535,但报文经过数据链路层时很可能被分片。

Identification:  16 bits

包含一个整数,用来标识当前的数据报。这是一个序列号。

Flag:   3 bits

实现不同的控制功能:

       Bit 0 : 保留,必须置零。

Bit 1: (DF)    

0 表示可以对分组进行分片

                      

1 表示不可以对分组进行分片

Bit 2: (MF)    表示该数据段是本分组中最后的一个数据分段

表示后面还有数据分段

Fragment Offset:  13 bits

指示分段在数据包中的位置,用于重组数据分段。这个字段允许标记字段终止在16 Bit的边界

TTL : 8 bits

指示分组在网络传输中的允许保持的时间,以秒为单位。当该计时器为0时,数据报将被丢弃。

Protocol :  8 bits

指明了在IP处理过程结束后,哪一个上层协议将接收这些数据。

Header Checksum : 16 bits

用于确保IP头的完整性。

Source Address : 32 bits

指明了发送节点的IP地址。

Destination Address : 32 bits

指明了接收节点的IP地址。

Options :

长度可变的字段,让IP支持不同的功能特性。比如安全性。

       该字段可能是零,或者更多的选项。该字段有2中使用情形:

          1:用单一的一个字节表示选项类型

          2:一个选项类型字节,一个选项长度字节,一个数据长度字节

Padding:这个字段以额外的0来填充IP报头,以确保其长度为32 bit的倍数。

其后就是数据字段。

来源URL:http://blog.csdn.net/cbuttonst/article/details/7616501