通信网络MAC协议仿真
摘要:本文首先简要介绍了NS2的原理;然后介绍ALOHA、CSMA/CA和CSMA/CD 协议的具体流程,然后分别对这三种协议进行了仿真验证,通过分析它们的延时抖动,传输延时,网络吞吐量和丢包率,并结合仿真环境的参数配置对对这些统计数据进行了比较分析。
1.NS-2概述
NS是Network Simulator的英文缩写,字面翻译即为网络模拟器,又称网络仿真器。
NS-2(Network Simulator,Version 2)是一款开放源代码的网络模拟软件,最初由加州大学伯克利分校(UC Berkeley)开发。它最初的开发目的是为了研究大规模网络以及当前和未来网络协议的交互行为。它为模拟研究有线和无线网络上的TCP、路由和多播等协议提供了强有力的支持。
NS-2是一种面向对象的网络模拟器,它本质上是一个离散时间模拟器,其本身有一个虚拟时钟,所有的模拟都由离散时间驱动。目前NS-2可以用于模拟各种不同的通信网络。它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、Wed、CBR和VBR;路由队列管理机制,如Droptail、RED和CBQ;路由算法,如Dijkstra;以及无线网络WLAN、移动IP和卫星通信网络等模块。NS-2也为进行局域网的模拟而实现了多播协议以及一些MAC子层协议。
NS2采用两级体系结构,为了提高代码的执行效率,NS2 将数据操作与控制部分的实现相分离,事件调度器和大部分基本的网络组件对象后台使用C++实现和编译,称为编译层,主要功能是实现对数据包的处理;NS2的前端是一个OTcl 解释器,称为解释层,主要功能是对模拟环境的配置、建立。从用户角度看,NS2 是一个具有仿真事件驱动、网络构件对象库和网络配置模块库的OTcl脚本解释器。NS2中编译类对象通过OTcl连接建立了与之对应的解释类对象,这样用户间能够方便地对C++对象的函数进行修改与配置,充分体现了仿真器的一致性和灵活性。
2.通信网络MAC协议介绍
通信网络按照覆盖范围可分为广域网(WAN)、城域网(MAN)、局域网(LAN)以及个域网(PAN:Personal Area Network)。
LAN(局域网)覆盖有限的地理范围,它适用于公司、机关、校园等有限范围内的计算机联网需求;局域网比广域网有更高的数据率,较低的时延和较小的误码率。目前以太网已经在局域网市场中占据了绝对优势,并几乎成为局域网的同义词,因为本文中讨论的LAN主要就是指以太网。觉得局域网特性的主要技术要素为网络拓扑、传输介质与介质访问控制方法。从介质访问控制方法的角度来看,
局域网可分为共享介质式局域网与交换式局域网两类。
2.1ALOHA协议
2.1.1纯ALOHA法
发送站点向网络传送的报文分组内,包含目的地址和源地址,并启动计时器,如果在预定时间内收到应答信号就认为这个报文分组安全到达目的地,反之则未到达。这种方法由于不限制用户的发送,所以很容易发生冲突,使得发送站点必须重发报文分组。发生冲突后的解决措施有两种:第一种方法,给每个用户设定一个互不相同的重发时延(即根据优先程度给予用户设定重发权利),阻止再次发生冲突;第二种方法,给每个用户随机地设定重发时延(例如时延可在0.35到1.45的范围内选取)。设定最小时延时需要考虑用户从中央IMP收到的确认ACK,如果最小时延太短,用户有可能还没收到确认ACK就执行了不必要的重发。纯ALOHA法的传输效率约为18.4%,是比较低的。
2.1.2开糟ALOHA法
把信道事件划分成相等的时间片,每个时间片对应一个帧所需的发送时间,规定用户在每个时间片的开始端发送数据,不允许终端在任何时候发送,这种限制可以减少时间片内中间时刻发生冲突的概率。如果在开始端发生了冲突,也只是浪费这个时间片而已。每个时间片的长度需要合理的设计。因为从各个用户的报文分组到达中央系统的传输延迟不同,最大的报文分组长度相关于第一个报文分组首部到达时刻与最后一个报文分组尾部到时刻之时间差值,由这个先后到达的时间差值,选择每个时间片的宽度。对拥有中等数量用户的系统,时间片法的传输效率约为36.8%,如果用户数量效少,传输效率还可提高。
2.2CSMA/CD协议
局域网的特点就是介质资源的共享和竞争。因此需要有一定的机制协调同一网段各个计算机对共享资源的公平竞争。以太网采用的是载波侦听多路访问/碰撞检测(CSMA/CD:Carrier Sense Multiple Access with Collision Detection)技术。所有的以太网均采用CSMA/CD。“载波侦听”是指所有计算机的以太网卡侦听网络,只有在检测倒网段上没有其他站点发送数据时才能发送数据,如果有其他站点在发送数据,则暂时不发送数据,以免发送碰撞。“多路访问”是值多个以太网节点连接在同一个网段上,并能同时检测信道是否空闲。“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小,当几个站点同时发送数据时,总线上的信号电压摆动值将会增大(互相叠加),当一个站点检测到的信号电压摆动值超过一定的门限值时,就认为总线上出现了至少有两个站点同时在发送数据,表明发生了碰撞(冲突)。这时它将停止发送并等待一个随机的时间(或者采用特定退避算法得到的时间)后再进行侦听发送操作。
CSMA/CD的发送流程如图所示:
图1
CSMA/CD 发送流程
2.3 CSMA/CA 协议
IEEE 802.11的MAC 层协议与以太网的MAC 子层不同,因为与有线环境相比,无线环境具有一些内在的复杂性。在以太网中,一个站只要等到以太网介质空闲下来,就可以开始传输了。如果在前64个字节以内没有收到送回来的噪声尖峰的话,则几乎可以肯定该帧已经被正确地递交了,但在无线环境中这样的条件并不成立。在无线环境中存在着隐藏站和暴露站问题,它们会造成监听的错误。为了解决这些问题,IEEE 802.11的MAC 层协议定义了两种介质访问控制机制:(1)分布式协调功能(DCF),
(2)点协调功能(PCF),其中DCF 是必须支持的功能,PCF 是可选功能。
图2是CSMA/CA 协议的具体流程:
图2 CSMA/AD 发送流程
在PCF 中,采用利用接入点AP 的中心控制器,通过轮询的方式,使得各个无线站点依次接入总线,进行数据的发送。