DCF是IEEE802.11的MAC层的基本访问控制机制,提供了异步数据服务,其基本访问模式如下图所示。DCF是基于CSMA/CA的,它包括两种介质访问机制,即基本访问机制(Basic Access Mechanism)和RTS/CTS机制。同时,由于采用了退避规程,DCF实现了信道良好利用率和数据的可靠传输。
DCF机制的流程图如图4.10所示:
图4.10 DCF机制流程图
这里,特别介绍一下RTS/CTS访问机制。
为了解决隐终端问题,DCF可利用RTS和CTS两个控制帧来进行信道预约。在等待一个DIFS及退避计数器指向0时,发送站首先发送一个RTS帧,RTS帧的优先级与其他数据帧相同。RTS帧中包含数据帧的接收站地址和整个数据传送的持续时间。在这里,持续时间是指传输整个数据以及应答帧的所有的时间。收到这个RTS帧的所有节点都要根据其持续时间域(Duration Field)来更新自己的NAV。接收站在收到RTS帧之后等待一个SIFS,并用一个CTS帧进行应答。CTS帧内也包含持续时间域。所有接收到CTS帧的节点必须再次更新各自的NAV。收到RTS|和CTS的节点集合不一定完全重合,那么在所有发送站和接收站的覆盖范围内的节点都会收到通知,在发送信息之前必须等待一段时间。
在发送站和接收站进行了RTS/CTS握手之后,经过一个SIFS,发送站开始传输数据帧。接收站在收到数据帧之后等待一个SIFS,用ACK帧进行应答。
具体过程如下图所示:
图4.11 RTS/CTS握手机制
5 实验仿真平台
以上介绍了无线传感器网络的相关内容,主要是路由层和MAC层的。本章节将介绍已有的的无线网络的仿真软件NS2
5.1 NS2简介
NS2是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块已经非常丰富, 几乎涉及到了网络技术的所有方面。
NS2是一种面向对象的网络仿真器,由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP,Telnet,Web CBR和VBR;路由队列管理机制,比如Droptail,RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播 以及一些MAC 子层协议。NS2 使用C++和Otcl作为开发语言。 NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事 件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费的仿真时间来处理分组的网络组件都必须要使用事件调度器。 它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用 C++写出并编译的,这些对象通过映射对Otcl解释器可见。
当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。
5.2 NS2安装
不同操作系统对NS2的支持程度不同,具体见下表:表5.1 Windows与linux系统对NS2的支持对比
无线传感器网络的链路技术研究(8):http://www.youerw.com/tongxin/lunwen_7486.html