计算机网络体系结构第12章下一代因特网协议IPV6本章主要内容12.1IPV6的产生12.2IPV6的主要优点12.3IPV6的技术要点12.4IPv6的发展战略和规划12.5IPv6试验网络复习思考题12.1IPV6的产生产生原因IPv4网络的两大危机:地址枯竭和路由表急剧膨胀IPv6的地址空间几乎无限产生过程1992年开始开发IPv6协议1995年12月在RFC1883中公布了建议标准(proposalstandard)1996年7月和1997年11月先后发布了版本2和2.1的草案标准(draftstandard)1998年12月发布了标准RFC2460。12.1.1IPng的设计目标支持几乎无限大的地址空间;减小路由表的大小;简化协议,使路由器能更快地处理数据包;提供更好的安全性,实现IP级的安全;支持多种服务类型,尤其是实时业务;支持多点传送,即支持组播;允许主机不更改地址实现异地漫游;支持未来协议的演变以适应底层网络环境或上层应用环境的变化;支持自动地址配置;协议必须能扩展,它必须能通过扩展来满足将来因特网的服务需求,并且扩展必须是不需要网络软件升级就可实现的;协议必须支持可移动主机和网络。12.1.2针对IPng的设计目标提案TUBA:含有更多地址的TCP和UDP,允许用户有20字节的NSAP地址,以及一个可以使用的OSI传输协议的平台;IPv7,TP/IX,CATNIP:IPv7是1992年由RobertUllmann提出的。1993年,改称“TP/IX”,有64位地址。后来演变成另一个协议CATNIP。该方案包含了快速信息包处理和新的RAP路由协议等观点,试图为IP、CLNP和IPX等信息包定义一个统一的格式,为众多的传输协议提供支持;IPinIP与IPAE:IPinIP于1992年提出,采用两个IPv4层来解决互联网地址的匮乏:一层用于全球骨干网络,另一层用于某些特定的范围。1993年,IPinIP发展为IPAE(IPAddressEncapsulation),并且被采纳为SIP的过渡方案;SIP(SimpleIP):由SteveDeering在1992年11月提出,把IP地址改为64位,并且去除IPv4中一些过时的字段。此建议由于其简单性立刻得到了许多公司的支持;PIP(Paul‘sInternetProtocol):由PaulFrancis提出,PIP是一个基于新的结构的IP,支持以16位为单位的变长地址,地址间通过标识符进行区分,允许高效的策略路由并实现了可移动性。1994年9月,PIP和SIP合并,称为SIPP;SIPP(SimpleIPPlus):SIPP设计为在高性能的网络上运作,同时也可以在低带宽的网络上运行。SIPP去掉了IPv4报头的一些字段,使得报头很小,并且采用64位地址。与IPv4不同,SIPP中把IP选项与报头进行了隔离,选项(如果有)将被放在报头后的数据报中并位于传输层协议头之前。路由器只有在必要的时候才会对选项头进行处理。12.1.3IPv6成为IPng的标准IPv6侧重于网络的容量和网络的性能。IPv6继承了IPv4的优点,摒弃了它的缺点。IPv6与IPv4是不兼容的,但它同所有其他的TCP/IP协议族中的协议兼容,即IPv6完全可以取代IPv4。同IPv4相比较,IPv6在地址容量、安全性、网络管理、移动性以及服务质量等方面有明显的改进,是下一代互联网可采用的比较合理的协议。12.1.4IPv6和IPng的区别目前,国际上主要由IETF负责IPv6的标准制定工作。IPng问题就是在IPv4的地址空间出现危机时提出的,地址即将耗尽和路由表的过度膨胀是促使IPng问题产生的直接原因。IETF的IPng工作组在1994年9月提出了一个正式的草案“TheRecommendationfortheIPNextGenerationProtocol”;1995年底确定了IPng的协议规范,分配了版本号6(IPv5已经用在TCP/IP协议族中的视频流媒体服务方面了),称为“IPversion6”(IPv6),同现在使用的版本4相区别;1998年又作了较大的改动。简单说,IPng更像是为“修订IP”而提出的一个概念性的名字,没有一个具体的协议叫做IPng,它是所有有关的下一代互联网协议的总称,而IPv6是IPng协议中的一个具体的协议。12.2IPv6的主要优点IPv6是为了解决IPv4所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进,例如路由方面、自动配置方面。对比IPv4,IPv6所引进的主要优点如下:(1)更大的地址空间(2)层次化的地址结构(3)简化而灵活的报头格式(4)即插即用的连网方式(5)与IP安全性(IPSec)机制和服务结合更加紧密(6)服务质量的提高(7)对移动通讯更好的支持12.3IPv6协议技术要点12.3.1IPv6的基本首部IPv6数据报的报头由一个基本首部(BaseHeader)和多个扩展首部(ExtensionHeader)构成,扩展首部可以没有,所有的扩展首部和后边的数据合起来称作数据报的有效载荷(payload)或净负荷。与IPv4相比,IPv6的首部结构如下不同:(1)取消了报头长度(headerlength)字段,,因为IPv6的首部长度固定为40个字节。(2)取消了服务类型字段,因为新增加的通信分类和流标签两个字段合起来实现了服务类型字段的功能。(3)取消了总长度报文总长(totallength)字段,改用有效载荷长度字段。(4)取消了标识符(identification)、标志(flag)、分段偏移(fragmentoffset)字段,因为这些功能可以用分段扩展报头实现。(5)生存时间(timetolive,TTL)字段改称跳数限制字段,但作用是一样的。(6)取消了协议类型(protocoltype)字段,改用下一报头(nextheader)字段。(7)取消了校验和字段,加快了路由器处理数据报的速度。因为在数据链路层和运输层都有差错监测机制,因此网络层的差错检验可以精简掉。(8)取消了选项字段,而用扩展报头来实现选项功能。表12-1和表12-2分别给出了IPv4与IPv6首部的具体格式表12-1IPv4首部格式4bit版本号4bit报头长度8bit服务类型16bit数据报长度标识符(16bit)标志(4bit)分段偏移(12bit)生存时间(8bit)传输协议(8bit)报头校验和(16bit)源IP地址(32bit)目的IP地址(32bit)选项(24bit)填充(8bit)表12-2IPv6首部格式4bit版本号8bit通信分类20bit流标签净荷长度(16bit)下一报头(8bit)HOP限制(8bit)源IP地址(128bit)目的IP地址(128bit)12.3.2IPv6的扩展首部在IPv6里,可选的网络层信息在一个独立的首部编码,放在包中IPv6首部与上层协议首部之间。有这样几个为数不多的扩展首部,每个首部由不同的下一个首部的值来标识。一个IPv6首部可以携带零个,一个或者更多的扩展首部,每个扩展首部由前一个首部中的下一个首部字段标识。12.3.2IPv6的扩展首部图12-1IPv6扩展首部举例(1)扩展首部的种类为了后面的首部保持8个八位组对齐,每个扩展首部都是8个八位组的整数倍长。每个扩展首部的多八位组字段都以它们的自然边界对齐。也就是说,宽度为n个八位组的字段放在距首部开始位置处n个八位组的整数倍的位置上,其中n=1,2,4,或者8。在RFC2460标准中,IPv6定义了以下六种扩展首部:Hop-by-Hop选项首部路由首部(类型0)分片首部目的地址首部认证首部封装安全有效数据首部(ESP首部)(2)扩展首部的顺序IPv6首部Hop-by-Hop选项首部目的地址选项首部路由首部分片首部认证首部封装安全有效数据首部目的地址选项首部上层协议首部除了目的地址选项首部最多出现两次(一次在路由首部前,一次在上层协议首部前)以外,每个扩展首部应当只出现一次。如果上层协议首部是另一个IPv6首部(在使用通道技术或封装在IPv6中的情况下),它后面可以有自己的扩展首部.这些扩展首部以同样的建议顺序独立排列。如果定义了其他的扩展首部,与上面列出的扩展首部相关的次序限制必须加以说明。除了Hop-by-Hop选项首部必须紧跟在IPv6首部后面以外,IPv6节点必须接受并且尽量处理任意顺序的,以及在同一个包内出现任意多次的扩展首部。尽管如此,建议IPv6包的源节点遵守上面的建议顺序,除非后续的协议规范修改这一顺序。(3)扩展首部举例下面以路由首部为例说明扩展首部的作用和格式。路由首部用于IPv6源节点列出到包的目的节点的路径中所应“访问”的一个或多个中间节点。这一功能十分类似于IPv4的松散源地址和路由记录选项。前面的首部中“下一个首部”字段中的值为43表示下一个首部为路由首部。路由首部具有如下的格式:下一个首部首部扩展长度路由类型分段剩余特定类型的数据图12-3路由首部的格式其中:下一个首部:8位选择器。标识紧跟在路由首部后面的首部的类型。使用与IPv4协议字段相同的数值。首部扩展长度:8位无符号整数。以8个八位组为单位的路由首部的长度,不包括开始的8个八位组。路由类型:8位的某种特定路由首部变量的标识符。分段剩余:8位无符号整数。剩余的路由分段的数量。也就是在到达最终的目的节点之前仍然应当访问的,明确列出的中间节点的数量。特定类型的数据:可变长度字段。其格式由路由类型决定,其长度须使整个路由首部的长度为8个八位组的整数倍。12.3.3IPv6的地址空间IPv6使用128位的地址空间,主要是从地址容量、处理效率和未来网络的扩展性几个方面来考虑的。IPv6地址容量巨大,共有2128个不同的IPv6地址。若按土地面积分配,每平方厘米可获得2.2*1020个地址。如果地址分配的速率是每秒100万个,则需要1019年才能用完。IPv6地址耗尽的机会是很小的。在可预见的很长时期内,IPv6充足的地址空间将极大地满足那些伴随着网络智能设备的出现而对地址增长的需求,例如个人数据助理(PDA)、移动电话(MobilePhone)、家庭网络接入设备(HAN)等。1.IPv6地址的表示格式IPv6的128位地址以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。例如:21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A是一个完整的IPv6地址。IPv6的地址表示有以下几种特殊情形:(1)每个16位分组中的前导零位可以去除,但每个分组必须至少保留一位数字。(2)相邻的连续零位合并,用双冒号“::”表示。(3)x:x:x:x:x:x:d.d.d.d形式,其中x是地址中6个高阶16位分组的十六进制值,d是地址中4个低阶8位分组的十进制值(标准IPv4表示)。适合在IPv4和IPv6混合环境中使用。2.IPv6的地址类型IPv6将实现IPv6的主机和路由器均称为节点。IPv6地址是分配给结点上面的接口,而不是节点。IPv6地址是单个或一组接口的128位标识符,有三种类型:单播(Unicast)地址、多播(Multicast)地址、任意播(Anycast)地址。(1)单播(Unicast)地址单播即传统的点对点通信。单播地址是单一接口的标识符。发往单播地址的包被送给该地址标识的接口。对于有多个接口的节点,它的任何一个单播地址都可以用作该节点的标识符。单播地址中有下列两种特殊地址:不确定地址(0:0:0:0:0:0:0:0):它不能分配给任何节点,不能在IPv6包中用作目的地址,也不能用在IPv6路由头中。它的一个应用示例是初始化主机时,在主机未取得自己的地址以前,可在它发送的任何IPv6包的源地址字段放上不确定地址。回环地址:单播