第6章 下一代互联网基本概念和重要意义(1)
内容提要
本章首先介绍下一代互联网的基本概念及其主要特征,然后对下一代互联网的关键技术进行简要介绍。
2.1 下一代互联网概念和特征
2.1.1 基本概念
一般来说,“下一代互联网”是指既保留目前互联网的技术优势,又能较好解决第1章所述的重大技术挑战的新一代互联网。
“保留目前互联网的技术优势”,就是继续采用以IP协议为核心的网络体系结构,包容各种网络通信技术和支撑用户开发创新应用;“新一代互联网”,就是以IPv6协议取代IPv4协议,并且在以IPv6为核心的新的技术平台上继续、更好地解决当前互联网面临的重大技术挑战。因此,下一代互联网以IPv6为基本特征,但IPv6并不是下一代互联网的全部,而只是下一代互联网的开始,是在新的技术平台上解决重大技术挑战,继续演进和发展的互联网。
2.1.2 主要特征
根据下一代互联网的基本概念,下一代互联网的主要技术特征体现在两个方面:其一是以IPv6协议取代IPv4协议;其二是在以IPv6为核心的新的技术平台上解决互联网面临的重大挑战。
在完成了IP协议替换,并更好地解决了互联网面临的重大技术挑战以后,人们期望下一代互联网具有以下五个主要特征。
1.网络地址资源足够丰富
目前互联网的IPv4地址用32位二进制数表征,地址空间有43亿个;下一代互联网的IPv6地址用128位二进制数表征,地址空间将是现有互联网的1029倍。在地址空间足够大的基础上,下一代互联网应该从目前主要连接计算机系统扩展到连接所有可以连接的电子设备。接入终端的种类和数量更多,网络的规模更大,应用更广泛。
2.基础设施更加先进
下一代互联网应该提供更高的传输速率,使端到端的传输速率达到100Mbps以上;应该支持大规模、强交互、高质量的实时视频传输等对延迟性敏感的下一代互联网应用,提供强有力的服务质量保障。
3.网络更加安全、可信、可控、可管、节能
下一代互联网应该在以开放、简单和共享为宗旨的技术优势基础上,建立完备的安全保障体系,从网络体系结构上保证网络信息的真实和可溯源,提供安全可信的网络服务。下一代互联网应该从网络体系结构上提供有效的网络管理元素和手段,对网络流量与用户行为做到可知、可控、可管,实现可靠的网络、业务和用户综合管理能力。下一代互联网应该更加节能。
4.更加智能地实现人与人、物与人、物与物的互联
下一代互联网应该与移动通信、传感器网络、物联网、泛在网络等有机结合,为人与人之间、物与人之间、物与物之间的信息通信提供基础,实现任何人、任何物、在任何时间、任何地点、采用任何系统的任何互联网应用(Anyone, Anything, Anytime, Anywhere, Any system, Any application)。
5.网络经济更加合理
下一代互联网应该克服目前互联网基础网络运营商投入巨资建设网络但是亏损,网络信息内容提供商基于网络提供服务却高额赢利的不合理经济模式,创立合理、公平、和谐的多方赢利模式,保持互联网良性和可持续发展。
2.2 下一代互联网关键技术介绍
2.2.1 IPv6协议及主要优点
IPv6是Internet Protocol Version 6[1]的缩写,被称为下一代互联网协议,它是由IETF设计的用来替代现行的IPv4协议的一种新的IP协议。一般而言,IPv6并不与IPv4兼容,但是它与其他一些辅助性的协议则是兼容的[2],如TCP、UDP、OSPF、BGP、DNS等,有时也要求做一些小的改动。不过,为了实现IPv6,实际上还是需要开发另外一套协议栈的。
IPv6设计的主要目标包括:
(1)即使在不能有效分配地址空间的情况下,也能支持数十亿的主机;
(2)减少路由表的大小;
(3)简化协议,使得路由器能够更快地处理包;
(4)提供比IPv4更好的安全性;
(5)更多地关注服务类型,特别是实时数据;
(6)支持Multicast;
(7)支持移动功能;
(8)协议具有很好的可扩展性;
(9)增强安全性;
(10)在一段时间内,允许IPv4与IPv6共存。
对比IPv4,IPv6的优点主要如下[3]。
1.简化的报头和灵活的扩展
IPv6对数据报头做了简化,以减少处理器开销并节省网络带宽。IPv6的报头由一个基本报头和多个扩展报头(Extension Header)构成,所有路由器都需要处理基本报头。由于Internet上的绝大部分报文都只是被路由器简单地转发,因此固定的报头长度有助于加快路由转发速度。IPv4的报头有15个域,而IPv6的只有8个域;IPv4的报头长度是由IP Header Length(IHL)域来指定的,而IPv6的是固定40字节,这些都使得路由器在处理IPv6报头时显得更为轻松。
与此同时,IPv6还定义了多种扩展报头,这使得IPv6变得极其灵活,能提供对多种应用的强力支持,同时又为以后支持新的应用提供了可能。这些报头被放置在IPv6报头和上层报头之间,每一个可以通过独特的“下一报头”的值来确认。除了逐跳选项报头(它携带了在传输路径上每一个节点都必须进行处理的信息)外,其他扩展报头只有在它到达了IPv6的报头中所指定的目标节点时才会得到处理。
2.层次化的地址结构
IPv6将现有的IP地址长度扩大4倍,由当前IPv4的32位扩充到128位,以支持大规模的网络节点。IPv6支持更多级别的地址层次,IPv6的设计者把IPv6的地址空间按照不同的地址前缀来划分,并采用了层次化的地址结构,以利于骨干网路由器对数据包的快速转发。
3.即插即用的连网方式
IPv6把自动将IP地址分配给用户的功能作为标准功能。只要机器一连接上网络便可自动配置地址。它有两个优点:一是最终用户不用花精力进行地址设定;二是可以大大减轻网络管理者的负担。
IPv6有两种自动配置地址方式:一种是“有状态自动配置”方式;另一种是“无状态自动配置”方式。前者基于IPv6动态主机配置协议(Dynamic Host Configuration Protocol for IPv6,DHCPv6),需要配备专门的DHCPv6服务器,客户端从DHCP服务器的地址池中拿到IPv6地址和其他信息(如DNS等);后者则是通过IPv6的邻居发现协议(Neighbor Discovery, ND)自动实现的。在ND协议中,路由器定期广播的路由器通告报文(Router Advertisement, RA)中含有路由器该接口配置的全局地址前缀信息,主机通过结合自己的接口ID就可以得到一个可聚集全局单播地址。通常情况下,接口ID可以由48位的MAC地址转换得到。
4.网络层的认证与加密
安全问题始终是与Internet相关的一个重要话题。由于在IP协议设计之初没有考虑安全性,因而在早期的Internet上时常发生诸如企业或机构网络遭到攻击、机密数据被窃取等事情。为了加强Internet的安全性,从1995年开始,IETF着手研究制定了一套用于保护IP通信的IP安全(IPSec)协议。IPSec是IPv4的一个可选扩展协议,但在IPv6中则是一个必需的组成部分。
IPSec的主要功能是在网络层对数据分组提供加密和鉴别等安全服务,它提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份及数据在传输过程中是否遭到改动。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被他人截获而失密。
5.服务质量的满足
基于IPv4的Internet在设计之初,只有一种简单的服务质量,即采用“尽最大努力”(Best Effort)传输,从原理上讲服务质量(QoS)是无保证的。随着互联网上多媒体业务的增加,如IP电话、VoD、电视会议等实时应用,对传输延时和延时抖动提出了严格的要求。
IPv6数据包的格式包含一个8位的业务流类别(Class)和一个新的20位的流标签(Flow Label)。最早在RFC1883中定义了4位的优先级字段,可以区分16个不同的优先级。后来在RFC 2460里改为8位的类别字段。其数值及如何使用还没有定义,目的是允许发送业务流的源节点和转发业务流的路由器在数据包上加上标记,并进行除默认处理之外的不同处理。一般来说,在所选择的链路上,可以根据开销、带宽、延时或其他特性对数据包进行特殊的处理。
6.对移动通信更好的支持
移动互联网日益成为人们日常生活的一部分,改变了生活的方方面面。移动互联网不仅是移动接入互联网,它还提供一系列以移动性为核心的多种增值业务,如查询本地化设计信息、远程控制工具、无限互动游戏、购物付款等。
移动IPv6协议的设计汲取了移动IPv4的设计经验,并且利用了IPv6的许多新的特征,所以提供了比移动IPv4更多的、更好的特点。移动IPv6协议已成为IPv6协议不可分割的一部分。
2.2.2 IPv6基本协议
1.IPv6基础报文格式
IPv6基础报头格式很简单,只有6个固定字段和2个地址字段。
可以看出,在报头中唯一保持同样含义和同样位置的是版本字段,都是用最开始的4位来表示的。这种设计的最初想法是在同一局域网上,使用相同的封装和链路驱动来同时运行IPv4和IPv6。网络应用程序判断报头开始位置的版本字段,确定对数据包的处理。如果版本号为4(二进制的0100),那么就认为是IPv4的数据包;如果版本号为6(二进制的0110),那么就认为是一个IPv6的数据包。
IPv4报头中有6个字段不再采用,它们是报头长度、服务类型、标识符、标志、段偏移量、报头校验和;有3个字段被重新命名,并在某些情况下略作改动,它们是长度、协议类型和存活时间;对旧报头中的选项机制进行了彻底修正,增加了两个新的字段:类和数据流标签。
IPv6报头的简化,主要体现在以下三方面[4]。
1)对所有的报头都分配固定的格式
IPv6报头不包含任何选项字段。这并不意味着不能对特殊情况的数据包使用选项操作。恰恰相反,在IPv4中虽然采用了变长的选项字段,但无法实现选项操作。IPv6中的做法是在主报头后附加上一个“扩展报头”(extension headers)。这样做的一个明显好处就是在IPv6中不再需要报头长度字段(IHL)。
2)去掉报头校验和
去掉报头校验和是一个大胆的改动。这样做的主要优点是减小处理报头的开销,因为每次中转并不需要检查和更新校验和。这样做的最大危险就是在未侦测到的错误出现时可能会使网上出现路由出错的数据包。然而,由于大多数的包封装处理过程都有数据包校验和,因此危险会降到最低程度。实际上,在IEEE 802网络的介质访问控制过程、串线链路的点对点协议(PPP)的帧处理过程中都设置了相应的校验和。
3)去掉跳到跳的分段过程
IPv4包括一个分段过程,以便发送方发送大数据包时不必担心网络的中继能力。如有必要,这些大数据包就被分成一定大小的片段。接收方在收到所有的片段之后再重组该数据包。然而,在传输控制协议的实现过程中得到一个重要结论:传输单元应该就是控制单元。假设想通过一个只能传送小段包的网络去传输大数据包,那么数据包传输的成功性取决于每一小段传输的成功性。只要有一小段丢失,那么整个数据包都要重传,结果极大地降低了网络的使用效率。
IPv6的规则是:主机通过一个称为“路径MTU发现”(Path MTU Discovery)的过程能知道最大的可接受的分段大小。如果试图发送较大的数据包,那么这些数据包就会被网络不加考虑地丢弃。这样,在IPv6中就无需IPv4中的那些分段控制字段,无需数据包标识符、分段标志及段偏移量。
2.IPv6扩展报头
1)从选项到扩展报头
IPv4报头包含选项,用以对某些数据包进行特殊处理。初始规范包括对安全、源路由选择、记录和时戳等选项的程序处理描述。然而,这些选项逐渐被废弃,主要是因为性能很差。
数据包转发程序是路由器软件中高度优化的部分。程序员详细统计处理数据包所需的指令。因为处理程序代码的减少会产生更高的性能。每秒转发的数据包比竞争对手多,就等于在市场上能取得更大的成功。加速程序处理数据包的最常用方法,就是对最常出现的数据包进行集中处理,让这些数据包通过程序的“快速路径”(fast path)。而有选项的数据包则不能使用快速路径,因为按IPv4的定义,需要对其做特殊处理。最常见的做法是把它们放到次级队列中,通过优先级别较低的、没有优化的软件来进行处理。结果,应用程序员发现,使用选项会导致性能降低,于是他们就更倾向于只使用简单的数据包,最终导致具有选项的数据包不再被使用。
然而,仍然有必要对某些数据包进行特殊处理。例如,通过源路由选择来请求一条特殊的路由,或者需要接收方对数据包做特殊处理。IPv6吸取了IPv4的经验,决定通过扩展报头来处理这些特殊情况。
2)菊链式报头
IPv4的有效负载(如TCP数据包)紧跟在IP报头之后。而IPv6的IP报头和有效负载之间可以插入任意数目的扩展报头。每个报头都用一个报头类型来标识,并携带链中下一个报头的类型。如果是最后一个扩展报头,则是有效负载的类型。
(1)Hop-by-Hop Options:逐跳选项报头。
此扩展头必须紧随在IPv6头之后,它携带了数据包转发过程中所有节点(路由器和目的节点)都需要处理的信息。例如,某些网管功能和某些调试功能要求将附加信息传递给路径上的所有路由器。
(2)Routing:路由报头。
其作用与IPv4中的“源路由”选项相同,扩展头中携带了数据包需要途径的各节点的地址列表。在IPv4中,源节点指定的路由在选项报头字段中设置,使得所有的路由器都需要检查选项报头字段,即使它们并不是在这条路由上明确列出的中继节点,从而导致该类数据包的处理非常慢,目前已经很少使用。IPv6则对此进行了改进。路由器只在自己的地址在主报头的目的地址字段中出现时才需要检查路由选择报头,否则就可以不做额外处理,直接将数据包转发出去,这样就保证了较好的处理性能。
举例说明了该扩展头的处理过程。
(3)Fragment:分段报头。
该扩展头用于IPv6源节点向目的节点发送一个超过路径MTU长度的报文。不过,与IPv4协议不同的是,IPv6的分段只能由源节点进行,沿途进行转发的路由器不能进行分段操作。
(4)Destination Options:目的地选项报头。
该扩展头携带了需要IPv6报文目的节点检查的可选信息。
(5)Authentication:认证报头。
该扩展头提供了对需保护的数据进行数据验证、数据完整性检测和反重放保护。
(6)Encapsulating Security Payload:封装安全载荷报头。
该扩展头指明剩余的净荷已经加密,并为已获得授权的目的节点提供足够的解密信息。
3.ICMPv6协议
ICMPv6即IPv6控制信息协议(Internet Control Message Protocol Version 6)。它最初于1995年由RFC 1885定义,然后在1998年由RFC 2463定义了第2版的标准,目前最新版的标准是2006年所制定的RFC 4443[5]。
ICMPv6用于IPv6节点在处理报文遇到问题时进行差错报告,以及其他的网络层功能,如网络连接性诊断。ICMPv6协议是IPv6协议簇的基本组成部分,每个IPv6节点都必须支持该协议。
当IPv6数据包不能到达其目的节点时,通常将自动发送ICMPv6消息(即错误报文)。根据RFC 4443,ICMPv6的差错报文主要包括四种。
(1)Destination Unreachable:目的站点不可达。
(2)Packet Too Big:报文太大。
(3)Time Exceeded:超时。
(4)Parameter Problem:参数有问题。
ICMPv6的信息报文则主要包括如下两种。
(1)Echo Request:回送请求,用来确定IPv6节点在网络上是否可用。
(2)Echo Reply:回送响应。
4.ND协议
ND协议即IPv6邻居发现协议(Neighbor Discovery for IP Version 6)。它最初于1996年由RFC 1970定义,然后在1998年由RFC 2461定义了第2版的标准,目前最新版的标准是2007年所制定的RFC 4861[6]。
ND协议是一组确定邻居节点之间关系的消息和过程。它代替了在IPv4中使用的地址解析协议(ARP)、ICMP协议的路由器发现和ICMP重定向功能,并提供了其他功能。具体来说,ND协议有如下主要功能。
(1)Router Discovery:路由器发现。
(2)Prefix Discovery:网络前缀发现。
(3)Parameter Discovery:参数发现(如MTU)。
(4)Address Autoconfiguration:IPv6地址自动配置。
(5)Address Resolution:链路层地址解析(类似IPv4里面的ARP)。
(6)Neighbor Unreachability Detection(NUD):邻居不可达检测。
(7)Duplicate Address Detection(DAD):重复地址检测。
(8)Redirect:重定向。
ND协议的这些功能主要是通过其定义的5种协议报文来实现的。
(1)Router Solicitation(RS):路由器请求报文。当接口启动后,主机通过发送RS报文,可以请求路由器马上发送RA报文,从而获知该子网的网络前缀等信息。
(2)Router Advertisement(RA):路由器通告报文。该报文携带了子网前缀等信息。路由器会定期广播该报文。另外,当收到RS请求报文时,路由器也会广播RA报文。
(3)Neighbor Solicitation(NS):邻居请求报文。当节点希望知道某个邻居节点的链路层地址,或者某个链路层地址对应的邻居节点是否仍然能够连通,以及需要进行重复地址检测时,就会发送NS报文。
(4)Neighbor Advertisement(NA):邻居通告报文。该报文是对NS报文的应答。另外,当某个节点的链路层地址发生改变后,也会主动广播NA报文。
(5)Redirect:重定向报文。路由器用来通知主机更好的第一跳(网关)的信息。