近期互联网编号分配机构(IANA)宣布IPv4已经分配枯竭,将慢慢过渡到IPv6,微软也在第一时间宣布今年6月份将对Bing试运用IPv6,并进行相应测试,可以看出,IPv4已经慢慢退出舞台,IPv6必将是未来互联网开发行业的方向!后面我将结合《IPv6详解 卷1》进行说明,希望给大家一个很好的学习资料以供参考!
一 、IPv6地址
IPv6地址是一个128位的无符号整数,用来标识一个或多个网络接口。IPv6地址分为下列3种类型。
◆单播(unicast)。一个单播IPv6地址标识一个网络接口。目标为一个单播地址的分组会被传送到一个网络接口上去。
◆任播(anycast)。任播IPv6地址标识一组网络接口,,但目标为一个任播地址的分组只会被送到那个组中的一个接口中去。IPv6任播地址的语法和单播IPv6地址是一样的,但它们具有不同的语义。由于缺乏足够的、在全球因特网中使用任播的操作经验,设置了几条限制: 1、不能将任播地址作为任意分组的源地址使用。
2、任播地址只能分配给路由器,不能分配给主机。
◆多播(multicast)。IPv6多播地址标识一组网络接口。这些接口可能属于不同的节点。目标为多播地址的分组会被传送给那个组中所有的成员。IPv6多播地址是由它的前8个比特标识的:前8个比特为全1的地址就是多播地址。
需要注意的是:IPv6与IPv4不同,它没有广播地址,做出这样的设计决定原因之一是:网络层的广播地址通常会造成链路级的广播,这会影响到附属链路中的所有设备,甚至包括那些根本不支持特定网络协议的设备。而IPv6网络层的“广播”是通过多播来实现的。
二、IPv6地址的文本表示
IPv6地址传统的文本表示是以十六进制值书写的
如:x0:x1:x2:x3:x4:x5:x6:x7
用":"分隔的8个16比特段来表示。典型的例子如下:
2001 : 0DB8 : 0123 : 4567 : 89AB : CDEF : 0123 : 4567
x0 x1 x2 x3 x4 x5 x6 x7
每个十六进制值都是大小写无关的。
从0x到07的每个16比特字段中至少要有一个十六进制数字。字段中不需要写出前导的0.如下:
2001 : DB8 : 123 : 1 : 0 : 0 : 0 : 1
x0 x1 x2 x3 x4 x5 x6 x7
如上所示,字段x1到x7的每个16比特的前导0都没有写出。字段x4、x5和x6为全零,通常可以将连续的全零字段合并,写成压缩的"::"形式。为避免二义性,压缩的"::"字段只能出现一次。这样,通过压缩字段x4、x5和x6可以写成下面这样:
2001:db8:123:1::1
IPv6网络前缀的文本表示为IPv6地址/前缀长度。前缀长度是一个十进制值,用来标识前缀的前导比特长度。例如用上面的地址和前缀长度64表示的网络前缀可以写成下列这样:
2001:db8:123:1::1/64
与IPv4不同,在IPv6地址体系结构中,不允许用不连续的掩码来表示一个网络,因此,用一个数字来指定前导有效比特就足够了,在IPv6地址结构中没有网络掩码的概念。
在IPv6中有两种特殊的单播地址:环回地址和不确定地址。还回地址定义为:
0:0:0:0:0:0:0:1 或 ::1
不确定地址为:
0:0:0:0:0:0:0:0 或 ::
不确定地址是一个标记值,用来说明一个接口地址的缺失。
在IPv4向IPv6转换的过程中,IPv4和IPv6节点可以在一个混合网络环境中共存。为了协助这种转换的进行,定义了一些特殊的IPv6地址。这种特殊的IPv6地址是以IPv4地址作为IPv6地址的低32位比特来构建的。其余的96位用一个预分配的IPv6前缀来填充。
格式如下:
x0:x1:x2:x3:x4:x5:a.b.c.d
从x0到x5是预分配的,格式如下:
0:0:0:0:0:ffff:a.b.c.d
压缩后如下:
::ffff:a.b.c.d
例如IPv4地址192.168.0.1在IPv4和IPv6节点混合网络环境中转换到IPv6的地址就为:
::ffff:192.168.0.1