Adhoc网络仿真_第1页
Adhoc网络仿真_第2页
Adhoc网络仿真_第3页
Adhoc网络仿真_第4页
Adhoc网络仿真_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Harbin Institute of Technology无线自组织网络课程报告姓名: 李焕英 学号: 1130510205 班级: 1305102 指导教师: 张文彬 院系: 电子与信息工程学院 时间:2016年12月 RTS/CTS机制下802.11b的最大吞吐量仿真一、 背景知识1、Ad hoc网络中MAC协议(1)IEEE 802.11的分布式协调功能(DCF)DCF的基本思路:在无线网络上不可能进行冲突检测,故不设置冲突检测机制,采用规则延迟来处理,以保证MAC控制的可操作性和公平性。基本原则为:节点要发送MAC帧,首先监听无线信道,若空闲,则可以发送该帧;否则延迟等待,再次竞争发

2、送。(2)面临的主要问题:“隐藏”终端问题假设:A正在向B传输数据,C也要向B发送数据隐藏终端:在接收者的通信范围内而在发送者的通信范围外的终端。带来的问题是A向B发送报文,C听不到A的发送。C也发送报文时在B发生碰撞。单频网络的信道接入控制协议,使用RTS-CTS握手机制,力求解决Ad hoc网络中的隐藏终端和暴露终端问题,是构成其他机制的基础。(3)解决隐藏终端的方法RTS/CTSa) 节点A向节点B发送RTS,表明A需要向B发送数据。RTS 帧有两个目的:预约无线链路的使用权,并要求接收到这一消息的其他的工作站停止发送。(发送端清场) b) B接收到A的RTS后,向周边所有节点发出CTS

3、信号,表明已准备就绪,A可以发送。而其他欲向B发送数据的节点则暂停发送。(接收端清场)c) 在A、B双方成功交换RTS/CTS信号后,即完成握手后A向B开始发送数据。这种机制保证了多个互不可见的发送节点同时向一个接受节点发送信息时,实际上只能是收到接受节点回应CTS的那个节点能够发送,避免了冲突发生。实际上,冲突还是有可能发生,即A、C同时向B发送RTS时,两者的RTS在B上冲突,B无法接收准确的信息,则不发送任何回应的CTS。这样,A和C都收不到B的CTS消息,则采用退避竞争机制分配一个随机定时值,再竞争发送RTS,直到成功为止。(4) RTS-CTS握手机制a) 当一个终端要发送数据给另一

4、个终端时,它首先发送一个RTS给目标终端。b) 接收节点准备好接收工作,则回复一个CTS。c) 发送者确认来自接收节点的CTS,则开始发送报文。d) 如果发送者没有收到接收节点的CTS,则重发RTS,并等待回应。e) 其他接收到RTS或CTS的节点采用二进制指数退避算法延迟数据发送,以避免冲突。(5)分析侦听到RTS或CTS控制报文的其他终端的反应过程a) 侦听到RTS控制报文的任何其他终端均向A关闭,而且在足够长的时间保持沉默,使A可以无冲突的收到CTS控制报文。b) 所有侦听到CTS控制报文的终端均向B关闭,而且在后继数据到来期间保持沉默,时间长短可以从CTS报文中得到。可能冲突:C、B同

5、时向A发送RTS,则二进制指数退避。每次冲突退避加倍,每次成功发送后,减少到最小的退避窗口。在多终端单一小区环境下,将会总有利于成功发送的节点再次发送,从而影响公平性。2、带有RTS/CTS的扩展DCF(1)RTS/CTS机制机制的使用是可选的,每个802.11节点必须实现该功能。明确预留信道,避免“隐藏”终端冲突a) 发送者发送短的RTS(请求发送);b) 接收者用短的CTS(清除发送);c) CTS为发送者预留了带宽同时通告所有的站点(包括隐藏站点);d) RTS/CTS长度很短,冲突的概率小;(2)带RTS/CTS的DCF机制工作过程当发射端希望发送数据时,首先检测信道是否空闲,若是信道

