多播技术
多播技术提供一种一个发送者向一组接收者传送数据的有效传输方式。如图1,多播传输中,数据被发送到接收者的多播地址,而不是每个接收者的单播地址,发送者只发送一个数据拷贝,源端到目标端路径上的中间节点复制该数据。
图1 多播示意图.
多播在实际中有许多应用,如不同地域的指挥官可以利用多点多播系统参与计划编制会议,然后利用多播协议把计划传给下级指挥官;对地理上分布的逻辑数据库的数据修改以及视频点播、远程教学、网络电视等。
2.多播地址
为发送IP多播数据,发送者需要确定一个合适的多播地址,这个地址代表一个组。IPv4多播地址采用D类IP地址确定多播的组。在Internet中,多播地址范围是从224.0.0.0到234.255.255.255。其中比较重要的地址有:
224.0.0.1 - 网段中所有支持多播的主机
224.0.0.2 - 网段中所有支持多播的路由器
224.0.0.4 - 网段中所有的DVMRP路由器
224.0.0.5 - 所有的OSPF路由器
224.0.0.6 - 所有的OSPF指派路由器
224.0.0.9 - 所有RIPv2路由器
224.0.0.13 -所有PIM路由器
IPV6地址空间中有1/256的地址空间分配给多播地址。一个FF(11111111)值标识该地址是多播地址。标识段高三位始终设置为0并保留。第四位T标识设置为0时表示一个永久分配的多播地址。T标识设置为1时,表示非永久分配的多播地址,这种地址作为一个临时的多播地址。
3. 组管理协议
主机使用组管理协议IGMP消息通告本地的多播路由器它想接收多播流量的主机组地址。如果主机支持IGMPv2,它还可以通告多播路由器退出某主机组。多播路由器通过IGMP协议为其每个端口都维护一张主机组成员表,并定期的探询表中的主机组的成员,以确定该主机组是否存活。
4.多播路由协议
为实现多播通信,就必须建立支持多播的路由协议,目前常用的多播路由协议有距离向量多播路由协议DVMRP、协议无关密集模式多播协议和协议无关分散模式多播协议。
DVMRP是一个适用于单个独立系统的内部网关协议,它是一种基于距离向量算法的多播路由协议。建立在RIP基础上,采用本身的动态路由协议来进行路由交换和路由表的构建。目前已基本上被PIM所取代。
PIM协议的目的是在Internet 上提供足够规模的域间多播路由。PIM有两种兼容的操作模式:密集模式和发散模式。
密集模式采用了DVMRP一样的方式,建立PIM-DM环境中建造起来的基于资源的多播树。PIM-DM独立于IP路由协议,“协议无关多播”由此而得名。PIM-DM适用于发送者和接收者非常接近,且只有一小部分发送者和大量的接收者或多播流量持续并非常大的情况。
PIM-SM与PIM-DM相似,都是建立在多播路由协议基础上用于决定RPF接口的协议。PIM-SM协议假定在网络中接收者的人数很稀疏或者多播组被广域网分割开,适用于多播组中接收者较少、间歇性多播流量的情况。不同于PIM-DM的广播方式,PIM-SM定义了一个集合点(RP),所有的接收者在RP注册,多播分组由RP转发给接收者。
移动IP
1、为什么需要移动IP
在讨论为什么需要移动IP以前,先对现有的路由技术在相关方面作简要的介绍:
a. 各个节点只根据IP报头中的目的IP地址来作转发决策,只在有错误发生时才去检查源地址;
b. 一般来说,路由决策依赖于目的IP地址的网络前缀而不是整个目的地址;
c. 同一条链路上的所有节点都应有相同的网络前缀,它们可以通过IP地址中的主机部分来识别;
d. 对于同一条链路上的多台主机,可以只用一条网络前缀路由,而无需列出所有的特定主机路由,对于有几百条链路,每条链路上又有几百台主机的网络来说,采用网络前缀路由而不是特定主机路由可以极大地简化路由表的表项。
在上述路由机制下,因特网上的一个节点在改变了其在网络上的接入点以后,如果不重新配置其IP地址,那么它就不能继续与网上的其它节点进行通信,移动IP就是为解决这个问题而提出的。
2.什么是移动IP
简单来说,移动IP提供了一种IP路由机制,使移动节点可以以一个永久的I P地址连接到任何链路上。移动IP可以看作是一个路由协议,只是与其它路由协议相比,移动IP具有特殊的功能,它的目的是将数据包路由到那些可能一直在快速地改变位置的移动节点上。移动IP只是将数据包路由到移动节点的网络层标准,对TCP等其他技术以及应用程序的改进则不是移动IP的范畴。
设计移动IP时有以下几个要求:
a. 移动节点在改变数据链路层的接入点后应仍能与因特网上的其他节点通信;
b. 无论移动节点连接哪个数据链路层接入点,它应仍能用原来的IP地址进行通信;
c. 移动节点应能与不具备移动IP功能的计算机通信;
d. 移动节点不应比因特网上的其他节点面临新的或更多的安全威胁。
3.移动IPv6机制
下面先从一个整体的角度介绍一下IPv6对移动性问题的解决方案。参见图1,Node A链接到Link 1上,它有一个地址A1,这个地址A1是可以通过Router 1到达的,当Node A没有发生移动时,Node B与Node A通信时,Node B发送的数据包会按照现有的路由方式到达Node A。
可是当Node A发生了移动,从Link 1移动到Link 2时,如果Node A不改变其IP地址,Node B发送的数据包按照现有的以前缀为基础的路由方式就不能够到达Node A了。
1).Router会定期广播发送Router Advertisement消息,带有本地链路上的前缀信息,Node A接收到这个消息后,知道自己发生了移动,它会根据新的前缀信息通过地址自动配置得到一个新的地址A2;
2).Node A会发送一个信息包M2给Router 1,这个信息包告诉Router 1现在Node A的新地址A2,此后,Router 1再发现有需要送到Node A的原来的地址A1的数据包,它会把这个数据包截获,然后把这个包作为净荷,在其上面再加上一层IPv6报头,把新的数据包发送到Node A的新地址A2,这个过程应用的是“隧道技术”;
3).假如Node B发送数据包给Node A,它并不知道Node A已经发生了移动,此时它会把这个数据包继续发送给Node A原来的地址A1;
4).Node B发送的数据包到达Router 1以后,Router 1会截获这个数据包,同时把这个数据包转发到Node A的新地址A2;
5).Node A收到Router 1转发过来的数据包以后,通过检查这个数据包的源地址,它知道Node B想与它进行通信,于是它会发送一个信息包M3给Node B,告诉自己的新地址A2;
6).Node B收到这个数据包以后,会记录下Node A的新地址A2,这样如果再有数据包需要发给Node A,它会直接把数据包发给地址A2。至此Node A和Node B之间可以实现双向通信;
7).若有其余节点想与Node A进行通信,其建立通信的过程与Node B类似。
4.移动IPv6与移动IPv4的比较
互联网发展的最初动力是实现计算机之间的信息共享,那时没有考虑到会有对移动性的需求,作为互联网基础的IPv4在制订之初并没有考虑到要解决移动性问题。随着社会的发展,互联网的应用越来越广泛,人们提出了许多新的需求,对移动性的需求就是其中的一种。在移动性方面,IPv4提出的是一种补救性的措施,因此它的方案有很多不完善的地方,主要表现在以下几个方面:
a. 在移动IPv4中,存在一个外地代理的概念,它实际上是外地链路上的一个路由器,由它来为移动到本链路的移动节点接收数据包;
b. 在移动IPv4中,有两种转交地址:配置转交地址和代理转交地址。其中,配置转交地址通过配置规程如DHCP、BOOTP等协议得到,它是一个真正的独立的IPv4地址,此时移动节点可以自己用此地址发送或者接受数据包;代理转交地址实际上就是外地代理的地址,外地代理代替移动节点接收数据包,简单处理后,再把包传送给移动节点;
c. 移动IPv4中存在着“三边路由”问题。由通信节点送给连接在外地链路上的移动节点的数据包先被路由到它的家乡代理上,然后经隧道送到移动节点的转交地址,然而,由移动节点发出的数据包却被直接路由到了通信节点,这构成了一个三角形,如图3所示。在安全性方面,移动IPv4采用的是静态配置的“mobile security association”,因此不能对移动IPv6进行路由优化。
5.为什么IPv6能够更好地解决移动性问题
IPv6在制定之初就考虑到了要解决移动性问题,因此它的基本理论中就有许多是为解决移动问题而提出的,这使得IPv6的移动解决方案是一个对移动性问题的根本的解决方案。IPv6有许多适用于解决移动性问题的新特性,这些特性都是IPv4所不具备的,因此IPv6能够更好地解决移动性问题,主要表现在以下方面:
a. 地址自动配置:IPv6有足够多的全球地址,另外IPv6实现了一种称为无状态地址自动配置的机制,任意节点可以根据当前所在链路的前缀信息以及自己的网络接口信息自动生成一个全球地址。IPv6的地址自动配置机制使得移动节点可以很容易地得到转交地址,不需要人为的参与。
b. 邻居发现:在邻居发现中规定,路由器应该定期广播发送其前缀信息,移动节点根据这些前缀信息能够快速地判断自己是否发生了移动,并通过地址自动配置得到转交地址;邻居发现中还定义了代理宣告的概念,“proxy advertisement”,使得home agent可以通过发送代理邻居宣告消息截获发送到移动节点家乡地址的数据包,并把这个包“tunnel”到移动节点的转交地址。
c. 安全机制:IPv6内置安全机制并已经标准化,它支持对企业网的无缝远程访问。在安全性方面,IPv6同IP安全性(IPSec)机制和服务一致。除了必须提供网络层安全这一强制性机制外,IPSec还提供两种服务。认证报头(Authentication Header, AH)用于保证数据的一执行,同时还可以用之进行身份验证,而封装的安全负载报头(Encapsulation Security Payload Header, ESP)用于保证数据的保密性和数据的一致性。同时由于IPv6的新特性,也可以为移动IPv6专门设计安全机制。
d. 黑洞检测:移动IPv6中的移动检测机制提供了移动节点和它的当前路由器之间的双向可到达的确认机制,即移动节点可以随时知道当前路由器是否继续可达,同时路由器也可以知道节点是否继续可达。如果移动节点检测到当前路由器不再可用,它就会去请求另外一台路由器。而Mobile IPv4只提供了“前向”可到达的检测机制,即路由器可以随时确认移动节点是否继续可达,但是移动节点却不能检测到路由器是否继续可达。
e. 路由报头:IPv6中定义了路由报头,报头中指定了数据包在从源节点到目的节点的过程中应该经过的节点的地址。大多数发送到移动节点的数据包都要使用路由报头,数据包的目的地址是移动节点的转交地址,并且包含一个路由报头,路由报头的下一跳是这个移动节点的家乡地址。
f. 动态家乡代理地址发现机制:在IPv6中,定义了一种称为“anycast”的地址,它也是一个地址组,地址组中的所有的机器都会收到发往这个“anycast”地址的数据包,但是只会有一台机器对这个数据包做出响应。移动节点家乡链路上所有的路由器都配置为“Mobile-IPv6 anycast address”,移动节点把“家乡代理地址发现清求” 消息发到这个“Mobile-IPv6 anycast address”,所有的家乡代理都收到了这条消息,但是有且仅有一个家乡代理对此做出响应。
g. 透明性的实现:节点的移动对移动节点和通信节点上的应用程序是透明的。对于通信节点来说,移动节点发送数据包时使用“home address option”,可以使其不必知道移动节点的转交地址;对于移动节点上的应用程序来说,通信节点发送数据包时采用“Router Header”,仍旧可以使应用程序不必知道移动节点的转交地址。
6.有待解决的问题
移动IPv6的发展还处在初级阶段,目前提出来的还只是移动解决方案的基础理论,移动IPv6的最终目标是实现全球范围的真正的移动网络,它会满足移动计算和个人通信的所有要求。
要真正实现全球范围内移动网络,还需要完成以下几个方面的工作:
1).在协议的发展方面,还需要进一步完善一下几个协议
IPv6协议; Mobile IPv6协议; IPSec协议; SCTP; Diameter
2).在协议的改进方面,需要研究以下几个问题:
a. 服务质量,包括差分服务质量和端到端服务质量的支持
b. 增强TCP协议,以支持移动IP
TCP假设所有的数据段丢失都是由于拥塞引起的,这种假设在因特网中大多数情况下是正确的,但在无线和移动环境中这个假设却不成立,在这种环境中,TCP的这个假设使得TCP性能变得很差。在这些背景之下,有人提出了对TCP改进的方案,许多改进方案关系到协议栈中各层(数据链路层、网络层、T C P 和应用层)协调工作以达到最佳的性能。因此,对于移动功能来说,问题并不只是如何将数据包路由到移动节点上,移动IP提供了这种数据包的路由能力,但它并未包括这些提供更完整的移动功能的改进方案。
3).在移动本身方面,还需要解决如下问题:
a. AAA,即(Authentication、Authorization、Accouting),它是指身份认证、授权机制、自动计费服务)
b. Buffer Management:移动IPv6中定义了多种数据结构,在节点中需要占用一定的资源,如何有效地管理这些资源,并使之不会对现有的服务性能造成太大的影响,是一个需要研究的问题
c. 与无线通信技术的融合:Internet技术的发展日新月异,无线通信技术如AMPS、GSM、CDPD、GPRS、WAP、BLUETOOTH、IMT-2000等层出不穷,再加上移动通信设备的进一步完善,以移动无线Internet为核心的移动计算网络正在向我们走来,未来的网络将是一个无线、有线与互联网三者合一的数字化的地球,其覆盖将超越一切地理的障碍,使得信息无处不在,因此,移动IP技术与无线通信技术的融合就变得是必不可少的了。
d. Seamless Handover,无缝切换:本文所讲的移动IPv6的基础理论只是在宏观的方面解决移动性问题,即它只是解决了移动的路由问题;无缝切换是为了解决节点移动过程中可能出现的问题而提出的,它把节点移动对通信产生的影响减小到最小,这是为了提高性能,在移动的微观方面所做的改进。无缝切换包括两个方面的内容:Fast Handover和Smooth Handover,现在解决快速切换和平滑切换都已经有人提出了一些方案,但是大多数都还没有成为标准。
移动IPv6的前景是诱人的,但是它的发展还只是处在起步阶段,前面介绍的移动IPv6的基础理论只是在宏观的方面解决移动性问题,即它所解决的问题是:当一个节点改变了网络接入点以后,如何把数据包继续路由到这个节点上,它并没有考虑这个过程对其他方面的影响,也没有过多地考虑性能和服务质量方面的问题。实际上,要实现全球范围的真正的移动网络,需要整个移动IPv6的体系结构的协调,除了解决路由问题以外,还有许多需要解决的问题,(见图4),整个移动IPv6体系的完善还有很长的路要走。