IPv6是Internet Protocol Version 6的缩写,其中Internet Protocol译为“互联网协议”。IPv6是IETF(互联网工程任务组,Internet Engineering Task Force)设计的用于替代现行版本IP协议(IPv4)的下一代IP协议。目前IP协议的版本号是4(简称为IPv4),它的下一个版本就是IPv6。
IPV5 已预留给在 IPv6 之前开发的互联网信息流协议,从未广泛部署,也不会公开使用。
特点
- IPV6地址长度为128位,地址空间增大了2的96次方倍,达到了2的128次(IPV4的最大地址个数为2的32次);
- 灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;
- IPV6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;
- 提高安全性。身份认证和隐私权是IPV6的关键特性;
- 支持更多的服务类型;
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展;
IPv6 编址:
从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373 和RFC 2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数。
在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。
IPv6地址表示
冒号十六进制形式
IPv6地址为128位长,但通常写作
8组,每组为四个十六进制数的形式n:n:n:n:n:n:n:n,。例如:FE80:0000:0000:0000:AAAA:0000:00C2:0002 是一个合法的IPv6地址。
压缩形式
要是嫌上面这个地址看起来还是太长,这里还有种办法来缩减其长度,叫做
零压缩法。如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,上述地址 就可以写成FE80::AAAA:0000:00C2:0002。这里要注意的是
只能简化连续的段位的0,其前后的0都要保留,比如FE80的最后的这个 0,不能被简化。还有
这个只能用一次,在上例中的AAAA后面的0000就不能再次简化。当然也可以在AAAA后面使用::,这样的话前面的12个0就不 能压缩了。这个限制的目的是为了能准确还原被压缩的0.不然就无法确定每个::代表了多少个0.
同时前导的零可以省略,因此: 2001:0DB8:02de::0e13等价于2001:DB8:2de::e13。
环回地址 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 都表示六个 IPv6 高序位 16 位地址元素之一的十六进制值,每个 d 都表示 IPv4 地址的十进制值。
一个IPv6地址可以将一个IPv4地址内嵌进去,并且写成IPv6形式和平常习惯的IPv4形式的混合体。IPv6有两种内嵌IPv4的方式:
IPv4映像地址和IPv4兼容地址。
IPv4映像地址有如下格式:::ffff:192.168.89.9
这个地址仍然是一个IPv6地址,只是0000:0000:0000:0000:0000:ffff:c0a8:5909的另外一种写法罢了。
IPv4兼容地址写法如下:::192.168.89.9
如同IPv4映像地址,这个地址仍然是一个IPv6地址,只是0000:0000:0000:0000:0000:0000:c0a8:5909的另外一种写法罢了。
IPv4兼容地址已经被舍弃了,所以今后的设备和程序中可能不会支持这种地址格式。
地址类型
IPV6地址中的前导位定义特定的 IPv6 地址类型。包含这些前导位的变长字段称作格式前缀 (FP)。
IPv6 单播地址被划分为两部分。第一部分包含地址前缀,第二部分包含接口标识符。表示 IPv6 地址/前缀组合的简明方式如下所示:
ipv6 地址/前缀长度。
以下是具有 64 位前缀的地址的示例。
3FFE:FFFF:0:CD30:0:0:0:0/64.
此示例中的前缀是 3FFE:FFFF:0:CD30。该地址还可以以压缩形式写入,如 3FFE:FFFF:0:CD30::/64。
单播地址(Unicast) 用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值 FF。此八位字节的任何其他值都标识单播地址。
任播地址(Anycast) 任播,也叫泛播。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口(根据路由走最近的路线)。任播地址类型代替 IPv4 广播地址。
组播地址(Multicast) IPv6中的组播在功能上与IPv4中的组播类似:表现为一组接口对看到的流量都很感兴趣。
Unicast: An identifier for a single interface. A packet sent to
a unicast address is delivered to the interface
identified by that address.
Anycast: An identifier for a set of interfaces (typically
belonging to different nodes). A packet sent to an
anycast address is delivered to one of the interfaces
identified by that address (the "nearest" one, according
to the routing protocols' measure of distance).
Multicast: An identifier for a set of interfaces (typically
belonging to different nodes). A packet sent to a
multicast address is delivered to all interfaces
identified by that address.
环回地址(loopback address)
环回地址是
主机用于向自身发送通信的一个特殊地址。环回地址为同一台设备上运行的 TCP/IP 应用程序和服务之间相互通信提供了一条捷径。同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开 TCP/IP 协议栈的下层。通过 ping 环回地址,还可以测试本地主机上的 TCP/IP 配置。
IPv4 的环回地址是
保留地址之一 127.0.0.1。尽管只使用 127.0.0.1 这一个地址,但地址 127.0.0.0 到 127.255.255.255 均予以保留。此地址块中的
任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。
与 IPv4 一样,IPv6 也提供了特殊环回地址以供测试使用,发送到此地址的数据报会环回到发送设备。不过,IPv6 中用于此功能的地址只有一个,而不是一个地址块。
环回地址为 0:0:0:0:0:0:0:1,一般用零的压缩形式表示为“::1”。
IPv6 + 端口号:把IPv6的地址用[]包起来,如[fd94:8414:eef6:325d::c0a8:1302]:45001