Adhoc網(wǎng)絡(luò)仿真_第1頁(yè)
Adhoc網(wǎng)絡(luò)仿真_第2頁(yè)
Adhoc網(wǎng)絡(luò)仿真_第3頁(yè)
Adhoc網(wǎng)絡(luò)仿真_第4頁(yè)
Adhoc網(wǎng)絡(luò)仿真_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Harbin Institute of Technology無(wú)線自組織網(wǎng)絡(luò)課程報(bào)告姓名: 李煥英 學(xué)號(hào): 1130510205 班級(jí): 1305102 指導(dǎo)教師: 張文彬 院系: 電子與信息工程學(xué)院 時(shí)間:2016年12月 RTS/CTS機(jī)制下802.11b的最大吞吐量仿真一、 背景知識(shí)1、Ad hoc網(wǎng)絡(luò)中MAC協(xié)議(1)IEEE 802.11的分布式協(xié)調(diào)功能(DCF)DCF的基本思路:在無(wú)線網(wǎng)絡(luò)上不可能進(jìn)行沖突檢測(cè),故不設(shè)置沖突檢測(cè)機(jī)制,采用規(guī)則延遲來(lái)處理,以保證MAC控制的可操作性和公平性?;驹瓌t為:節(jié)點(diǎn)要發(fā)送MAC幀,首先監(jiān)聽無(wú)線信道,若空閑,則可以發(fā)送該幀;否則延遲等待,再次競(jìng)爭(zhēng)發(fā)

2、送。(2)面臨的主要問(wèn)題:“隱藏”終端問(wèn)題假設(shè):A正在向B傳輸數(shù)據(jù),C也要向B發(fā)送數(shù)據(jù)隱藏終端:在接收者的通信范圍內(nèi)而在發(fā)送者的通信范圍外的終端。帶來(lái)的問(wèn)題是A向B發(fā)送報(bào)文,C聽不到A的發(fā)送。C也發(fā)送報(bào)文時(shí)在B發(fā)生碰撞。單頻網(wǎng)絡(luò)的信道接入控制協(xié)議,使用RTS-CTS握手機(jī)制,力求解決Ad hoc網(wǎng)絡(luò)中的隱藏終端和暴露終端問(wèn)題,是構(gòu)成其他機(jī)制的基礎(chǔ)。(3)解決隱藏終端的方法RTS/CTSa) 節(jié)點(diǎn)A向節(jié)點(diǎn)B發(fā)送RTS,表明A需要向B發(fā)送數(shù)據(jù)。RTS 幀有兩個(gè)目的:預(yù)約無(wú)線鏈路的使用權(quán),并要求接收到這一消息的其他的工作站停止發(fā)送。(發(fā)送端清場(chǎng)) b) B接收到A的RTS后,向周邊所有節(jié)點(diǎn)發(fā)出CTS

3、信號(hào),表明已準(zhǔn)備就緒,A可以發(fā)送。而其他欲向B發(fā)送數(shù)據(jù)的節(jié)點(diǎn)則暫停發(fā)送。(接收端清場(chǎng))c) 在A、B雙方成功交換RTS/CTS信號(hào)后,即完成握手后A向B開始發(fā)送數(shù)據(jù)。這種機(jī)制保證了多個(gè)互不可見的發(fā)送節(jié)點(diǎn)同時(shí)向一個(gè)接受節(jié)點(diǎn)發(fā)送信息時(shí),實(shí)際上只能是收到接受節(jié)點(diǎn)回應(yīng)CTS的那個(gè)節(jié)點(diǎn)能夠發(fā)送,避免了沖突發(fā)生。實(shí)際上,沖突還是有可能發(fā)生,即A、C同時(shí)向B發(fā)送RTS時(shí),兩者的RTS在B上沖突,B無(wú)法接收準(zhǔn)確的信息,則不發(fā)送任何回應(yīng)的CTS。這樣,A和C都收不到B的CTS消息,則采用退避競(jìng)爭(zhēng)機(jī)制分配一個(gè)隨機(jī)定時(shí)值,再競(jìng)爭(zhēng)發(fā)送RTS,直到成功為止。(4) RTS-CTS握手機(jī)制a) 當(dāng)一個(gè)終端要發(fā)送數(shù)據(jù)給另一

