分析比较IPV4报文头部和IPV6报文头部的区别 您所在的位置:网站首页 ipv4有什么特点和优点 分析比较IPV4报文头部和IPV6报文头部的区别

分析比较IPV4报文头部和IPV6报文头部的区别

2023-07-27 06:06| 来源: 网络整理| 查看: 265

IPV4与IPV6报文头部的区别

IPV4报文头部 在这里插入图片描述 版本(Version):长度4bit,IP协议的版本号,分为IPV4和IPV6。IPV4值为0100 在这里插入图片描述 头部长度(Header Length):长度4bit,IPV4的头部总长度。当报文头部中无Opthion字段时,报文头部总长度为20字节。 在这里插入图片描述 区分服务(Differentialted Services):长度8bit,只有在区分服务时,这个字段才有作用,又称为TOS字段用来表示数据包的优先级和服务类型,占8位(3位长度的优先级+4位长度的标志位D(Delay延迟)、T(Throughput吞吐量)、R(Reliability可靠性)、C(COST开销)),最高1位未用。 在这里插入图片描述 我们这个没有区分服务,所以默认字段值为0. 总长度(Total Length):长度16bit,总长度字段标识整个IP数据包的总长度(包括头部和数据部分)因为总长度为16位,所以可以得出IPV4数据包最大长度为二的十六次方=65535字节=64KB。 标识(Identification):长度16bit,IPV4软件在存储器中维持一个计数器,每产生一个数据包,计数器+1,并将此值赋给标识字段。(标识并不是序号,IP是无连接服务,数据包不存在按序接收) 模拟一下 在这里插入图片描述 12.1.1.1ping12.1.1.2 第一个包标识 在这里插入图片描述 第二个包,标识

在这里插入图片描述 标志(Flags):长度3bit,目前只有两位有意义,最低位(MF)为1则表示后面还有分片的数据包,为0则表示最后一个数据包;中间一位(DF)为1表示不能分片,为0才允许分片 在这里插入图片描述 片偏移(Fragment Offset):长度13bit,片偏移字段用来指出数据包分段在数据包中的相对位置 生存时间(Time To Live):8bit,生存时间字段用来标识IP数据包在网络中传输的有效期,最大值为255为防止数据包在网络中无限制的被转发。 协议(Protocol):长度8bit,协议字段用来标识此IP数据包在传输层所采用的协议类型(如:TCP,UDP或是ICMP等等) 在这里插入图片描述 头部校验和(Checksum):长度16bit,用来校验IP数据包报头部分(不包括数据部分)在传输过程中是否发生变化。数据包没经过一个设备,都要重新计算一下头部校验和,若为发生变化,则此结果必为0 源地址(source address):长度32bit,报文发送方地址 目的地址(Destination Address):长度32bit,报文接收方地址。 选项(option):0-40字节(长度可变) IPV6头部报文

在这里插入图片描述 在这里插入图片描述 搞个中英互译。 Version(版本):长度4bit版本字段用来标识IP数据包使用的是IPV6协议封装,占4位对应值6(0110) Traffic Class(通信分类):长度8bit,类似IPV4中的TOS字段。也是8位,用于QoS中标识优先级。 Flow lable(流标签):长度20bit,可用来标记报文的数据流类型,以便在网络层区分不同的报文。通过流标签、源地址、目的地址三元组(源,目IP,流标签)方式就可以唯一标识一条IPV6数据流。因为在IPV4中确定一条数据流要使用五元组(源 目IP,源 目端口,协议号)而流标签可唯一标识数据流,能够更好实现Qos。 Payload length(有效载荷长度):长度20bit,用于表示上层协议报文的大小,也就是除了IPV6的基本头部(40字节)以外的其他部分总长度 Next Header(下一个头部):长度8bit,用来标识上层协议或上层拓展报头,类似IPV4的Protocol。IPV6中增加了拓展报头,用于实现拓展功能如分片,加密等。 Hop Limit(跳数限制):长度8bit,类似IPV4报头中TTL。 源地址(Source IP Address) 源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。 目的IP地址(Destination IP Address) 目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。

