admin 管理员组

文章数量: 887021


2024年2月25日发(作者:计算机编程代码解题)

基于OMNeT++的无线局域网络仿真实验教学研究

摘要:网络仿真工具OMNeT++以友好的界面、完善的模拟器以及非商业性,在无线局域网络的仿真领域得到广泛地应用。运用OMNeT++在无线局域网络的实验教学中开展仿真实验,可以简化网络的分析与设计,获得网络的拓扑结构和定量的网络性能预测数据,使学生对网络协议和算法的复杂行为产生感性的认识。

关键字:OMNeT++ 无线局域网 仿真

1引言

当前,无线局域网络(Wireless Local Area Networks:WLAN)得到了广泛地使用[1],它已成为一种十分重要的因特网接入技术。无线局域网络涉及到大量抽象难懂的协议和算法,为让学生对其获得感性认识,可以利用网络仿真工具构建简化的仿真环境,满足教学研究[2]的需要。

目前,国内还没有真正自主研发的网络仿真工具得到大范围地应用,而国外网络仿真技术已经相当的成熟,目前已经有几种极为优秀的网络仿真工具[3]。OMNeT++是一款免费的、开源的网络仿真工具,具有很好的灵活性和可适用性,在无线局域网络仿真领域中占有十分重要的地位。

本文介绍了基于OMNeT++的无线局域网络的仿真实验的主要步骤,并以802.11协议作为仿真实例,以数据帧发送效率、有效吞吐量为权衡指标,综合得到仿真结果。

2 OMNeT++网络仿真工具

OMNeT++是一个基于C++编程的,面向对象的离散事件网络仿真器 ,它的全称是Objective Modular Network Testbed in C++[4,6]。使用OMNeT++作为无线局域网络的仿真工具,主要考虑到其在描述模型、定义网络拓扑、实现模型、跟踪支持、调试、性能等多方面都显示出强大的优势。

使用OMNeT++进行无线局域网络仿真的主要步骤如下:

(1)网络分析与设计

进行无线局域网络仿真之前,必须要对网络有全面和深入的了解,主要包括网络拓扑结构、网络中的设备、网络中使用的主要协议和标准以及网络的主要性能参数。

(2)建立网络拓扑描述

根据仿真需要,确定网络中的设备,建立一个合适的网络仿真场景。

(3)建立网络模型

根据实际中网络使用的主要协议和网络标准,完成网络中设备之间的消息传递,建立起一个简化的网络模型。

(4)仿真实现及结果分析

选择适当的网络性能参数,通过仿真获得定量的网络性能预测数据,并综合得到网络仿真报告。

基于OMNeT++的802.11无线局域网络仿真实例

无线局域网络802.11使用带有冲突避免的载波侦听多路访问协议(Carrier

Sense Multiple Access with Collision Avoidance,CSMA/CA)。一方面载波侦听信道,查看介质是否空闲;另一方面通过等待一段随机的时间后,再发送数据帧,使信号冲突发生的概率减到最小,当介质被侦听到空闲时则优先发送。另外,802.11还通过确认帧(ACK)避免冲突的发生,只有当客户端收到网络上返回的确认帧后才确认送出的数据已经正确到达目的。

802.11协议体系结构[5]的基本构建模块是主机和接入点。协议定义发送方和接收方的行为动作如下:

(1)发送方

a.如果感知信道空闲:在DIFS后,传输整个数据帧帧 (无碰撞检测)并等待接收方确认。

b.如果感知信道忙:启动随机回退时间,定时器倒计时直到信道空闲;如果没有收到发送方的ACK, 增加随机回退间隔并重传;跳转b。

(2)接收方

如果数据帧接收完成,在SIFS后发送ACK。

图1 802.11协议状态图

3.1 仿真场景设计

图2 20个随机分布的无线节点仿真场景

该实验实例基于随机分布的无线局域网场景,在600×600大小的场景中,随机分布20个主机(host)和1个接入点(AP),配置数据帧数为网络(Net)的宽(width)为600、高(height)为600、主机数(hostnum)为20,收集发送的数据帧数(framenum)、错误的数据帧数(errornum)、重传的数据帧数(retrynum)、丢失的数据帧数(lostnum)作为参数。

3.2 协议实现

该实验实例以某台主机发送数据帧至接入点为触发,根据802.11协议,实现如下:

(1)初始化:发送数据帧数目pos为500个,随机退避范围最大值random为20,随机退避值bank为0,重传次数retry为3次,信道状态state为空闲。

