Page 211 - 数码世界6月整本
P. 211
技术交流
多网融合网关网络资源共享功能的设计与实现
沈雅娟 宋铁成
摘要:本研究基于 Sqlite3 数据库、多线程和策略路由等关键技术,通过为上网业务建立自由通路并对其进行维护,实现多网融合网关
的网络资源共享功能。系统测试结果表明,自动路由通路较为畅通和稳定,且各用户均能合理地共享网络资源。
近年来,自然灾害频发,为了降低这些灾难带来的 系统采用 Sqlite3 数据库,对 3G Modem、卫星和
伤害,使救援人员能通过网络、电子邮件和文件传输等 WLAN 网桥等设备的状态和使用情况进行存储。数据
业务及时与救援中心进行沟通,高效可靠的应急通信显 库 位 于 /tmp/gw/dev.db 中, 主 要 存 放 着 dev status
得尤为重要。由于卫星通信具有覆盖范围广,受地理位 allcar 和 car inet 两张表。其中,devstatus allcar
置限制小的优点,将其与地面无线通信结合起来,能灵 称为设备状态表,car inet 称为车间组网信息表。每隔
活有效地构建应急通信系统,保证救灾活动的顺利进行。 一段时间,各车的网关都会将其设备状态信息通过用户
然而,考虑到系统中的网络资源是有限的,不可能为所 数据报协议 (User Datagram Protocol,UDP) 套接字广
有的救援人员都提供一条卫星通道或者其它无线通信资 播到车间组网中,其他车的网关在收到广播包后,作出
源,因此,构建的应急通信系统必须满足资源共享的性 判断,若两张表中尚无其源车的记录,则向数据库添加
能。此外,为了保证网络资源共享的有效性和可靠性, 该车的各个表项,否则自动更新设备状态表中的 avail
需要系统能自动地为上述业务建立路由通路,并保障通 和 occu 字段。车间组网信息表中 user res 和 user id
路的畅通和稳定。 等字段的更新则配合自动路由过程来进行。
基于以上需求,本研究将卫星通信、3G 移动通信与 2.2 多线程模块
无线车间 Mesh 网结合起来,利用数据库、多线程和策
由于网关需要不断地检测和更新本车设备的状态,
略路由等关键技术,为上述业务自动建立和维护其路由
并广播用于自动路由通路建立和维护过程中的相关信
通路,来实现异构网络资源的共享。
息,需要网关控制软件能同时控制和处理多个任务,因
1 总体方案 此,论文采用多线程的方案,来提高程序的运行效率。
网 关 的 核 心 板 采 用 ARM9 开 发 板 SBC6020, 其 2.3 自动路由模块
上 的 eth1 接 口 与 无 线 局 域 网 络 (Wireless Local 检测线程中定义了全局变量 set rout web,当且仅
AreaNetworks,WLAN) 网桥相连,为各车提供车间 WLAN 当本车的自动路由通路建立时等于 1;否则为 0。首先,
的外网口;而 eth0 接口与交换机相连,构成车内局域 判断 set rout web 的值,若为 0,则说明需要自动建立
网的内网口。车载个人电脑 (Personalcomputer,PC) 路由通路;若为 1,则紧接着检测当前使用网络设备的
通过 RJ45 网线与交换机相连,其上安装与网关系统相 状态。若不可用,则先取消掉已建立的路由通路,再重
配套的界面管理软件,供救援人员进行操作。在构建应 新选择资源建立路由;若是资源提供车离开车间组网的
急通信时,系统通过各车的车载 WLAN 网桥自组织成车 情况,调用 process provider left 函数处理;否则,
间 WLAN,其中部分车配有 3G 调制解调器 (Modem) 和卫 设备状态为 AVAILABLE,不需进行任何操作。每执行完
星小盒,可分别用于接入 3G 移动通信网和卫星通信网; 一次上述流程,线程就调用 sleep 函数休息一段时间,
没有配备 3G 资源或者卫星资源的车辆,则可通过车间 再重新进行下一轮的检测。
WLAN 来接入其他车辆的对应网络。文章着重对这部分的 在上述自动路由循环检测线程中,引入 auto rout
网络资源共享功能进行设计与实现。 cancel 和 process provider left 这两个函数来取消
已建立的路由通路,以避免路由表的不断膨胀及其它潜
2 模块设计方案
在隐患;此外,还引入 auto routing process 函数来
2.1 数据库模块 实现网络资源的选择和自动路由通路的建立这两个主要
106... ...107