曹文静,徐胜红,施建洪
(海军航空工程学院控制工程系,山东 烟台 264001)
由于电磁波的传播特性,无线通信的传输媒介属于广播信道类型。当一个节点发送无线电信号时,邻近的节点都将接收到这个信号。如果在一个小的空间范围内,有2个或多个节点同时发送无线信号,将会在它们的接收节点处产生信号的相互叠加,造成相互干扰,严重时将使接收节点无法正确接收所需要的信息,即发生信道使用上的冲突。在通信协议栈中,如何在多个节点间分配无线信道资源属于MAC层要解决的问题。MAC层控制着节点在合适的时候接入无线信道,是分组在信道上发送和接收的直接控制者。MAC层协议能否有效地使用无线信道的有限带宽,直接关系到信道的利用效率和整个网络的性能。这也是自从无线自组织网络出现至今,对MAC层协议的研究经久不衰的根本原因。如何分配信道使得信道利用率高?如何分配使得节点有数据要发送时等待的时间短?如何使分配后不发生冲突,避免信道资源浪费?这些就是MAC层协议所面临的问题。总之,无线自组网中MAC层协议设计的主要目标是:能够保证信道资源的高效率使用;能够保证业务快速接入信道。
ALOHA[1]是第一个用于无线传输的MAC层协议。ALOHA协议基于随机访问机制:当一个节点有数据要发送时,立即发送数据;如果发生了冲突,该节点等待一个随机的时间段后,再次发送数据。ALOHA协议传输固定长度的分组时,最大吞吐量仅能达到信道容量的18.4%[2]。
很显然,节点首先侦听其他节点是否正在发送,然后再决定自己是否要发送,可以有效地提高信道利用率,这就是CSMA协议的基本思想。
ALOHA和CSMA协议都是一种竞争类的MAC层协议。竞争方式是自组网MAC层协议的主流,而CSMA协议又是MAC层协议中的基本协议。因此,研究其在不同网络条件下的通信性能,对于指导该协议在实际中的具体应用具有重要作用。本文基于OPNET仿真软件,设计实现了CSMA协议,研究了无线自组织网络的发送分组频率、分组大小等参数对CSMA协议性能的影响。
目前,对CSMA协议的定义及分类多种多样。根据信道划分方式的不同,有时隙CSMA和非时隙CSMA;根据节点侦听到信道为忙时处理方式的不同,有坚持CSMA和非坚持CSMA;根据节点侦听到信道为空闲时处理方式的不同,有1坚持CSMA和p坚持CSMA。以上各类的组合就构成了CSMA协议簇所有可能的情况,如图1所示[3]。
坚持CSMA协议是指节点在侦听到信道为忙时继续侦听信道,一直侦听到信道为闲停止。1坚持CSMA就是:一旦节点侦听到信道空闲,就立即发送数据,这种策略的出发点是抓紧一切有利时机发送数据;p坚持CSMA就是:如果节点侦听到信道空闲了,就以概率p发送。p坚持CSMA也可以不采用以发送概率控制节点的发送,而是采用随机退避的方法,节点在侦听到信道为空闲时,在(0,MAX)之间选择一个随机时间长度进行退避,同样可以达到避免冲突的效果,且其效果还会优于发送概率的方式[3]。
图1 CSMA协议簇
总之,坚持CSMA的缺点通常是过于“贪婪自私”,如果有多个节点要同时发送,将必然导致冲突。而p 坚持CSMA 则是坚持CSMA中较为折中的策略。本文以p坚持CSMA为研究对象,在OPNET软件平台下,设计与实现p坚持CSMA协议,并基于仿真实验,分析其在不同网络条件下的性能。
OPNET采用了层次化的建模机制,它将建模工作划分为网络层、节点层和进程层3个层次。网络模型反映网络的拓扑结构、地理布局、以及移动性等;节点模型对应着实际网络中的各种计算和通信设备;而进程模型则以有限状态机构成的状态转移图来描述节点所含进程的行为,如协议和算法等。因此,对无线自组网建模与仿真的主要任务就是设计相应的网络、节点和进程模型[4-7],CSMA协议的设计与实现就是设计节点模型与进程模型。
节点模型用于定义每一个节点的行为,一个节点通常由多个模块组成,每个模块完成一部分节点的行为,如数据的产生、存储等。为实现CSMA协议,节点完成如下主要内容:
1)产生数据分组;
2)数据分组将以广播方式传播;
3)仅在链路空闲时发送分组;
4)如果链路处于繁忙状态,则到达分组将按FIFO排队;
5)排队的分组在链路空闲时,退避随机时间段后,且链路仍然空闲时,进行广播发送。
如图2所示,节点模块包括6个模块,其中:gen代表数据源产生模块,其processor module属性设置为simple_source;radio_tx代表无线发送机;radio_rx代表无线接收机;tx_pro代表CSMA协议实现模块,它接收来自gen的数据,处理后发送到radio_tx中;sink代表接收和销毁radio_rx接收分组的模块;a_0代表天线。radio_rx要通过统计线与tx_pro相连以监督链路的busy状态变化,并设置falling edge trigger为enabled,表示下降沿触发。
图2 节点的模块组成结构
节点模型中每个模块是由一个进程模型实现。这里主要设计tx_pro模块的进程——CSMA协议。
1)确定逻辑事件及状态分解。
逻辑事件是调用进程所需要的事件。由于事件本身只是仿真内核管理的一个调度表,仿真核心必须通过中断的形式将仿真控制权交给进程,所以,每个逻辑事件需要选择一个合适的中断类型。CSMA对应的逻辑事件有分组到达、介质空闲和退避结束,如表1所示。
表1 CSMA逻辑事件与中断类型
状态代表一个进程的模块,是对发生事件的反应。状态之间是互斥和互补的,进程在某一时刻只能处于一个状态中,而所有的状态则构成了进程状态空间的全集。随着仿真的进行,进程在状态之间不断转移。根据表1,进程应当有3个状态:空闲、介质忙、退避,如表2所示。
表2 CSMA状态分解
2)建立事件应答表及状态图。
根据CSMA的运行机制,可建立如表3的事件应答表,该表描述了进程在当前状态下,当发生了某个事件,所应采取的行动以及转移到的下一个状态。
表3 CSMA事件应答表
根据表3,进一步得到状态图如图3所示。
图3 CSMA进程状态图
后面的仿真实验中,统计了2个性能度量参数:点到点时延和接收数据量[8-9]。
1)点到点时延(单位:s):表示分组到达接收队列的时刻与分组被目的方成功接收的时刻之间的时间差。
2)接收数据量(单位:packet):表示单位时间内网络中所有节点接收分组的总量。
本仿真中涉及到的环境参数有:网络范围、网络节点数目、单节点通信覆盖范围、信道传输速率、仿真时间、分组产生频率、分组长度。其中网络节点数目、分组产生频率和分组长度 3个参数随仿真场景的不同而不同。环境参数的设置如下:
1)网络范围为10 km×10 km;
2)网络节点数目为可在{2,20,55}中任选;
3)单节点通信覆盖范围为5 km;
4)信道传输速率为1 024 bps;
5)仿真时间为1 h;
6)分组产生时间间隔概率为可在{exponential(2.0),exponential (10.0),exponential (100)}中任选;
7)分组长度为可在{const(10),const(100),const(1024)}中任选。
下面设置了7个场景,这些场景的网络节点数目、分组产生频率和分组长度设置不同,见表4。通过对这些场景的仿真来研究网络节点数目、分组产生频率和分组长度这 3个参数对网络性能的影响。
表4 场景仿真参数设置
场景1、场景2和场景3中的点到点时延和接收数据量统计结果如图4和5所示。
图4 场景1、场景2、场景3的点到点时延仿真结果
图5 场景1、场景2、场景3的接收数据量仿真结果
由图4和图5可见,在节点数目和分组产生时间间隔概率不变的情况下,分组越大,则延时越大,接收数据分组量越少。
场景1、场景4和场景5中的点到点时延和接收数据量统计结果如图6和7所示。
由图6和图7可见,在节点数目和分组长度不变的情况下,分组产生频率越低,则网络延时越小,接收数据分组量越少。
场景5、场景6和场景7中的点到点时延和接收数据量统计结果如图8和9所示。
图6 场景1、场景4、场景5的点到点时延仿真结果
图7 场景1、场景4、场景5的接收数据量仿真结果
图8 场景5、场景6、场景7的点到点时延仿真结果
图9 场景5、场景6、场景7的接收数据量仿真结果
由图8和图9可见,在分组产生频率和分组长度不变的情况下,网络节点越多,则网络延时越大,甚至出现不稳定的振荡,接收数据分组量越多。
以上仿真结果反映了CSMA协议性能与节点数目、分组产生频率和分组长度等网络参数的关系,该结果与理论分析结果是一致的。
本文基于OPNET,实现了CSMA协议,设计了不同网络条件下的仿真实验,研究了几个主要的网络参数对CSMA协议通信性能的影响。仿真结果表明:CSMA协议的通信性能和多种网络参数紧密相关,在实际应用中,应根据具体的网络特点和网络通信性能要求,来确定是否选用CSMA信道接入协议。
[1]邓晓燕,李红信,童圣洁.基于OPNET的随机接入协议网络性能研究[J].微计算机信息,2008,24(33):94-96.
[2]魏鸿毅,慕晓冬,夏薇.基于OPNET的无线通信网络性能研究[J].微计算机信息,2008,24(18):115-117.
[3]于宏毅.无线移动自组织网[M].北京:人民邮电出版社,2004:32-35.
[4]冯言志,冯元,李金.基于OPNET的Ad Hoc网络建模与仿真[J].四川兵工学报,2009,30(3):97-99.
[5]李秀全,武斌,张青春.基于OPNET的无线局域网MAC协议仿真研究[J].舰船电子工程,2006,26(6):137-139.
[6]李丰.基于OPNET的无线局域网MAC层协议的仿真设计与研究[D].哈尔滨:哈尔滨理工大学,2007.
[7]龙华.OPNET Modeler与计算机网络仿真[M].西安:西安电子科技大学出版社,2006:31-57.
[8]范奕.基于CSMA/CA 改进的Ad Hoc网MAC协议设计[D].西安:西安电子科技大学,2007.
[9]秦耀文.Ad Hoc网络中MAC协议的研究与改进[D].长沙:中南大学,2007.