《无线网络技术》实验四报告单
班级____ ___ 姓名_____ ___ 学号__ ___
实验日期__ ___ 评分____ 教师签名______ _______
实验名称:无线传感器网络的S-MAC协议仿真
实验目的:
了解无线传感器网络的S-MAC协议及提出一种消息节点睡眠机制和退避策略,然后通过在NS2平台上的仿真,可发现对能量消耗和网络延迟有部分改善。
实验内容:
1 .无线传感器网络概述
无线传感器网络(witeleSs Sensor Networks,WSN)是集信息采集、信息传输、信息处理于一体的综合智能信息系统。它综合了微机电系统(Micro—Elec— tron Mechanical System,MS)、传感器技术、嵌入式技术、现代网络及无线通信技术、分布式信息处理技术等,能够通过各类集成化的微型传感器协作地实时监控、感知和采集各种环境或监控对象的信息。在军事领域、工业领域、农业领域、环境检测、医疗监护、智能家具系统等许多领域都有十分广阔的发展前景。
2.无线传感器网络结构
无线传感器网络包括传感器节点(Sensor Node)、汇聚节点(Sink Node)和管理节点(Manager node)。
无线传感器网络的协议栈采用5层的分层结构,分别为:物理层、数据链路层、网络层、传输层和应用层。在网络协议栈中,MAC子层位于数据链路层,直接与物理层接口,负责控制和接入物理介质。提供无线传感器网络中节点到节点的连接方式,确保传感器节点间通信资源分配的公平性和有效性。
3.基于竞争的MAC协议分析
S-MAC(sensor MAC)[协议是针对IEEE802.11中节点处于侦听状态,消耗大量能量的问题,提出的周期性的休眠/活动调度机制。S-MAC由一个开始的同步时间段开始,交换SYNC消息形成虚拟簇。相同虚拟簇下的节点可以传输数据。节点只有在活动阶段才发送消息,如图1.1SMAC采用数据传递机制,通过这种周期性的修眠/活动工作机制,节点降低了闲置侦听,降低了能耗。
For SYNC For CTS For RTS Receiver
Listen Period
Receive/Sleep
Period
Sender
Tx SYNC
CS Ts RTS
CS
Got CTS
Send data
图1.1 SMAC 数据传递机制
采用以上机制,SMAC 协议有以下几点好处:(1)采用周期性睡眠 /侦听占空比,控制节点进入睡眠状态,降低了节点能耗;(2) RTS / CTS 机制降低通信范围节点间的碰撞概率 ;(3) NAV 避免串音现象,降低了能耗。
SMAC 协议相比IEEE802.11提高了能量的效率,但是也存在一些不足,节点采用周期性的侦听和睡眠调度机制,数据在发送时有延迟;邻居节点频繁交换SYNC 信息会导致节点消耗更多的能量;当网络负载较低时,过高的占空比会导致空闲侦听会造成能量浪费,当负载较高时,又会造成网络延迟;节点为了节省能量进入睡眠状态,增大了睡眠延时。
4.NS2网络仿真
仿真场景如图1.2所示,在1000m*1000m 的范围内,采用随机分布的方式布置了一
个49个固定节点和一个sink 节点构成的较大规模的网络拓扑,在网络模型中,假设所有节点都能侦听到整个网络的通信情况,即没有考虑隐藏节点问题。
图1.2 节点随机分布
生成网络模型的部分TCL 代码如下: for {set i 0} {$i < $opt(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0
$god_ new_node $node_($i)
set ragent_($i) [$node_($i) get-ragent]
set mac_($i) [$node_($i) get-mac 0]
}
4.1 参数设置
设置NS2中的网络参数,为了对设定的网络环境进行仿真,可以通过设置不同的参数来实现。对于网络中不同的应用,可以设置移动节点的属性,通过设置energyModel来获取节点的剩余能量值;设置CBR流量发生器产生网络数据流,并将其绑定到节点上,可以设置CBR的值,使其按照一个确定的速率产生数据,也可以设置不同的节点不同的数据发送速率,不同速率可以通过对节点的参数interval进行设置实现。对网络规模的大小可以根据用户的需要通过对网络中节点的数目,网络场景的长宽尺寸等设置;配置节点能量模型,设置节点接收发送数据包和节点在闲置侦听状态下所消耗的能量值。
配置移动节点的路径参数:为了对仿真结果进行分析,需要将仿真好的结果记录到Trace 文件中,打开节点的Trace功能,设置其中的参数:agentTrace表示应用层的trace,记录应用层数据包接受情况;routerTrace表示路由的trace,记录路由层数据包传递情况;macTrace表示MAC层的trace,在trace文件中用MAC表示。
设置完以上参数后,每次仿真就可以得到以.tr为后缀的trace文件,trace文件中记录了仿真期间各层发生的事件,各个节点收发数据,能量消耗等情况。参数设置程序如下:-energyModel $opt(energymodel) \#能量模型
-idlePower 0.35\#待机功率
-rxPower 0.395 \#接受功率
-txPower 0.66 \#传输功率
-initialEnergy $opt(initialenergy)#总的能量数
set udp_(0) [new Agent/UDP]#新建一个UDP Agent赋值给udp_(0)
$ns_ attach-agent $node_(0) $udp_(0)#绑定udp_(0)在node_(0)上
set null_(0) [new Agent/Null]#新建一个UDP Agent并赋值给null_(0)
$ns_ attach-agent $node_([expr $opt(nn)-1]) $null_(0)
$ns_ connect $udp_(0) $null_(0)
set cbr_(0) [new Application/Traffic/CBR]
$cbr_(0) set packetSize_ 100
$cbr_(0) set interval_ 1.0
$cbr_(0) set random_ 0
$cbr_(0) attach-agent $udp_(0)
4.2 协议的实现
由于改进的协议和ns-802.11-mts.h是在基于竞争的802.11协议的基础上继承而来,因此,修改ns-2.29/mac下mac-802_11.h和mac.h头文件。在在MacState枚举类型中添加MTS帧结构。