1.2 网络结构与协议
1.2.1 基本知识
自20世纪80年代以来,计算机网络已飞速发展成为一种复杂、多样的大系统。网络系统集成要解决许多复杂的技术问题。例如,支持铜线、光缆、无线等通信介质;支持多品牌、异构系统互连(包括软件通信协议与硬件接口规范);支持多种业务,如共享文件与打印、办公自动化、网上学习、Internet服务、管理信息系统,以及企业资源计划(ERP)等;支持可视化的人机接口,满足人们对多媒体应用日益增长的需求。
1.网络协议
计算机网络由多个互连的网络单元(节点)组成,网络单元之间要不断地交换数据和控制信息。要做到有条不紊地交换数据,每个网络单元必须遵守一些事先约定好的共同规则。为网络数据交换而制定的规则、约定和标准统称为网络协议(Network Protocol)。
一般地说,一个网络协议由三个要素构成:语法、语义和时序。语法确定通信双方之间“如何讲”,由逻辑说明构成;确定通信时采用的数据格式、编码、信号电平及应答结构等。语义确定通信双方之间“讲什么”,由通信过程的说明构成;要对发布请求、执行动作及返回应答予以解释,并确定用于协调和处理差错的控制信息。时序则确定事件的顺序以及速度匹配和排序等。
2.体系结构
为了完成计算机间的协同工作,把计算机间互连的功能划分成具有明确定义的层次,规定了同层次进程通信的协议及相邻层之间的接口服务。将这些同层次进程通信的协议及相邻层接口统称为网络体系结构。
网络协议对计算机网络是不可缺少的,一个完善的计算机网络需要一系列网络协议构成一套完备的网络协议集。大多数计算机网络在设计时,将网络划分为若干个相互联系而又各自独立的层次;然后针对每个层次及层次间的关系制定相应的协议,这样可以减少协议设计的复杂性。像这样的计算机网络层次结构模型及各层协议的集合,也称为计算机网络体系结构(NA,Network Architecture)。
世界上第一个计算机网络体系结构是IBM公司于1974年提出的,被命名为系统网络体系结构(SNA,System Network Architecture)。在此之后,许多公司纷纷提出了各自的网络体系结构。这些网络体系结构的共同之处是它们都采用了分层技术,但层次的划分、功能的分配及所采用的技术术语均不相同。随着信息技术与信息社会的发展,各种计算机系统连网和各种计算机网络的互连成为人们迫切需要解决的问题。开放系统互连参考模型(OSI)就是在这样一个背景下提出和研究的。
1.2.2 OSI参考模型
IEEE 802委员会于1981年提出了开放系统互连参考模型(OSI)。OSI参考模型定义了异构计算机(硬件结构、软件指令均不同)组网标准的框架结构,受到计算机和通信行业的极大关注。OSI参考模型的不断发展,得到了国际上的认可,成为其他计算机网络体系结构靠拢的标准,大大推动了计算机网络与通信的发展。
OSI参考模型采用三级抽象,即体系结构、服务定义和协议规格说明。体系结构部分定义OSI参考模型的层次结构、各层间关系及各层可能提供的服务;服务定义部分详细说明了各层所具备的功能;协议规格部分的各种协议精确定义了每一层在通信中发送控制信息及解释信息的过程。提供各种网络服务功能的计算机网络系统是非常复杂的。根据分而治之的原则,OSI参考模型将整个通信功能划分为7个层次,如图1.2所示。
图1.2 IEEE 802参考模型OSI
从总体上看,计算机网络分为“通信子网”和“网络高层”两大层次。通信子网(1~3层)支持通信接口,提供网络访问;网络高层(4~7层)支持端到端通信,提供网络服务。无论怎样分层,较低的层次总是为与它紧邻的上层提供服务。
OSI参考模型是理论模型。该模型的建立有利于将网络通信作业拆解成较小的、较简单的部分,方便设计制造。将网络元件标准化,使更多的厂商加入开发及技术支持,让各种不同类型的网络硬件与软件彼此互通信息。防止一层中的改变影响到其他各层,便于更加迅速地发展。
1.2.3 TCP/IP体系结构
1.TCP/IP协议
由于种种原因,OSI参考模型并没有真正成为应用在工业技术中的网络体系结构。Internet在全世界的飞速发展,使Internet所遵循的TCP/IP参考模型得到了广泛的应用。TCP/IP协议是一个协议集,如图1.3所示。
图1.3 TCP/IP协议集
TCP/IP协议集中最重要的是传输控制协议(TCP,Transmission Control Protocol)和网际协议(IP,Internet Protocol),通称TCP/IP协议。TCP/IP协议具有如下4个特点。
(1)开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统。
(2)独立于特定的网络硬件,可以运行在局域网、广域网中,更适用于网络互连。
(3)统一的网络地址分配方案,使得网络中的每台主机在网中都具有唯一的地址。
(4)标准化的高层协议(FTP,HTTP,SMTP等),可以提供多种可靠的网络服务。
在TCP/IP协议中,TCP协议和IP协议各有分工。TCP协议是IP协议的高层协议,TCP在IP之上提供了一个可靠的面向连接的协议。TCP协议能保证数据包的传输及正确的传输顺序,并且它可以确认数据包头和包内数据的准确性。如果在传输期间出现丢包或错包的情况,TCP负责重新传输出错的包。这样的可靠性使得TCP/IP协议在会话式传输中得到充分应用。IP协议为TCP/IP协议集中的其他所有协议提供“包传输”功能,IP协议为计算机网络上的数据提供了一个有效的无连接传输系统。也就是说IP包不能保证到达目的地,接收方也不能保证按顺序收到IP包,它仅能确认IP包头的完整性。最终确认数据包是否到达目的地,还要依靠TCP协议,其原因是TCP协议是面向连接的服务。
2.TCP/IP体系结构及功能
TCP/IP体系结构分为4个层次:网络接口层、网络互连层(IP层)、运输层和应用层。TCP/IP体系结构与OSI参考模型的对应关系,如图1.4所示。
图1.4 OSI与TCP/IP对比
TCP/IP的网络接口层(Network Interface)对应OSI的物理层和数据链路层,TCP/IP的IP层(包括ICMP、ARP、RARP等协议)对应OSI的网络层,TCP/IP的运输层(TCP、UDP)对应OSI的运输层,TCP/IP的应用层(高层协议)对应OSI的会话层、表示层及应用层。
TCP/IP各层及协议的功能如下:
(1)网络接口层。该层是整个体系结构的基础部分,负责接收IP层的IP数据包,通过网络向外发送;或接收、处理网络上的物理帧,抽出IP数据包,向IP层发送。该层是主机与网络的实际连接层,网络接口层中的比特流传输相当于邮政系统中信件的运送。
(2)网络互连层(IP层)。该层是整个体系结构的核心部分,负责处理Internet中计算机之间的通信,向运输层提供统一的数据包。它的主要功能是处理来自运输层的分组发送请求,处理接收的数据包和互连的路径。
网络互连层IP协议提供了无连接(不可靠)的数据包传输服务,数据包从一个主机经过多个路由器到达目的主机。如果路由器不能正确地传输数据包,或者检测到影响数据包正确传输的异常状况,路由器就要通知信源主机或采取相应的措施。
网络互连层中Internet控制消息协议(ICMP,Internet Control Messages Protocol)的消息被封装在IP数据包里,用来发送差错报告和控制信息。ICMP定义了如下消息类型:
● 目的端无法到达(Destination Unreachable)
● 数据包超时(Time Exceeded)
● 数据包参数错(Parameter Problem)
● 重定向(Redirect)
● 回声请求(Echo)
● 回声应答(Echo Reply)
● 信息请求(Information Request)
● 信息应答(Information Reply)
● 地址请求(Address Request)
● 地址应答(Address Reply)
……
ICMP为IP协议提供了网络通断检测、差错控制、网络拥塞控制和路由控制等功能。最常用的是“目的无法到达”和“回声”消息,如图1.5所示。
图1.5 ICMP工作示意图
网络互连层的地址解析协议(ARP,Address Resolution Protocol)提供地址转换服务,查找与给定IP地址对应主机的物理地址(网卡的MAC地址)。与ARP功能相反的是RARP(Reverse ARP),RARP协议主要将主机物理地址转换为对应的IP地址。
ARP协议采用广播消息的方法来获取IP地址对应的MAC地址。对于使用低层介质访问机制的IP地址来说,ARP协议是非常通用的。当一台主机要发送数据包时,首先通过ARP获取MAC地址,并把结果存储在ARP缓存的IP地址和MAC地址表中,如图1.6所示。下次该主机需要发送数据包时,就不用再发送ARP请求,只要在ARP缓存中查找就可以了。
图1.6 ARP工作示意图
与ARP协议类似,反向地址解析协议(RARP)也采用广播消息的方法,通过客户机访问RARP服务器来决定与客户机MAC地址相对应的客户机IP地址,如图1.7所示。RARP对于网络无盘客户机来说显得尤为重要。因为无盘客户机在系统引导时根本无法知道它自己的IP地址,只能通过RARP协议完成从自身的MAC地址到对应IP地址的转换。
图1.7 RARP工作示意图
(3)网络运输层。该层是整个体系结构的控制部分,负责应用进程之间的端到端通信。运输层定义了两种协议:传输控制协议(TCP,Transfer Control Protocol)与用户数据包协议(UDP,User Datagram Protocol)。
TCP协议是一种可靠的面向连接的协议,允许从一台主机发出的字节流无差错地发往Internet上的其他机器。TCP将应用协议的字节流分成数据段,并将数据段传输给IP层打包。在接收端,IP层将接收的数据包解开,再由TCP层将收到的数据段组装成应用协议字节流。TCP还可处理流量控制,以避免快速发送方向低速接收方发送过多的数据包,导致接收方无法处理。
UDP协议是一种无连接(不可靠)协议,它与TCP协议不同的是它不进行分组顺序的检查和差错控制,而是把这些工作交给上一级(应用层)完成。
(4)网络应用层。该层是整个体系结构的协议部分,它包括了所有的高层协议,并且总是不断有新的协议加入。与OSI参考模型不同的是,在TCP/IP模型中没有会话层和表示层。由于在应用中发现,并不是所有的网络服务都需要会话层和表示层的功能,因此,这些功能逐渐被融合到TCP/IP协议中应用层的那些特定的网络服务中。应用层是网络操作者的应用接口,正像发信人将信件放进邮筒一样,网络操作者只需在应用程序中按下发送数据按钮,其余的任务都由应用层以下的各层来完成。
1.2.4 网络拓扑结构
1.拓扑结构分类
计算机网络中各单元相互连接的方法和形式称为网络拓扑。网络拓扑结构主要有总线、星状、环状、树状、扩展星状和网状等,如图1.8所示。每种拓扑结构均有优缺点和适应范围。
(1)总线拓扑结构。采用共享传输线路作为介质,所有的网络单元都通过相应的硬件接口直接连接到干线电缆(即总线)上。总线拓扑的优点是结构简单,电缆长度短,易于布线,造价低廉且易于扩充等。增加新网络单元时,可在总线的任意点将其接入,如需增加总线长度,可用中继器(集线器)或网桥(交换机)来扩展一个附加段。总线拓扑的主要缺点是故障诊断和隔离困难。因为它不是集中控制的,所以故障检测需要在网上的各个单元上进行。总线拓扑结构是局域网的主流结构(以太网)之一,广泛应用于随时都有扩充网络单元要求的网络系统。
图1.8 网络拓扑结构示意图
(2)星状结构。星状结构是指各网络单元以星状方式连接成网络。网络有中央单元(核心交换机),其他单元(客户机、服务器、交换机等)都与中央单元直接相连。这种结构以中央单元为中心,又称为集中式网络。除中央单元外,其他单元的故障只影响自己,不会影响全网,因此,容易检测和隔离故障,以及重新配置网络。
星状拓扑的主要缺点是对中心单元的可靠性和冗余度要求很高,一旦中心单元产生故障,则全网不能工作。另外,星状拓扑需要大量电缆,费用较高。星状拓扑结构广泛应用于高度集中于中心单元的网络。由于目前计算机系统已从集中的主机系统发展为分布式系统,所以星状拓扑网络的使用会有所减少。
(3)环状结构。所有网络单元彼此串行连接,就像自行车的链条,构成一个回路(或称环路),这种连接形式称为环状拓扑。在环状拓扑网络中,数据是单方向被传输的,两个单元节点之间仅有唯一的通路,大大简化了路径选择的控制,同时控制软件比较简单,可靠性高。由于环路是封闭的,所以扩充不方便。另外,当环路中所接计算机过多时,将会影响信息传输效率,使网络的响应时间变长。环状拓扑结构适宜工厂自动化测控等应用领域。
(4)树状结构。树状结构是分级的集中控制式网络,与星状结构相比,它的通信线路总长度短(所有单元连接介质的总和),成本较低,单元节点易于扩充。但除了接入单元节点及其相连的线路外,任意单元节点或其相连的线路故障都会使系统受到影响。
(5)扩展星状。在网状拓扑结构中有一级中央(核心交换机)单元节点,还有二级中央(汇聚交换机)单元节点。客户机、服务器与中央单元节点不直接相连,汇聚单元节点上连核心单元节点、下接单元(交换机)节点。这种结构以多中央节点为中心,称为扩展星状结构。它除具有单星状结构的特点外,最大的特点就是适合组建大中型局域网,扩大了局域网的地理范围。
(6)网状结构。所有网络单元彼此连接,任意网络单元到其他网络单元均有两条以上的路径,构成一个网状链路,这种连接形式称为网状拓扑。在网状拓扑网络中,数据传输路径选择的控制复杂,也就是为数据包寻找最佳路径的控制软件复杂。由于任意网络单元节点到其他单元节点均有两条路经,即便有一条路经发生故障,也不会中断网络通信,所以网状拓扑具有很高的可靠性。另外,网状拓扑需要大量传输链路,因此费用很高。网状拓扑结构适宜广域网和大型园区网络等应用领域。
2.选择拓扑结构考虑因素
网络组建需要确定网络拓扑结构。网络拓扑结构的选择与传输介质、介质访问控制方法等紧密相关。选择拓扑结构时,应该考虑的主要因素有以下几点。
(1)费用。不论选用什么样的拓扑结构都需进行安装,如电缆布线等。要降低安装费用,就需要对拓扑结构、传输介质、传输距离等相关因素进行分析,选择合理的方案。
(2)灵活性。在设计网络时,考虑到设备和用户需求的变迁,拓扑结构必须具有一定的灵活性,能被容易地重新配置。此外,还要考虑原有网络单元节点的删除、新网络单元节点的加入等问题。
(3)可靠性。在局域网中有两类故障:一类是网络中个别网络单元损坏,这只影响局部;另一类是网络核心单元故障,导致网络系统无法运行。拓扑结构的选择要使故障的检测和隔离较为方便。
1.2.5 IPv4协议
在计算机寻址中经常会遇到“名字”、“地址”和“路由”这三个术语,它们之间是有较大区别的。名字是要找的,就像人名一样;而地址用来指出这个名字在什么地方,就像人的住址一样;路由用来解决如何到达目的地址的问题,就像已经知道了某个人住在什么地方,现在要考虑走什么路线、采用什么交通工具到达目的地最为简便。
1.IP地址
目前正在使用的IP协议是IPv4,新版本的IP协议是IPv6。IPv4协议要寻找的“地址”是32位长(由4个分段的十进制数组成),由网络号(网络ID)和主机号(主机ID)两部分构成。按照IP协议规定,Internet上的地址共有A、B、C、D、E五类,各类IP地址结构,如图1.9所示。常用的A、B、C三类地址的网络地址长度、主机数量及适用的网络规模,如表1.1所示。
图1.9 各类IP地址结构
表1.1 IP地址的类别与规模
A类地址中的10.0.0.0~10.255.255.254,B类地址中的172.16.0.0~172.31.255.254和C类地址中的192.168.0.0~192.168.255.254这三部分网络地址不可用于Internet,可作为Intranet专用地址段。另外,还有127.0.0.0~127.255.255.254这段地址也是属于保留使用的,用于本机环路测试类IP地址。例如,测试网卡是否正常,可采用ping 127.0.0.1。
2.子网与子网掩码
Internet规模的急剧扩大,促使对IP地址的需求激增。由此带来的问题是,IP地址资源的严重匮乏和“路由表”规模的急速增长。解决办法是当网络规模较小,即IP地址空间没有全部利用时,从主机号部分拿出几位作为子网号。这种在原来IP地址结构的基础上增加一级结构的方法,称为子网划分。
例如,三个LAN的主机数分别为20、25和28,均少于C类地址允许的主机数。为这三个LAN申请三个C类IP地址显然有点浪费。可以对C类网络地址划分子网,即将主机号部分的前三位用于标识子网号:110000000000101000000001 XXXYYYYY(子网号XXX,新主机号YYYYY)。例如,192.10.1.0可以划分出23=8个子网,如表1.2所示。
表1.2192.10.1.0可以划分的8个子网
从主机地址中借用来表示子网地址的长度是可以改变的。为了指定有多少个二进制位用来表示子网的地址,IP协议提供了子网掩码的概念。子网掩码为32位,网络号(包括子网号)部分全为“1”,主机号部分全为“0”。子网划分后,可采用子网掩码来分离网络号和主机号。例如,192.10.1.0划分8个子网,网络号为24位,子网号为3位,总共27位。所以,子网掩码为11111111111111111111111111100000,即255.255.255.224。
A、B、C三类网络的默认掩码分别为:A类地址255.0.0.0,B类地址255.255.0.0,C类地址255.255.255.0。
划分子网的目的是微化网络,即将大网络分割成小网络,便于网络的管理和维护。子网主机地址与子网掩码进行二进制“与”操作,可以判断主机地址是否属于同一网段(两个IP地址与操作的结果相同,则在同一网段;否则不在同一网段)。处于同一网段上的主机可以直接通信,而且广播信息也被封闭在同一网段内。不同网段的主机进行通信时,必须通过路由器才能互相访问。C类子网的各种掩码所能划分的网段数目和主机数如表1.3所示。
表1.3 C类子网划分网段数目表
3.域名系统
IP地址是全球通用地址,但对于一般用户来说,IP地址太抽象,而且它用数字表示,不容易记忆。因此,TCP/IP为方便人们记忆,设计了一种字符型的计算机命名机制,这就是域名(DN,Domain Name)系统。
域名系统的结构是层次型的,如cn代表中国的计算机网络,cn就是一个域。域下面按领域又分子域,子域下面又有子域。在表示域名时,自右到左越来越小,用圆点“.”分开。
例如,sxnu.edu.cn是一个域名,cn代表中国域;edu表示网络域cn下的一个子域,代表教育界;sxnu则是edu下的一个子域,代表山西师范大学。
同样,一个计算机也可以命名,称为主机名。在表示一台计算机时,把主机名放在其所属域名之前,用圆点分隔开,就形成了主机地址,这样便可以在全球范围内区分不同的计算机了。例如,mail.sxnu.edu.cn表示sxnu.edu.cn域内名为mail的计算机。
Internet通信软件要求在发送和接收数据包时,必须使用数字表示的IP地址。因此,一个应用程序在与用字母表示名字的计算机上的应用程序通信之前,必须将名字翻译成IP地址。Internet提供了一种自动将计算机名翻译成IP地址的服务,即域名解析服务的功能。
域名系统与IP地址有映射关系,采用层次型管理。在访问一台计算机时,既可用IP地址表示,也可用域名表示。例如,mail.sxnu.edu.cn与202.207.160.4指的是同一台计算机。
域名与IP地址的关系如同人的姓名与身份证号码的关系一样。Internet上有很多负责将主机地址转为IP地址的域名服务器(DNS,Domain Name Server),这个服务系统会自动将域名翻译为IP地址,或将IP地址翻译为域名。
一般情况下,一个域名对应一个IP地址,但并不是每个IP地址都有一个域名和它对应。对于那些不需要他人访问的计算机只有IP地址,没有域名。也有一个域名对应多个IP地址的情况。例如,“山西师范大学”主页的域名是“www.sxnu.edu.cn”,它有IP地址分别是202.207.160.3和60.221.248.213,使用域名或两个IP地址中的任意一个均可访问同一个主页。
1.2.6 IPv6协议
随着Internet的迅速发展以及IPv4地址空间的逐渐耗尽,IPv4的局限性越来越明显。对新一代Internet协议(Internet Protocol Next Generation,IPng)的研究和实践已经成为热点。Internet工程任务工作小组(IETF)的IPng工作组确定了IPng的协议规范,并称其为“IP版本6(IPv6)”。IPv6是用来替代IPv4的一种新的IP协议。
1.IPv6地址压缩表示
IPv4地址是32位二进制数,支持4×109个网络地址;IPv6地址是128位二进制数,支持3.4×1038个网络地址。为了描述方便,IPv6采用冒号分割的8组十六进制数格式。例如2001:0db8:85a3:08d3:1319:8a2e:0370:7344,就是一个合法的IPv6地址。
如果IPv6地址中的4个数字都是零,则零可以被省略。例如,2001:0db8:85a3:0000:1319:8a2e:0370:7344,等价于2001:0db8:85a3::1319:8a2e:0370:7344。遵从该规则,如果因为省略而出现了两个以上的冒号,则可以压缩为一个,但这种零压缩在地址中只能出现一次。因此,2001:0db8:0000:0000:0000:0000:142c:57ab,可以表示为:2001:0db8:0000:0000:0000::142c:57ab,可以表示为:2001:0db8:0:0:0:0:142c:57ab,可以表示为:2001:0db8:0::0:142c:57ab,可以表示为:2001:0db8::142c:57ab。
以上的IPv6地址表示均为合法地址,并且它们是等价的。但2001::25de::cade是非法的,因为这样会搞不清楚每个压缩中有几个全零的分组。IPv6地址前导的零可以省略,这样,2001:0db8:02de::0e13等价于2001:db8:2de::e13。
2.IPv4地址转化为IPv6地址
如果IPv6地址实际上是IPv4的地址,IPv6后32位可用十进制数表示。例如,ffff:192.168. 100.2等价于::ffff:c0a8:6402,但不等价于::192.168.100.2和::c0a8:6402。ffff: 192.168.100.2的格式是IPv4映像地址,不建议使用。::192.168.100.2格式表示IPv4一致地址。IPv4地址可以很容易地转化为IPv6地址格式。例如,IPv4的一个地址为202.207.175.6(十六进制为0xCACFAF06),它可以被转化为0000:0000:0000:0000:0000:0000:CACF:AF06,或者::CACF:AF06。同时,还可使用混合符号(IPv4-compatible address),地址为:: 202.207.175.6。
3.IPv6地址分类及前缀表示
IPv6地址有单播(Unicast Address)、多播(Multicast Address)和任意播(Any cast)等类型。在每种地址中,又有一种或者多种类别地址,如单播有本地链路地址、本地站点地址、可聚合全球地址、回环地址和未指定地址;任意播有本地链路地址、本地站点地址和可聚合全球地址;多播有制定地址和请求节点地址。单播地址标识了一个单独的IPv6接口。一个节点可以具有多个IPv6网络接口,每个接口必须具有一个与之相关的单播地址。
(1)本地链路地址。在一个节点上启用IPv6协议栈,当启动时,节点的每个接口自动配置一个本地链路地址,前缀为FE80::/10。
(2)本地站点地址。本地站点地址与RFC1918所定义的私有IPv4地址空间类似,本地站点地址不能在全球IPv6 Internet上路由,前缀为FEC0::/10。
(3)可聚合全球单播地址。Internet编号分配地址(IANA,Internet Assigned Numbers Authority)分配IPv6寻址空间中的一个IPv6地址前缀作为可聚合全球单播地址。全球可聚合地址前缀为2001::/16,是最常用的IPv6地址;地址前缀为2002::/16,表示IPv6 to IPv4地址,用于IPv6 to IPv4自动构造隧道技术的地址。
(4)IPv4兼容地址。与IPv4兼容的IPv6地址是由过渡机制使用的特殊单播IPv6地址,目的是在主机和路由器上自动创建IPv4隧道,即在IPv4网络上传送IPv6数据包。
(5)回环地址。单播地址0:0:0:0:0:0:0:1称为回环地址,节点用它来向自身发送IPv6包。回环地址前缀为::1/128,不能分配给任何物理接口。回环地址相当于IPv4中的localhost(127.0.0.1),ping localhost可得到该地址。
(6)不确定地址。单播地址0:0:0:0:0:0:0:0称为不确定地址,它不能分配给任何节点。地址前缀为::/128,只能作为尚未获得正式地址的主机源地址,不能作为目的地址,不能分配给真实的网络接口。
(7)多播指定地址。RFC2373在多播范围内为IPv6协议的操作定义和保留了几个IPv6地址,这些保留的地址称为多播指定地址。
(8)请求节点地址。对于节点或路由器的接口上配置的每个单播和任意播地址,都自动启动一个对应地被请求节点地址。被请求节点地址受限于本地链路。
4.IPv4向IPv6的过渡
尽管IPv6比IPv4具有明显的先进性,但是要想在短时间内将Internet和各个企业网络中的所有系统全部从IPv4升级到IPv6是不可能的。IPv6与IPv4系统在Internet中长期共存是不可避免的现实。因此,实现由IPv4向IPv6的平稳过渡是导入IPv6的基本前提。确保过渡期间IPv4网络与IPv6网络互通是至关重要的。
目前,从IPv4过渡到IPv6的方法有3种:兼容IPv4的IPv6地址、双IP协议栈和基于IPv4隧道的IPv6。
(1)兼容IPv4的IPv6地址是一种特殊的IPv6单点广播地址。一个IPv6节点与一个IPv4节点可以使用这种地址在IPv4网络中通信。这种地址是由96个0位加上32位IPv4地址组成的。例如,某主机的IPv4地址是202.207.175.11,那么兼容IPv4的IPv6地址就是0:0:0:0:0:0:CACF:AF0B(其中CACF是202.207的十六进制表示,AF0B是175.11的十六进制表示)。
(2)双IP协议栈是在一个系统(如一台主机或一台路由器)中同时使用IPv4和IPv6两个协议栈,图1.10中的IPv4网的两台边界路由器R。这类系统既拥有IPv4地址,也拥有IPv6地址,因而可以收发IPv4和IPv6两种IP数据包。
(3)与双IP协议栈相比,基于IPv4隧道的IPv6是一种更为复杂的技术。它是将整个IPv6数据包封装在IPv4数据包中,由此实现在当前IPv4网络中的IPv6源节点与IPv6目的节点之间的IP通信,如图1.10所示。
图1.10 基于IPv4隧道的IPv6技术
基于IPv4隧道的IPv6实现过程分为“封装、解封和隧道管理”3个步骤。封装是指由隧道起始点创建一个IPv4数据包头,将IPv6数据包装入一个新的IPv4数据包中。解封是指由隧道终节点移去IPv4包头,还原为原始的IPv6数据包。隧道管理是指由隧道起始点维护隧道的配置信息,如隧道支持的最大传输单元(MTU)的尺寸等。
IPv4隧道有4种方案:路由器对路由器、主机对路由器、主机对主机、路由器对主机。当然,IPv6并非十全十美、一劳永逸,不可能解决所有问题,它只能在发展中不断完善。IPv4向IPv6过渡不可能在一夜之间发生,需要时间和成本。但从长远看,IPv6有利于Internet的持续和长久发展。