IPV4和IPV6报文头部的区别: IPV4报头长度(不包括选项字段):20字节 IPV6报头固定长度(基本):40字节 IPV6去除了IPV4报头中的Header Length(头部长度)、Identification(标识)、Flags(标志)、Fragment Offset(片偏移)、Checksum(头部校验和)、Option(选项)。却只增加了一个Flow lable(流标签)这一个字段。 去除Checksum(头部校验和)字段是因为在二层有FCS做校验,在四层有TCP/UDP等协议的Checksum做校验。所以IPV6报头无需再次校验,可以提升IPV6性能。 在讲IPV4,报头中,提到了头部校验和每经过一个设备,都要进行计算。在IPV6中去掉头部校验和,这样就可以提升转发效率。 先可以来看看IPV4报文分片,和IPV6分片的区别 IPV4报文分片:每个数据链路层协议都有自己的帧格式,在这个格式中有一个字段是MTU(最大传输单元),但数据包被封装成数据帧时,数据包的总长度就必须小于这个MTU的值。 IPV4数据包最大长度65535字节,如果MTU>65535,那么就不用分片。但是如果小于,那就应该吧数据包分成很多份(分片)。 怎么分片:1.每个数据包都有自己的头部,头部中大部分字段是重复的(如源目IP)。 2.校验和必须重新计算(上面讲过,头部校验和每经过一个设备都要重新计算)而校验和在IPV4报文头部中,分片的时候,最少有三个字段改变了(标识,标志,片偏移) 3.如果分片后遇到设备的MTU更小,则需要再次分片。 IPV4报文头部中,使用标识,标志,片偏移来进行数据包分片。 标识(Identification):长度占16位,标志了从源主机发出的数据包,标识与源IP组合确定唯一的数据包。在进行分片时,这个字段必须复制到所有的分片中,这样目的主机接收到所有分片的报文后,才知道把那些分片组装起来。 标志(Flags):3bit。 在这里插入图片描述 1.最高位保留未用 2.第二位不分片位,如果是1,则表示这个数据包不能进行分片,如果是1,则表示可以分片 3.第三位分片位,如果是1则表示后面还有数据包分片,如果是0则表示是最后一个分片。 片偏移(Fragment Offset):用来指出这个分片,在数据包中的位置。 总结:IPV4 是在中间路上执行数据分片的。

IPV6是如何处理分片的 在IPV6数据分片时在源头开始分片的,而不是像IPV4那样,在中间转发设备分片。 在这里插入图片描述 PC1要给PC2发送一个大数据包过程如下(IPV6环境) 我们可以知道这条链路上MTU最小值为1300,也就是说数据分片必须小于1300。 PC1(源)开始将数据分片,假设此时为1499,到达了AR1发现报文长度小于接口MTU值,那么可以转发。然后将分片转发给AR2,此时AR2MTU为1400。AR2收到后,发现报文长度比接口MTU值大。则会丢弃;同时将接口的MTU值通过ICMPv6报文的Packet Too Big消息发送给PC1(源主机),此时PC1以该值重新发送IPV6报文(MTU=1400),到达AR3之后也是如此操作,直到PC1发送的数据包到达PC2,那么PC1就知道到达PC2的PMTU(路径MTU) 总结:IPV6分片是在源开始分片的(通过PMTU协议,PMTU协议依靠ICMPv6的Packet Too Big)来完成。 在这里插入图片描述 IPV6报文中去掉IPV4中标识,标志,片偏移字段。 这样可以大大减少中间转发设备的处理压力,同时也提高了效率。

第二个问题,traffic class和flow label都能做服务质量,为什么要用两个 Traffic class(流类别):长度8bit,等同于IPV4中TOS字段(五元组),表示IPV6数据包的类或优先级,主要用于QoS。 Flow label(流标签):长度20bit,用于区分实时流量,通过流标签+源地址+目的地址(三元组),来标识唯一的数据流 Flow label(流标签)可以做到Traffic class(流类别)在某些特定环境下数据流无法分类的时候。 当前的流分类技术都是基于源目端口,源目IP,协议号这五元组,其中源目端口处于传输层中,源目IP,协议号处于网络层。Flow lable(流标签)的出现可以将五元组缩减为三元组(源目IP,流标签)设备在处理过程中就不必再分析传输层的协议内容,这样可以加快网络设备对数据流的处理速度。 在IPsec加密技术中,网络层之后的数据都会被加密,这就包括了传输层中的数据,对于这种数据设备就无法读取传输层中的端口号,五元组信息不完全使得这一的数据流无法采用流分类技术。而Flow label(流标签)位于网络层报文中,这样的问题就可以迎刃而解了。 Traffic class字段和Flow label字段的作用也不是相同的。Flow lable字段主要作用还是用来标识流,而Traffic class(流类别)字段,是路由器用来区分不同服务级别的依据,从而采取相应的策略。而Traffic Class字段在传输的过程中,中间节点可以修改Traffic class的值,而Flow lable字段中间设备不可修改(还在讨论) 总而言之一句话流标签这个字段里面学问很大。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有