理解并取证:IPv6与IPv4在报文结构上的区别

理解并取证:IPv6与IPv4在报文结构上的区别


   为了更好的学习IPv6,应该首先来理解IPv6的报文结构,建议理解IPv6的报文结构时,采用“对比法”对照IPv4的报文结构,更形象的理解IPv6与IPv4报文结构的相同与差异。如下图12.6所示、IPv6的报文结构所示,展示了IPv6报文的体系结构。本小节将以分析IPv6首部报文中的每一字段的作用与意义作为目标。


075439916.png


n版本:标识IP报文的版本,其作用与IPv4的版本一样。但是值为6。

n流量类别:指示IPv6数据流通信类别或优先级。功能类似于IPv4的服务类型(TOS)字段。用于服务质量(QOS)功能,长度为8位。

n流标签:IPv6新增字段,长度为20位。标记需要IPv6路由器特殊处理的数据流。该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输。事实上所谓的“流”事实上是一系列具备相同特性的数据集合,通常是实时数据,比如:这些数据具备相同的目标IP地址、源IP地址、目标端口等,那么它们将具备一个相同的标签值。规划这个字段的意义目标在于对实时数据进行低延迟交付应用。

n载荷长度:16位负载长度表示IPv6报文中负载的长度,而不是整个IPv6数据报文的长度。没有包括整个IPv6报文中的主首部的长度。

n下一个首部:长度为8位。代替IPv4中的协议字段,因为IPv6提出了扩展首部的思想,该字段就是指示下一个扩展首部的标识,也就是IPv6数据报的下一个首部。如果一个IPv6报文没有下一个首部的引入,那么该字段就和IPv4中的协议字段的作用相同。指示使用的上层协议类型。

n跳数限制:该字段8位长度。替代IPv4的TTL(生命期)字段,指示在路由器之间的转发次数来限定IPv6报文的生命周期。每经过路由器一次转发,该字段减1,减到0时就把这个包丢弃。

n源地址:与IPv4中的源IP地址作用一样,只是用128比特进行表示。

n目标地址:与IPv4中的目标IP地址作用一样,只是用128比特进行表示。



IPv6的报文结构与IPv4的区别:

为了更好的理解IPv6报文结构,本小节将以对照IPv4与IPv6的报文结构图12.6与图12.7所示,理解IPv4与IPv6报文的区别。IPv6的报文结构做出了较大的改动,主要的变化如下所述:


075542875.png

n引入了多首部的概念:这 与IPv4单一报文首部包括所有字段有很大区别。IPv6支持一个主首部与多个扩展首部,这样做的目的在于让数据报文的结构更清晰,层次化更明显,也可在IPv6的报文中存放更多的信息。

nIPv6改变了IPv4报文首部的部分字段名称与格式:IPv6的报文首部删除了IPv4中定义的几个字段,以减少IPv6首部的长度,达到提高效率的目的,只保留了数据转发所必须的重要信息在IPv6的主首部中。其它的字段被放到IPv6的扩展首部中。更具体的讲:版本、源地址、目标地址三个字段在IPv6没有发生改变,其作用与名称和IPv4一样。IPv4的TTL字段在IPv6报文中被重名为“跳数限制”字段;IPv4的“服务类型(TOS)”字段在IPv6中被重命名为“流量类别”,被重新命名的两个字段的作用却与IPv4相同。新增加了一个“流标签”字段,该字段的作用已在本章的12.1.2小节做了说明。这里不再重述。IPv6的报文删除了IPv4中的“标识”、“标记”、“片偏移”字段,因为IPv6的主首部的长度是固定不变的值。有了扩展首部的原因,所以IPv6很少再出现分片的问题,所以上述的字段在IPv6中将显得多余,故将其从IPv6的首部报文中删除。

