吴义三咸宁职业技术学院 (咸宁437100)
基于NDIS的无线Mesh网络协议的研究和实现
吴义三
咸宁职业技术学院(咸宁437100)
摘要随机网络通信快速发展,对于无线电的研究越来越深入,建立起无线电通信平台也迫在眉睫。NDIS基础上提出NMP网络协议,对于Mesh无线电网络推广具有积极意义。本文针对NDIS架构进行分析,针对Mesh无线电网络特点进行分析,对NMP协议进行了实际应用研究,并搭建起NMP网络实现性能测试,进而表明Mshe协议的优越性。
关键词无线Mesh网络协议;实现;NDIS中图分类号:TN915.03
文献标识码:A
文章编号:1003-3319(2016)01-00030-02
无线电Mesh网络作为当前比较先进有效的通信技术,其具有优秀的结构特征可以直接作为无线网络接口。无线Mesh随着时代的发展其被广泛应用于各个方面甚至一些网络公司正在积极研制无线网络通信平台,逐渐适应当前流行的Windows网络平台应用。以往很多都不是在Windows网络平台上应用,但是实现Windows平台无线网络的需求也越来越大。本文基于NDIS的无线Mesh网络协议进行研究,从基础概念性问题进行分析再到无线网络实现,为相关研究同仁提供借鉴。
1.1NDIS介绍
NDIS即网络驱动接口规范,其主要目的时为NIC制定出标准的AP接口。介质访问的时候通过NIC来实现编程接口互访,由于NIC驱动封装了所有硬件,而NDIS可以提供函数库供应高层协议驱动调用和MAC驱动调用。采用NDIS规范接口可以为驱动提供更加便利的调用流程和安全。NDIS目前可以支持主流的三种驱动网络程序:(1)网卡驱动程序;(2)中间驱动程序;(3)协议驱动程序。NDIS可以实现网络驱动程序运行开发环境创建,然偶通过调用NDIS中的函数来实现接口数据交换,进而使得网络驱动与操作系统分平,进而实现无线通信。这种工作模式有利于提升程序编写人员的效率,还可以通过封装开发来减少软件设计开发的工作量,为实现轻松开发提供可靠性保障[1]。
1.2Mesh协议介绍
Mesh网络即无线网格网络,属于一种多跳网络同时也是解决无线互联问题的关键性技术。Mesh网络对于下一代网络的发展和演进具有非常重要的作用,同时也是Mesh和其他网络建立起通信的重要纽带。Mesh网络在现代化的矿井中应用相当广泛,并且在国内各个公司之间实现无线通信。如煤矿井下的无线通信应用,由于井下环境非常复杂,常规的通信技术已经无法满足要求,且不利于安全施工若遇到断电或者塌方问题则很容易出现通讯中断,井上将无法联系到井下人员,对于井下状况不甚了解也不利于救援工作开展[2]。
NDIS架构与外界和上下层的接口为TDI,TDI作为API核心组成,其根据网络传输接口来规范Windows程序接口请求包,并将其发给协议驱动层。针对TDI进行传输层接口进行划分,其可以将网络API的实现与协议分开,以此来实现API不同协议功能。NDIS作为协议驱动最高协议,可实现与微端驱动数据交互,协议驱动程序主要用于关注NDIS包收发请求。每个NDIS包都会对应相应数据包,协议驱动程序主要实现数据包处理、接收、发送以及缓冲等功能。中间程序可实现简单的数据过滤处理,因此很多程序开发商还将其用于防火墙开发。值得一提的是NDIS下端微端口需要遵循NDIS框架的网卡驱动,并且由网卡厂商提供主要功能,进而实现网卡接收和发送处理[3]。
2.1NDIS接收函数和以太网帧对应性
NDIS函数让自己的开发协议程序,开发过程中必须构建自己的协议字,并通过函数端口注册协议字。协议字中包含很多可自动触发回调的函数,这些函数则需要自己实现。最为基本的回调函数主要分为ReceiveHandler和ReceivePackageHandler以及其他类型的函数,这些函数之间通过网卡接收数据包。ReceiveHandler作为必要函数,同底层的网卡驱动调用的函数相对应,每次收到的数据包必须立即处理。如图1所示DIX为常见的以太网帧的接收情况,通过NDIS作为工作数据需要以太网帧的帧校验序列和前导码。将以太网帧头函数放入到HeaderBuffer中,然后通过LooKAheadBuffer接收和存放这些数据。
NMP协议作为本次基于NDIS无线Mesh协议,其属于一个完整的协议包含了数据管理、认证、链路维护、路由、握手以及流控等多个方面,其实现了查询统计、动态配置以及ping等API接口。NMP作为无线Mesh网络协议,NMP支持着多个无线多跳的网状组网方式。NMP可以通过以太网代理来实现组网,使得用户在不做任何修改的前提之下通过NMP网络实现任何网络数据传输。
无线Mesh协议通过在线链路层实现通信路由功能,同时也将路由网络分为了两种模式,其一为两层模式;其二为三层模式,而NMP则被设置为二层协议模式。为了进一步实现二层协议和NMP协议之间最大兼容可能,将NMP协议封装入以太网帧之中,然后选取二层协议未曾使用的类型值作为识别NMP帧。无线Mesh协议中控制报文的时候,必须要根据实际载体信息,然后携带各种信息在CU中进行分类。报文通过上层外部数据进行封装,然后通过NMP网络进行数据传输,但是这类型的数据包必须要具备标识能力,否则将难以在网络中流经畅通。
基于NDIS的无线Mesh协议实现的时候,主要以Windows系统作为开发和性能测试环境。性能测试的时候将INF文件配置好,然后将SYS文件在可控面板中进行选项卡安装和改进。NMP协议可支持各种NDIS规范网卡,因此在选择网卡的时候既可以选择TP-Link,也可以选择D-Link作为试验网卡。NMP协议的性能测试将采用NMP协议的黑名单机制,首先使用命令将未被测试的网络节点放入黑名单之中;其次黑名单中的节点不能够作为相邻节点,且节点运行过程中不能够单跳互访。
针对NMP协议进行性能测试的时候,选用6台PC作为测试仪器;测试的主要内容为:测试网络的吞吐量、测试环境部署、测试网络通信情况,最后以此来排除功率的衰减影响。选取的6台电脑部署均要部署得相当近,多跳的拓扑结构则是利用黑名单机制模式所建立,无线网卡均被设置为Adhoc模式,并且一同连入无线网络之中。
NDIS将网络协议实现和下层网络分开,因此网络协议开发过程中将会得到极大限制。本次试验采用NDIS无线Mesh网络协议实现作为研究重点,分析了网络运行过程中的状况以及网络环境架设情况。为了架设完整的网络协议,必须要具有网络协议的基本功能之外,还应该支持网络动态配置和查询。经过研究NMP协议可以在Windows平台下做无线Mesh网络应用功能支持,必须在今后的工作中不断改善和优化网络协议。本文通过NDIS的无线Mesh协议的基本概念和实现研究,以期与参与无线网络研究同仁共同交流。
参考文献
[1]谢宗思.浅议基于WLAN的无线Mesh网络协议研究与实现[J].信息通信,2015,06:211-212.
[2]张翔,汪文勇,黄鹂声,黄外流.动态源路由协议DSR在NDIS架构中的设计与实现[J].计算机应用研究,2009,06:2220-2223.
[3]杨孟珂,杨亚涛,白中英.基于HWMP协议的无线Mesh网络多网关路由协议研究[J].微电子学与计算机,2009,12:4-8
(责任编辑:文婷)