互联网通信协议第6版(英文:InternetProtocolversion6,缩写:IPv6)是互联网协议的最新版本,用于数据包交换互联网络的网络层协议,旨在解决IPv4地址枯竭问题。
注:IPv6意图取代IPv4,而IPv4在2014年5月仍然在网络交通上占有96%。在2014年10月,通过IPv6使用Google服务的用户百分率首次超过5%。
2011年互联网协会将6月8日定为世界IPv6日。包括Google、Facebook和雅虎在内的参与者将在当天对他们的主要服务启用IPv6,以推进互联网工业加速部署全面IPv6支持。
与IPV4相比,IPV6具有以下几个优势:
一:IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为2^32;而IPv6中IP地址的长度为128,即最大地址个数为2^128。与32位地址空间相比,其地址空间增加了2^128-2^32个。
现在,IPv4采用32位地址长度,约有43亿地址,而IPv6采用128位地址长度可以忽略不计无限制的地址,有足够的地址资源。地址的丰富将完全删除在IPv4互联网应用上有很多的限制,如IP地址,每一个电话,每一个带电的东西可以有一个IP地址,与真正形成一个数字家庭的家庭。
二:IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三:IPv6增加了增强的组播(Multicast)支持以及对流的控制(FlowControl),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Qualityof Service)控制提供了良好的网络平台。
四:IPv6加入了对自动配置(AutoConfiguration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
五:IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
六:允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
IPv6数据包
IPv6数据包由两个主要部分组成:头部和负载。
包头是包的前64比特并且包含有源和目的地址,协议版本,通信类别(8位,包优先级),流标记(20比特,QoS服务质量控制),分组长度(16位),下一个头部(用于入栈解码,类似IPv4中的协议号),和跳段数限制(8位,生存时间,相当于IPv4中的TTL)。后面是负载。MTU至少1280字节长,在常见的以太网环境中为1500字节。负载在标准模式下最大可为65535字节,如果扩展报头设置了"jumbopayload"选项,则长度值被置为0。分段(Fragmentation)只在IPv6的主机中被处理。在IPv6中,可选项都被从标准头部中移出并在协议字段中指定,类似于IPv4的协议字段功能。
注:IPv6曾有两个有着细微差别的版本;在RFC1883中定义的原始版本(现在废弃)和RFC2460中描述的现在提议的标准版本。两者主要在通信类别这个选项上有所不同,它的位数由4位变为了8位。其他的区别都是微不足道的。
IPv6表示形式
以下是用来将 IPv6地址表示为文本字符串的三种常规形式:
十六进制
这是首选形式n:n:n:n:n:n:n:n。IPv6二进位制下为128位长度,以16位为一组,每组以冒号“:”隔开,可以分为8组,每组以4位十六进制方式表示。每个n都表示4个16位地址元素之一的十六进制值。例如:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.
压缩形式
由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写入,可以使用压缩形式,在这一压缩形式中,多个0块的单个连续序列由双冒号符号(::)表示。此符号只能在地址中出现一次。例如,多路广播地址FFED:0:0:0:0:BA98:3210:4562的压缩形式为FFED::BA98:3210:4562。
单播地址3FFE:FFFF:0:0:8:800:20C4:0的压缩形式3FFE:FFFF::8:800:20C4:0。环回地址0:0:0:0:0:0:0:1的压缩形式为::1。未指定的地址0:0:0:0:0:0:0:0的压缩形式为::。
混合形式
此形式组合 IPv4和IPv6地址。在此情况下,地址格式为n:n:n:n:n:n:d.d.d.d,其中每个n都表示4个IPv6高序位16位地址元素之一的十六进制值,每个d都表示IPv4地址的十进制值。
注:IPv4位址可以很容易的转化为IPv6格式。举例来说,如果IPv4的一个地址为135.75.43.52(十六进制为0x874B2B34),它可以被转化为0000:0000:0000:0000:0000:ffff:874B:2B34或者::ffff:874B:2B34。同时,还可以使用混合符号(IPv4-compatibleaddress),则地址可以为::ffff:135.75.43.52。
IPv6地址的分类
IPv6地址可分为三种
-
单播(
unicast
)地址
- 单播地址标示一个网络接口。协议会把送往地址的数据包投送给其接口。 IPv6 的单播地址可以有一个代表特殊地址名字的范畴,如 link-local 地址和唯一区域地址( ULA , uniquelocal address )。单播地址包括可聚类的全球单播地址、链路本地地址等。 任播( anycast )地址
- Anycast 是 IPv6 特有的数据发送方式,它像是 IPv4 的 Unicast (单点传播)与 Broadcast (多点广播)的综合。 IPv4 支持单点传播和多点广播,单点广播在来源和目的地间直接进行通信;多点广播存在于单一来源和多个目的地进行通信。
- 而 Anycast 则在以上两者之间,它像多点广播( Broadcast )一样,会有一组接收节点的地址栏表,但指定为 Anycast 的数据包,只会发送给距离最近或发送成本最低(根据路由表来判断)的其中一个接收地址,当该接收地址收到数据包并进行回应,且加入后续的传输。该接收列表的其他节点,会知道某个节点地址已经回应了,它们就不再加入后续的传输作业。
- 以目前的应用为例, Anycast 地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。 多播( multicast )地址
- 多播地址也称组播地址。多播地址也被指定到一群不同的接口,送到多播地址的数据包会被发送到所有的地址。多播地址由皆为一的字节起始,亦即:它们的前置为 FF00::/8 。其第二个字节的最后四个比特用以标明 " 范畴 " 。
- 一般有 node-local(0x1) 、 link-local(0x2) 、 site-local(0x5) 、 organization-local(0x8) 和 global(0xE) 。多播地址中的最低 112 位会组成多播组群识别码,不过因为传统方法是从 MAC 地址 产生,故只有组群识别码中的最低 32 位有使用。定义过的组群识别码有用于所有节点的多播地址 0x1 和用于所有路由器的 0x2 。
- 另一个多播组群的地址为 "solicited-node 多播地址 " ,是由前置 FF02::1:FF00:0/104 和剩余的组群识别码(最低 24 位)所组成。这些地址允许经由邻居发现协议( NDP , NeighborDiscovery Protocol )来解译链接层地址,因而不用干扰到在区网内的所有节点。
转换机制
在IPv6完全取代IPv4前,需要一些转换机制使得只支持IPv6的主机可以联系IPv4服务,并且允许孤立的IPv6主机及网络可以借由IPv4设施联系IPv6互联网。
在IPv6主机和路由器与IPv4系统共存的时期时,RFC2893和RFC2185定义了转换机制。这些技术,有时一起称作简单互联网转换(SIT,SimpleInternet Transition)。包含:
-
运作于主机和路由器之间的双堆栈IP实现
-
将IPv4嵌入IPv6地址
-
IPv6立于IPv4之上的隧道机制
-
IPv4/IPv6报头转换
主要有以下三大技术:双堆栈 通道 用于只支持IPv6主机的代理和转译
双堆栈
双堆栈(DualIP stackimplementation)是将IPv6视为一种IPv4的延伸,以共享代码的方式去实现网络堆栈,其可以同时支持IPv4和IPv6,如此是相对较为容易的。如此的实现称为双堆栈,并且,一个实现双堆栈的主机称为双堆栈主机。这步骤描述于RFC4213。
目前大部分IPv6的实现使用双堆栈。一些早期实验性实现使用独立的IPv4和IPv6堆栈。
通道
通道是另一个用来链接IPv4与IPv6的机制。为了连通IPv6互联网,一个孤立主机或网络需要使用现存IPv4的基础设施来携带IPv6数据包。这可由将IPv6数据包装入IPv4数据包的通道协议来完成,实际上就是将IPv4当成IPv6的链接层。
IP协议号码的41号用来标示将IPv6数据讯框直接装入IPv4数据包。IPv6亦能加入UDP数据包,如为了跨过一些会阻挡协议41交通的路由器或NAT设备。其它流行的封装机制则有AYIYA和GRE。通道主要有自动通道 配置通道 :
自动通道(Automatictunneling)指路由设施自动决定通道端点的技术。RFC3056建议使用6to4隧道技术来自动通道,其会使用41协议来封装。通道端点是由远程知名的IPv4任播地址所决定,并在本地端嵌入IPv4位址信息到IPv6中。现今6to4是广泛布署的。
在配置通道中,如6in4通道隧,通道端点是要明确配置过的,可以是借由管理员手动或操作系统的配置机制,或者借由如tunnelbroker等的自动服务。配置通道通常比自动通道更容易去除错,故建议用于大型且良好管理的网络。配置通道在IPv4隧道上,使用网际协议中号码的41号。
用于只支持IPv6主机的代理和转译
在局域网际网络注册管理机构耗尽所有可使用的IPv4位址后,非常有可能新加入互联网的主机只具有IPv6连接能力。对这些须要向后兼容以能访问IPv4资源的客户端,须要布署合适的转换机制。一种转换技术是使用双堆栈的应用层代理,如网页代理服务器。一些对于应用程序无法得知但在其低层使用类NAT转换技术也曾被提出。但因为一般应用层协议所要求的能力其应用太广,其中大部分都被认定在实际上太不可靠,并且被认为应删除。