4.3.6 下一代网际协议IPv6

4.3.6 下一代网际协议IPv6

随着IP网络的飞速发展、用户数量的急剧增多,IPv4的地址空间太小、分类的地址利用率低、地址分配不均、IP数据报的首部不够灵活等问题逐渐暴露出来,严重制约了IP技术的应用,为了解决IPv4存在的问题,具有强大优势的IPv6应运而生,并得到广泛的认可。

1.IPv6的特点

IPv6与IPv4相比具有以下较为显著的优势。

(1)极大的地址空间

IP地址由原来的32 bit扩充到128 bit,使地址空间扩大了296倍,彻底解决了IPv4地址不足的问题。

(2)分层的地址结构

IPv6支持分层的地址结构,更易于寻址;而且扩展支持组播和任意播地址,使得IP数据报可以发送给任何一个或一组节点。

(3)支持即插即用

大容量的地址空间能够真正地实现无状态地址自动配置,使IPv6终端能够快速连接到网络上,无需人工配置,实现了真正的自动配置。

(4)灵活的数据报首部格式

与IPv4相比,IPv6数据报首部格式作了很大简化,有效地减少了路由器或交换机对首部的处理开销。同时,加强了对扩展首部和选项部分的支持,并定义了许多可选的扩展字段,可以提供比IPv4更多的功能,既使转发更为有效,又为将来网络加载新的应用提供了充分的支持。

(5)支持资源的预分配

IPv6支持实时视像等要求保证一定带宽和时延的应用。

(6)具有更高的安全性

使用IPv6网络的用户可以对网络层的数据进行加密并对IP数据报进行校验,极大地增强了网络的安全性。

(7)方便移动主机的接入

IPv6在移动网络方面有很多改进,具备强大的自动配置能力,简化了移动主机的系统管理。

总之,IPv6能够提供充足的网络地址和广阔的创新空间,是全球公认的下一代互联网商业应用解决方案。

2.IPv6数据报格式

IPv6数据报的一般格式如图4-31所示。

图4-31 IPv6数据报的一般格式

由图4-31可见,IPv6数据报也包括首部和数据两部分,而首部又包括基本首部和扩展首部,扩展首部是选项。扩展首部和数据部分合起来称为有效载荷。

IPv6基本首部的结构比IPv4简单得多,其中删除了IPv4首部中许多不常用的字段,或放在了可选项和扩展首部中。IPv6数据报首部的具体格式如图4-32所示。

图4-32 IPv6数据报首部的具体格式

(1)IPv6基本首部

IPv6基本首部共40 B,各字段的作用如下。

(a)版本:占4 bit,指明协议的版本。对于IPv6该字段为6。

(b)通信量类:占8 bit,用于区分IPv6数据报不同的类型或优先级,主要用于QoS。

(c)流标号:占20 bit,是IPv6支持资源分配的一个新的机制。“流”是互联网络上从特定源点到特定终点的一系列数据报,“流”所经过的路径上的路由器都保证指明的服务质量。所有属于同一个“流”的数据报都具有同样的流标号。

(d)有效负荷长度:占16 bit,指明IPv6数据报除基本首部以外的字节数,最大值为64KB。

(e)下一个首部:占8 bit。无扩展首部时,此字段同IPv4的报头中的协议字段;有扩展首部时,此字段指出后面第一个扩展首部的类型。

(f)跳数限制:占8 bit,用来防止IPv6数据报在网络中无限期地存在。

(g)源地址:占128 bit,为数据报的发送端的IP地址。

(h)目的地址:占128 bit,为数据报的接收端的IP地址。

(2)IPv6扩展首部

IPv6定义了6种扩展首部。

·逐跳选项:用于携带选项信息,IPv6数据报所经过的所有路由器都必须处理这些选项信息。

·路由选择:类似于IPv4中的源路由选项,是源站用来指明IPv6数据报在路由过程中必须经过哪些路由器。

·分片:是当源站发送长度超过路径最大传输单元(MTU)的数据报时进行分片用的扩展首部。

·鉴别:用于对IPv6数据报基本首部、扩展首部和数据净荷的某些部分进行加密。

·封装安全有效载荷:是指明剩余的数据净荷已加密,并为已获得授权的目的站(目的主机)提供足够的解密信息。

·目的站选项:目的站选项用于携带只需要目的站处理的选项信息。

对于扩展首部,下面做几点说明:

(a)为了提高路由器的处理效率,IPv6规定,数据报途中经过的路由器都不处理这些扩展首部(只有逐跳选项扩展首部例外),将扩展首部留给路径两端的源站和目的站的主机来处理。

(b)每一个扩展首部都由若干个字段组成,不同的扩展首部的长度不一样。但所有扩展首部的第一个字段都是8位的“下一个首部”字段,此字段的值指出了在该扩展首部后面的字段是什么,即是哪个其他扩展首部或TCP/UDP等首部。表4-3列出了不同扩展首部时,前一个首部中“下一个首部”字段的值。

表4-3 “下一个首部”字段的值

(c)当使用多个扩展首部时,应该按照表4-3所示的先后顺序出现。

(d)当IPv6数据报不包含扩展首部时,固定首部中的下一个首部字段就相当于IPv4首部中的协议字段,即此字段的值指出后面的有效载荷是什么类型及应该交付给上一层的哪一个进程。

3.IPv6地址体系结构

(1)IPv6的地址结构

IPv6的地址结构如图4-33所示。

图4-33 IPv6的地址结构

由图4-33可见,IPv6将128 bit地址空间分为两大部分。

IPv6地址的第一部分是可变长度的类型前缀,它定义了地址的目的,例如是单播、多播地址,还是保留地址、未指派地址等。

IPv6数据报的目的地址有3种基本类型:

·单播——传统的点对点通信。

·多播——一点对多点的通信。

·任播——这是IPv6增加的一种类型。任播的目的站是一组计算机,但IPv6数据报在交付时只交付给其中的一个,通常是距离最近的一个。

IPv6地址的第二部分是地址的其余部分,其长度也是可变的。

(2)IPv6地址的表示方法

①冒号十六进制记法

冒号十六进制记法是IPv6地址的基本表示方法,每个16 bit的值用十六进制值表示,各值之间用冒号分隔。

例如,某个IPv6地址为:

59F3:AB62:FF66:CF7F:0000:1260:000E:DDDD

另外,IPv6地址还有如下几种简单记法。

②零省略

上例中,0000的前3个0可省略,缩写为0;000E的前3个0可省略,缩写为E。

此IPv6地址写为:

59F3:AB62:FF66:CF7F:0:1260:E:DDDD

③零压缩

即一连串连续的零可以被一对冒号取代。

例如,C806:0:0:0:0:0:0:A25D

可以写成:C806::A25D

IPv6规定,一个地址中零压缩只能使用一次。

④冒号十六进制值结合点分十进制的后缀(内嵌IPv4地址表示法)

为了实现IPv4与IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96 bit采用冒号十六进制表示(零压缩的方法依旧适用),而最后32 bit地址则使用IPv4的点分十进制表示。

例如,0:0:0:0:0:0:136.22.15.8

需要注意的是,冒号分隔的是16 bit的值,而点分十进制的值是8 bit的值。

再使用零压缩即可得出:::136.22.15.8

(3)IPv6地址空间的分配

2006年2月发表的RFC 4291建议IPv6的地址分配方案,如表4-4所示。

表4-4 IPv6的地址分配方案

续表

表4-4中有灰色背景的这一行是IPv6作为全球单播地址用的,RFC 3587规定的IPv6单播地址的等级结构如图4-34所示。

图4-34 IPv6单播地址的等级结构

IPv6单播地址划分为3个等级。

(a)全球路由选择前缀——占48 bit,相当于分类的IPv4地址中的网络号字段,分配给各公司和组织,用于IP网中路由器的路由选择。

(b)子网标识符——占16 bit,相当于分类的IPv4地址中的子网络号字段,用于各公司和组织标识内部划分的子网。

(c)接口标识符——占64 bit,相当于分类的IPv4地址中的主机号字段,用于指明主机或路由器单个的网络接口。

4.IPv4向IPv6过渡的方法

虽然IPv6比IPv4有绝对优势,但目前Internet上的用户绝大部分仍然在使用IPv4,如何从IPv4过渡到IPv6是需要我们研究的一个问题。

从IPv4向IPv6过渡的方法有3种:使用双协议栈;使用隧道技术;使用网络地址/协议转换技术(NAT-PT)。

(1)使用双协议栈

双协议栈是指在完全过渡到IPv6之前,使一部分主机(或路由器)装有两个协议栈:一个是IPv4;另一个是IPv6。双协议栈主机(或路由器)既可以与IPv6的系统通信,又可以与IPv4的系统通信。

