基于網(wǎng)絡編碼的機會網(wǎng)絡數(shù)據(jù)分發(fā)研究與仿真畢業(yè)設計說明書
《基于網(wǎng)絡編碼的機會網(wǎng)絡數(shù)據(jù)分發(fā)研究與仿真畢業(yè)設計說明書》由會員分享,可在線閱讀,更多相關(guān)《基于網(wǎng)絡編碼的機會網(wǎng)絡數(shù)據(jù)分發(fā)研究與仿真畢業(yè)設計說明書(57頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 1 引言 1.1 研究問題現(xiàn)狀 近年來,無線通信技術(shù)得到了飛速的發(fā)展,新技術(shù)不斷出現(xiàn),其中移動通信系統(tǒng)的3G技術(shù)已經(jīng)進入應用普及階段,并朝第四代通信系統(tǒng)方向演進?!秶抑虚L期科學和技術(shù)發(fā)展規(guī)劃綱要》(2006一2020)中已經(jīng)明確提出了未來通信領(lǐng)域的競爭將集中反映在特殊環(huán)境和新興應用領(lǐng)域中的通信網(wǎng)絡能力及通信技術(shù)的競爭上[1]。其中新興應用領(lǐng)域涉及到的移動網(wǎng)絡技術(shù)更是被作為前沿技術(shù)中的重點。目前,移動通信的快速發(fā)展使得移動網(wǎng)絡帶寬逐漸增大,移動應用不斷豐富,移動終端的處理能力越來越強。為了適應不同的應用需求,各具特色的網(wǎng)絡結(jié)構(gòu)和無線網(wǎng)絡技術(shù)不斷涌現(xiàn),包括無線個域網(wǎng)(如IEEE80
2、2.15)、無線局域網(wǎng)(如IEEE802.lla/b/g/i/n)、無線城域網(wǎng)(如802.16、802.20)、無線移動廣域網(wǎng)(如2G、3G)、衛(wèi)星網(wǎng)絡,以及無線自組織(Ad Hoc)網(wǎng)絡、無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)等等。而WIFi、WIMax、UWB等無線接入網(wǎng)絡和GPRS、B3G、UMTS等蜂窩移動網(wǎng)絡等基礎設施與技術(shù)的完善為移動應用提供了在任何時間、任何地點訪問所有網(wǎng)絡服務的可能性。 在上述的各種網(wǎng)絡發(fā)展后,一種節(jié)點移動范圍更大,網(wǎng)絡大多數(shù)都是不連通的新型網(wǎng)絡出現(xiàn)了,這種類型的網(wǎng)絡被稱為機會網(wǎng)絡,機會網(wǎng)絡是一種不需要源節(jié)點和目的節(jié)點之間存在
3、完整路徑,利用節(jié)點移動帶來的相遇機會實現(xiàn)網(wǎng)絡通信的自組織網(wǎng)絡。 經(jīng)過近幾年的發(fā)展,機會網(wǎng)絡技術(shù)研究與應用已經(jīng)取得了一定的進展,但是,總體而言目前相關(guān)研究還處于一個剛起步的初級階段。隨著移動應用業(yè)務的增加以及機會網(wǎng)絡商業(yè)化,機會網(wǎng)絡技術(shù)的全面應用與深入仍然要解決很多極具挑戰(zhàn)性的問題,如復雜環(huán)境下的路由、數(shù)據(jù)時延與網(wǎng)絡開銷均衡問題、移動狀態(tài)下網(wǎng)絡可靠性以及安全問題等等。同時在一些領(lǐng)域,機會網(wǎng)絡的相關(guān)技術(shù)標準尚未形成,尤其在國內(nèi)對于這類高延遲的特殊通信網(wǎng)絡的研究才剛剛起步。規(guī)劃信息化發(fā)展戰(zhàn)略中不僅強調(diào)了信息產(chǎn)業(yè)以及信息技術(shù)的發(fā)展,同時也提出了將寬帶無線移動通信、新興及特殊應用領(lǐng)域的網(wǎng)絡通信等核心關(guān)
4、鍵技術(shù)研究作為我國信息技術(shù)的主要發(fā)展方向之一。因此,對機會網(wǎng)絡數(shù)據(jù)分發(fā)展開研究將為正確理解機會網(wǎng)絡拓撲與數(shù)據(jù)傳輸特點提供可行性依據(jù),有助于推進現(xiàn)有關(guān)鍵技術(shù)的可擴展性,并對提高機會網(wǎng)絡數(shù)據(jù)傳輸可靠性,探索節(jié)點移動模型對機會網(wǎng)絡服務性能保障的影響,推動相關(guān)技術(shù)的深入研究有重要現(xiàn)實的意義。 2000年,R.Ahlswede等人基于網(wǎng)絡信息流的概念提出了網(wǎng)絡編碼的思想,通過允許中間節(jié)點既實現(xiàn)路由功能又實現(xiàn)編碼功能,達到組播的最大流量[2]。為使得網(wǎng)絡編碼具有實際可用性,Li等人提出了線性網(wǎng)絡編碼的概念,證實節(jié)點進行線性網(wǎng)絡編碼運算,具有可行性,能夠達到最大流傳輸理論極限[3]。Ho等人推廣了這一概念
5、,提出了有限域下隨機線性網(wǎng)絡編碼的思想,并證實其有效性[4]。之后,隨機線性網(wǎng)絡編碼被應用于各個方面的研究,用于提高網(wǎng)絡吞吐量、能量利用效率。 網(wǎng)絡編碼徹底改變了通信網(wǎng)絡中信息處理和信息傳輸?shù)姆绞剑徽J為是進入 21世紀后信息處理和信息傳輸研究領(lǐng)域上最重要的理論成果之一。網(wǎng)絡編碼的核心思想是允許通信網(wǎng)絡中的節(jié)點對傳輸?shù)男畔⑦M行操作和處理(如有限域中的運算等),而不再局限于存儲與轉(zhuǎn)發(fā)。與傳統(tǒng)的基于存儲和轉(zhuǎn)發(fā)的路由傳輸機制相比,網(wǎng)絡編碼能顯著改善數(shù)據(jù)分發(fā)系統(tǒng)性能,如提升網(wǎng)絡吞吐量,節(jié)約傳輸帶寬和均衡網(wǎng)絡負載等。網(wǎng)絡編碼具有重要的理論價值和廣泛的應用前景,其研究已經(jīng)引起了學術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注和
6、高度重視。國際知名大學、科研機構(gòu)和公司,如普林斯頓大學、麻省理工學院(MIT)、貝爾實驗室(Bell Lab)、AT&T 的香農(nóng)信息實驗室和微軟公司(Microsoft)等都積極投入對網(wǎng)絡編碼的研究,并取得了一些重要的研究成果。我國的香港中文大學(CUHK)、清華大學、中國科學技術(shù)大學、西安電子科技大學和南京大學等也對網(wǎng)絡編碼展開了研究,并取得一定的進展。 機會網(wǎng)絡經(jīng)常出現(xiàn)鏈路斷裂,網(wǎng)絡不連通的狀況,在這種情況下,節(jié)點一般并不丟棄數(shù)據(jù)包,相反節(jié)點傳輸數(shù)據(jù)一般采用“存儲一攜帶一轉(zhuǎn)發(fā)”的模式,傳統(tǒng)的機會網(wǎng)絡中,中間節(jié)點只進行數(shù)據(jù)的存儲與轉(zhuǎn)發(fā)操作,但是運用網(wǎng)絡編碼的機會網(wǎng)絡中,中間節(jié)點可以對接收到
7、的數(shù)據(jù)塊進行隨機線性組合編碼,可以增大單次傳輸?shù)臄?shù)據(jù)量。 隨著網(wǎng)絡規(guī)模的日趨龐大、各種網(wǎng)絡方案和協(xié)議日趨復雜,分析、實驗和仿真等方法成為了當前進行網(wǎng)絡技術(shù)研究的有效手段。研究網(wǎng)絡仿真技術(shù)成為了現(xiàn)代通信網(wǎng)絡設計的重要環(huán)節(jié),在通信網(wǎng)絡性能研究中起關(guān)鍵性作用。在眾多網(wǎng)絡仿真軟件中NS2具有免費、源代碼開放、易擴展等等優(yōu)點而備受研究人員的青睞。NS2是一個開源的網(wǎng)絡仿真軟件,可以再windows/unix上運行,且所有源代碼公開,對于進行網(wǎng)絡的研究和擴展非常方便。 本課題研究的內(nèi)容就是在仿真平臺NS2下設計并建立機會網(wǎng)絡模型,理解網(wǎng)絡編碼的原理,在NS2中編程實現(xiàn)基于分簇的隨機線性網(wǎng)絡編碼數(shù)據(jù)分發(fā)
8、的仿真并與一般的網(wǎng)絡編碼比較其網(wǎng)絡吞吐量和時延性能。 1.2 本文的內(nèi)容組織 本文內(nèi)容組織如下:先分別介紹了機會網(wǎng)絡、網(wǎng)絡編碼原理及仿真平臺NS2的各種知識,然后使用NS2構(gòu)建機會網(wǎng)絡拓撲,編出各個代碼腳本,在NS2上仿真實驗,得出數(shù)據(jù)并畫圖進行說明驗證。 2 機會網(wǎng)絡及網(wǎng)絡編碼相關(guān)知識 2.1 機會網(wǎng)絡的概念 機會網(wǎng)絡是一種特殊的自組織網(wǎng)絡,它不需要存在端到端的完整路徑,充分利用了節(jié)點移動帶來的相遇機會(contact),實現(xiàn)數(shù)據(jù)逐跳轉(zhuǎn)發(fā),并最終傳送到目的節(jié)點[5]。從本質(zhì)上來看,機會網(wǎng)絡否定了傳統(tǒng)網(wǎng)絡中
9、數(shù)據(jù)傳輸?shù)囊粋€根本前提——在路由期間或者數(shù)據(jù)傳遞期間,存在一條或者多條源端到目的端的路徑。機會網(wǎng)絡中的相遇(contact)概念是指節(jié)點之間發(fā)生的一次聯(lián)系。當節(jié)點(如:車輛、移動用戶)進入彼此的通信范圍之內(nèi)時,則發(fā)生通信,當兩者離開彼此通信范圍時,則鏈路斷開,停止通信。在機會網(wǎng)絡中,contact是機會性的,而非確定性的。 圖2.1是一個機會網(wǎng)絡示意圖,t1時刻源節(jié)點S希望將數(shù)據(jù)傳輸給目標節(jié)點D,但S 和D 位于不同的連通域而沒有通信路徑,因此,S 首先將數(shù)據(jù)打包成消息發(fā)送給鄰居節(jié)點3,由于3并沒有合適的機會轉(zhuǎn)發(fā)下一跳節(jié)點,它將消息在本地存儲并等待傳輸機會,經(jīng)過一段時間到達t2 時刻,節(jié)點3
10、運動到節(jié)點4的通信范圍并轉(zhuǎn)發(fā)給節(jié)點4,在t3時刻,節(jié)點4將消息傳輸給目標節(jié)點D,完成數(shù)據(jù)傳輸。 圖2.1 機會網(wǎng)絡示意圖 機會網(wǎng)絡的部分概念來源于早期的延遲容忍網(wǎng)絡DTN(delay tolerant network)[6]研究。DTN最初是容遲網(wǎng)絡研究組(DTNRG)為星際網(wǎng)絡IPN(interplanetary network)[7]通信而提出來的,其主要目標是支持具有間歇性連通、延遲大、錯誤率高等通信特征的不同網(wǎng)絡的互聯(lián)和互操作,如互聯(lián)Internet和傳感器網(wǎng)絡、移動自組織網(wǎng)絡等。DTN網(wǎng)絡體系由多個底層運行獨立通信協(xié)議的DTN域組成。域間網(wǎng)關(guān)利用“存儲-轉(zhuǎn)發(fā)”的模式工作,當去
11、往目標DTN域的鏈路存在時轉(zhuǎn)發(fā)消息,否則,將消息存儲在本地持久存儲器中等待可用鏈路。機會網(wǎng)絡可以看成是具有一般DTN 網(wǎng)絡特征的無線自組網(wǎng)。 2.2 機會網(wǎng)絡的構(gòu)架 機會網(wǎng)絡的體系結(jié)構(gòu)與傳統(tǒng)Internet傳輸結(jié)構(gòu)的最大區(qū)別在于束層(BundleLayer),它位于傳輸層和應用層之間,它跟底層協(xié)議相互配合,使得應用程序可以跨過多個區(qū)域?qū)崿F(xiàn)通信。機會網(wǎng)絡節(jié)點使用束層來發(fā)送和接受數(shù)據(jù),并保證逐跳轉(zhuǎn)發(fā)的可靠性以及端到端的確認。該架構(gòu)非常靈活,既保證了各層的共性,又避免非法使用其他層。 1、束層 為了實現(xiàn)“存儲-攜帶-轉(zhuǎn)發(fā)”的消息交換機制,機會網(wǎng)絡在節(jié)點的應用層和傳輸層之間插入了一個新的協(xié)議
12、層——束層。使用束層的一個主要原因是在機會網(wǎng)絡中,傳輸延時差異很大,當一個數(shù)據(jù)包丟失時,整個傳輸?shù)臄?shù)據(jù)成為無用數(shù)據(jù)。因此為了避免這樣的事情發(fā)生,將數(shù)據(jù)打包成一個較大的消息,稱之為束,并使之不能輕易分割成更小的片段。機會網(wǎng)絡中一般不存在從源節(jié)點到目的節(jié)點的端到端的連接,因此束會存儲在中繼節(jié)點上并等待合適機會進行傳輸。一個束必須包含的信息有:源端地址、目的端地址、起始時間、束的生存時間、數(shù)據(jù)長度及服務類型等。此外,對于具體的應用,可能還需要一些狀態(tài)域和認證消息,例如,監(jiān)管傳送請求等。 2、監(jiān)管傳送 束層提供了一種簡單的并且不需要應答的投遞機制,但框架本身提供了兩種可能的方法來提高可靠性:端到端
13、的應答和監(jiān)管傳送。通過監(jiān)管傳送,可以保證端到端的可靠性。在特定的環(huán)境下,這種機制可以更好地利用資源,例如源節(jié)點可以將已經(jīng)投遞成功的束在緩存中釋放掉。 3、機會網(wǎng)絡中的節(jié)點 一個束的源端和目的端是由端點號EID(Endpoint-Identifier)來標識的。EID中包含一個或多個機會網(wǎng)絡節(jié)點。當目的地收到該束時,認為該束傳遞成功。EID可以類比于DNS(Domain Name System)中的統(tǒng)一資源標識(URI,Uniform Resource Identifier),并且與路由或拓撲組織結(jié)構(gòu)沒有必然聯(lián)系。區(qū)域名是早先提出的一個概念,一個完整的地址由區(qū)域號和節(jié)點號組成。基于這種區(qū)域的
14、概念,束首先投遞到目的節(jié)點所在的區(qū)域,然后再投遞到目的節(jié)點。 4、服務分類 按重要性不同,束層引入了三類服務:1、大塊束(bulk bundles),只需要較小的投入,當有資源可用時就可以提供這種服務;2、正常束(normal class bundles),比大塊束優(yōu)先級要高,但比“加快束”(expedited bundles)優(yōu)先級要低;3、加快束,這類服務只是針對來自同一個端點的束而言,例如:當大塊束與加快束來自不同的端點時,即使加快束比大塊束優(yōu)先級高,但大塊束仍有可能比加快束先傳遞。 5、安全 機會網(wǎng)絡框架提供了一個可選的安全構(gòu)架,使用逐跳、端到端的授權(quán)和誠信機制,主要的困難是如
15、何對網(wǎng)絡進行控制和如何轉(zhuǎn)發(fā)控制消息。沒有進行認證的節(jié)點不能夠通過機會網(wǎng)絡發(fā)送數(shù)據(jù),并且不能利用該網(wǎng)絡以外的節(jié)點進行數(shù)據(jù)轉(zhuǎn)發(fā)。 2.3 機會網(wǎng)絡拓撲特點 1、多跳網(wǎng) 由于無線通信的距離受限制,機會網(wǎng)絡中節(jié)點之間的通信通常需要借助其他節(jié)點的中繼轉(zhuǎn)發(fā)才能實現(xiàn),便形成了多跳通信路徑。 2、動態(tài)的網(wǎng)絡拓撲 機會網(wǎng)絡中節(jié)點間的相互連通性構(gòu)成了網(wǎng)絡的拓撲結(jié)構(gòu)。由于機會網(wǎng)絡中的節(jié)點可以以隨機的速度和方式移動,加上發(fā)射功率的變化,以及無線信道的干擾大小不斷變化等因素,節(jié)點間通過無線通信形成的網(wǎng)絡拓撲結(jié)構(gòu)可能隨時發(fā)生變化,而且變化的方式和速度都是難以預料的。 3、分布式控制 在機會網(wǎng)絡中,為了實現(xiàn)
16、網(wǎng)內(nèi)節(jié)點之間的通信,需要解決無線資源使用、路由發(fā)現(xiàn)等控制問題。由于機會網(wǎng)絡沒有預設的基礎設施,也就沒有預設的中心控制節(jié)點,所以只能采用分布式控制的方式來完成。 4、對等性 機會網(wǎng)絡中節(jié)點與節(jié)點可以直接互通,每個節(jié)點都相同,無主從之分,每個節(jié)點都能夠支持邏輯上的自發(fā)自收,即節(jié)點直接的來去雙向鏈路都相同。因此,無機會網(wǎng)絡節(jié)點的無線通信裝置一般采用時分雙工方式(TDD)。 5、臨時自組織性 若干個無線節(jié)點聚集到一起時,他們便臨時自組織性地形成了一個無線通信網(wǎng)絡,該臨時性包括:網(wǎng)絡成員的臨時性,網(wǎng)絡組織的臨時性,網(wǎng)絡拓撲的臨時性,網(wǎng)絡路由的臨時性,網(wǎng)絡無線資源分配采用按需臨時分配等。 6、
17、鏈路帶寬受限 機會網(wǎng)絡采用無線傳輸技術(shù)作為其基本通信手段,與有線傳輸技術(shù)相比,它具有較低的傳輸帶寬。并且由于各個節(jié)點分布式競爭使用信道,使得每個移動節(jié)點實際使用的帶寬遠小于物理層所提供的最大傳輸速率。 7、能量受限 機會網(wǎng)絡內(nèi)的移動節(jié)點一般需要依靠電池來提供能量,因此,節(jié)省功率將使自組網(wǎng)技術(shù)中一個需要高度重視的問題。 8、有限的安全性 機會網(wǎng)絡由于采用分布式控制、無中心、臨時組織等原因,它比一般的無線網(wǎng)絡更易受到安全方面的威脅。 2.4 機會網(wǎng)絡節(jié)點移動模型 節(jié)點移動模型描述了節(jié)點的移動模式,包括位置、速度等特征的變化,廣泛應用于自組網(wǎng)協(xié)議性能的分析和評價,是自組織網(wǎng)絡的基礎研
18、究之一。傳統(tǒng)的MANET假設網(wǎng)絡是全連通的,節(jié)點的移動對路由層以上的協(xié)議是“屏蔽”的。因此一般從網(wǎng)絡拓撲角度去分析移動模型對協(xié)議性能的影響,如拓撲連通率、節(jié)點連通度等,而機會網(wǎng)絡中的移動模型研究是以刻畫節(jié)點相遇特征為核心的。這是因為在機會網(wǎng)絡中的數(shù)據(jù)傳輸依賴于節(jié)點移動帶來的相遇機會,而節(jié)點的相遇概率和相遇時間分布是由節(jié)點的移動模型決定的。因此,相比于傳統(tǒng)的MANET,移動模型對機會網(wǎng)絡研究更加重要。 2.4.1 獨立同分布的理論移動模型 許多學者研究了3個經(jīng)典的獨立同分布移動模:Random Way Point[8](RWP) Random Walk(RW)和Random Directi
19、on[9](RD)。這些模型下的節(jié)點相遇特征可用兩個參數(shù)來刻畫:相遇時間(meeting time,簡稱MT)和相遇間隔時間(inter meeting time,簡稱IMT)。MT 是指兩個節(jié)點從靜止開始到第一次相遇(進入通信范圍)經(jīng)過的時間間隔,而IMT 是指兩個節(jié)點前后兩次相遇的時間間隔。文獻[9]都分別從不同的角度證明了上述3個移動模型的節(jié)點期望相遇時間(expected meeting time)服從指數(shù)分布或其尾部服從指數(shù)分布,并基于此分析了多種路由協(xié)議的延時性能。文獻[10]推導出RW模型下期望相遇間隔時間的分布也服從指數(shù)分布,而文獻[11]推導了RD模型和RWP模型下的期望相遇
20、間隔時間分布,并證明了RWP和RD模型下相遇時間和相遇間隔時間的尾部分布是無記憶的。 2.4.2 基于統(tǒng)計的實際移動模型 除了從理論來推導以外,一些研究人員還利用統(tǒng)計方法,通過收集實際環(huán)境中節(jié)點的運動軌跡來研究節(jié)點的移動特征。MIT 的Reality Mining項目[12]記錄了MIT校園中100個攜帶藍牙智能手機的學生和職工為期9個月的移動軌跡和相遇數(shù)據(jù);UCSD 的Wireless Topology Discovery[13]收集了11周內(nèi)300個無線PDA與Wi-Fi接入點的相遇數(shù)據(jù);劍橋大學的Haggle項目[14]則記錄了若干個帶有藍牙接口的iMote設備在校園的相遇情況。此
21、外,他們還在INFOCOM參會期間進行了類似的實驗;UMass研究小組[15]收集并分析了由公交車上的Wi-Fi節(jié)點組成的機會網(wǎng)絡DieselNet實際運行中的相遇規(guī)律。文獻[2]通過分析文獻[13]中的數(shù)據(jù)集發(fā)現(xiàn),實際節(jié)點的移動具有社區(qū)特性,節(jié)點相遇時間服從近似的冪律分布,而不是根據(jù)經(jīng)典移動模型推導出的指數(shù)分布,這些成果證實了傳統(tǒng)的移動模型并不一定適用于實際節(jié)點的移動特征,但研究人員在對于使用何種分布的移動模型問題上一直存在爭議。文獻[16]試圖統(tǒng)一這兩種類型的移動模型,作者從理論上推導出在一個有限邊界的移動空間中,節(jié)點相遇間隔時間服從指數(shù)分布,如果去掉有限邊界的條件,按照RW模型移動的節(jié)點
22、相遇間隔就與統(tǒng)計觀察到的結(jié)果相一致,服從近似冪律分布。 2.4.3 基于社區(qū)的移動模型 人所攜帶設備組成的網(wǎng)絡是機會網(wǎng)絡的一個主要應用,探索適用于這類場景且便于數(shù)學分析的移動模型機會網(wǎng)絡研究的一個重點。基于由人組成的機會網(wǎng)絡節(jié)點移動實際表現(xiàn)出的社區(qū)特性,一些研究人員提出了基于社區(qū)的移動模型(community based model)。該模型下的節(jié)點并不是隨機選取移動位置,而是考慮了3種情況來決策下一步移動位置:1)節(jié)點偏好,節(jié)點比其他節(jié)點更傾向于去往某個特定位置或遇到特定節(jié)點;;2)節(jié)點異構(gòu)性:某些節(jié)點能夠到達所有位置,遇到所有其他節(jié)點;3)行為時變性:節(jié)點移動隨著時間變化。Musol
23、esi等人[17]結(jié)合社會網(wǎng)絡理論提出了一種基于社區(qū)的移動模型。該模型根據(jù)節(jié)點之間聯(lián)系的緊密程度,將節(jié)點分布在多個在不同區(qū)域的社區(qū),然后計算不同社區(qū)對每個節(jié)點的吸引力,并以此確定節(jié)點是否移動以及朝哪個目標區(qū)域移動。Spyropoulos 等人[18,19]提出了時變的社區(qū)移動模型,每個節(jié)點的工作周期由正常移動周期和集中移動周期組成,每個周期內(nèi),節(jié)點隨機選擇一個社區(qū)作為它的本地社區(qū)。節(jié)點在每個周期都有兩種移動狀態(tài),Local epoch和Roaming epoch。前者是選擇在本地社區(qū)內(nèi)移動,后者是在其他地方漫游。節(jié)點在兩個狀態(tài)之間以一定的概率來切換,形成一個馬爾可夫鏈,概率大小由所處的移動周期
24、來確定。例如,在集中移動周期內(nèi),節(jié)點訪問本地社區(qū)的概率較高。 2.5 網(wǎng)絡編碼的概念思想 在傳統(tǒng)網(wǎng)絡中,結(jié)點僅對接收的數(shù)據(jù)進行存儲和轉(zhuǎn)發(fā),難以達到網(wǎng)絡傳輸?shù)淖畲笸掏铝亢蛶捓寐?,若?shù)據(jù)傳輸路徑出現(xiàn)瓶頸鏈路,則網(wǎng)絡數(shù)據(jù)傳輸性能將受限于瓶頸鏈路。對此,在網(wǎng)絡中引入網(wǎng)絡編碼技術(shù),增加結(jié)點對數(shù)據(jù)的編碼運算功能,節(jié)約網(wǎng)絡鏈路的帶寬資源,減小網(wǎng)絡數(shù)據(jù)傳輸中瓶頸鏈路的影響。 網(wǎng)絡編碼(network coding)是一種融合編碼和路由的信息交換技術(shù),在傳統(tǒng)存儲轉(zhuǎn)發(fā)的路由方法基礎上,通過允許對接收的多個數(shù)據(jù)包進行編碼信息融合,增加單次傳輸?shù)男畔⒘?,提高網(wǎng)絡整體性能。Ahlswede等人于2000年提
25、出了網(wǎng)絡編碼概念,指出對組播網(wǎng)絡中的某些節(jié)點附加額外的編碼操作能使源與組播成員間達到最大流最小割心的組播速率。網(wǎng)絡編碼一經(jīng)提出便引起了國際學術(shù)界的廣泛關(guān)注,其理論和應用已成為通信領(lǐng)域研究的新熱點.網(wǎng)絡編碼在提高網(wǎng)絡吞吐量、改善負載均衡、減小傳輸延遲、節(jié)省節(jié)點能耗、增強網(wǎng)絡魯棒性等方面均顯示出其優(yōu)越性,可廣泛應用于Ad Hoe網(wǎng)絡,傳感器網(wǎng)絡、P2P內(nèi)容分發(fā)、分布式文件存儲和網(wǎng)絡安全等領(lǐng)域。經(jīng)過幾年的發(fā)展,網(wǎng)絡編碼的理論研究已取得重要進展,在應用基礎和工程實踐方面的研究正在全方位展開。網(wǎng)絡編碼已成為一項融合信息論、代數(shù)學、圖論、網(wǎng)絡流理論和優(yōu)化理論等多學科的交叉技術(shù),且日益引起更多研究者的關(guān)注,
26、其對現(xiàn)有的網(wǎng)絡體系結(jié)構(gòu)、協(xié)議設計方法、信息交換方式和網(wǎng)絡管理模式帶來了革命性的變化。 網(wǎng)絡編碼的基本思想是使網(wǎng)絡中的節(jié)點不僅具有存儲轉(zhuǎn)發(fā)的功能,他們還能夠打若干個待轉(zhuǎn)發(fā)的數(shù)據(jù)包進行編碼壓縮成一個數(shù)據(jù)包,然后轉(zhuǎn)發(fā)給相應的接收節(jié)點,并且以足夠大的概率保證它的接收節(jié)點能夠順利地解碼恢復出原始的數(shù)據(jù)包,從而減少傳輸次數(shù),提高網(wǎng)絡吞吐量,降低網(wǎng)絡延遲。 以一個簡單的具代表性的蝴蝶網(wǎng)絡來描述網(wǎng)絡編碼的思想,一下均假設每條鏈路單位時間只能傳輸單位bit的數(shù)據(jù)數(shù)據(jù)信息量。 圖2.3和圖2.4中分別是利用網(wǎng)絡編碼前后的網(wǎng)絡傳輸狀態(tài),該網(wǎng)絡有一個源節(jié)點S,兩個端節(jié)點Y,Z以及其余4個T,W,U,X是四個中轉(zhuǎn)
27、節(jié)點。在圖2.2中,b1和b2都是源s向端節(jié)點y和x發(fā)出的兩個單位bit的信息,當b1和b2到達w節(jié)點時,由于一次只能處理一個單位的信息,所以W只能選擇發(fā)送其中之一,而另一個則必須送入等待隊列,因此,要使Y和Z這兩個目的節(jié)點都要收到這兩個信息,則W必須至少傳送兩次;圖2.3表示的是網(wǎng)絡編碼方法,節(jié)點W對輸入的信息進行網(wǎng)絡編碼操作(“+”表示模二加),然后將操作結(jié)果 b1 + b2(稱為編碼信息)發(fā)送至輸出鏈路(W,X),然后又通過鏈路(X,Y)和(X,Z),最終傳送給信宿 Y 和 Z。當信宿 Y 收到 b1 和 b1 + b2后,通過逆過程的譯碼操作 b1 + (b 1 + b 2)就能恢復出
28、信源 S 發(fā)出的 b2,這樣使得信宿 Y 同時收到了 b1 和 b2。按照同樣的方式,信宿 Z 也可恢復出信源發(fā)出的 b1(通過譯碼操作b 2 + (b 1 + b2))而同時收到 b1 和 b2。也就是說,基于網(wǎng)絡編碼的數(shù)據(jù)分發(fā)模式實現(xiàn)了該組播的理論傳輸容量??梢?,與傳統(tǒng)的路由傳輸方式相比,網(wǎng)絡編碼提升了網(wǎng)絡的吞吐量。 圖2.2 網(wǎng)絡結(jié)構(gòu) 圖2.3 普通的存儲轉(zhuǎn)發(fā) 圖2.4 運用網(wǎng)絡編碼 從上述實例可以看出,基于網(wǎng)絡編碼的數(shù)據(jù)分發(fā)的具體實施過程是:具備編碼條件的中間節(jié)點(比如該節(jié)點的入度至少為 2,如圖2.4中的節(jié)點 W 就具備編碼條件,節(jié)點 T,U 和 X 等則
29、不具備編碼條件,只能執(zhí)行存儲和轉(zhuǎn)發(fā)操作)對接收到的數(shù)據(jù)信息按照一定方式的處理(編碼),然后傳輸給下一級的網(wǎng)絡節(jié)點,收到信息的下一級節(jié)點如果具備編碼條件,又對其接收的信息按照同樣的方式進行處理和傳輸,如此反復,直到所有經(jīng)過處理后的信息都匯聚到信宿節(jié)點為止。最后,在信宿節(jié)點,通過逆過程的操作(譯碼),即可譯出信源發(fā)出的原始信息。 節(jié)點對傳輸?shù)男畔⑦M行如何處理和操作,屬于網(wǎng)絡編碼的碼構(gòu)造問題。如果節(jié)點對傳輸?shù)男畔⑦M行線性操作,則稱為線性網(wǎng)絡編碼;否則稱為非線性網(wǎng)絡編碼(Non-linear Network Coding)。如果網(wǎng)絡節(jié)點對信息進行操作的系數(shù)是隨機選取的,則稱為隨機網(wǎng)絡編碼;如果是通過
30、算法確定出來的,則稱為確定性網(wǎng)絡編碼。因此,線性網(wǎng)絡編碼是一種有效的網(wǎng)絡編碼碼構(gòu)造方式,當前具體的基于網(wǎng)絡編碼的數(shù)據(jù)分發(fā)系統(tǒng)中均采用線性網(wǎng)絡編碼作為其碼構(gòu)造方式。圖2.4 所示的節(jié)點W對輸入的信息 b1 和 b2 進行的模二加操作,就是一種最簡單的線性網(wǎng)絡編碼操作方式。 2.6 網(wǎng)絡編碼的應用 雖然網(wǎng)絡編碼提出的初衷是為改善組播傳輸網(wǎng)絡中數(shù)據(jù)分發(fā)系統(tǒng)的傳輸性能,但隨著研究的不斷深入,網(wǎng)絡編碼表現(xiàn)出了越來越廣泛的應用前景。目前,網(wǎng)絡編碼與覆蓋網(wǎng)絡(Overlay Network)和無線網(wǎng)絡(Wireless Network)等相結(jié)合的研究取得了重要的進展,被認為是網(wǎng)絡編碼最有可能被首先應用
31、的領(lǐng)域。 1、 數(shù)據(jù)分發(fā) 網(wǎng)絡編碼最直接的應用就是數(shù)據(jù)分發(fā),尤其是大范圍的數(shù)據(jù)分發(fā)。前面討論的基于組播網(wǎng)絡的數(shù)據(jù)分發(fā),均是網(wǎng)絡編碼最典型的應用。Chou 等最早將隨機網(wǎng)絡編碼付諸實施,構(gòu)建了一個可實用化的網(wǎng)絡編碼數(shù)據(jù)分發(fā)系統(tǒng),并在 Washington 大學的Rocketfuel 項目所獲得的幾個 ISP 骨干網(wǎng)絡拓撲上進行了仿真,取得了較好的傳輸性能。CodedStream 也是在網(wǎng)絡中較早進行了基于網(wǎng)絡編碼的數(shù)據(jù)分發(fā)的嘗試[71],CodedStream 是一個基于P2P模式的,面向高帶寬流媒體的數(shù)據(jù)分發(fā)系統(tǒng)。它按照編碼網(wǎng)絡分發(fā)數(shù)據(jù)的特性,在覆蓋網(wǎng)絡上構(gòu)建一個 K-redundant
32、路徑圖作為網(wǎng)絡拓撲,網(wǎng)絡編碼被用于圖中“瓶頸”處的數(shù)據(jù)分發(fā)。最初的 CodedStream 在自己的仿真平臺上進行了測試,其后續(xù)研究將整個思想進一步擴展,并利用 PlanetLab 平臺進行了更廣泛的測試。 網(wǎng)絡編碼與應用層組播(Application Layer Multicast,ALM)相結(jié)合也取得一定進展。應用層組播中的數(shù)據(jù)分發(fā)由客戶端主機實現(xiàn)的,端主機具有一定的計算能力,這為網(wǎng)絡編碼提供了良好的應用環(huán)境。而且,應用層組播利用的覆蓋網(wǎng)絡拓撲可以按需變化,這也恰好可以利用網(wǎng)絡編碼對動態(tài)網(wǎng)絡適應性強的優(yōu)勢。Y. Zhu 給出了一個基于網(wǎng)絡編碼的應用層組播的完整實現(xiàn)。通過對比測試,證明了基
33、于網(wǎng)絡編碼的應用層組播在網(wǎng)絡吞吐量、資源利用率等方面的性能要優(yōu)于網(wǎng)絡層組播和普通的應用層組播。但是在傳輸遲延和信息冗余等方面不夠理想。而且,大多數(shù)情況下,網(wǎng)絡編碼能將應用層組播的吞吐量提升一倍以上。但是,T. Nad等通過進一步的實驗證實,由于在執(zhí)行編碼和譯碼操作時需要一定的I/O和CPU消耗,基于網(wǎng)絡編碼的應用層組播的傳輸容量往往無法達到預期。 2、 無線網(wǎng)絡 由于無線鏈路的不可靠性和物理層廣播特性,應用網(wǎng)絡編碼,可以解決傳統(tǒng)路由、跨層設計等技術(shù)無法解決的問題。具體來說,網(wǎng)絡編碼除了提升無線網(wǎng)絡的網(wǎng)絡吞吐量,還可以減少數(shù)據(jù)包的傳播次數(shù),降低無線發(fā)送能耗。采用隨機網(wǎng)絡編碼,即使部分網(wǎng)絡節(jié)點
34、或鏈路失效,最終在目的節(jié)點仍然能恢復原始數(shù)據(jù),從而增強網(wǎng)絡的容錯性和魯棒性。此外,無需復雜的加密算法,采用網(wǎng)絡編碼就可以提高無線網(wǎng)絡的安全性等。文獻[20]對網(wǎng)絡編碼在無線自組織網(wǎng)絡(WirelessAd Hoc Networks)、無線傳感器網(wǎng)絡(Wireless Sensor Networks)和無線網(wǎng)狀網(wǎng)(Wireless Mesh Networks)中的應用進行了探討。 J. Yuan提出了一種利用網(wǎng)絡編碼來優(yōu)化信息流的路由方法[21],以此來提升Ad Hoc網(wǎng)絡中數(shù)據(jù)分發(fā)的效率。該方法基于一種在網(wǎng)絡層和物理層平衡鏈路帶寬供需的跨層優(yōu)化策略。Y.Wu等在Ad Hoc組播方面提出了應用
35、網(wǎng)絡編碼的最小化能量解決方法[22],使得傳輸每比特信息消耗的能量最小,以此來節(jié)省Ad Hoc網(wǎng)絡中數(shù)據(jù)分發(fā)的能耗。此外,還有一些學者對如何利用網(wǎng)絡編碼增加Ad Hoc傳輸?shù)聂敯粜詥栴}進行了研究,如Chen等研究在分布式天線系統(tǒng)和多入多出系統(tǒng)(DAS-MIMO)中,引入網(wǎng)絡編碼的概念,經(jīng)過理論推導和實驗仿真,證明了無論有無輔助天線,網(wǎng)絡編碼都能提高網(wǎng)絡的性能,尤其是減小系統(tǒng)丟包損耗。 相對于Ad Hoc網(wǎng)絡,無線傳感器網(wǎng)絡密度較大,移動性不強,通常運行在無人值守的惡劣甚至危險的遠程環(huán)境中,能源無法替代,設計有效的策略延長網(wǎng)絡的生命周期成為無線傳感器網(wǎng)絡的核心問題。麻省理工學院的Petrovi
36、c等人提出了一種結(jié)合網(wǎng)絡編碼的對無線信號不進行調(diào)制的策略[23],并證明:運用分布式隨機網(wǎng)絡編碼,未經(jīng)調(diào)制的無線信號能夠達到與經(jīng)過調(diào)制的無線信號一樣的吞吐量,這樣就能節(jié)省大量因為模擬器件進行調(diào)制而消耗的能量和降低節(jié)點的成本。傳感器網(wǎng)絡需要把節(jié)點資源整合起來,實現(xiàn)一個可靠和健壯的網(wǎng)絡,基于這種想法,文獻[35]提出了一種結(jié)合分布式源編碼和網(wǎng)絡編碼的優(yōu)化算法,目的是用來提高傳感器網(wǎng)絡的容錯性和可靠性,同時對分布式源編碼的壓縮效率和魯棒性進行了折中考慮。 Katti等提出的基于機會的網(wǎng)絡編碼方法(COPE)首次研究了網(wǎng)絡編碼在無線環(huán)境協(xié)議層面上的具體實現(xiàn)問題。在COPE協(xié)議中,每個節(jié)點對傳輸媒體進
37、行偵聽,獲得它的鄰居節(jié)點的狀態(tài)信息,決定進行編碼的機會,并在本地的FIFO緩存結(jié)構(gòu)內(nèi)進行編碼,然后進行基于機會的路由。COPE協(xié)議要求每個節(jié)點利用本地信息各自決定哪些數(shù)據(jù)包需要進行編碼以及如何進行編碼。靈活的設計使得即使在網(wǎng)絡交通需求未知或者網(wǎng)絡流量劇增、或者發(fā)送/接收方動態(tài)變化的情況下,COPE協(xié)議仍能有效的支持多路單播流。然而該協(xié)議需要節(jié)點存儲數(shù)據(jù)包并進行編碼,如果網(wǎng)絡出現(xiàn)擁塞,可能就會耗費較多的節(jié)點存儲空間。另外,文件共享是無線網(wǎng)狀網(wǎng)的一種典型應用,為了評估網(wǎng)絡編碼對該應用的影響,Hamra等[64]在理想化MAC協(xié)議基礎上開發(fā)了特定的仿真平臺,分別比較了服務時間等性能在節(jié)點個數(shù)、盲轉(zhuǎn)發(fā)
38、(Blind Forwarding)和選擇性轉(zhuǎn)發(fā)(Selective Forwarding)情況下的表現(xiàn)。實驗結(jié)果表明應用網(wǎng)絡編碼得到的改進雖然不如在有線網(wǎng)絡中顯著,但仍能在很大程度上提高吞吐量、縮短服務時間。 2.7 隨機線性網(wǎng)絡編碼的數(shù)據(jù)分發(fā) 隨機線性網(wǎng)絡編碼方法的核心思想是利用節(jié)點的運算能力,在發(fā)送節(jié)點線性編碼組合不同的信息包,在接收節(jié)點獲得足夠的線性編碼組合后,通過運算得到原始信息包,其可用性推廣了網(wǎng)絡編碼理論的應用范圍。 應用網(wǎng)絡編碼的理論成果,Gkantsidis 等給出了基于隨機網(wǎng)絡編碼的數(shù)據(jù)分發(fā)系統(tǒng)的原理模型(或稱概念模型),如圖2.5所示。假設Server節(jié)點(存放原
39、始文件的服務器)需分發(fā)某文件給 Peer A,首先 Server將該文件分割成 n 個文件塊(Block),即B1,B2,B3.....Bn,如果使用網(wǎng)絡編碼,則 Server節(jié)點從有限域中選擇n個系數(shù)C11,C12.....C1n構(gòu)成編碼向量(Encoding Vector)c1 =[C11,C12.....C1n ],并利用該向量對分割后的文件塊進行有限域中的線性運算。隨 后,Server節(jié)點將運算后的編碼信息E1 = B1 c 11+ B2 c12 + ....+ Bn c1n,分發(fā)給 Peer A 圖2.5 基于隨機線性網(wǎng)絡編碼的數(shù)據(jù)分發(fā)系統(tǒng)的原理模型 假設 Peer A 又下
40、載了另外一個編碼信息塊E2= B1 c 21+ B2 c22 + ....+ Bn c2n,該信息來自Server節(jié)點或其它鄰居節(jié)點,當Peer B對PeerA發(fā)出下載請求時,PeerA 按照上述同樣的方式在有限域中選擇系數(shù)c 1" , c 2",并對當前緩存的編碼信息塊 E1和 E2進行線性組合,將運算結(jié)果E = E 1c1 " + E2 c2"分發(fā)給Peer B。如果下游節(jié)點向 Peer B 請求數(shù)據(jù)包,則 Peer B按照同樣的規(guī)則將編碼后的數(shù)據(jù)信息分發(fā)給下游節(jié)點。對 Peer B收到的 E 而言,其對應的編碼向量為c1 c1 " + c2 c2"。 可見,采用網(wǎng)絡編碼,節(jié)點之間不再
41、傳輸原始的文件塊,而是編碼信息(塊)。 當某 Peer 接收到 n 個已編碼信息E1 ,E2... ,En后,則有: 公式(2.1) 如果公式2.1的系統(tǒng)轉(zhuǎn)移矩陣 C 滿秩,即各編碼向量之間線性獨立,則能通過求解矩陣方程[B1,B1.....Bn ]=C-1[E1,E2.....En ]T譯出各原始文件塊B1,B1.....Bn ,并恢復出原始文件。由于采用隨機網(wǎng)絡編碼總能保證矩陣C以接近1的概率滿秩,基于隨機網(wǎng)絡編碼和圖2.5所示的原理模型,文獻[25]構(gòu)建了一種網(wǎng)絡編碼數(shù)據(jù)分發(fā)的原型系統(tǒng):Avalanche。在 Avala
42、nche 系統(tǒng)中,節(jié)點之間傳輸?shù)男畔⑹前凑丈鲜鲈韺υ嘉募K執(zhí)行隨機網(wǎng)絡編碼操作后的編碼信息。Avalanche 能克服基于存儲和轉(zhuǎn)發(fā)的數(shù)據(jù)分發(fā)系統(tǒng)(如 BitTorrent 等)的缺陷和不足,可以顯著減少節(jié)點平均下載時間,進一步提升數(shù)據(jù)分發(fā)系統(tǒng)的傳輸性能。 3 NS2仿真平臺 3.1 NS2簡介 NS2,即Network Simulator Version 2,是面向?qū)ο蟮?、離散事件驅(qū)動的網(wǎng)絡環(huán)境模擬器,主要用于解決網(wǎng)絡研究方面的問題。NS2提供了在無線或有線網(wǎng)絡上的TCP、路由、多播等多種協(xié)議的模擬。NS2—晝以來都在吸收全世界各地研究人員的成果,包括UCB、CMU笏大學和SU
43、N等公司的無線網(wǎng)絡方面的代碼。NS2足一個面向?qū)ο蟮木W(wǎng)絡桟擬工具,對以完整地模擬整個網(wǎng)絡壞境。NS2使用一整套C++類庫實現(xiàn)了大多數(shù)常見的網(wǎng)絡協(xié)議以及鏈路層模型,利用這些類的實例可以搭建起整個網(wǎng)絡的模型,而且包括具體的細節(jié)實現(xiàn)。 NS2使用兩種編程語言,OTcl(具有面向?qū)ο筇匦缘腡cl腳本程序設計語言)和C++,它底層的模擬引擎主要由C++編寫,同時利用麻省理工學院的面向?qū)ο蟮墓ぞ呙钫Z言OTcl作為模擬時的命令和配置接口語言。一方面,由于C++程序運行速度快,并且可以設計精確、復雜的算法,可以用于模擬各種網(wǎng)絡協(xié)議,適合于底層的實現(xiàn)。另一方面,具有面向?qū)ο筇匦缘腡cl腳本語言通過調(diào)用引擎中
44、各類的屬性、方法定義網(wǎng)絡的拓撲,配置數(shù)據(jù)源,目的端,建立連接,產(chǎn)生所有事件的時刻表,運行并跟蹤模擬結(jié)果,還可以對結(jié)果進行相應的統(tǒng)計處理或制圖,方便網(wǎng)絡研究者在短時間內(nèi)快速地開發(fā)和模擬出所需要的網(wǎng)絡壞境。 C++和OTcl兩種語言的對象和變量是通過TclCL關(guān)聯(lián)起來的,C++的類和對象為編譯類和編譯對象,而OTcl的類和對象為解釋類和解釋對象,TclCL是在OTcl基礎上的封裝。圖3.1是NS2架構(gòu)圖,描述了Tcl、OTcl和TclCL之間的關(guān)系。 圖3.1 NS2構(gòu)架圖 3.2 NS2的特點 1、抽象 NS模擬器在設計上能夠滿足網(wǎng)絡研究界在模擬方面的多種需。抽象NS具備不同程度
45、的抽象級別,不僅可以對細節(jié)進行模擬,也對以對不同層次的總體框架進行模擬。 2、仿真 NS提供了更加接近真實網(wǎng)絡的仿真環(huán)境,這是其他仿真軟件所不具備的。 3、場景生成 NS中自帶了流最場景生成文件和運動場景cbrgen生成文件setdest,讓使用更加方便,當然也支持用戶按照自己的實際需要編寫場景及運動文件腳本。 4、可視化 通過其中的網(wǎng)絡動畫工具Nam,以動畫的方式實現(xiàn)網(wǎng)絡仿真的全過程,讓整個 運動過程一目了然。 5、可擴充性 可擴充性表現(xiàn)在可以方便的添加新協(xié)議,讓使用范圍更加廣泛。 3.3 NS2仿真一般流程 進行網(wǎng)絡仿真前,首先分析仿真涉及哪個層次,NS仿真分兩個層次
46、:一個是基于 OTcl編程的層次。利用NS已有的網(wǎng)絡元素實現(xiàn)仿真,無需修改NS本身, 只需編寫OTcl腳本。另一個是基于C++和OTcl編程的層次。如果NS中沒有所需的網(wǎng)絡元素,則需要對NS進行擴展,添加所需網(wǎng)絡元素,即添加新的C++和 OTcl類,編寫新的OTcl腳木。 假設用戶已經(jīng)完成了對NS的擴展,或者NS所包含的構(gòu)件已經(jīng)滿足了要求, 那么進打一次仿真的步驟大致如下: 1、開始編寫OTcl腳本。首先配置模擬網(wǎng)絡拓撲結(jié)構(gòu),此時可以確定鏈路的基本特性,如延遲、帶寬和丟失策略等。 2、建立協(xié)議代理,包栝端設備的協(xié)議綁定和通信業(yè)務量模型的建立。 3、配置業(yè)務量模型的參數(shù),從而確定網(wǎng)絡上的
47、業(yè)務量分布。 4、設置Trace對象。NS通過Trace文件來保存整個模擬過程。仿真完后, 用戶可以對Trace文件進行分析研究。 5、編寫其他的輔助過程,設定模擬結(jié)束時間,至此OTcl腳本編寫完成。 6、用NS解釋執(zhí)行剛才編寫的OTcl腳本。 7、對Trace文件進行分析,得出有用的數(shù)據(jù)。 8、調(diào)整配置拓撲結(jié)構(gòu)和業(yè)務量模型,重新進行上述模擬過程。 下面是仿真的流程圖: 圖3.2 NS2進行仿真的基本流程圖 3.4 NS2仿真的基本組件和使用 3.4.1 節(jié)點的結(jié)構(gòu)和配置 無線網(wǎng)絡中的節(jié)點是可移動的節(jié)點,擁有很多屬性,如果使用NS研究無線網(wǎng)絡需要在無線節(jié)點創(chuàng)建之前對
48、節(jié)點的各項屬性進行配置。 節(jié)點的屬性配置使用Simulator 類的noed-config{} 方法,該方法采用可變的模塊化結(jié)構(gòu),以實現(xiàn)不同類型的節(jié)點在相同的節(jié)點基類下定義。配置好屬性以后再創(chuàng)建節(jié)點,這是創(chuàng)建節(jié)點的基本方式,如需創(chuàng)建不同的節(jié)點則重新配置屬性以后再創(chuàng)建。下面是使用node-config{} 配置一個節(jié)點屬性的例子。 set ns [new Simulator] #建立一個模擬實例 set topo [new Topography] #建立一個拓撲圖對象 #配置無線節(jié)點 $ns node-config -adhocRouting AODV \ #無線路由協(xié)議是
49、AODV協(xié)議 -llType LL \ #邏輯鏈路層類型是LL層 -macType Mac/802.11 \ #MAC層協(xié)議采用802.11協(xié)議 -ifqType Queue/DropTail/PriQueue \#接口隊列類型是IFQ隊列 -ifqLen 50 \ #網(wǎng)絡接口隊列的大小是50 -antType Antenna/QmniAntenna \ #天線模型是全向天線 -propType Propagation/TwoRayGround \ #無線傳輸模型是TwoRayGround -phy
50、Type Phy/WirelessPhy \ #網(wǎng)絡接口類型是無線物理層 -channel Channel/WirelessChannel \ #物理信道類型無線信道 -topoInstance $topo \ #設置拓撲實例 -agentTrace ON \ #開啟代理層trace -routerTrace ON \ #開啟路由層trace -macTrace OFF \ #關(guān)閉mac層的trace -movementTrace OFF #關(guān)閉移動節(jié)點的移動記錄 設置完節(jié)點的屬
51、性之后,使用node-congfig{} 方法的 -reset 選項可以將節(jié)點的所有屬性的參數(shù)值設置為默認值: $ns node-config -reset 3.4.2 數(shù)據(jù)流生成工具cbrgen NS2自帶有交通場景生成器,名稱為cbrgen.tcl。數(shù)據(jù)流生成工具cbrgen 用來生成傳輸負載,可以產(chǎn)生移動節(jié)點之間的TCP 流和CBR 流。該工具所在的目錄為~ns/indep-utils/cmu-scen-gen/,使用方法如下: ns cbrgen.tcl [-type cbr/tcp] [-nn nodes] [-seed seed] [-mc connections] [-
52、rate rate] 其中各種參數(shù)的含義如下: -type:選擇tcp表示生成tcp流,選擇cbr表示生成cbr流; -nn:nodes表示節(jié)點數(shù)目; -seed:seed表示指定隨機種子; -mc:connections表示節(jié)點間的最大連接數(shù); -rate:rate表示每個連接間的數(shù)據(jù)流的速率; 在使用cbrgen設置節(jié)點數(shù)n時,節(jié)點的編號是從node_(1)到node_(n)。 3.4.3 拓撲運動場景生成工具setdest 拓撲運動場景生成工具setdest是用來隨機生成無線網(wǎng)所需的節(jié)點運動場景,也即一定數(shù)量的節(jié)點在某一固定大小的矩形區(qū)域中隨機移動。生成setdest
53、的命令的源代碼文件在~ns/indep-utils/cmu-scen-gen/setdest文件夾下,使用前需執(zhí)行make命令以生成可執(zhí)行文件。
setdest的使用方法如下:
setdest -v <1> -n < nodes > -p
54、-t
55、e為constant/uniform; -t:simulation_time指定了模擬場景的持續(xù)時間,單位為s; -x:max_x指定了節(jié)點運動區(qū)域的長度,單位為m; -y:max_y指定了節(jié)點運動區(qū)域的寬度,單位為m; 版本不用使用的參數(shù)也有區(qū)別,需按要求使用。執(zhí)行make命令生成可執(zhí)行文件以后,若沒有將setdest命令添加到linux系統(tǒng)環(huán)境變量中,則應在使用setdest時需要指定路徑全稱或在~ns/indep-utils/cmu-scen-gen/setdest目錄下使用,而且要在setdest前面加“./”。cbrgen和setdest產(chǎn)生的文件均可以采用source命令加
56、入另一個Otcl腳本中,注意產(chǎn)生的文件用到了諸如node_數(shù)組變量和god_變量,需要在Otcl腳本中預先建立。
3.4.4 簡單動畫顯示工具NAM
NAM(Network Animater)的功能是根據(jù)網(wǎng)絡模擬軟件或真實環(huán)境的特定格式的Trace輸出文件來運行動畫,以觀測網(wǎng)絡模擬中的Trace和數(shù)據(jù)分組流向。
NAM使用方法如下:
nam -g 57、name> -c 58、)時,緩沖區(qū)所能存儲的活動對象的最大值(size);
-f: 演示啟動時所載入的文件;
-r:演示速度,默認是2ms(0.002);
-a:創(chuàng)建一個獨立的nam實例;
-p:打印Trace的文件格式;
-S:開啟X同步以便于圖形的調(diào)試,僅限于有X環(huán)境的UNIX系統(tǒng)。
OTcl腳本中可以對節(jié)點、鏈路、隊列、和Agent等對象進行動畫顯示方面的屬性控制,nam動畫顯示的命令如下:
1、 節(jié)點
$node color [color] #設定節(jié)點的顏色
$node shape [shape] #設定節(jié)點的形狀
$node label [label] #設定節(jié)點的名稱
59、$node label-color [color] #設定節(jié)點顯示名稱的顏色
$node label-at [ldirection] #設定節(jié)點名稱的顯示位置
2、鏈路和隊列
$ns duplex-link-op 60、3、 Agent
$ns attach-agent $node $Agent
$ns add-agent-trace $Agent AgentName
使用上面的命令就可以使想要顯示的Agent以Agentname出現(xiàn)在節(jié)點的附近的方框內(nèi),這樣可以再nam顯示中看出摸個節(jié)點上綁定了哪些Agent。
3.4.5 Trace文件格式
Trace文件是在模擬過程中生成的記錄模擬每一個分組調(diào)度事件的文件,一次模擬生成的信息基本上全體現(xiàn)在Trace文件中。Trace文件包含了很多有用的可供分析的數(shù)據(jù),我們需要從中篩選出我們關(guān)注的數(shù)據(jù)進行分析。
1、 有線網(wǎng)絡的Trace格式
有線網(wǎng)絡的T 61、race格式中每條記錄包含了如下截圖顯示12項內(nèi)容:
圖3.3 有線網(wǎng)絡的Trace部分截圖內(nèi)容
現(xiàn)在來分析有線網(wǎng)絡的Trace格式的一條記錄中每一項的信息:
(1) Event:發(fā)生事件的類型有+、-、r和d等4種,分別表示分組進入鏈路隊列、分組離開鏈路隊列、目的節(jié)點接收分組以及隊列丟棄分組等含義。
(2) Time:事件發(fā)生的時間。
(3) From node:發(fā)送分組的源節(jié)點id。
(4) To node:接收分組的目的節(jié)點id。
(5) Pkt type:分組的類型。
(6) Pkt size:分組的大小。
(7) Flags:標志項。
(8) Fid:IPv6 62、定義的流標示符。
(9) Src addr:表示分組的來源端,例如2.0表示節(jié)點2的0號端口。
(10) Dst addr:表示分組的目的端,例如3.0表示節(jié)點3的0號端口。
(11) Seq num: 分組的序列號。
(12) Pkt id:分組的唯一標示符。
2、 無線網(wǎng)絡的Trace格式
圖3.4 無線網(wǎng)絡的Trace部分截圖內(nèi)容
無線網(wǎng)絡的Trace格式的記錄的每一項信息:
(1) Event:事件的類型有是s、r、f和d 4種,分別表示分組的發(fā)送、接收、轉(zhuǎn)發(fā)、丟棄事件。
(2) Time:事件發(fā)生的時間。
(3) Node:事件發(fā)生的節(jié)點id。
(4) La 63、yer:發(fā)生事件所在的層。
(5) Flags:標志項。
(6) Pkt id:分組的id。
(7) Pkt type:分組的類型。
(8) Pkt size:分組的大小。
(9) [MAC Layer Info]: MAC層的信息。
(10) ---:分隔符。
(11) [IP Info]: IP層的信息。
3.5 性能參數(shù)分析模型
1、 傳輸時延
網(wǎng)絡的傳輸時延D(End-to-End Delay)定義為源節(jié)點發(fā)送出一個分組到目的節(jié)點接收到該分組之間的時間差,它包括電(或光)信號在物理介質(zhì)中的傳播延時和數(shù)據(jù)在網(wǎng)絡中的處理延時,也即指網(wǎng)絡中數(shù)據(jù)傳輸所用的時間。在很多網(wǎng)絡 64、應用中,比較關(guān)注分組的時延大小,要求分組的時延不能太大,例如實時的視頻會議、網(wǎng)絡電話等。
結(jié)合NS的Trace文件,以分組發(fā)送和到達接收之間的時間間隔來計算傳輸延時,計算方式如下:
D(i)=RT(i)-S(i)T 公式(3.1)式中,D(i)表示第i個分組的傳輸時延,RT(i)表示第i個分組的接收時間,ST(i)表示第i個分組的發(fā)送時間。
在分析網(wǎng)絡的傳輸時延時,一般都統(tǒng)計平均傳輸時延
公式(3.2)
即統(tǒng)計Trace腳本中N個分組的平均傳 65、輸時延。
2、 網(wǎng)絡吞吐量
網(wǎng)絡的吞吐量(Throughput)TH是網(wǎng)絡性能的一個重要參數(shù),是指在不丟包的情況下單位時間內(nèi)節(jié)點可以接收的數(shù)據(jù)量,單位是字節(jié)每秒或比特每秒。端到端的吞吐量與網(wǎng)絡狀況有很大關(guān)系,為了測試端到端的最大吞吐量,應該逐漸增大發(fā)送端的數(shù)據(jù)發(fā)送速率,然后計算接收端的吞吐量,直至吞吐量達到最大。
在分析Trace文件時,使用以下的計算方式計算吞吐量:
公式(3.3)
上式中:TB(i)是指到底i個分組被目的節(jié)點接收時已經(jīng)傳輸?shù)臄?shù)據(jù)總量,RT(i)是第i個包的接收時間。i>m,表示計算從第m個分組到底i個分組的吞吐量,特別的,若取m=1 則是計算平均吞吐量 66、。
3.6 Trace文件分析處理
3.6.1 gawk處理文檔的過程
gawk是一種對文檔資料具有很強處理能力的程序語言,簡短的幾句代碼就可以完成對文檔的修改、對比、抽取,相對其他的語言來說,其對文檔資料的處理方面具有很大的優(yōu)勢。
gawk語言將說要處理的文檔分解為一條條的記錄(一般一條記錄是數(shù)據(jù)文件的一行數(shù)據(jù)),每條記錄默認以空格TAB鍵分隔為一個個字段。例如,Trace文件的每一行作為一個記錄,取實際Ttrace文件的記錄如下:
圖3.5 仿真實驗Trace文件部分截圖內(nèi)容
在對記錄的處理過程中,一般都要對記錄的字段進行操作。對記錄中字段的提取可以采用字段變量“$1,$2,$3.....”等,gawk讀入記錄后已自動把字段值存入字段變量。需要注意的是“$0”表示所讀取的整條記錄。表3.1是對圖3.5 Trace文件的記錄進行分解和提取的例子。
表3.1 對Trace文件記錄的分解和提取
一
二
三
四
五
六
七
八
九
十
十一
r
47.355426347
_2_
AGT
---
251
cbr
532
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學下冊6整理和復習2圖形與幾何第7課時圖形的位置練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習2圖形與幾何第1課時圖形的認識與測量1平面圖形的認識練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認識作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊2百分數(shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊1負數(shù)第1課時負數(shù)的初步認識作業(yè)課件新人教版
- 2023年六年級數(shù)學上冊期末復習考前模擬期末模擬訓練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊易錯清單十二課件新人教版
- 標準工時講義
- 2021年一年級語文上冊第六單元知識要點習題課件新人教版
- 2022春一年級語文下冊課文5識字測評習題課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習4數(shù)學思考第1課時數(shù)學思考1練習課件新人教版