您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > Ipv4和Ipv6数据报格式详解
IPv4和IPv6数据报格式一、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而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。附加:IP数据报在各个物理网络中需要重新封装:与路由器连接的各个网络的MTU可能不同:当数据报超过网络的MTU进行分片后,路由器可以为每个分片独立选路:7)标志:占三位,但目前只有两位有意义。标志字段中间位记为DF(Don’tfragment),当DF=1时表示不允许分片,当DF=0时表示允许。标志中最低位(即最右)记为MF(morefragment),当MF=1时,表示后面“还有分片”,当MF=0时表示没有。说明:|R|DF|MF|,R保留未用。8)片偏移:指的是该片偏移原始数据报开始处的位置,偏移的字节数是该值乘以8。说明:当数据报被分片后,每个片的总长度值要改为该片的长度值9)生存周期:其目的是防止无法交付的数据报无限制地在因特网中兜围子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。10)协议:协议字段指出此数据报携带的数据是使用(上层的)何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。11)头部校验和:这个字段只检验数据报的首部部分(报头区),但不包括数据部分(数据区)。这是因为数据报每经过一个路由器,都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。12)选项:占24位,IP数据报选项由选项码、长度和选项数据三部分组成。选项码:a.源路由:IP数据报穿越互联网所经过的路径是由源主机指定的应用场合:测试某特定网络的吞吐率、使数据报绕开出错网络等。源路由选项分为:严格源路由选项:规定IP数据报要经过路径上的每一个路由器。松散源路由选项:只给出IP数据报必须经过的一些“要点”。b.记录路由选项:记录IP数据报从源主机到目的主机所经过路径上各个路由器的IP地址。c.时间戳选项:记录IP数据报经过每一路由器时的当地时间附加说明:IP互联网利用ICMP传输控制报文和差错报文,ICMP报文封装在IP数据报中。二、IPv6数据报格式IPv6报头:说明:IPv6的报头为40字节(32(每行长度)*2(前两行)=64位=8字节,加上源IP和目的IP分别为16字节,总的等于40字节)1)数据报可以分为基本头和扩展头和上层协议数据单元(相当与IPv4的数据区)。2)版本:指明IP协议是哪个版本,IPv6为0110。3)优先级:用来区分不同IPv6数据包的类型或优先级。(相当于IPv4的“服务类型”字段(TOS:typeofservice))。4)流标识:首先认识“流”就是因特网上从特定源到特定目的的一些列数据报。流所经过的路径上的路由器都保证指定的服务质量(Qos),所有属同一个流的数据都有相同的流标识。5)载荷长度:即有效载荷的长度,除首部(报头)以外的字节数,包括扩展首部(扩展报头)和数据部分。(相当于IPv4的“报头长度”字段)6)下一首部:定义了紧跟在基本首部(IPv6报头)后面的扩展首部(扩展报头)的数字标识号(当有扩展首部时)或指出此数据报携带的数据是使用(上层的)何种协议(当没有扩展首部时,这个时候相当于IPv4的“协议”字段)。说明:a.下图是数字标识号(包括各类型的扩展首部和上层协议等等)。说明:需要解释的是当没有扩展首部的时候,“下一首部”这一字段指明的是此数据报携带的数据是使用(上层的)何种协议,如果是TCP协议,则这里的值为6,UTP为17,ICMPv6为58。而如果下一个是IPv6头部(即IPv6报头,新的一个数据报),则为41。如果其后没有其它首部(包括基本首部和扩展首部)了,则为59。b.下图是为了形象理解“下一部首”定义的数字标识号的对象是谁,即后面的扩展报头是什么类型是前面的下一部首通过数字标识号来说明的。7)跳数限制:相当与IPv4的“生存周期”字段。扩展报头:6种类型:说明:a.这六种扩展头是任选的,可选可不选,可以多选。b.IPv6强烈建议这些扩展头按照它们在上表中的次序出现,这样接收者就不必搜索整个包来寻找某个特定类型的扩展头,并且保证了在处理这个扩展头之前,所有前面的扩展头都已经处理了。c.除“加密头”外,其它扩展头的长度必须是8字节的整数倍。d.除“逐跳头”外,其它扩展头仅由目的节点处理。
本文标题:Ipv4和Ipv6数据报格式详解
链接地址:https://www.777doc.com/doc-3685960 .html