4、個(gè)終端時(shí),它首先發(fā)送一個(gè)RTS給目標(biāo)終端。b) 接收節(jié)點(diǎn)準(zhǔn)備好接收工作,則回復(fù)一個(gè)CTS。c) 發(fā)送者確認(rèn)來(lái)自接收節(jié)點(diǎn)的CTS,則開始發(fā)送報(bào)文。d) 如果發(fā)送者沒(méi)有收到接收節(jié)點(diǎn)的CTS,則重發(fā)RTS,并等待回應(yīng)。e) 其他接收到RTS或CTS的節(jié)點(diǎn)采用二進(jìn)制指數(shù)退避算法延遲數(shù)據(jù)發(fā)送,以避免沖突。(5)分析偵聽到RTS或CTS控制報(bào)文的其他終端的反應(yīng)過(guò)程a) 偵聽到RTS控制報(bào)文的任何其他終端均向A關(guān)閉,而且在足夠長(zhǎng)的時(shí)間保持沉默,使A可以無(wú)沖突的收到CTS控制報(bào)文。b) 所有偵聽到CTS控制報(bào)文的終端均向B關(guān)閉,而且在后繼數(shù)據(jù)到來(lái)期間保持沉默,時(shí)間長(zhǎng)短可以從CTS報(bào)文中得到??赡軟_突:C、B同

5、時(shí)向A發(fā)送RTS,則二進(jìn)制指數(shù)退避。每次沖突退避加倍,每次成功發(fā)送后,減少到最小的退避窗口。在多終端單一小區(qū)環(huán)境下,將會(huì)總有利于成功發(fā)送的節(jié)點(diǎn)再次發(fā)送,從而影響公平性。2、帶有RTS/CTS的擴(kuò)展DCF(1)RTS/CTS機(jī)制機(jī)制的使用是可選的,每個(gè)802.11節(jié)點(diǎn)必須實(shí)現(xiàn)該功能。明確預(yù)留信道,避免“隱藏”終端沖突a) 發(fā)送者發(fā)送短的RTS(請(qǐng)求發(fā)送);b) 接收者用短的CTS(清除發(fā)送);c) CTS為發(fā)送者預(yù)留了帶寬同時(shí)通告所有的站點(diǎn)(包括隱藏站點(diǎn));d) RTS/CTS長(zhǎng)度很短,沖突的概率小;(2)帶RTS/CTS的DCF機(jī)制工作過(guò)程當(dāng)發(fā)射端希望發(fā)送數(shù)據(jù)時(shí),首先檢測(cè)信道是否空閑,若是信道

6、為空閑時(shí),送出RTS,RTS信號(hào)包括發(fā)射端的地址、接收端的地址、下一筆數(shù)據(jù)將持續(xù)發(fā)送的時(shí)間等信息。接收端收到RTS信號(hào)后,將響應(yīng)短信號(hào),CTS信號(hào)上也包含根據(jù)RTS內(nèi)記錄修正后的剩余的持續(xù)發(fā)送的時(shí)間。當(dāng)發(fā)射端收到CTS包后,隨即開始發(fā)送數(shù)據(jù)包。接收端收到數(shù)據(jù)包后,將以包內(nèi)的CRC的數(shù)值來(lái)檢驗(yàn)包數(shù)據(jù)是否正確,若結(jié)果正確,接收端將響應(yīng)ACK包,告知發(fā)射端數(shù)據(jù)已經(jīng)被成功地接收。當(dāng)發(fā)射端沒(méi)有收到接收端的ACK包時(shí),將認(rèn)為包在傳輸過(guò)程中丟失,而一直重新發(fā)送包。3、吞吐量隨著物理層傳輸速率的提高,系統(tǒng)中的吞吐量是否也會(huì)成正比的提高呢?其實(shí)不然。首先,無(wú)線網(wǎng)絡(luò)中存在一些無(wú)法避免的開銷,如采用CSMA/CA策

