论文部分内容阅读
研究表明,一方面可用的频谱资源已经十分匮乏,一方面传输效果良好的广播电视频段的利用率非常低。笔者参与的国家863课题——动态频谱共享宽带无线通信系统实验验证网络开发,目标是在混合式网络结构中在不影响主用户的前提下实现对广播电视频谱资源的再次利用。本文主要完成课题当中的协议栈三层的设计与实现部分。本文的研究内容主要包括:内核模块与用户层的接口设计与实现、在Linux原有协议栈基础上纵向扩展多个中间层、数据包和时间联合驱动的PCI驱动设计与实现。按照协议栈的层次结构,本文主要内容如下安排。第一,由于本文研究的课题是一个演示系统,因此需要在用户层以图形界面的形式来展现。另外,需要在界面程序上能够对信道使用,设备状态等进行调整。这就要求界面程序能够和内核的协议模块或者驱动模块进行通信。Linux提供了Netlink机制和ioctl机制,本文经过分析和比较采用了Netlink作为基本的通信机制。用QT程序实现界面端,界面程序和一个用户层的Netlink进程通过Socket通信,然后该用户进程再与内核模块采用Netlink机制交换信息。这样设计的原因是保证界面程序响应的及时性。第二,本文讨论在混合式网络环境下的协议栈设计与实现。混合式网络的协议栈特点就是:网关节点同时有两种MAC协议运行,还需要MAC层之上有一个MAC汇聚子层对认知信息,邻居信息等进行协调。Linux本身的协议栈包括:应用层、Socket层、TCP/IP层、驱动层。课题中要求对现有的Linux协议栈进行扩展,在IP层之下增加MAC汇聚子层、分布式/集中式MAC层。本文针对这种需求采用虚拟网络接口技术,实现对Linux协议栈的中间层扩展。第三,课题中采用三个物理设备同时工作在不同的频段来进行数据传输,以达到较高的传输速率。这要求PCI驱动能够同时管理多个物理层,并对上层提供统一的网络接口。并且由于三个设备满负荷运行时会产生过多中断的原因,PCI驱动还必须是时间和数据包联合驱动的,这也是本文面临的重要的挑战。最后,本文对现场的部分测试结果进行分析和总结。