6、为空闲时,送出RTS,RTS信号包括发射端的地址、接收端的地址、下一笔数据将持续发送的时间等信息。接收端收到RTS信号后,将响应短信号,CTS信号上也包含根据RTS内记录修正后的剩余的持续发送的时间。当发射端收到CTS包后,随即开始发送数据包。接收端收到数据包后,将以包内的CRC的数值来检验包数据是否正确,若结果正确,接收端将响应ACK包,告知发射端数据已经被成功地接收。当发射端没有收到接收端的ACK包时,将认为包在传输过程中丢失,而一直重新发送包。3、吞吐量随着物理层传输速率的提高,系统中的吞吐量是否也会成正比的提高呢?其实不然。首先,无线网络中存在一些无法避免的开销,如采用CSMA/CA策

7、略时,传送前必须先等待DIFS的时间,这意味着通道并不是时时刻刻都在传送数据。其次,像RTS/CTS、ACK等控制包也会带来额外的开销。下面分析PLCP的long preamble、short preamble对吞吐量的影响。(1)802.11b物理层(Physical Layer)首先,802.11b的物理层是由两个部分组成的,分别为Physical Layer Convergence Protocol(PLCP)和Physical Medium Dependent(PMD)。PMD主要负责无线信号的调制和解调,PLCP则负责将MAC层传下来的数据包传给PMD,以及检测通道的状态是处于忙碌还

8、是闲置,然后将结果返回给MAC层,即Clear Channel Assessment(CCA)。在PLCP里提供两种类型的preamble Long preamble和short preamble,在标准中,长前导是必须提供的,短前导则为可有可无的选项,主要用来缩减开销,提升传输效果。(2)IEEE 802.11b的MAC层在MAC层也有header,如下图所示,header加CRC占了34bytes,此部分即为开销。但大部分时候只会用到Address1到Address3,Address4不会用到,所以一般来说,MAC层的开销都会设为28bytes。二、 实验内容1、802.11b RTS/C

9、TS模式下的吞吐量推导接下来推导在802.11b的基本模式的环境的基础上推导RTS/CTS模式系统能达到的最大的吞吐量。下表是推导时使用的符号及其含义。2、计算结果在基本模式下,数据包传送的周期是要先等待Channel idle和TDIFS,然后传送数据包,再等待一个TSIFS,由接收端送出ACK,才完成整个数据的传送过程。在最理想情况下,如果传送的数据包没有发生碰撞,则:如果是LDATA为2000B,数据传输速率为11Mbps,且使用long preamble时,传送DATA的延迟时间为:三、传送ACK的延迟时间为:四、传送RTS的延迟时间为:五、传送CTS的延迟时间为:六、最大可达到的吞吐

10、量为:如果使用short preamble时:七、八、九、十、最大可达到的吞吐量:十一、三、仿真验证使用长导时的结果:四、程序代码# This script is created by NSG2 beta1# <proc getopt argc argv global opt lappend optlist nn for set i 0 $i < $argc incr i set opt($i) lindex $argv $igetopt $argc $argv#opt(0):封包的大小#opt(1):选择是long preamble还是short preamble#remove

11、useless headersremove-all-packet-headers ;# removes all except commonadd-packet-header IP LL Mac ARP TCP ;# needed headersMac/802_11 set CWMin_ 31Mac/802_11 set CWMax_ 1023Mac/802_11 set SlotTime_ 0.000020 ;# 20usMac/802_11 set SIFS_ 0.000010 ;# 10usMac/802_11 set PreambleLength_ 72 ;# 144 bitMac/80

12、2_11 set ShortPreambleLength_ 72 ;# 72 bitMac/802_11 set PreambleDataRate_ 1.0e6 ;# 1MbpsMac/802_11 set PLCPHeaderLength_ 48 ;# 48 bitsMac/802_11 set PLCPDataRate_ 1.0e6 ;# 1MbpsMac/802_11 set ShortPLCPDataRate_ 2.0e6 ;# 2MbpsMac/802_11 set RTSThreshold_ 1000 ;# bytes Disable RTS/CTSMac/802_11 set S

