AODV算法模块主要是执行AODV协议逻辑。该算法模块的目标是根据通信的需求建立正确的路由,通过接收和处理AODV控制分组,来建立或改变路由。总的来说包括以下几个模块:路由建立、路由表记录、链路检测和路由维护。
如图5所示,后台进程aodvd实现的是路由功能模块,即路由算法。它作为后台进程在用户空间执行,负责与其他节点进行信息交互,建立并维护路由。kaodv.ko是一个内核可加载模块。在kaodv.ko中定义回调函数,并将回调函数分别寄存在网络过滤器的NF_IP_LOCAL_0UT、NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING三个hook点上。本地输出的数据分组发往网络接口前,在决定其路由时,如果内核路由表中存在与数据分组目的地址匹配的路由,数据分组就被投递到相应的网络接口;若不存在,就会被寄存在hook点NF_IP_LOCAL_OUT上的回调函数处理,通过raw socket将数据分组送往用户空间的数据分组缓冲区进行排队。同时,后台进程aodvd启动路由查找功能。若查找到与被缓存的数据分组报头目的地址匹配的路由,就将缓存在用户空间的数据分组通过raw socket重新注入内核;如果路由未被发现,则缓存的数据分组将被丢弃,并释放它使用的内存空间。每个进入和离开本地节点的数据分组在流经hook点NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING时,将被相应的回调函数检查,记录每条路由的使用时间,并通过netlink socket将路由表的使用状况发往用户空间,告知后台进程aodvd内核路由表的使用状况。后台进程aodvd据此重置路由缓冲表的定时器。同时,后台进程aodvd通过netlink socket删除内核路由表中过时的路由条目,或添加新的路由。在后台进程建立路由时,通过654号端口、UDPsocket.发送RREQ、RREP等控制分组。
2.3 系统测试
监控主机通过IEEE 802.11h/g标准的无线网卡接入Mesh骨干网,从具有固定IP的监控终端获取H.264格式的视频流,采用笔者开发的客户端解码播放软件完成终端设置、视频解码和实时播放,借助压缩效率极高的H.264编码,系统在主机端支持最大720×480(D1)、30帧/s(NTSC)的视频格式。
结 语
新一代的无线Mesh网络利用网状拓扑,多跳链路和先进的路由协议,通过融合IEEE 802.11a/b/g等无线通信技术,可实现组网。其优点是:组网迅速,结构灵活,传输率高,移动性好,可靠性强,成本低,可极大拓宽网络视频监控的应用范围。随着无线Mesh技术的发展和国际标准的建立,其独特的优势必将在包括视频监控在内的多种领域发挥重要作用。
无线Mesh网络下的视频监控系统,目前除了几个国外厂家做出产品外,国内在这方面还处于起步研发阶段。笔者在标准尚未制定的情况下,根据无线Ad Hoc网络的路由协议特点,在嵌入式平台下实现了一个简单实用的无线网状网络下的视频监控系统。该视频监控系统可以和外网连接,实现真正意义上的无缝连接。实验系统传输距离在无线网状网内室外条件下可以达到500 m左右。