IPv4 和 IPv6 数据报格式 一、 IPv 4 数据报格式 1)数据报可以分为报头区和数据区,数据区的数据来自上一层。 说明:首部和报头和头等字眼是同一意思。 2)版本:指明 IP 协议是哪个版本, IPv 4 为 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 而必须分片时, 这个标识字段的值就被复制到所有的数据报的标识字段中。 相同的标识字段的值使分片后的各数 据报片最后能正确地重装成为原来的数据报。 附加: IP 数据报在各个物理网络中需要重新封装: 与路由器连接的各个网络的MTU 可能不同: 当数据报超过网络的MTU 进行分片后,路由器可以为每个分片独立选路: 7)标志: 占三位,但目前只有两位有意义。标志字段中间位记为DF(Don’t fragment),当 DF=1 时表示不允许分片,当 DF=0 时表示允许。标志 中最低位(即最右)记为MF(more fragment),当MF=1 时,表示后面“还有分片”,当MF=0 时表示没有...