IPv4报头格式_IPV4报头格式

1)数据报可以分为报头区和数据区,数据区的数据来自上一层。    说明:首部和报头和头等字眼是同一意思。
2)版本:指明IP协议是哪个版本, IPv4为0100。
3)报头长度:也叫首部长度,指明报头区的长度。最小值为20个字节,最大值为60字节。 说明:
a.当没有选项和填充字段时,32位(每行的长度)*5(5行固有的)=160位=20字节,这个时候4个比特位的值为0101,为什么呢?因为这里规定以4个字节为单位,如果把0101用换算成十进制,0101=5,5*4=20字节。如果4个比特位为1111,把1111换算成十进制则等于15,则它表示15*4=60个字节。(简单记成换算成十进制后乘以4才等于它报头区的字节数) b.当 IP 分组的首部长度不是4字节的整数倍时, 必须利用最后的填充字段加以填充。
4)服务类型:转发过程中对该数据报的处理方式。 5)总长度:等于报头区及数据区的长度相加。    说明:
a.最大长度为65535个字节(当8个bit都等于1时),2^16-1=65535个字节。 b. IP数据报的最大长度的确是65535字节。但是实践中最大长度很少用,因为大多物理网络都有长度限制,例如,数据链路层有自己的帧格式,其中包括了数据字段的最大长度,即最大数据传输单元MTU,当一个数据报封装成链路层的帧时,此数据报的总长度一定不能超过下面的数据链路层的MTU值,以太网把载荷长度限制在1500字节。
6)标识:IP软件在存储器中维持一个计数器,每产生一个数据报, 
计数器就加 1,并将此值赋给标识字段。但这个“标识”并不是序号, 因为 IP是无连接的服务,数据报不存在按序接收的问题。 当数据报由于长度超过网络的 MTU 而必须分片时, 这个标识字段的值就被复制到所有的数据报的标识字段中。 相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

7)标志: 占三位,但目前只有两位有意义。标志字段中间位记为DF(Don’t
fragment),当DF=1时表示不允许分片,当DF=0时表示允许。标志
中最低位(即最右)记为MF(more fragment),当MF=1时,表示后面“还有分片”,当MF=0时表示没有。
 说明:|R|DF|MF| ,R保留未用。
8)片偏移:指的是该片偏移原始数据报开始处的位置,偏移的字节数是该值乘
以8。 
说明:当数据报被分片后,每个片的总长度值要改为该片的长度值
9)生存周期:其目的是防止无法交付的数据报无限制地在因特网中兜围子, 因
而白白消耗网络资源。最初的设计是以秒作为 TTL的单位。  每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。 若数据报在路由器消耗的时间小于 1 秒,就把TTL值减 1。 当 TTL值为 0时,就丢弃这个数据报。
10)协议:协议字段指出此数据报携带的数据是使用(上层的)何种协议,以便
使目的主机的IP层知道应将数据部分上交给哪个处理过程。
11)头部校验和:这个字段只检验数据报的首部部分(报头区), 但不包括数据
部分(数据区)。这是因为数据报每经过一个路由器,都要重新计算一下首部检验和 (一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。
12)选项:占24位,IP数据报选项由选项码、长度和选项数据三部分组成。 选项码:


IPv4报头格式_IPV4报头格式_02IPv4报头格式_IPV4报头格式_03

a.源路由:IP数据报穿越互联网所经过的路径是由源主机指定的应用场合:测试
某特定网络的吞吐率、使数据报绕开出错网络等。
源路由选项分为:
严格源路由选项:规定IP数据报要经过路径上的每一个路由器。 松散源路由选项:只给出IP数据报必须经过的一些“要点”。
b.记录路由选项:记录IP数据报从源主机到目的主机所经过路径上各个路由器
的IP地址。
c.时间戳选项:记录IP数据报经过每一路由器时的当地时间 
附加说明: IP互联网利用ICMP传输控制报文和差错报文,ICMP报文封装在IP
数据报中。