Windows NT下动态源路由协议开发
2010-08-06陶国喜
陶国喜
(黄冈职业技术学院 黄冈 438002)
随着无线技术的进一步发展,Ad Hoc网络以其方便灵活的特点越来越受到人们的重视,关于该网络上的路由协议及其性能的评价也成为了当前的一个研究热点。Ad Hoc网络是一种不需要任何提前给定的基础设施就能进行组网的网络形式。为了实现网络节点之间的通讯,IETF的MANET小组给出了多种可以组成移动Ad Hoc网络的路由协议,如DSR、AODV、DSDV和TORA等。当前已经有很多人针对这些协议做了大量的性能分析和研究。
一、 Ad Hoc网络研究与发展现状
一般认为,没有基础设施的网络出现在20世纪70年代,在最初开发报文交换技术(后来发展成因特网)不久,美国国防部高级研究规划署(DARPA)资助了一项特别的研究即分组无线网络(Packet RadioNetwork),即让报文交换技术在不受固定或有线的基础设施限制的环境下运行。90年代中期,随着一些技术的公开,Ad Hoc网络开始成为移动通信领域一个公开的研究热点。90年代以来,移动Ad Hoc网络的研究在世界范围内方兴未艾,已经从无线通信领域中的一个小分支逐渐扩大到相对较独立的领域。无论在国际上,还是在区域上(欧洲和亚洲等地区),周期性的Ad Hoc网络学术会议日益增多。目前,路由协议的研究仍然是Ad Hoc网络成果最集中的部分。研究Ad Hoc网络的相关技术,以适应未来高技术民用和军事发展的需要,这项研究不仅具有重要的社会和经济意义,也具有十分重要的战略意义。
二、 DSR简介
动态源路由协议(DSR)中,每一个被传输的包都携带一个到达目的地所必经的节点的完整序列,即要求发送者知道到达目的节点的完整路径,这个特性就是源路由。DSR协议就是采用了这种源路由的方法,将路径信息直接记录在每一个包中。此协议由两个基础过程组成:(1)路由发现过程(2)路由维护过程。其中路由发现和路由维护都是按需的(on-demand),按需的路由发现是只有当将发送一个包到某个节点但是在路由缓存中没有找到到达该目的节点的路由时才发起一个路由发现。路由发现过程是从源端以广播的方法来动态发现路径。按需的路由维护过程主要的工作是根据路由信息来通知各个节点整个网络拓扑的变化让节点更新路由缓存。当节点使用某一条路径的过程当中,就靠着路由维护机制对该路径的正确性进行监控,当路由维护探测到正在使用的路径出现问题时,路由发现过程就可能被启动,以发现新的正确路径。
三、 Windows NT平台下DSR的实现
1、 Windows网络协议架构
Windows操作系统的总体架构分为两个层次,上面的为应用层,下面的为核心层。其结构如表3-1所示:
这种分层结构可以实现代码共享,还可以实现安全保护。因为像协议驱动程序之类的程序对程序的执行效率和代码的严谨性、强壮性要求都非常高,一旦程序出问题就可能使系统瘫痪,因此将操作系统分为两层,可以分别赋予她们不同的操作权限。
2、 Passthru对DSR分组操作
(1)Passthru接收DSR包
Passthru通过ProtocolReceivePacket函数,从低层NIC驱动程序以完整数据包形式接收内入数据,该数据包由NDIS_PACKET类型的包描述符指定,也能够通过将内入数据指示给ProtocolReceive函数,并将数据复制到中间层驱动程序提供的数据包中。下边界面向连接的中间层驱动程序总是调用ProtocolCoReceivePacket函数,从低层NIC驱动程序接收数据作为一个完整的数据包。所以本论文处理动态源路由(DSR)分组是放在ProtocolReceivePacket函数里,先对分组进行判断,然后针对不同的分组根据动态源路由算法做不同的处理,最后把处理后的分组提交给上层程序,在程序里数据分组体现的是数据包描述符Packet,数据包描述符记载着数据分组所在内存的地址的地址,Packet指示着buffer的地址,而buffer指示着数据包所在内存的地址PacketContent,关键的程序代码略。
表3-1 Windows操作系统总框架
(2)Passthru发送DSR包
在Passthru截获网络数据包函数里的必须建立一个包描述符(packet)指示要传输的数据,并且在协议层之间传递数据时,需要添加不同的协议头。此外,在DSR协议中,IP层利用路由缓存来解析目标IP地址的路由。对每个可从路由表中找到路由的目标IP地址,路由表返回一个DSR_SOURCE_ROUTE_ENTRY数据结构来描述达到目的节点路由的入口,然后通过入口得到到达目的节点的源路由,如果在路由表中没有找到到达目的节点的路由,则发起一个路由发现来侦探到达目的节点的路由。
四、 展望
由于动态源路由是单径的,所以通过对Ad Hoc网络的动态源路由进行扩展,即在Ad Hoc网络中实现一种多路径路由方法,得到一种多路径协议称为MSR(Multi-path Source Routing)。MSR是在DSR基础上改进而成的,MSR对DSR的主要改进就在于使用多径源路由和负载平衡,同时使用MSR只需对DSR的路由选择机制进行相应的修改而可以直接使用DSR的路由发现和路由维护机制。
随着无线Ad Hoc网络的进一步发展,人们对于网络协议的性能研究已经不在满足于仿真手段,而是要求在实际的系统中去实现并通过实际测量来评价协议的性能好坏,因此,路由协议的研究将会越来越受到人们的重视。
[1]刘元安.《Ad Hoc网络中的路由算法》[M].北京邮电大学报,2004年.
[2]朱雁辉.《Windows防火墙与网络封包截获技术》[M].电子工业出版社,2002年.