Internet规模发展得非常快,而且随着物联网的发展,IPv4已经不能满足需求。最主要的问题就是32bit的LP地址空间太小,IP地址很快就要耗尽。尽管采取了一些措施,如无类别编址CIDR,使IP地址的分配更加合理;网络地址转换NAT方法以节省全球IP地址。但这只能解决一时之需,根本的办法还是采用具有更大地址空间的新版本IP协议,即IPv6。
从1996年开始,一系列用于定义IPv6的RFC发表出来,最初的版本为RFC1883。由于IPv4和IPv6地址格式等不相同,因此在未来的很长一段时间里,互联网中将出现IPv4和IPv6长期共存的局面。
相较IPv4,IPv6主要变化有:①更大的地址空间,IPv6将地址从IPv4的32bit增大到了128bit;②扩展的地址层次结构;③灵活的首部格式;④改进的选项;⑤允许协议继续扩充;⑥支持即插即用(即自动配置);⑦支持资源的预分配。
(1)IPv6报文格式。
IPv6基本报头的格式如图4-19所示。
IPv6报文的整体结构分为IPv6基本报头、扩展报头和上层协议数据3部分。IPv6基本报头是必选报文头部,长度固定为40字节,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他可能报文。
图4-19 IPv6基本报头的格式
版本号:占4bit,表示协议版本值为6。
流量等级:占8bit,主要用于服务质量。
流标签:占20bit,用来标识同一个流里面的报文。“流”是互联网络上从特定源点到特定目的点的一系列数据报,所有属于同一个流的数据报都具有同样的流标号。
载荷长度:占16bit,表明该IPv6数据报除基本首部以外的字节数,所有扩展首部都算在有效载荷之内,其最大值是64KB。
下一报头:占8bit,该字段用来指明报头后接的报文头部的类型。若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型。它是IPv6各种功能的核心实现方法。
跳数限制:占8bit,类似于IPv4中的TL,每次转发跳数减一,该字段达到0时包将会被丢弃。
源地址:占128bit,标识该报文的来源地址。
目的地址:占128bit,标识该报文的目的地址。
(2)IPv6地址。
IPv6数据报的目的地址可以是以下三种基本类型地址之一。
多播(multicast):多播是一点对多点的通信。
任播(anycast):是IPv6增加的一种类型。任播的目的站是一组计算机,但数据包在交付时只交付给其中的一个,通常是距离最近的一个。
IPv6的地址长度为128位,是IPv4地址长度的四倍。因此,IPv4的点分十进制格式不再适用,采用十六进制表示。IPv6有三种表示方法。
第一种,冒分十六进制表示法。
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16bit,以十六进制表示,
例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如,2001:0DB8:0000:0023:0008:0800:200C:417A可以写成:(www.xing528.com)
2001:DB8:0:23:8:800:200C:417A
第二种,0位压缩表示法。
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“∷”。但为保证地址解析的唯一性,地址中的“∷”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101写成FF01∷1101
0:0:0:0:0:0:0:1写成∷1
0:0:0:0:0:0:0:0写成∷
第三种,内嵌IPv4地址表示法。
为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96bit采用冒分十六进制表示,而最后32bit地址则使用IPv4的点分十进制表示,例如:
∷192.168.0.1和∷FFFF:192.168.0.1
在前96bit中,压缩0位的方法依旧适用。
(3)从IPv4到IPv6过渡。
由于IPv4在不远的将来不再适用,必然要过渡到IPv6,但IPv6并不能兼容IPv4,因此,需要有一定的过渡期和过渡机制。IETF ngtrans工作小组提出了许多转换机制,主要有:
第一种,IPv6/IPv4双协议栈技术。
双栈机制就是使IPv6网络节点具有一个IPv4栈和一个IPv6栈,同时支持IPv4和IPv6协议。这样该节点就可以和仅支持IPv4或IPv6协议的主机通信(图4-20)。
图4-20 IPv4/IPv6双协议栈技术示意图
第二种,隧道技术。
在IPv6主机之间进行通信时,可能要经过IPv4的路由器或网络。隧道技术是将IPv6数据包作为数据封装在IPv4数据包里,使IPv6数据包能够在已有的IPv4路由器上传输的机制,如图4-21所示。隧道对于源站点和目的站点是透明的,在隧道的入口处,路由器将IPv6的数据分组封装在IPv4中,该IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址,在隧道出口处,再将IPv6分组取出转发给目的站点,这样IPv6的主机之间的通信就可以跨越IPv4网络的隔离。隧道技术的优点在于隧道的透明性,IPv6主机之间的通信感觉不到隧道的存在。但是,隧道技术不能实现IPv4主机和IPv6主机之间的通信。
图4-21 使用隧道技术从IPv4过渡到IPv6
第三种,网络地址转换技术。
网络地址转换(NAT)技术是将IPv4地址和IPv6地址分别看作内部地址和全局地址,或者相反。例如,内部的IPv4主机要和外部的IPv6主机通信时,在NAT路由器中将IPv4地址(相当于内部地址)变换成IPv6地址(相当于全局地址),NAT路由器器维护一个IPv4与IPv6地址的映射表。反之,当内部的IPv6主机和外部的IPv4主机进行通信时,则IPv6主机映射成内部地址,IPv4主机映射成全局地址。NAT技术可以解决IPv4主机和IPv6主机之间的互通问题(图4-22)。
图4-22 使用网络地址转换技术从IPv4过渡到IP v6
随堂练习
解决IPv4到IPv6的过渡,有哪些技术?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。