利用有线路由协议实现Ad hoc与固定网络互联
发布时间:2006-10-14 7:10:34   收集提供:gaoqian
于卫波 王 海 郑少仁
(解放军理工大学 通信工程学院 南京 210007)


  摘 要 Ad hoc网络因为其自身独有的特点,将在越来越广泛的领域发挥越来越大的作用,如何将Ad hoc网络与固定网络甚至Internet互联,成为人们关注的一个课题,本文提出了一种利用现有的有线网络路由协议接入有线网络的方案,并给出了一个实现的实例。

  关键词 Ad hoc 路由 RIP 互联

1 引言

  Ad hoc 网络又称为多跳网络(muti-hop network)或自组织网络(self-organized network),它使用无线通信技术,节点中不存在专门的路由器,每个节点都可以为其相邻的节点转发信息,即不存在有线网络或是移动通信系统中的中心站,各个节点间的相互关系是对等的。由于其无中心、自组织、可快速展开、可移动和多跳等特点使得该种网络在战场通信,紧急救助,传感器网络等特殊领域具有无可比拟的优势。

  在Ad hoc网络发展过程中,Ad hoc网络主要是作为一个独立的网络存在的,但随着Ad hoc网络技术的逐步成熟和应用的范围的扩大,要求Ad hoc网络能够与有线网络互通甚至接入Internet,这将成为Ad hoc发展不可避免的趋势。

2 Ad hoc接入有线网络的困难

  Ad hoc网络的协议栈结构基本与有线网络相同(某些情况可能在IP层与接入层间增加一个Intranet层),采用共同的IP层屏蔽了物理信道和媒体访问控制的差异,为互通提供了可能,但同时也需要两种网络中主机可以方便地路由到对方,即要能够实现两种网络中的路由信息的交互。

  目前Internet中常用的内部网关协议主要有两种:

  (1)基于距离矢量的路由协议(如RIP)。在该协议中,每个路由器都维护一张距离向量表,表中记录着本路由器到每个目的地的最佳路由(通常是最短路由)。通过与相邻路由器交换距离信息来更新路由表的信息。

  (2)基于链路状态的路由协议(如OSPF)。该协议中,所有路由器不必以分布方式计算最短路由,而是通过可靠的发布链路状态分组来维护一张完整的网络拓扑结构图,并按照该拓扑结构计算出至目的结点的最短路由。

  这两种协议都是针对固定网络设计的,广泛应用于目前网络上的各级路由器中,他们都需要周期性的交换信息维护网络正确的路由表和网络拓扑结构图。而Ad hoc网络由于各个节点的对等关系,每个节点都充当路由器,可以转发来自其邻居(一跳范围内节点)的数据,同时由于无线信道带宽较窄、结点移动性带来拓扑变化频繁等因素,如果直接将传统路由协议应用于Ad hoc网络,这些周期性的控制信息将会占用大量的无线信道资源,降低系统效率,甚至阻塞整个网络。因此Ad hoc网络通常使用专门的控制报文对无线信道占用较少,且能适应拓扑频繁变化的路由协议。两类针对不同环境设计的路由协议互通,存在着一定的困难。需要对两类路由协议都做一定的改动,但因为有线网络是一个现有的已经在运行的网络,因此要将有线网络上的改动降到最低。

3 解决的方法

  AP(Access Point)充当Ad hoc网络接入有线网络的网关,它是一台同时拥有有线接口和无线接口的特殊主机,通过AP的转发和路由可以使有线网络和Ad hoc网络互通。Ad hoc网络可以通过一个或是多个AP连接到不同地域的有线网络。IETF的MANET工作组提出了一种利用移动IP和Ad hoc路由相结合的方法,通过外部代理和家乡代理实现和有线网络互通。这种方法需要各个结点都支持移动IP,这在有些应用中会有一定的难度,同时该工作组还提出了基于IPv6的实现方案,因为IPv6还未被广泛应用,所以暂时不在这里讨论。本文针对Ad hoc网络作为末端网,不作为承载网,且网络规模不是很大的具体情况,采用了一种修改AP上有线端口路由协议的方法实现了Ad hoc和有线网络的互联,具体的实现可以分为以下几种方法。

