在IP网络中传输的单位称为IP数据包,它包括IP报头与更高层协议的相关数据。IP数据包的报头至少为20个字节,其中包括版本号,报头长度,服务类型,数据报总长度,标识,标志,片偏移,生存时间,协议和头部校验和,源,目的IP地址,先项。引入IP报头字段的目的是为网络实体提供互联机制,IP报头不仅带有数量可观的IP数据包信息,如源和目标IP地址,数据包内容等,而且还为网络实体提供了从源到目标之间传送数据包的处理方法。
  下面我们我们一起来看看IP报头中各个字段各代表什么。
    版本号:版本号占用四个比特位,现在我们所接触到的网络中绝大部分都是IPV4网络,所以一般所捕获到的IP报头的版本号为4。
    报头长度:表示的IP数据包的包头长度,这个长度不包括数据字段,最小为20个字节,最大为60个字节,其中的40个字节供IP选项使用。
    服务类型:一般用于实现QoS的要求,我们现在一般捕获到的数据包中此值为一缺省值。
    IP数据包总长度:它描述的是IP数据包中报头和数据包的总长度,由于其占用16个比特位,因此我们可以得出一个IP数据包的最大值为65536。
    标识符:由源主机随机产生的一个号码,用于帮助重新组合一个被分段的数据包,当一个IP数据包从一个主机传输到另外一个主机时,它一般都需要通过另外一个网络,每一个物理网络都有一个最大帧的大小,也就是我们常说的最大传输单元(MTU),它限制了一个物理帧中数据的大小,当主机发送的数据超过了某一设备的MTU时,这时IP就会用一进程来对超过MTU的数据包进行分段,这个进程建立了一个小于MTU的数据报的集合,因此最终IP数据包以合适的大小发送到目标主机,由于数据包分过段,所以目标主机在接收数据包时会新建立一个缓存区来接收分段的数据包,目标主机判断某一数据包是否和其它数据包一样也是经过分段的就是通过判断标识符是否一样。在分段时只有数据会被分段,面报头是复制而作为分段数据的头部。
      标志:它是用来标志数据包是否分段,其中包含DF(do not  fragment)和MF(more fragment),当DF的值为1时,则MF的值必为0,DF为1,则说明数据包有分段。同样可以知道当MF为1时,则DF为0,这表示的是数据包没有分段。当然也有可能MF和DF都为0。
   片偏移量:接收主机可以使用该字段的值来计算当前分段数据在原始数据报中的原始位置,由于该字段占用13个比特位,所以其最大值为8192,由于该字段的值是以8个字节为一个单位表示的,因此该字段可以表示在原始的数据报中的最远位置可以是65528个字节。举个例子来说吧,当某个数据包的大小为640个字节,现在分成8个大小为80个字节的数据包,这样第一个数据包的偏移量为0,则第二个数据包的偏移量就为10,后面的数据包依此计算可得到最后一个数据包的片偏移量是70。当然有些时候片偏移量就是0,这表示些数据包没有分段。
     生存时间:这个相信大家都很熟悉,也就是我们在使用PING命令时的TTL,理论上讲,每个处理此数据报的路由器应该用该字段的值减去它处理的时间,但是实际上,一个路由器处理这样的一个数据包并不要一秒钟,但是为了方便,实际运用中还是以一秒钟来计算,这样TTL就变成了跳步数了,而不再是时间的度量。
     协议号:这个字段指示IP下一步应当把这个数据包发往更高层的协议,如TCP为6,UDP为17。
     报头校验和:该字段的数值仅用来表示IP报头的校验和。IP报头被视为是由一系列的16位二进制数据流和一个初值为0的校验组成的,对原始报头的所有数值求补就得到校验和由于TTL的值会随着亿能过的网络设备而发生变化,所以每以过一个网络设备,报头校验和都会发生变化。
    源和目标IP地址就不作解释了,相信大家这个都懂。
     选项:选项为非固定信息,可变长度,选项最长可达40个字节,这个字段主要用于测试。