一、概述
延缓IPv4地址耗尽的短期方案之一为NAT(Network Access Translation)。NAT技术在延缓IPv4地址耗尽问题方面非常成功,在大多数网络设计中已经成为一个标准部分。
NAT技术的缺陷:把原来具有开放、透明、对等特点的Internet变成了看上去更像一个具有客户-服务器(Client-Server)结构的网络的巨大集合。而用户则只在外围连接到Internet的”边缘层“,Internet向它们提供服务。用户很少对Internet的整体资源做出贡献。更多的从某种经济的角度看,Internet的用户仅仅成为了消费者,而不是生产者。
推动IPv6发展的两个基本动力:1、 诸如移动IP协议(Mobile IP)、服务质量保证(QoS)、端到端的安全、网格计算(Grid Computing)、点到点网络互连等核心概念的新型应用。NAT技术遏制了这些领域的创新,因而摒弃NAT技术的惟一手段是提供充足的并且易用使用的公共IP地址。 2、拥有众多人口的国家的快速的现代化发展,例如中国和印度。有些国家不得不继续保留一个具有4~5层NAT技术的网络层次架构,以支持对IPv4地址的需求。
二、IPv6地址
IPv6地址与IPv4的地址区别不仅表现于地址长度不同,更重要的是表示格式和功能组织差别非常大。
不像IPv4地址前缀可以通过点分十进制、十六进制地址掩码或位计数方式来表示,IPv6协议的前缀始终通过位计数的方式来标识。一个有全0组成的IPv6地址可以被简写为一个双冒号。有两种实例使用了全0地址。第一是缺省地址,是全0的形式,并且长度也是0,即, ::0/0。第二个全0的IPv6地址的实例是未指定地址(unspecified address),未指定地址使用在某些邻居发现协议中。与缺失地址的区别在于长度不同: ::0/128.
IPv6的地址类型:单播(Unicast)、任意播(Anycast)和多播(Multicast)。
IPv6通用的单播地址格式:
全球路由前缀(48) |
子网ID (16) |
接口ID (64) |
多播地址:
多播地址标识一组设备——一个多播组(multicast group)。在一个数据包中,多播地址只能作为目的地址,从来不会出现在源地址中。多播传送实际是IPv6的一个基本的操作,尤其是对于即插即用特性的一些功能,如路由器发现和地址自动配置等,这些功能是邻居发现协议的一部分。
多播地址格式如下图所示:
多播前缀 (0xFF) |
标记(4) |
范围(4) |
组ID(112) |
0x0 |
保留 |
0x1 |
节点本地 |
0x2 |
链路本地 |
0x5 |
地区本地 |
0x8 |
组织本地 |
0xE |
全球 |
0xF |
保留 |
三、IPv6包头格式
版本(4) |
流量类别(8) |
流标签(20) |
|
有效载荷长度(16) |
下一报头(8) |
跳数限制(8) |
|
源地址 |
|||
目的地址 |
版本(version):4位的字段,用来指出IP协议的版本
流量类别(Traffic Class): 8位的字段,相当于ToS字段
流标签(Flow Lable):IPv6独有的字段,长度为20位,这个字段的目的是允许位特定的业务流打上标签。数据包不仅始发于相同的源和达到相同的目的地,而且在源和目的地都属于相同的应用。区分不同的流可以带来几方面的优点:可以提供更精细的服务类别区分的颗粒,在平衡业务流通过多条路径时可以确保属于同一个流的数据包能够总是转发到相同的路径上,以便避免对数据包进行重新排序。流(微分流,microflows)可以用源地址、目的地址加上源和目的端口的组合来确定。但是为了识别源和目的端口,Router必须能够看到IP报头的上层——TCP或UDP报头——增加了转发处理的复杂性,并可能影响Router的性能。到目前为止,如何使用流标签目前还存在争论,因此目前Router总是忽略此字段。
有效载荷长度(Playload Length):不包含报头的长度,因为报头长度固定为40字节
下一包头(Next Header):指出了跟随该IPv6报头后面的报头,与IPv4中的协议报头类似
跳数限制(Hop Limit):与IPv4协议中的生存时间(TTL)类似
在IPv6报头中,很明显缺少的一个字段是IPv4报头中包含的校验和字段。在现代传输介质的可靠性全面提高的今天(无线介质除外)——由于上层协议通常携带字节的错误校验和恢复机制,IPv6报头本身的校验和就体现不出太多的价值,因此被去掉。
四、IPv6扩展报头
与IPv4报头相比,IPv6报头更加简洁和高效,把不常用的选项字段放到了扩展报头中,这样做可以在2个方面提高效率:
1)数据包仅仅需要传送各自数据包所需要的信息,不需要传送用不着的字段
2)可以定义新的扩展报头来增加新的可选功能。
目前有以下几个扩展报头:
1)逐条可选项(Hop-by-Hop Options)——传送必须被转发路径中的每一个节点都检验处理的信息,目前有2个选项:路由器警告和超大包有效载荷选项。
2)路由选择&