3.1 采用静态路由

  最直接的方法是在路由器和AP结点中都配置相应的静态路由,即在AP结点中增加一条到路由器的缺省路由,路由器中按照Ad hoc的IP地址段,增加一条或多条静态路由。这种方法的好处是简单,容易实现,但同时又具有它不可避免的局限性。在一个Ad hoc网络可能同时存在两个或多个接入点,Ad hoc1可以通过AP1和AP2接入有线网络,其中AP1的速率较高,在设置静态路由时,使用了AP1,但当AP1出现故障时,虽然有备用接入点AP2可用,但Ad hoc网络中的移动结点却无法使用,导致与有线网络断开。另一种情况是Ad hoc网络可能因为某些特定的因素分割为两个或是多个互不连通的子网时,此时如果结点A由Ad hoc 1 移动到Ad hoc 2,由于采用了静态路由,Internet上的主机将继续使用原来的路由通过AP1访问已经不连通的结点A,造成访问失败;而结点A也将因为无法访问AP1而无法再与有线网络连接。

3.2 采用动态路由

  为了解决上述问题,需要路由器能够及时地了解AP上的Ad hoc路由情况,从而根据Ad hoc内部的拓扑变化调整自身的路由。采用的方法是在AP的有线接口上(以太网接口),配置Internet中使用的内部网关协议如RIP或OSPF等,通过将Ad hoc路由在有线接口上重新发布,来使路由器了解AP上的Ad hoc路由。

  在Ad hoc网络中,路由协议可以处于IP层以下,也可以处于IP层以上。如果处于IP层以下,路由协议使用网络的内部地址(如物理地址)来标识结点,Ad hoc网络结点间报文的转发也将在IP层以下完成。美军的MIL-STD-188-220标准采用的就是这种结构。在188-220中在接入层和IP层之间增加一个Intranet层来完成ad hoc网络内部的寻址和选路。如果路由协议处于IP层以上,就可以使用IP地址来标识结点,实现IP层的路由转发。IETF的MANET工作组制定的路由协议采用的都是这种结构。现有的协议有GSR、DSDV、DSR、TORA、AODV等。

  当路由协议采用的是在IP层之上的工作方式,需要做的工作就是要能够实现Ad hoc路由与有线网络路由间的重新发布,这是因为几乎所有的路由协议都单独维护着一个本协议独立的路由表,通过查询该路由表的更新,来生成路由更新信息。所谓重新发布就是要将其他路由协议维护的路由信息提取出来,按照本协议自身的方法生成更新信息,来实现不同路由协议之间的互通。这种工作方式需要对有线路由协议和Ad hoc路由协议都作出一定的修改,但由于把大量的有线路由更新情况扩展到Ad hoc网络上,会造成网络的负担加重,甚至影响Ad hoc网络的正常工作,同时因为Ad hoc网络通常作为末端网存在,不存在转发其他网络数据的要求,不需要了解有线网结点的拓扑。因此考虑只是单向地把Ad hoc网络路由信息重新发布到有线网络,而所有Ad hoc网络上的移动结点把所有的AP结点作为特殊结点标注,把到AP结点的路由作为出Ad hoc网络的缺省路由,从而在到多个AP的多条路由中选择最佳路由到有线网络。

  如果采用工作在IP层以下的路由协议,通过Intranet层隔离了Ad hoc网络的特殊性,除在Intranet层维护一个转发表外,在IP层同样维护一个路由表,该路由表由Intranet层根据本站拓扑情况维护,通常采用静态路由。在Ad Hoc网络内部的路由通过Intranet层完成,IP层路由表把所有Ad Hoc网络范围内的结点看作是一跳可达的,而到所有的Ad Hoc网络外部结点则需要通过AP转发。IP层具体选择哪一个AP作为本站的缺省路由器,则需要通过Intranet层的路由比较选择最佳路由。

4 一个应用的实例

  在我们已实现的系统中,Ad hoc网络采用的是IP层以下路由的方法。即路由协议工作在Intranet层,具体的路由协议是PAR,它是一种主动式的基于平面结构的Ad hoc网络路由协议,采用利用稀疏路由树来建立到所有其他结点的最短路由表项不超过两条的路由表的方法,该协议通过拓扑变化触发发送拓扑更新消息与相邻节点交换路由信息。同时AP的有线接口采用较为简单的RIP路由协议来与路由器交换路由信息。系统中的无线节点是基于Vxworks实时嵌入式操作系统实现的,该系统已经很好地实现了TCP/IP的各级协议栈(包括RIP),关于Intranet层和接入访问控制的实现不是本文讨论的范围,这里着重探讨与有线网络互通部分功能的实现。

  为了实现PAR路由协议与Internet的互通,对AP结点中的路由协议做了如下的修改,在每次发现拓扑发生变化,需要发送拓扑更新消息时,修改工作在AP有线接口上的RIP路由协议的路由表。具体的方法是将网络拓扑中新增加的结点地址作为目的地址,AP无线端口地址作为网关,跳数设为1加入到RIP路由表中,在发现某个结点不在当前网络拓扑中时,查找RIP路由表中相应的路由表项删除。这样在RIP向路由器发送路由更新时,就将与AP连接的无线网络结点反映到路由器的路由表项中。各个移动结点的Intranet层在收到或是发送拓扑更新消息时,比较本结点到各个AP的路由,选择最近的AP,将其作为本结点到Internet的缺省路由的网关加入IP层静态路由表SR中。

4.1 实现的方法

  在Vxworks操作系统启动时由主程序调用系统函数启动RIP路由,同时启动一个守护线程。在Intranet层发送路由更新消息时,与系统保存的老拓扑更新消息比较,如果发现拓扑变化,则向守护线程发送消息,通知该线程增加或删除RIP路由。其中RIP路由表为一个临界区,对它的访问要采用互斥的方法,当RIP更新时间到达时,RIP要根据路由表生成路由更新信息,发往与路由器连接的端口。

  经过以上的配置和修改,就实现了本系统Ad hoc网络与有线网络的互联,经测试工作状况良好。

4.2 注意的问题

  首先,因为不需要在Ad hoc网络中发布有线网络的路由情况,所以AP结点不需要接收来自路由器的路由更新信息,因此需要将路由器与AP互联的接口设置为被动接口,不广播路由更新。其次,为防止AP上的RIP因长时间收不到路由更新,而将所有路由删除,需要将RIP的路由老化删除时间设为无限长。同时要注意确保RIP路由更新多播消息只是在与路由器相连的端口多播,避免增加无线网络负担和造成不必要的错误。

5 一些思考

  实现Ad hoc网络与Internet互联,为在Ad hoc网络上应用多种现有的互联网业务提供了可能,为Ad hoc网络提供了更为广泛的应用舞台。但上述的实现方法,仍然存在着一定的局限性,如从Ad hoc网络发往路由器的路由信息大多为主机路由,这对于网络的可扩展性形成了很大的制约,这个问题将在以后的研究中加以解决,并将进一步考虑使用OSPF协议代替RIP。在本文提出的实现方法都是基于Ad hoc网络和有线网络都使用有效地址考虑的,对于在Ad hoc网络使用内部地址,通过配置了NAT(Network Address Translation)协议的AP结点实现两类网络的互联也是一种很好的实现方法。

  另外,移动IP也是目前比较受关注的研究领域,可以考虑可否把路由表改造引入移动IP内,即通过类似本文的方法建立起家乡网络和其他主机到移动主机的路由,从而绕开家乡和外部代理,这些都将在今后进一步加以研究。


----《中国数据通信》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50