使用双协议栈进行从IPv4到IPv6过渡的示意图如图4-35所示。

图4-35 使用双协议栈进行从IPv4到IPv6的过渡示意图

图4-35中的主机A和F都使用IPv6,而它们之间要通信所经过的网络使用IPv4,路由器B和E是双协议栈路由器。

主机A发送的是IPv6数据报,双协议栈路由器B将其转换为IPv4数据报发给IPv4网络,此IPv4数据报到达双协议栈路由器E,由它将IPv4数据报再转换为IPv6数据报送给主机F。

IPv6数据报与IPv4数据报的相互转换是替换数据报的首部,数据部分不变。

双协议栈技术的优点是网络规划相对简单,互通性好,同时在IPv6逻辑网络中可以充分发挥IPv6的所有优点。但存在的问题是同时占用IPv4和IPv6地址,不能很好地解决地址问题,而且不能实现IPv4和IPv6应用互通。

(2)使用隧道技术

使用隧道技术从IPv4到IPv6过渡的示意图如图4-36所示。

图4-36 使用隧道技术从IPv4到IPv6过渡的示意图

所谓隧道技术是由双协议栈路由器B将IPv6数据报封装成为IPv4数据报,即把IPv6数据报作为IPv4数据报的数据部分(这是与使用双协议栈过渡的区别)。IPv4数据报在IPv4网络(看作是隧道)中传输,离开IPv4网络时,双协议栈路由器E再取出IPv4数据报的数据部分(解封),即还原为IPv6数据报送交给主机F。

隧道技术的优点在于隧道的透明性,即IPv6主机之间的通信可以忽略隧道的存在,隧道只起到物理通道的作用。但存在的问题是要规模部署隧道,其配置和管理的复杂度较高,同样不能实现IPv4和IPv6应用互通。

(3)使用网络地址/协议转换技术

网络地址/协议转换技术(Network Address Translation-Protocol Translation,NATPT)通过与无状态IP/ICMP转换(Stateless IP/ICMP Translation,SIIT)、传统IPv4下的动态地址转换(NAT)及适当的应用层网关(Application Layer Gatewav,ALG)相结合,实现了IPv4和IPv6间的协议转换和地址映射。

当IPv6主机与IPv4主机进行通信时,NAT-PT会根据IPv4地址池动态地为这个IPv6主机分配一个IPv4地址,记录两者间的映射关系,并将IPv6数据报转换成IPv4数据报进行数据传输,反之亦然。这样就可以利用NAT-PT实现纯IPv4和纯IPv6主机间的相互通信,其原理图如图4-37所示。

图4-37 NAT-PT原理图

NAT-PT技术的优点是允许IPv6主机与IPv4主机之间的直接通信,解决了IPv4与IPv6网络应用互访的问题,降低了从IPv4向IPv6过渡的成本,具有很大的实用性。

NAT-PT技术的主要缺点如下:

(a)网络设备进行协议转换、地址转换的处理开销较大;

(b)IPv4主机访问IPv6主机时实现方法较为复杂,因此NAT-PT技术在性能上无法适应大量转换的要求,限制了业务提供平台的容量和扩展性;

(c)NAT-PT设备存在单点故障,可能会成为网络性能的瓶颈。

以上介绍了3种从IPv4向IPv6过渡的方法,各有其优缺点,要根据情况合理选择过渡技术。在IPv6发展初期,可以采用隧道技术;当IPv6的规模发展到中期时,可以采用双协议栈技术;而当IPv6在规模上完全超过IPv4时,可以采用NAT-PT技术。

小结

(a)网络体系结构是计算机网络中的层次、各层的功能及协议、层间的接口的集合。应用比较广泛的网络体系结构主要有OSI参考模型和TCP/IP参考模型。

(b)OSI参考模型是将计算机之间进行数据通信全过程的所有功能逻辑上分成若干层,每一层对应有一些功能,完成每一层功能时应遵照相应的协议,所以OSI参考模型是功能模型,也是协议模型。

OSI参考模型共分7层:物理层,链路层,网络层,传输层,会话层,表示层,应用层。

物理层提供有关同步和全双工比特流在物理媒体上的传输手段,其数据传送单位是比特。

链路层的基本功能是负责数据链路的建立、维持和拆除,差错控制、流量控制等,其数据传送单位一般是帧。

网络层的主要功能是:路由选择、差错控制、流量控制等,其数据传送单位是分组。

传输层的功能包括端到端的顺序控制、流量控制、差错控制及监督服务质量,其数据传送单位是报文。

会话层提供诸如会话建立时会话双方资格的核实和验证,由哪一方支付通信费用,及对话方向的交替管理、故障点定位和恢复等各种服务。

表示层的主要功能是代码转换、数据格式转换、数据加密与解密、数据压缩与恢复等。

应用层的主要功能是提供网络与用户应用软件之间的接口服务,包括文件传送、存取和管理,远程数据库访问等。会话层、表示层和应用层的数据传送单位一般也称为报文。

(c)OSI参考模型物理接口标准(物理层协议)分为3类:ISO制定的物理接口标准(主要包括ISO1177、ISO2110和ISO4902等),CCITT制定的物理接口标准(V.24、V.28、X.20、X.21、I.430和I.431等),EIA制定的物理接口标准(如RS-232C、RS449等)。

物理层接口规程描述了接口的4种基本特性:机械特性、电气特性、功能特性和规程特性。

(d)OSI参考模型数据链路层常用的协议有基本型控制规程和高级数据链路控制规程(HDLC),主要采用的是HDLC。

HDLC是面向比特的传输控制规程,以帧为单位传输数据信息和控制信息,其发送方式为连续发送(一边发,一边等对方的回答),传输效率比较高。

HDLC的帧结构包括标志字段F、地址字段A、控制字段C、信息字段I和帧校验字段FCS。控制字段的3种格式定义了HDLC 3种类型的帧:信息帧、监控帧和无编号帧。

(e)OSI参考模型网络层的协议是X.25分组级协议。CCITTX.25建议是公用数据网上以分组方式工作的数据终端设备(DTE)与数据电路终接设备(DCE)之间的接口规程。X.25建议包含3层:物理层(其标准有X.2l、X.21bis和V系列建议)、链路层(其协议采用LAPB,它是HDLC规程的一个子集)和分组层(采用X.25建议分组级协议)。

(f)TCP/IP参考模型分4层,它与OSI参考模型的对应关系为:网络接口层对应OSI参考模型的物理层和数据链路层;网络层对应OSI参考模型的网络层;传输层对应OSI参考模型的传输层;应用层对应OSI参考模型的5、6、7层。

(g)TCP/IP参考模型中,网络接口层的数据传送单位是物理帧,网络接口层没有规定具体的协议。用得比较多的链路层协议是点对点协议(PPP)等,PPP具有简单、保证透明传输、支持多种网络层协议、支持多种类型链路等特点。

PPP有3个组成部分:一个将IP数据报封装到串行链路PPP帧的方法;一套链路控制协议(LCP);一套网络控制协议(NCP)。

PPP帧的格式与HDLC帧的格式相似,包括标志字段F、地址字段A、控制字段C、协议字段、信息字段和帧校验序列(FCS)字段。

(h)TCP/IP参考模型中,网络层的数据传送单位是IP数据报,核心协议是IP,其辅助协议有:地址转换协议(ARP)、逆向地址转换协议(RARP)、Internet控制报文协议(ICMP)和Internet组管理协议(IGMP)。

(i)IP(IPv4)的特点是:仅提供不可靠、无连接的数据报传送服务;IP是点对点的,所以要提供路由选择功能;IP地址长度为32 bit。

分类的IP地址包括两部分:网络地址和主机地址。IP地址的表示方法是点分十进制。IP地址分成为五类,即A、B、C、D、E类。

为了便于管理,一个单位的网络一般划分为若干子网,要采用子网地址。子网编址技术是指在IP地址中,对于主机地址空间采用不同方法进行细分,通常是将主机地址的一部分分配给子网作为子网地址。子网掩码的作用有两个:一个是表示子网和主机地址位数;另一个是将IP地址和子网掩码相与可确定子网地址。

公有IP地址是接入Internet时所使用的全球唯一的IP地址,必须向Internet的管理机构申请。公有IP地址分配方式有静态分配和动态分配两种。私有IP地址是仅在机构(网络)内部使用的IP地址,可以由本机构自行分配,而不需要向Internet的管理机构申请。私有IP地址的分配方式也有两种:静态分配方式和动态分配方式。私有IP地址转换为公有IP地址的方式有静态转换方式、动态转换方式和复用动态方式。

(j)IP数据报由报头(首部)和数据两部分组成,其中首部又包括固定长度字段(共20 B,是所有IP数据报必须具有的)和可选字段(长度可变)。