13、hortRetryLimit_ 7 ;# retransmissionsMac/802_11 set LongRetryLimit_ 4 ;# retransmissionsMac/802_11 set newchipset_ false ;# use new chipset,allowing a more recent packet to be correctly received in # place of the first sensed packetMac/802_11 set dataRate_ 11Mb ;# 802.11 data transmission rateMac/802

14、_11 set basicRate_ 1Mb ;# 802.11 basic transmission rate#Mac/802_11 set aarf_ false ;# 802.11 Auto Rate Fallback#opt(1) 1: short preamble 0:long preamble# if $opt(1) > 0 # ErrorModel80211 shortpreamble 1 ;# toggle 802.11 short preamble on/off# #=# Simulation parameters setup#=set val(chan) Channe

15、l/WirelessChannel ;# channel typeset val(prop) Propagation/TwoRayGround ;# radio-propagation modelset val(netif) Phy/WirelessPhy ;# network interface typeset val(mac) Mac/802_11 ;# MAC typeset val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# link layer typeset val(ant) Anten

16、na/OmniAntenna ;# antenna modelset val(ifqlen) 10 ;# max packet in ifqset val(nn) 2 ;# number of mobilenodesset val(rp) DSDV ;# routing protocolset val(stop) 100.0 ;# time of simulation end# 产生一个仿真的对象set ns_ new Simulator# 定义一个记录文件,用来记录封包传送的过程set tracefd open simple.tr w$ns_ trace-all $tracefd# 打开一个

17、 NAM trace文件set nf open out.nam w$ns_ namtrace-all-wireless $nf 100 100# set up topography object# 建立一个拓扑对象set topo new Topography# 拓扑的范围为 100m x 100m$topo load_flatgrid 100 100# Create Godcreate-god $val(nn)set chan_1_ new $val(chan)# 设置结点参数 $ns_ node-config -adhocRouting $val(rp) -llType $val(ll)

18、-macType $val(mac) -ifqType $val(ifq) -ifqLen $val(ifqlen) -antType $val(ant) -propType $val(prop) -phyType $val(netif) -channel $chan_1_ -topoInstance $topo -agentTrace ON -routerTrace OFF -macTrace ON -movementTrace OFF for set i 0 $i < $val(nn) incr i set node_($i) $ns_ node $node_($i) random-

19、motion 0 ;# disable random motion set rng new RNG$rng seed 1set rand1 new RandomVariable/Uniformfor set i 0 $i < $val(nn) incr i puts "wireless node $i created ." set x expr 50+$rand1 value*50 set y expr 50+$rand1 value*50 $node_($i) set X_ $x $node_($i) set Y_ $y $node_($i) set Z_ 0.0

20、puts "X_:$x Y_:$y"for set i 0 $i < $val(nn) incr i set udp_($i) new Agent/UDP $udp_($i) set packetSize_ 2000 $ns_ attach-agent $node_($i) $udp_($i) set null_($i) new Agent/LossMonitor $ns_ attach-agent $node_($i) $null_($i)for set i 0 $i < $val(nn) incr i if $i = ($val(nn)-1) $ns_ co

21、nnect $udp_($i) $null_(0) else set j expr $i+1 $ns_ connect $udp_($i) $null_($j) set cbr_($i) new Application/Traffic/CBR $cbr_($i) attach-agent $udp_($i) $cbr_($i) set type_ CBR #使用者所使用的packet size包含了IP header,所以要先扣除20bytes $cbr_($i) set packet_size_ expr $opt(0)-20 $cbr_($i) set rate_ 5Mb $cbr_($i

22、) set random_ falsefor set i 0 $i < $val(nn) incr i $ns_ at 1.1 "$cbr_($i) start" $ns_ at 5.1 "$cbr_($i) stop"# Tell nodes when the simulation endsfor set i 0 $i < $val(nn) incr i $ns_ at 100.0 "$node_($i) reset"$ns_ at 100.0 "stop"$ns_ at 100.01 "puts "NS EXITING." ; $ns_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论