7、略時(shí),傳送前必須先等待DIFS的時(shí)間,這意味著通道并不是時(shí)時(shí)刻刻都在傳送數(shù)據(jù)。其次,像RTS/CTS、ACK等控制包也會(huì)帶來(lái)額外的開銷。下面分析PLCP的long preamble、short preamble對(duì)吞吐量的影響。(1)802.11b物理層(Physical Layer)首先,802.11b的物理層是由兩個(gè)部分組成的,分別為Physical Layer Convergence Protocol(PLCP)和Physical Medium Dependent(PMD)。PMD主要負(fù)責(zé)無(wú)線信號(hào)的調(diào)制和解調(diào),PLCP則負(fù)責(zé)將MAC層傳下來(lái)的數(shù)據(jù)包傳給PMD,以及檢測(cè)通道的狀態(tài)是處于忙碌還

8、是閑置,然后將結(jié)果返回給MAC層,即Clear Channel Assessment(CCA)。在PLCP里提供兩種類型的preamble Long preamble和short preamble,在標(biāo)準(zhǔn)中,長(zhǎng)前導(dǎo)是必須提供的,短前導(dǎo)則為可有可無(wú)的選項(xiàng),主要用來(lái)縮減開銷,提升傳輸效果。(2)IEEE 802.11b的MAC層在MAC層也有header,如下圖所示,header加CRC占了34bytes,此部分即為開銷。但大部分時(shí)候只會(huì)用到Address1到Address3,Address4不會(huì)用到,所以一般來(lái)說(shuō),MAC層的開銷都會(huì)設(shè)為28bytes。二、 實(shí)驗(yàn)內(nèi)容1、802.11b RTS/C

9、TS模式下的吞吐量推導(dǎo)接下來(lái)推導(dǎo)在802.11b的基本模式的環(huán)境的基礎(chǔ)上推導(dǎo)RTS/CTS模式系統(tǒng)能達(dá)到的最大的吞吐量。下表是推導(dǎo)時(shí)使用的符號(hào)及其含義。2、計(jì)算結(jié)果在基本模式下,數(shù)據(jù)包傳送的周期是要先等待Channel idle和TDIFS,然后傳送數(shù)據(jù)包,再等待一個(gè)TSIFS,由接收端送出ACK,才完成整個(gè)數(shù)據(jù)的傳送過(guò)程。在最理想情況下,如果傳送的數(shù)據(jù)包沒(méi)有發(fā)生碰撞,則:如果是LDATA為2000B,數(shù)據(jù)傳輸速率為11Mbps,且使用long preamble時(shí),傳送DATA的延遲時(shí)間為:三、傳送ACK的延遲時(shí)間為:四、傳送RTS的延遲時(shí)間為:五、傳送CTS的延遲時(shí)間為:六、最大可達(dá)到的吞吐

10、量為:如果使用short preamble時(shí):七、八、九、十、最大可達(dá)到的吞吐量:十一、三、仿真驗(yàn)證使用長(zhǎng)導(dǎo)時(shí)的結(jié)果:四、程序代碼# 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# 產(chǎn)生一個(gè)仿真的對(duì)象set ns_ new Simulator# 定義一個(gè)記錄文件,用來(lái)記錄封包傳送的過(guò)程set tracefd open simple.tr w$ns_ trace-all $tracefd# 打開一個(gè)

17、 NAM trace文件set nf open out.nam w$ns_ namtrace-all-wireless $nf 100 100# set up topography object# 建立一個(gè)拓?fù)鋵?duì)象set topo new Topography# 拓?fù)涞姆秶鸀?100m x 100m$topo load_flatgrid 100 100# Create Godcreate-god $val(nn)set chan_1_ new $val(chan)# 設(shè)置結(jié)點(diǎn)參數(shù) $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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論