快捷搜索:  汽车  科技

ipv6实际操作(IPv6基础介绍)

ipv6实际操作(IPv6基础介绍)在IPv4中,IPv4报头包含可选字段Options,内容涉及security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用路由器很大的资源,但实际中也很少使用。IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,使得IPv6报头更加简化。IPv6扩展报头IPv6基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析,有8个字段,固定大小为40字节,每一个IPv6数据报都必须包含报头。IPv6的基本报头在IPv4报头的基础上,增加了流标签域,去除了一些冗余字段,使报文头的处理更为简单、高效。具体格式如下图所示:IPv6基本报头中主要字段解释如下:

IPv4理论上仅仅能够提供的地址数量是43亿,但是由于地址分配机制等原因,实际可使用的数量还远远达不到43亿。因特网的迅猛发展令人始料未及,同时也带来了地址短缺的问题。针对这一问题,曾先后出现过几种解决方案,比如CIDR和NAT。但是CIDR和NAT都有各自的弊端和不能解决的问题,在这样的情况下,IPv6的应用和推广便显得越来越急迫。

IPv6是Internet工程任务组(IETF)设计的一套规范,它是网络层协议的第二代标准协议,也是IPv4的升级版本。IPv6与IPv4的最显著区别是,IPv4地址采用32比特标识,而IPv6地址采用128比特标识。128比特的IPv6地址可以划分更多地址层级、拥有更广阔的地址分配空间,并支持地址自动配置。

ipv6实际操作(IPv6基础介绍)(1)

IPv6报文格式

IPv6数据包由一个IPv6报头、多个扩展报头和一个上层协议数据单元三部分组成。

IPv6基本报头

IPv6基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析,有8个字段,固定大小为40字节,每一个IPv6数据报都必须包含报头。

IPv6的基本报头在IPv4报头的基础上,增加了流标签域,去除了一些冗余字段,使报文头的处理更为简单、高效。具体格式如下图所示:

ipv6实际操作(IPv6基础介绍)(2)

IPv6基本报头中主要字段解释如下:

  • Version:版本号,长度为4bit。对于IPv6,该值为6。
  • Traffic Class:流类别,长度为8bit。等同于IPv4中的ToS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
  • Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签 源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
  • Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。
  • Next Header:下一个报头,长度为8bit。该字段定义了紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型。
  • Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据包将被丢弃。
  • Source Address:源地址,长度为128bit。表示发送方的地址。
  • Destination Address:目的地址,长度为128bit。表示接收方的地址。

IPv6扩展报头

在IPv4中,IPv4报头包含可选字段Options,内容涉及security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用路由器很大的资源,但实际中也很少使用。IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,使得IPv6报头更加简化。

扩展报头是可选的,一个IPv6报文可以包含0个、1个或多个扩展报头,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。IPv6支持多个扩展报头,各扩展报头中都含有一个下一个报头字段,用于指明下一个扩展报头的类型。具体格式如下图所示:

ipv6实际操作(IPv6基础介绍)(3)

IPv6扩展报头中主要字段解释如下:

  • Next Header:下一个报头,长度为8bit。与基本报头的Next Header的作用相同。指明下一个扩展报头(如果存在)或上层协议的类型。
  • Extension Header Length:报头扩展长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)。
  • Extension Head Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合。
IPv6地址介绍

IPv6地址格式

IPv6地址长度为128比特,用于标识一个或一组接口。IPv6地址通常写作xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中xxxx是4个十六进制数,等同于一个16比特二进制数;八组xxxx共同组成了一个128比特的IPv6地址。一个IPv6地址由IPv6地址前缀和接口ID组成,IPv6地址前缀用来标识IPv6网络,接口ID用来标识接口。

ipv6实际操作(IPv6基础介绍)(4)

IPv6地址压缩格式

由于IPv6地址长度为128比特,书写时会非常不方便。此外,IPv6地址的巨大地址空间使得地址中往往会包含多个0。为了应对这种情况,IPv6提供了压缩方式来简化地址的书写。压缩规则如下:

  1. 每16比特组中的前导0可以省略。
  2. 地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替。需要注意的是,在一个IPv6地址中只能使用一次双冒号“::”,否则,设备将压缩后的地址恢复成128位时,无法确定每段中0的个数。

下图展示了如何利用压缩规则对IPv6地址进行简化表示。

ipv6实际操作(IPv6基础介绍)(5)

IPv6地址类型

如下图所示,IPv6地址分为单播、组播和任播三种类型

ipv6实际操作(IPv6基础介绍)(6)

  • 单播地址(Unicast Address):标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。在IPv6中,一个接口拥有多个IPv6地址是非常常见的现象。
  • 组播地址(Multicast Address):标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。只有加入相应组播组的设备接口才会侦听发往该组播地址的报文。
  • 任播地址(Anycast Address):任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。

猜您喜欢: