在TCP/IP协议集内,与IP直接活间接互操作的协议包括各种应用层协议,连路程协议以及TCP和UDP。本章将讨论如果对这些协议修改或者是否需要修改以适应IPv6. 协议的层次: 要理解IPv6对其他层协议的影响,重要的是要理解这些协议如果使用IP。由于如此众多的系统需要依靠大量的TCP/IP网络技术和应用协议,重要的是对IP的升级不一定要对IP的上层或者下层协议经行广泛的升级。 因此,除IPv4外,大多数的现有TCP/IP应用,软件、硬件只需要经行少量修改,就可以和IPv6一起工作。 应用层: 万维网(WWW)和e-mail是当今使用最广泛的应用。WWW和e-mail客户必须指向Internet上的服务才能工作。传统上这些客户能够接受节点的主机名或其Ip地址。在使用域名时,可调用域名系统(DNS)来获得与主机名对应的IP地址,然后在传输层和网际层使用。 对于简单的应用,很容易使其与IPv6一起工作:可以重写软件,使其能接受和正确处理IPv4和IPv6地址;或者要求只能按照主机名来访问。前一种方法保留了应用直接对节点寻址的能力,但相对而言比较复杂;而后一种方法只是去掉了大多数用户不使用,甚至不需要的功能。 但是,考虑到对IPv6提供的安全性、服务质量或其他特性的穾,有些应用希望使用IPv6,这样就需要更广泛的更新。 传输层: 大多数情况下,IP地址与应用层协议无关,但是与传输层协议却又很大关系。UDP和TCP的伪头都使用了源IP地址和目的IP地址,而且TCP电路是有源节点和目的节点的IP地址和端口号来定义的。如果要与IPv6互操作,并能正确计算伪头。对于TCP,其实现还必须能够管理给予IPv6地址的电路。 在第一个IPV6 RFC发布之后,出现了一些顾虑,既需要TCPng来补充IPng。目前TCP在处理移动节点时有一个点问题:确定TCP电路需要源节点和目的节点的IP地址。如果在TCP交互器件,一方或双方的IP地址有所改变,则电路的标识就会出现问题。 移动节点从一个网络地址向另一个网络地址转换时就会出现这种情况,例如,火车或汽车上的节点使用无线网络接入,或链接到网络的节点在夜间为获得更好的费率而改变ISP的情形。 这种问题的产生是由于TCP至少在目前还没有机制能够允许在连接中改变IP地址。如果一个节点收到TCP段中的源IP地址与此TCP电路在建立时协商的地址不同,该节点将认为这个TCP段是属于另一个电路的。这意味着移动IP目前还不能支持激活的TCP电路从一个网络地址向另一个网络地址转换。 TCPng的问题比间的运行TCP连接支持网络地址转换要复杂许多。问题在于支持这样的地址将导致安全性漏洞:攻击者很容易的冒充从一个网络向另一个网络转换的节点,如同授权的节点从一个网络向另一个网络转换一样。解决这样的问题将要求对TCP进行重大的升级,既需要引入机制使节点在其IP地址改变时能够向其他节点证明自己。 目前,如果移动IP在TCp连接的中间切换网络,它必须在切换之后重新协商连接。某种意义下,对于支持移动和主机的无缝互操作,TCPng是很必要的。 链路层: 与上面层相比,诸如以太网和ATM之类的链路层协议由于IPV6的升级而受到的影响很小。这是由于这些协议只是将上层数据报封装到链路层帧中。但这并不说明IPv6对链路层协议毫无影响。例如,ATM使用类似点到点电路来跨越网络传送数据。对于需要就爱那个Ipv6包交付多个节点的服务,ATM需要格外注意。 可能受IPv6影响的链路层问题还包括路径MTU发现及地址解析协议(ARP)这些协议需要修改以支持128的Ipv6地址。 IPv6域名系统扩展 Internet应用能够很容易使用,DNS是一个重要因素:它使名字很方便的映射到IP地址。DNS使用分级的名字空间,每一级豆油一些服务器帮助将名字映射为地址。主机名可能是诸如“host.organization.com”的形式,表示主机host在域organization中。 如果organization.com内的节点要查找host,j就查询本地DNS服务器,该服务器保持着organization.com中的主机的名字和地址信息,它将简单的查找host,并以host对应的32位IP地址来回答节点的请求。 如果organization.com之外的节点需要host.organization.com的IP地址,它将查询本地DNS服务器,这个本地服务器必须查询保持.com网络域信息的上一级服务器,然后该上级服务器将请求导向organization.com域的DNS服务器,由这个服务器最终响应,将所请求的IP地址发送给查询这的本地DNS服务器,再由本地DNS服务器将信息传递给发送请求的节点。 到目前为止一切顺利。但是DNS最初被设计为用于处理32位Ipv4地址,RFC1886(支持Ipv6的DNS扩展)描述了为使DNS支持IPv6而进行的必要修改。此RFC篇幅很短,它扼要陈述了为使DNS适用于Ipv6而进行的3处修改。 ◆建立新的资源记录类型(称为AAAA记录类型),以将名字映射为128位地址的Ipv6地址。IPv4资源记录使用A类记录类型。 ◆建立新域,即.IP6.int,用于增补IPv6主机地址以支持基于地址查找,即请求节点想了解Ipv6地址对于的域名。IPv4地址也有类似设施,即.in-addr.arpa。 ●必须修改现有的DNS查询,使之不仅能定位活处理IPV4地址,同样能够处理IPv4和IPv6地址共存的情况。 地址解析协议和邻居发现: IPv6不在执行地址解析协议(ARP)或反向地址解析协议(RARP)。 在IPv6中没有继续使用ARP有如下原因:首先,ARp依赖于IPv6和使用组包的ICMPv6报文,这意味着没有必要为使用ARP的每个不同类型网络都重新构造ARP,任一支持IPv6和组播的节点应该也支持邻居发现。 对组播的支持很重要,在链路层更是如此。和广播一样,组播在诸如以太网之类的支持多路同时访问同一媒体的网络上很容易实现。但是,对于所谓的非广播多址(NBMA)网络,例如ATM和帧中继,组播则很难处理………… RFC1970(IPV6的邻居发现)中描述了邻居发现机制,它提供了几种不同的用途,包括下面的支持: ●路由发现,即帮助主机来识别本地路由器 ●前缀发现。节点使用刺激值来确定指明链路本地地址的地址前缀以及必须发送给路由转发的地址前缀。 ●参数发现。此机制帮助节点确定诸如本地链路MTU之类的信息。 ●地址自动配置。用于IPV6节点自动配置。 ●地址解析。替代了ARP和RARP,帮助节点从目的IP地址中确定本地节点9即邻居)的链路成地址。 ●下一跳确定。可用于确定包的下一个目的地,即,可确定包的目的地知否在本链路上。如果在本链路,下一跳即是目的地,否则,包需要选路,下一跳即是路由器,邻居发现可用于确定应使用的路由器。 ●邻居不可到监测。邻居发现可帮助确定邻居(目的节点或路由器)是否可达。 . G3 z( P9 Q. Y) C, |# J5 m# z
|