目录
前言:
一、IPV6的由来
二、什么是IPV6地址?
IPV6地址结构:
前言:
IPV6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng(IP Next Generation),它所在的网络层提供了无连接的数据传输服务。IPv6是IETF设计的一套规范,是IPv4的升级版本。它解决了目前IPv4存在的许多不足之处,IPv6和IPv4之间最显著的区别就是IP地址长度从原来的32位升级为128位。IPv6以其简化的报文头格式、充足的地址空间、层次化的地址结构、灵活的扩展头、增强的邻居发现机制将在未来的市场竞争中充满活力。
一、IPV6的由来
IP(Internet Protocol)是TCP/IP协议族中的网络层协议。(网络层协议主要工作是:借助路由表,负责处理IP数据报在网络中的传输。)IPv4协议是目前广泛部署的因特网协议。在因特网发展初期,IPv4以其协议简单、易于实现、互操作性好的优势而得到快速发展。但随着网络的迅猛发展,地址短缺问题的显现,IETF曾提出过IPv6、IPv7、IPv8、IPv9等四个草案,并希望其中的一种协议能够替代IPv4。经过充分的讨论,IETF最终选择IPv6并替代IPv4,而IPv7、IPv8、IPv9也就从此销声匿迹。
以上是IPV6大致的演进阶段图。
二、什么是IPV6地址?
IPV6地址由网络前缀和接口标识两个部分组成。网络前缀有n位,相当于IPv4地址中的网络ID;接口标识有(128-n)比特,相当于IPv4地址中的主机ID。网络前缀相当于IPV4中的网络位,用来标识和区分不同的网络范围,接口标识就还是在这个网络范围内去区分不同的主机。
IPV6地址结构:
一个IPv6地址可以分为如下两部分:
网络前缀:n比特,相当于IPv4地址中的网络ID接口标识:128-n比特,相当于IPv4地址中的主机ID具体表示方法:
IPv6地址总长度为128比特,表示为"X:X:X:X:X:X:X:X", 每个X代表4个十六进制值字符,以冒号分隔,通常分为8组,每组为4个十六进制数的形式,每组十六进制数间用冒号分隔。同样是为了方便书写和人为的区分。
IPV6提供了压缩格式。例:FC00:0000:130F:0000:0000:09C0:876A:130B,这是IPv6地址的首选格式。具体压缩规则如下:
每组中的前导“0”都可以省略,所以上述地址可写为:FC00:0:130F:0:0:9C0:876A:130B,注,只有每组前导位为“0”才能省略,如果一组数值都为0,则直接补0。地址中包含的连续两个或多个均为0的组,可以用双冒号“::”来代替,所以上述地址又可以进一步简写为:FC00:0:130F::9C0:876A:130B。注:在一个IPv6地址中只能使用一次双冒号“::”,否则当计算机将压缩后的地址恢复成128位时,无法确定每个“::”代表0的个数。补充:
由于无法在短时间内将网络中的全部系统从IPv4升级到IPv6。最有效的过渡方案便是IPv6地址支持内嵌IPv4地址。啥意思呢?就是说可以使用IPV6的地址格式来表示一个IPV4的地址,换句话说就是把IPv4地址转变为了一种特殊形式的IPv6地址:"X:X:X:X:X:X:d.d.d.d" , 其中"X:X:X:X:X:X"的前80位设为0,后16位设为1,然后再跟IPv4地址。例如,IPv4地址是192.168.0.1,那么嵌入在IPv6协议中呈现的地址为::FFFF:192.168.0.1。对于IPv6单播地址来说,如果地址的前三bit不是000,则接口标识必须为64位;如果地址的前三位是000,则没有此限制。(关于这一点,可能是因为IPV6相关的一些协议是默认以64位接口标识设计的,所以希望用户使用接口标识64位的IPV6地址)接口标识可通过三种方法生成:手工配置、系统通过软件自动生成或IEEE EUI-64规范生成,其中,通常使用的是IEEE EUI-64规范生成。
IEEE EUI-64规范是将接口的MAC地址转换为IPv6接口标识的过程。
如下图所示,MAC地址的前24位(用c表示的部分)为公司标识,后24位(用m表示的部分)为扩展标识符。从高位数,第7位是0表示了MAC地址本地唯一。
转换的第一步将FFFE插入MAC地址的公司标识和扩展标识符之间,第二步将从高位数,第7位的0改为1表示此接口标识全球唯一。
FFFE转换为二进制等于1111111111111110,同时因为MAC地址本身就是一个全球唯一的地址,经过这样转换后的IPV6地址也将同样全球唯一。
这种由MAC地址产生IPv6地址接口标识的方法可以减少配置的工作量,尤其是当采用无状态地址自动配置时,只需要获取一个IPv6前缀就可以与接口标识形成IPv6地址。但是使用这种方式最大的缺点是任何人都可以通过二层MAC地址推算出三层IPv6地址。
最后简单对比一下IPV4地址和IPV6地址: