多跳自组织网络(Ad hoc network)由多个独立的具有路由(交换)功能的用户通信终端组成。网络中的相邻终端可直接建立端到端的通信链路;非相邻终端则可动态地搜索路由,数据包借助其他终端转发,以多跳方式传递至最终的目的终端。在自组织网络中,无线信道环境的快速变化及终端的移动性造成了网络拓扑结构不断变化。因此,如何搜索、维护有效的路由成为自组织网络研究中的难点问题。近年来,研究者提出了多种路由协议草案,如DSR[1]、AODV[2]、SAR[3]等,其性能的评估数据基本上利用网络模拟软件如OPNet[4]、NS-2[5]、GloMoSim[6][[7]等仿真得到。由于仿真软件中采用的无线信道、终端分布、终端运动等模型与真实的网络环境相比均有一定的简化,所以在自组织网络技术进入实际商业应用之前,构建实际的Ad hoc网络硬件测试平台对其各层次的网络协议算法设计进行性能测评是十分必要的。但现有的各种无线终端均不支持任何自组织路由协议。
本文设计并实际建立了一个无线自组织网络测试平台系统TATbed。通过加载相应的底层驱动及测试系统软件,使得配有无线网卡的普通PC机成为独立的自组织网络的实际终端;测试平台对各种路由算法协议提供了统一的模块接口,设定相应的路由算法和测试参数后,即可通过检测各个终端间的数据传输状况,得到此路由算法的实际性能的统计结果。同时,测试平台可兼容各种无线网卡标准,如IEEE802.11系列、HiperLan系列等。目前TATbed测试平台已经集成了多种Ad Hoc网络的专有路由算法协议,包括AODV、DSR、SAR、FSR、ZRP等,并可真实地再现Ad hoc网络应用所处的实际环境(包括终端的移动性与客观信道的实际情况),为研究Ad hoc网络在多种环境下的性能与特点提供可操作平台,对进一步研究Ad hoc网络的结构设计和其各层网络协议算法设计的测试、评估、优化更具参考价值。
本文结构如下,第一节介绍测试平台系统的总体结构,第二节介绍系统的关键模块设计,第三节介绍其实际应用和总结。
1 平台结构
TATbed无线自组织网络测试平台的设计目标是开发支持多种Ad hoc网络路由算法协议的测试终端以构建实际的Ad hoc测试网络,并通过检测各个终端间的数据传输过程对自组织网络的各种实测性能指标进行统计、评估。
TATbed测试平台由一定数量的独立的自组织网络终端构成。在实际平台设计中,在配有无线网卡的PC机(笔记本电脑)基础上开发了支持多种路由算法协议的自组织网络终端,每个终端可依据设定的路由算法协议自行组建Ad hoc网络并进行数据传输。图1为TATbed平台的实际测试示意图。
TATbed测试平台的软件系统包括传输任务生成器、终端处理器和数据统计器三部分。
在测试开始前,传输任务生成器将根据设置的测试参数,生成每个终端的起始传输任务列表,以精确地控制测试过程中网络的传输负荷。在传输任务列表中定义了整个测试过程中每组数据包的源发出节点、最终目的节点、数据包数量、发出时间。
测试开始后,每个终端上的终端处理器将读取其对应的传输任务列表,在规定的时间进入发数据包流程,处理需要发出的数据包,同时监听无线网卡接收到的数据包并进行相应的处理。在测试过程中,终端软件模块记录下本节点收到和发出的每个包的信息,包括收(发)时间、包头信息、包长度等。
测试结束后,根据本次测试的整个网络的起始传输任务列表和每个终端在测试过程中保存的收发包记录,数据统计器统计分析、计算出相应的测试指标,包括网络容限、节点平均吞吐量、数据包成功传输率、数据包平均传输延时、延时抖动、数据包传输路径平均跳数、系统路由开销等。
2 自组织网络测试终端设计
由于现有的各种通信终端设备均不支持任何自组织网络路由算法协议,因此开发自组织网络测试终端成为整个测试平台构建的关键。在TATbed测试平台中,通过在装备了无线网卡的PC机上安装终端处理器,使其支持多种自组织网络的路由算法协议,成为实际的自组织网络中的终端。
在现有的标准PC机系统下,网络层采用IP协议,终端之间的连接根据IP地址的标识来判别,应用层的传输任务经过数据打包处理后直接交无线网卡发送,并且只有当数据包的源节点和目的节点处于相互无线网卡信号覆盖范围内时,才能成功发送IP数据包,终端本身并不支持任何路由功能。在TATbed测试平台系统中,终端的MAC层和网络层之间加载了自行开发的驱动模块,以支持无线自组织网络中的多跳传输,形成一个虚拟的传输链路层,为普通数据包的发送提供传输路由,如图2所示。
终端处理器在Windows操作系统提供的NDIS(Network Driver Interface Specification,网络驱动程序接口规范)[8]层基础上开发,包括底层接口驱动、路由算法模块和数据包的监听记录三部分。其结构如图3所示。
为测评各种不同路由算法协议的性能,终端处理器中的接口驱动设计为一个自定义的标准路由算法接口。该接口将各种路由算法协议完成的寻找路由、确定路由等功能与系统网络层完成的其他功能,包括与上下层之间的传递、包头内容的填写等工作分离,使得路由算法协议成为需要嵌入的单独子模块。不同的路由算法协议只需要遵循接口定义编写相应的子模块即可。目前,TATbed测试平台系统可支持AODV、DSR、SAR、WRP、Fisheye、CBRP、ZRP等多种自组织网络路由算法的测试、评估。同时,由于终端处理器的接口驱动加载在NDIS层上,使得测试平台对MAC层协议透明,因此测试平台可根据测试需要选用各种基于不同传输标准的无线网卡。目前系统中选用了基于IEEE802.11b标准的网卡进行测试。
为支持多跳的数据传输,测试系统中所传递的数据包的包头在标准的Ethernet-MAC包头基础上进行了扩展,加入了路由算法协议中规定的类型信息和路径信息,如图4所示。
包头的第0~13字节为标准的Ethernet-MAC包头格式,第14~27字节为扩展的“路由信息”域,之后是实际的用户数据。对于来自高层(网络层)的数据包,终端从其IPv4标准包头中读出此数据包最终发送的目的地址并将这一“最终目的地址”保存在“路由信息”域的“最终目的节点IP地址”项内;同时调用路由算法模块,根据其最终目的地址获取其对应的多跳路由信息,并将实际的下一跳的接收节点的地址写入第7~12字节处的“下一跳接收节点MAC地址”项内,然后将此数据包交下一层(MAC&物理层)无线网卡处理发出。对于来自底层无线网卡接收到的数据包,终端读取“路由信息”域的“最终目的节点地址”,如果此地址与其自身地址相符,则交上层网络层继续处理;如果不相符,则调用路由算法模块,得到其对应的多跳路由中下一跳的接收节点地址,然后交无线网卡处理发出。对于路由算法协议中规定的其他非数据包,如路由搜索包、路由应答包、路由失败包、周期性握手信息包等,则在“包类型”域中标示区别,由无线网卡收发后直接调用相应的路由算法模块处理。
3 系统应用
TATbed无线自组织网络测试平台在普通PC机上开发了支持多种自组织网络路由算法协议的实际无线终端,以构建一个实际的无线自组织网络测试系统。笔者利用此平台已经成功地对AODV、SAR路由算法在多种实际网络环境参数下进行了性能的实测比较分析。测试结果可应用于实际的自组织网络路由算法的性能评估、设计优化等方面。同时,TATbed终端软件模块的设计使其可应用于任何基于Windows内核的硬件设备上,具有高度的通用性、灵活性和可扩展性,在无线自组织网络的实际网络系统性能测量、网络规划优化设计、网络各层次算法协议性能评估等诸多方面均有其独特的应用优势。