王 悅,劉燦濤,朱 雷,張書云
(中央財(cái)經(jīng)大學(xué) a.信息管理系;b.計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100081)
NS-2是一個(gè)分組級(jí)別的網(wǎng)絡(luò)模擬器,它模擬實(shí)現(xiàn)了大量網(wǎng)絡(luò)組件和協(xié)議[1]。它的無線模塊(WiFi)源自卡耐基梅隆大學(xué)的Monarch項(xiàng)目[2],對(duì)無線傳輸做了如下假設(shè)和簡(jiǎn)化:
(1)假設(shè)節(jié)點(diǎn)在發(fā)送或接收一個(gè)分組時(shí)沒有明顯移動(dòng)。當(dāng)節(jié)點(diǎn)處于低速運(yùn)動(dòng)或高發(fā)送速率時(shí),該假設(shè)基本成立。例如,節(jié)點(diǎn)的移動(dòng)速度是10 m/s,發(fā)送速率是1 Mb/s,當(dāng)接收一個(gè)1500 Byte的分組時(shí)計(jì)算得出節(jié)點(diǎn)移動(dòng)0.12 m。周圍環(huán)境基本不變,不會(huì)導(dǎo)致接收失敗。
(2)假設(shè)節(jié)點(diǎn)速度遠(yuǎn)遠(yuǎn)小于光速,因此多普勒效應(yīng)可忽略不計(jì)。
節(jié)點(diǎn)移動(dòng)速度較慢的Ad hoc無線網(wǎng)絡(luò)[3-4]和Mesh無線網(wǎng)絡(luò)(節(jié)點(diǎn)靜止)[5]基本滿足這2條假設(shè),可以用NS-2較好地仿真。但是NS-2的無線接收模型過于簡(jiǎn)化,不能完全反映現(xiàn)實(shí)[6]。主要有如下2個(gè)方面的問題:(1)沒有計(jì)算干擾信號(hào)的累加強(qiáng)度。(2)沒有考慮信道衰落(fading)。特別是后者對(duì)網(wǎng)絡(luò)性能的影響顯著,由于現(xiàn)實(shí)傳輸環(huán)境是復(fù)雜的,電磁波經(jīng)過反射、折射、散射等多條路徑傳播到達(dá)接收節(jié)點(diǎn)后,由于節(jié)點(diǎn)移動(dòng)或周圍環(huán)境變化等原因,信號(hào)強(qiáng)度和相位是時(shí)變的,這被稱為信道衰落[7]。無線網(wǎng)絡(luò)的早期研究為了簡(jiǎn)化數(shù)學(xué)建模一般不考慮衰落效應(yīng)。但在無線網(wǎng)絡(luò)研究取得很大進(jìn)展的當(dāng)前[8-9],在NS-2中引入信道衰落對(duì)準(zhǔn)確驗(yàn)證無線算法很有必要。
本文分析NS-2分組收發(fā)仿真的實(shí)現(xiàn)原理。針對(duì)NS-2沒有考慮信道衰落效應(yīng)的問題,給出信道衰落仿真的一般計(jì)算步驟,并以瑞利衰落為例,在NS-2中驗(yàn)證無線網(wǎng)絡(luò)協(xié)議性能[10-11]。根據(jù)無線網(wǎng)絡(luò)傳輸?shù)耐掏铝亢凸叫訹12],在引入瑞利衰落后并通過與之前相比,以準(zhǔn)確模擬無線傳輸?shù)牟淮_定性。
NS-2的無線物理層代碼分布在Mac目錄下channel.cc、wireless-phy.cc和Mac-802_11.cc的C++源文件中。Wireless Channel類實(shí)現(xiàn)無線信道傳輸分組功能(channel.cc源文件);WirelessPhy類實(shí)現(xiàn)無線接口收發(fā)分組功能(wirelessphy.cc源文件);Mac802_11類除實(shí)現(xiàn)了802.11的媒體訪問控制功能外,也實(shí)現(xiàn)了無線接口卡的SNR計(jì)算和分組捕獲功能(Mac-802_11.cc源文件)。
無線物理層的實(shí)現(xiàn)原理如圖1所示。
圖1 NS-2無線物理層主要類和方法示意圖
用圖1場(chǎng)景舉例說明無線物理層的實(shí)現(xiàn)原理。圖中有A,B,C,D 4個(gè)節(jié)點(diǎn),B在A的發(fā)送半徑內(nèi);C在A的發(fā)送半徑外,但在其載波監(jiān)聽半徑內(nèi);D在A的載波監(jiān)聽半徑外。在仿真程序?qū)崿F(xiàn)上,當(dāng)A向B“發(fā)送”一個(gè)分組時(shí),A的上層協(xié)議模塊調(diào)用其Mac對(duì)象send方法,該方法調(diào)用WirelessPhy對(duì)象的sendDown方法,后者進(jìn)一步調(diào)用WirelessChannel對(duì)象的sendUp方法。WirelessChannel對(duì)象將此分組復(fù)制為2份,分別調(diào)用B和C(在A的載波監(jiān)聽范圍內(nèi))的WirelessPhy對(duì)象的sendUp方法,再通過調(diào)用Mac對(duì)象的recv方法,將分組傳遞給B和C的Mac對(duì)象。這就完成了一個(gè)分組從“發(fā)送”到“接收”的過程。注意:分組在節(jié)點(diǎn)之間的收發(fā)不是真實(shí)發(fā)生的網(wǎng)絡(luò)傳輸過程,而是通過函數(shù)調(diào)用的方式來仿真的。發(fā)送節(jié)點(diǎn)(比如A)將分組發(fā)送給載波監(jiān)聽半徑內(nèi)的所有節(jié)點(diǎn)(比如B,C)。若接收節(jié)點(diǎn)在發(fā)送節(jié)點(diǎn)的發(fā)送半徑內(nèi)且分組的SNR值大于一定閾值,它可正確接收并解碼該分組;若接收節(jié)點(diǎn)在發(fā)送節(jié)點(diǎn)的載波監(jiān)聽半徑內(nèi)但不在發(fā)送半徑內(nèi)(比如C),它不能正確解碼該分組;若接收節(jié)點(diǎn)在發(fā)送節(jié)點(diǎn)的載波監(jiān)聽半徑外(比如D),它檢測(cè)不到該分組。
按照分組從發(fā)送到接收的過程給出相關(guān)方法的主要步驟并附上重點(diǎn)代碼段(步驟編號(hào)見圖1):
(1)WirelessPhy::sendDown
該方法將分組發(fā)送到信道上。
第1步 記錄分組p的發(fā)送信息txinfo_。
p->txinfo_.stamp((MobileNode*)node(),ant_->copy(),Pt_,lambda_);
其中,node()是發(fā)送節(jié)點(diǎn);ant_->copy()是天線參數(shù);Pt_是發(fā)送功率;lambda_是無線電波的波長(zhǎng)。這些參數(shù)被記錄在發(fā)送分組里,用于在接收節(jié)點(diǎn)處計(jì)算接收功率。
第2步 發(fā)送分組p到信道。
channel_->recv(p,this);
這里通過調(diào)用WirelessChannel對(duì)象的recv方法來實(shí)現(xiàn)。
(2)WirelessChannel::sendUp
該方法將分組傳遞給發(fā)送節(jié)點(diǎn)載波監(jiān)聽半徑范圍內(nèi)的所有接收節(jié)點(diǎn)。
第1步 缺省按照雙徑傳播模型[7]來計(jì)算載波監(jiān)聽半徑distCST_。
distCST_=wifp->getDist(wifp->getCSThresh(),wifp->get Pt(),1.0,1.0,highestZ,highestZ,wifp->getL(),wifp->getL ambda());
第2步 取得以本節(jié)點(diǎn)tnode為圓心以distCST_為半徑的范圍內(nèi)的鄰居節(jié)點(diǎn)集合outlist。
get_neighbors((MobileNode*)tnode,outlist);
第3步 通過事件調(diào)度器s的schedule方法將分組的每個(gè)拷貝newp依次傳遞給每個(gè)鄰居節(jié)點(diǎn)rifp。傳播延遲propdelay由發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)的距離除以光速得到。
s.schedule(rifp,newp,propdelay);
(3)WirelessPhy::sendUp
該方法從WirelessChannel對(duì)象獲得分組p,判斷是否接收正確。
第1步 缺省按照雙徑傳播模型計(jì)算接收功率Pr。
Pr=propagation_->Pr(&p->txinfo_,&s,this);
第2步 按照分組的接收功率判斷它能否被正確接收。當(dāng)Pr小于載波監(jiān)聽閾值CSThresh_時(shí),接收不到該分組(pkt_recvd標(biāo)記置0);當(dāng)Pr大于等于接收閾值RXThresh_時(shí),可正確接收該分組(pkt_recvd置1,hdr->error置0);當(dāng)Pr大于CSThresh_且小于RXThresh_時(shí),雖能接收到該分組,但因接收功率低于RXThresh_無法正確解碼它(pkt_recvd置1,hdr->error置1)。正確解碼分組還取決于SNR是否大于一定閾值,這部分在Mac對(duì)象中實(shí)現(xiàn),實(shí)際上屬于無線物理層的功能。
(4)Mac802_11::recv
該方法計(jì)算分組的SNR是否大于等于SNR閾值CPThresh(SNR定義為早先接收的分組pktRx_在接收期間與新到來的干擾分組p的接收功率的比值)。若是,則正確接收該分組并傳給上層協(xié)議;否則丟棄它。
信道衰落是疊加在大尺度傳播模型(如雙徑模型)上的,是以大尺度傳播模型計(jì)算的接收功率為均值的一組隨機(jī)變量[7]。在NS-2中衰落功能仿真的實(shí)現(xiàn)過程如下:
(1)由大尺度傳播模型給出接收功率均值。
(2)將接收功率均值代入信道衰落模型計(jì)算出接收功率的概率分布函數(shù)F(x)。
(3)每次接收一個(gè)分組時(shí),由F(x)生成一個(gè)隨機(jī)數(shù)作為該分組的實(shí)際接收功率。實(shí)現(xiàn)上可借助NS-2現(xiàn)有的[0,1]均勻分布的隨機(jī)數(shù)生成方法Random::uniform(0,1),由概率論原理,每次生成一個(gè)均勻隨機(jī)數(shù)xk,逆函數(shù)F–1(xk)給出了滿足分布F的一個(gè)隨機(jī)數(shù)。
以瑞利衰落為例在NS-2上實(shí)現(xiàn)信道衰落仿真,其他衰落模型的實(shí)現(xiàn)思路類似。瑞利衰落認(rèn)為接收信號(hào)的強(qiáng)度s符合瑞利分布,概率分布函數(shù)為1- e-s2/2σ2。已知功率與電壓的平方呈正比,計(jì)算得出接收功率x符合指數(shù)分布,即F(x)=1-e-λx,其中,1/λ是接收功率均值。F-1(x)=-(1/λ)ln(1-x)。
將瑞利衰落功能實(shí)現(xiàn)在WirelessChannel::sendUp方法的第2步(見第2節(jié)),在雙徑模型給出當(dāng)前分組的接收功率均值后,調(diào)用RayleighPr方法返回一個(gè)隨機(jī)產(chǎn)生的接收功率值。
主要代碼如下:
使用NS-2缺省的發(fā)送功率Pt=0.28,接收功率閾值為3.7e–10,大尺度傳播模型使用雙徑模型,計(jì)算得出發(fā)送半徑是250 m;MAC協(xié)議使用802.11,數(shù)據(jù)發(fā)送速率為11 Mb/s。在仿真實(shí)驗(yàn)中比較無衰落和瑞利衰落下CBR和TCP性能,數(shù)據(jù)分組長(zhǎng)度均設(shè)為256 Byte。
實(shí)驗(yàn)1瑞利衰落對(duì)單鏈路傳輸性能的影響
測(cè)試瑞利衰落對(duì)一條鏈路吞吐量的影響,鏈路長(zhǎng)度(發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)的距離)依次設(shè)為50 m,100 m,150 m,200 m,240 m。圖2(a)顯示瑞利衰落帶來的分組差錯(cuò)率隨鏈路長(zhǎng)度增加(即接收功率減小)而增大。
分別測(cè)試鏈路傳輸CBR(滿負(fù)荷)和TCP數(shù)據(jù)時(shí)的吞吐量。圖2(b)和圖2(c)顯示在無衰落情況下CBR/TCP吞吐量是恒定的(分組差錯(cuò)率為0),而在瑞利衰落情況下吞吐量隨鏈路長(zhǎng)度增加(分組差錯(cuò)率增大)而減小。比較圖2(a)和圖2(b),CBR吞吐量下降的百分比比對(duì)應(yīng)的分組差錯(cuò)率要高,這是因?yàn)?02.11在分組發(fā)送失敗時(shí)認(rèn)為發(fā)生了碰撞,其競(jìng)爭(zhēng)窗口增大進(jìn)一步降低吞吐量。比較圖2(b)和圖2(c),在衰落情況下TCP比CBR的吞吐量下降更快,這是因?yàn)門CP在端到端分組傳輸失敗時(shí)認(rèn)為發(fā)生了擁塞,TCP發(fā)送窗口減小更進(jìn)一步降低了吞吐量。
圖2 瑞利衰落對(duì)單鏈路傳輸性能的影響
仿真如圖3所示的一個(gè)WLAN拓?fù)鋱D。設(shè)置AP(無線訪問點(diǎn))是接收節(jié)點(diǎn),坐標(biāo)在(0,0)處;其余10個(gè)節(jié)點(diǎn)競(jìng)爭(zhēng)信道向AP發(fā)送數(shù)據(jù),坐標(biāo)隨機(jī)產(chǎn)生。
圖4顯示了瑞利衰落對(duì)WLAN各節(jié)點(diǎn)CBR和TCP吞吐量的影響。從中可以看出,發(fā)現(xiàn)衰落并不會(huì)使每個(gè)節(jié)點(diǎn)的吞吐量都下降。這是因?yàn)榫嚯xAP遠(yuǎn)的節(jié)點(diǎn)受衰落影響大,其吞吐量下降多,消耗信道帶寬少;而距離AP近的節(jié)點(diǎn)受衰落影響小,因此在這種情況下可以占用更多剩余帶寬。表1顯示所有節(jié)點(diǎn)的CBR/TCP總吞吐量在無衰落和瑞利衰落時(shí)相差不多。
圖3 WLAN拓?fù)鋱D
圖4 瑞利衰落對(duì)WLAN性能的影響
表1 WLAN整體性能
實(shí)驗(yàn)2瑞利衰落對(duì)WLAN性能的影響
使用Jain公平性指標(biāo)(Jain’s fairness index)計(jì)算系統(tǒng)公平性[12]。Jain公平性指標(biāo)度量各節(jié)點(diǎn)吞吐量的均勻程度,取值在[0,1]上。當(dāng)各節(jié)點(diǎn)的吞吐量相等時(shí),Jain公平性指標(biāo)值為1,反映公平性最好;各節(jié)點(diǎn)吞吐量差別越大,Jain公平性指標(biāo)的值越小,反映公平性越差。表1顯示衰落使得公平性變差。這是由于距離AP遠(yuǎn)的節(jié)點(diǎn),吞吐量受衰落影響大,而距離AP近的節(jié)點(diǎn)受衰落影響小,且占用了前者的剩余帶寬。
本文分析了NS-2無線物理層的實(shí)現(xiàn)機(jī)制,指出其只考慮大尺度傳播模型,而未考慮小尺度的信道衰落,導(dǎo)致計(jì)算信號(hào)接收功率不夠真實(shí)。給出了NS-2中擴(kuò)展了信道衰落功能的一般計(jì)算步驟,將大尺度傳播模型計(jì)算的接收功率均值代入信道衰落模型計(jì)算出接收功率,實(shí)現(xiàn)了瑞利衰落。仿真結(jié)果顯示,引入瑞利衰落后的無線網(wǎng)絡(luò)傳輸?shù)耐掏铝亢凸叫远际艿捷^大影響。該研究可為準(zhǔn)確驗(yàn)證無線算法提供支持。
[1]The Network Simulator-NS-2[EB/OL].[2013-02-12].http://www.isi.edu/nsnam/ns/.
[2]The CMU Monarch Project’s Wireless and Mobility Extensions to NS[EB/OL].(1999-03-21).http://www.monarch.cs.rice.edu/ftp/monarch/wireless-sim/ns-cmu.ps.
[3]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless Sensor Networks:A Survey[J].Computer Networks,2002,38(4):393-422.
[4]Gorday P,Hester L,Gutierrez J A,et al.Home Networking with IEEE 802.15.4:A Developing Standard for Low-rate Wireless Personal Area Networks[J].IEEE Communications Magazine,2002,40(8):70-77.
[5]Akyildiz I F,Wang X.A Survey on Wireless Mesh Network[J].IEEE Communications Magazine,2005,43(9):23-30.
[6]Takai M,Martin J,Bagrodia R.Effects of Wireless Physical Layer Modeling in Mobile Ad Hoc Networks[C]//Proc.of Mobihoc’01.Long Beach,USA:ACM Press,2001:87-94.
[7]Tse D,Viswanath P.Fundamentals of Wireless Communication[M].Cambridge,USA:Cambridge University Press,2005.
[8]Katti S,Rahul H,Hu W,et al.XORs in the Air:Practical Wireless Network Coding[J].IEEE/ACM Transactions on Networking,2008,16(3):497-510.
[9]Jiang J,Walrand J.Approaching Throughput-optimality in Distributed CSMA Scheduling Algorithms With Collisions[J].IEEE/ACM Transactions on Networking,2011,19(3):816-829.
[10]楊晨煒,冷甦鵬.基于NS2的認(rèn)知無線電網(wǎng)絡(luò)模型[J].計(jì)算機(jī)工程,2010,36(5):111-113.
[11]張小慶,李春林,張恒喜.無線傳感器網(wǎng)絡(luò)的NS2擴(kuò)展與仿真機(jī)制研究[J].計(jì)算機(jī)科學(xué),2011,38(8):117-120.
[12]Jain R,Chiu D M,Hawe W.A Quantitative Measure of Fairness and Discrimination for Resource Allocation in Shared Computer Systems[EB/OL].(1984-03-05).http://dblp.uni-trier.de/db/journals/corr/corr9809.html#cs-NI-9809099.