nIPv6与IPv4相较,IPv6取消了“首部校验”字段:这也是因为IPv6扩展首部的出现,高层的协议与IPv6的主首部进行了分离。在IPv6的主首部中对高层协议的错误校验将变得多余,所以将其删除,这将为网络中间设备或者计算机节省了执行校验的时间延迟,提高了转发较率。


关于IPv6的扩展首部与数据分片的问题


  IPv6数据传送所需要的公共信息被放到首部报文中,而上层协议信息、分片数据信息等被放入到IPv6的扩展首部中,并且IPv6的主要首部是固定长度,这样做可以保证网络的中间设备(路由器)以最高的效率进行数据转发。因为IPv4使用“选项”字段来改变报文的长度,比如:数据验证、分片等都被IPv4的选项字段所包括,那么路由器需要对这些选项字段作特殊的处理,这就降低了数据转发的性能。

  比如在IPv4的环境中,如下图12.8所示的数据传递分片所示:如果在IPv4的网络环境中传递数据,假设源主机需要传送大小为3000字节的数据,分别需要穿越MTU为1500、300、1500的网段,首先在第一个MTU为1500的链路上将3000字节的数据分成2个单位进行传递,每个单位大小为1500;然后路由器让分片重新组合,并且在经过第二个MTU为300的链路上将3000字节的数据分成10个单位,每个单位的大小为300;然后到达下一个路由器时,需要反复的执行分片与重组,从某种意义上来讲,这加重了网络中间设备(路由器)的工作负荷。而IPv6则省去了这一繁锁的过程,IPv6将分片的过程控制在源主机完成,中间网络设备(路由器)不再执行分片与重组,这对于提高中间网络设备(路由器)的工作效率很有帮助如下图12.8所示。

075647959.png

注意:IPv6虽然将数据分片控制在源主机,但是对上层协议的申明与大的数据的拆分在IPv6中还是需要的。在IPv4中使用“选项”字段,来申明上层协议,如果有需要就对大的数据报文进行拆分。可见“选项”字段在IPv4中的作用是非常重要的,但是IPv6报文结构中,却去掉了该选项,那么在IPv6中将使有什么样的技术来申明上层协议,以及对大的数据报文进行分片?


IPv6的上层协议申明与数据分片都在扩展首部中完成,因为在主首部只包括必须的信息,并且每一个IPv6的主首部的结构都一样。既然IPv6在扩展首部完成上层协议的申明与数据分片,那么IPv6的扩展报文首部与主首部之间存在一个什么的关系,主首部又如何知道同一个通信会话的下一个扩展首部是什么?

上述的问题可以通过理解IPv6报文结构中的“下一个首部”字段来完成主首部与扩展首部的链接。如下图12.9所示IPv6的主首部与扩展首部之间的关系所示:当某台IPv6的主机向另一台目标主机发送Ping数据时,在IPv6的主首部中是不会包含ICMPv6的任何数据的,因为在主首部中只会包含必须的IPv6通信字段,其它的全部在扩展首部中体现。但是在主首部中有一个字段叫做“下一个首部”并使用16进制数申明下一个首部的值,比如:3A就表示下一个首部为ICMPv6的数据,如果没有IPv6的数据分片,“下一个首部” 字段将直接申明上层协议。如果存在数据分片,“下一个首部”字段将指示,扩展首部为“2C”表示下一个首部是一个数据分片,然后在数据分片的扩展首部中还会有一个“下一个首部” 字段,此时该字段的值为“3A”表示下一个首部为ICMPv6的数据。总而言之,如果没有数据分片的存在,“下一个首部”字段将直接申明上层协议;如果有数据分片的存在,“下一个首部” 字段申明为数据分片,然后再在数据分片的“下一个首部”字段中申明上层协议。

075806362.png

意注:一切理论层面的分析都将是空泛与枯燥的,将空泛的理论转换为有理可依的取证的实验,并有益于通过CCNA的认证,完成工作需求是本书的宗旨,关于如何取证IPv6的主首部报文的过程如下所示。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值