(k)在TCP/IP参考模型中,传输层提供了3个并列的协议:用户数据报协议(UDP)、传输控制协议(TCP)和流控制传输协议(SCTP)。传输层的数据传送单位是UDP报文、TCP报文段或SCTP数据报。

(l)UDP的特点为:提供协议端口来保证进程通信;提供不可靠、无连接、高效率的数据传输;UDP是面向报文的。

(m)TCP具有以下特点:提供协议端口来保证进程通信;提供面向连接的全双工数据传输;提供高可靠的按序传送数据的服务。为实现高可靠传输,TCP提供了确认与超时重传、流量控制、拥塞控制等机制。

采用TCP时,数据通信经历连接建立(3次握手)、数据传送和连接释放3个阶段。

在TCP中,数据的流量控制是由接收端进行的,即由接收端决定接收多少数据,发送端据此调整传输速率,接收端实现控制流量的方法是采用大小可变的“滑动窗口”。

TCP是通过控制发送窗口的大小进行拥塞控制,发送窗口=Min[通知窗口,拥塞窗口]。

(n)SCTP吸取了TCP和UDP的优点,并对TCP的缺陷进行了完善,它是面向连接的基于分组的可靠传输协议,提供差错控制、流量控制和拥塞控制机制,防止泛滥和伪装攻击;作为新的特性,SCTP还提供了对多宿主机和多重流的支持。

SCTP的基本特性主要包括:多宿主,多重流,面向报文与面向连接相结合,安全机制,选择确认、拥塞控制和差错控制等。SCTP偶联的建立过程相对于TCP连接而言比较复杂,是个4次握手过程。

SCTP主要用于在IP网上传输7号信令,以及需要高可靠性、安全性的场合。

(o)TCP/IP应用层的作用是为用户提供访问Internet的各种高层应用服务,如文件传送、远程登录、电子邮件、WWW服务等。应用层协议就是一组应用高层协议,即一组应用程序,主要有文件传输协议(FTP)、远程终端协议(TELNET)、简单邮件传输协议(SMTP)和动态主机配置协议(DHCP)等。

域名系统(DNS)用于实现主机名与主机IP地址之间的转换。TCP/IP采用的是层次结构的命名机制,任何一个连接在Internet上的主机或路由器,都有一个唯一的层次结构的名字,即域名。在Internet中,报文传送时必须使用IP地址,而用户输入的是主机名字,使用域名服务,可以实现IP地址的解析。一般在网络中心设置域名服务器,即配置DNS。

文件传输协议(FTP)提供文件传输的一些基本的服务,它是面向连接的服务,使用TCP作为传输层协议,以提供可靠的传输服务。

TELNET是一个简单的远程终端协议,其主要功能有:在用户终端与远程主机之间建立一种有效的连接、共享远程主机上的软件及数据资源、利用远程主机上提供的信息查询服务进行信息查询。

电子邮件(E-mail)是Internet上使用频率最高的服务系统之一,也是最基本的Internet服务。它具有方便、快捷和廉价等优于传统邮政邮件的特点。电子邮件的标准主要有:发送邮件的协议(SMTP),读取邮件的协议(POP3)和IMAP。

动态主机配置协议(DHCP)提供了即插即用连网的机制,这种机制允许一台计算机加入新的网络和获取IP地址而不用手工参与。

(p)为了解决IPv4地址即将耗尽的问题,诞生了IPv6。IPv6与IPv4相比具有以下较为显著的优势:极大的地址空间,分层的地址结构,支持即插即用,灵活的数据报首部格式,支持资源的预分配,具有更高的安全性和方便移动主机的接入。

IPv6数据报包括首部和数据两部分,而首部又包括基本首部和扩展首部,扩展首部是选项,扩展首部和数据部分合起来称为有效载荷。IPv6定义了6种扩展首部:逐跳选项、路由选择、分片、鉴别、封装安全有效载荷和目的站选项。

IPv6将128 bit地址空间分为两大部分:第一部分是可变长度的类型前缀,它定义了地址的目的,例如是单播、多播地址,还是保留地址、未指派地址等;第二部分是地址的其余部分,其长度也是可变的。IPv6地址的表示方法有:冒号十六进制记法、零省略、零压缩和冒号十六进制值结合点分十进制的后缀等。

从IPv4向IPv6过渡的方法有3种:使用双协议栈;使用隧道技术;使用网络地址/协议转换技术(NAT-PT)。