(2)发送方侦听信道:

if(ap->state == 0) {//信道空闲

endEvent = new cMessage(“等待DIFS”);} //设置定时事件消息为“等待DIFS”

if(ap->state == 1) {//信道繁忙

back = intuniform(0, random);

endEvent = new cMessage(“等待”);}//设置定时事件消息为“等待”

(3)发送整个数据帧并等待接收方确认:

scheduleAt(simTime()+DIFS,endEvent);

sendToAP(frame);//将整个数据帧发送至接入点

(4)发送方随机退避:

if(state == 0 && back > 0) {//信道空闲而随机退避值back大于0

back--;//随机退避值自减

endEvent = new cMessage(“等待”);}//设置定时事件消息为“等待”

else if(state == 0 && back == 0 ) {//信道空闲且随机退避值back为0

sendToAP(frame);}//发送数据帧

else {

endEvent = new cMessage(“等待”);}//设置定时事件消息为“等待”

}

(5)接收方等待SIFS,发送ACK:

endEvent = new cMessage(“接收完成”);//设置定时事件消息为“接受完成”

int i = intuniform(0, random);

scheduleAt(simTime()+i,endEvent);

(6)发送方重传:

if(msg->isName(“未收到ACK”))

sendToAPRetry();

if(retry < 3){

random *= 2;//随机退避范围最大值加倍

bank = intuniform(0, random);//重新选择随机退避值

retrynum++;

endEvent = new cMessage(“等待”);}//设置定时事件消息为“等待”

(7)发送方收到ACK:

random = 20;

retry = 0;

endEvent = new cMessage(“发送结束”);//设置定时事件消息为“发送结束”

至此,802.11协议仿真的7个事件节点模拟完毕。

3.3 仿真结果的分析与比较

影响网络传输性能的参数为数据帧发送效率和有效吞吐量[4]。本文用以下公式统计数据:

初次效率 = (发送数据帧数-重传数据帧数) / 发送数据帧数

应用重传机制发送效率 = (发送数据帧数-丢失数据帧数)/发送数据帧数

初次吞吐量 =(发送数据帧数-重传数据帧数)* 数据帧位数/ 总时间

应用重传机制吞吐量 =(发送数据帧数-丢失数据帧数)* 数据帧位数/ 总时间

对于节点规模和数据帧发送间隔的设置规则为:

(a)主机总是有数据发送,主机个数变化分别为5, 10, 15, 20, 25, 30, 35, 40, 45,

50;

(b)主机个数固定为20,主机发送数据帧的间隔分别为无间隔,间隔为10,20,

30, 40, 50, 60, 70, 80, 90。

(ap初次吞吐量在一个比较低的水平,随机节点规模的增多,缓慢降低,应用重传机制后,吞吐量有较大好转,并且节点规模越大,吞吐量上升越明显。曲线的变换规律表明,节点规模对应用退避算法后的吞吐量有较大影响,随机退避算法能有效提高网络的吞吐量。

4结语

本文简单介绍了网络仿真工具OMNeT++后,通过一个在OMNeT++中设计和实现802.11无线局域网络的实例,说明了其在无线局域网络仿真实验教学研究中可以使学生对网络协议和算法产生感性的认识,理解协议的工作原理,验证运用协议所产生的效果,提高实验教学的质量。

参考文献:

[1] James ,Keith . Computer Networking:A Top-Down

n Education,2008.

[2] 李伟,李勇. 网络仿真器在计算机网络教学中的应用. 东莞理工学院学报,2006.

[3] 刘广. 网络仿真工具在高校计算机网络教学中的应用探索. 技术开发与应用,2009.

[4] OMNeT++ object-oriented discrete event simulation system. URL reference:

/phd/vargaa/, 1996.

[5]IEEE Standard For Information technology -Telecommunications and

information exchange between systems-Local and metropolitan area

networks-Specific requirements-Part 11: Wireless LAN Medium Access Control

(MAC) and Physical Layer (PHY) Specifications. LAN/MAN Standards

Committee,12 June 2007.

[6] A. Varga. The OMNeT++ discrete event simulation system. In Proceedings of

the European Simulation Multiconference (ESM’2001).

作者简介:

丁麟轩(1988.12),男,本科,单位:湖南大学软件学院

杨柳(1979.10),女,博士研究生,讲师,研究方向:网络教育、多媒体通信,单位:湖南大学软件学院


本文标签: 网络 无线 数据 局域网络 发送