




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中北大學(xué)20**屆畢業(yè)設(shè)計(jì)說(shuō)明書(shū)第72頁(yè)共72頁(yè)1引言1.1研究問(wèn)題現(xiàn)狀近年來(lái),無(wú)線通信技術(shù)得到了飛速的發(fā)展,新技術(shù)不斷出現(xiàn),其中移動(dòng)通信系統(tǒng)的3G技術(shù)已經(jīng)進(jìn)入應(yīng)用普及階段,并朝第四代通信系統(tǒng)方向演進(jìn)?!秶?guó)家中長(zhǎng)期科學(xué)和技術(shù)發(fā)展規(guī)劃綱要》(2006一2020)中已經(jīng)明確提出了未來(lái)通信領(lǐng)域的競(jìng)爭(zhēng)將集中反映在特殊環(huán)境和新興應(yīng)用領(lǐng)域中的通信網(wǎng)絡(luò)能力及通信技術(shù)的競(jìng)爭(zhēng)上[1]。其中新興應(yīng)用領(lǐng)域涉及到的移動(dòng)網(wǎng)絡(luò)技術(shù)更是被作為前沿技術(shù)中的重點(diǎn)。目前,移動(dòng)通信的快速發(fā)展使得移動(dòng)網(wǎng)絡(luò)帶寬逐漸增大,移動(dòng)應(yīng)用不斷豐富,移動(dòng)終端的處理能力越來(lái)越強(qiáng)。為了適應(yīng)不同的應(yīng)用需求,各具特色的網(wǎng)絡(luò)結(jié)構(gòu)和無(wú)線網(wǎng)絡(luò)技術(shù)不斷涌現(xiàn),包括無(wú)線個(gè)域網(wǎng)(如IEEE802.15)、無(wú)線局域網(wǎng)(如IEEE802.lla/b/g/i/n)、無(wú)線城域網(wǎng)(如802.16、802.20)、無(wú)線移動(dòng)廣域網(wǎng)(如2G、3G)、衛(wèi)星網(wǎng)絡(luò),以及無(wú)線自組織(AdHoc)網(wǎng)絡(luò)、無(wú)線傳感器網(wǎng)絡(luò)(WirelessSensorNetwork,WSN)等等。而WIFi、WIMax、UWB等無(wú)線接入網(wǎng)絡(luò)和GPRS、B3G、UMTS等蜂窩移動(dòng)網(wǎng)絡(luò)等基礎(chǔ)設(shè)施與技術(shù)的完善為移動(dòng)應(yīng)用提供了在任何時(shí)間、任何地點(diǎn)訪問(wèn)所有網(wǎng)絡(luò)服務(wù)的可能性。在上述的各種網(wǎng)絡(luò)發(fā)展后,一種節(jié)點(diǎn)移動(dòng)范圍更大,網(wǎng)絡(luò)大多數(shù)都是不連通的新型網(wǎng)絡(luò)出現(xiàn)了,這種類(lèi)型的網(wǎng)絡(luò)被稱(chēng)為機(jī)會(huì)網(wǎng)絡(luò),機(jī)會(huì)網(wǎng)絡(luò)是一種不需要源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間存在完整路徑,利用節(jié)點(diǎn)移動(dòng)帶來(lái)的相遇機(jī)會(huì)實(shí)現(xiàn)網(wǎng)絡(luò)通信的自組織網(wǎng)絡(luò)。經(jīng)過(guò)近幾年的發(fā)展,機(jī)會(huì)網(wǎng)絡(luò)技術(shù)研究與應(yīng)用已經(jīng)取得了一定的進(jìn)展,但是,總體而言目前相關(guān)研究還處于一個(gè)剛起步的初級(jí)階段。隨著移動(dòng)應(yīng)用業(yè)務(wù)的增加以及機(jī)會(huì)網(wǎng)絡(luò)商業(yè)化,機(jī)會(huì)網(wǎng)絡(luò)技術(shù)的全面應(yīng)用與深入仍然要解決很多極具挑戰(zhàn)性的問(wèn)題,如復(fù)雜環(huán)境下的路由、數(shù)據(jù)時(shí)延與網(wǎng)絡(luò)開(kāi)銷(xiāo)均衡問(wèn)題、移動(dòng)狀態(tài)下網(wǎng)絡(luò)可靠性以及安全問(wèn)題等等。同時(shí)在一些領(lǐng)域,機(jī)會(huì)網(wǎng)絡(luò)的相關(guān)技術(shù)標(biāo)準(zhǔn)尚未形成,尤其在國(guó)內(nèi)對(duì)于這類(lèi)高延遲的特殊通信網(wǎng)絡(luò)的研究才剛剛起步。規(guī)劃信息化發(fā)展戰(zhàn)略中不僅強(qiáng)調(diào)了信息產(chǎn)業(yè)以及信息技術(shù)的發(fā)展,同時(shí)也提出了將寬帶無(wú)線移動(dòng)通信、新興及特殊應(yīng)用領(lǐng)域的網(wǎng)絡(luò)通信等核心關(guān)鍵技術(shù)研究作為我國(guó)信息技術(shù)的主要發(fā)展方向之一。因此,對(duì)機(jī)會(huì)網(wǎng)絡(luò)數(shù)據(jù)分發(fā)展開(kāi)研究將為正確理解機(jī)會(huì)網(wǎng)絡(luò)拓?fù)渑c數(shù)據(jù)傳輸特點(diǎn)提供可行性依據(jù),有助于推進(jìn)現(xiàn)有關(guān)鍵技術(shù)的可擴(kuò)展性,并對(duì)提高機(jī)會(huì)網(wǎng)絡(luò)數(shù)據(jù)傳輸可靠性,探索節(jié)點(diǎn)移動(dòng)模型對(duì)機(jī)會(huì)網(wǎng)絡(luò)服務(wù)性能保障的影響,推動(dòng)相關(guān)技術(shù)的深入研究有重要現(xiàn)實(shí)的意義。2000年,R.Ahlswede等人基于網(wǎng)絡(luò)信息流的概念提出了網(wǎng)絡(luò)編碼的思想,通過(guò)允許中間節(jié)點(diǎn)既實(shí)現(xiàn)路由功能又實(shí)現(xiàn)編碼功能,達(dá)到組播的最大流量[2]。為使得網(wǎng)絡(luò)編碼具有實(shí)際可用性,Li等人提出了線性網(wǎng)絡(luò)編碼的概念,證實(shí)節(jié)點(diǎn)進(jìn)行線性網(wǎng)絡(luò)編碼運(yùn)算,具有可行性,能夠達(dá)到最大流傳輸理論極限[3]。Ho等人推廣了這一概念,提出了有限域下隨機(jī)線性網(wǎng)絡(luò)編碼的思想,并證實(shí)其有效性[4]。之后,隨機(jī)線性網(wǎng)絡(luò)編碼被應(yīng)用于各個(gè)方面的研究,用于提高網(wǎng)絡(luò)吞吐量、能量利用效率。網(wǎng)絡(luò)編碼徹底改變了通信網(wǎng)絡(luò)中信息處理和信息傳輸?shù)姆绞?,被認(rèn)為是進(jìn)入21世紀(jì)后信息處理和信息傳輸研究領(lǐng)域上最重要的理論成果之一。網(wǎng)絡(luò)編碼的核心思想是允許通信網(wǎng)絡(luò)中的節(jié)點(diǎn)對(duì)傳輸?shù)男畔⑦M(jìn)行操作和處理(如有限域中的運(yùn)算等),而不再局限于存儲(chǔ)與轉(zhuǎn)發(fā)。與傳統(tǒng)的基于存儲(chǔ)和轉(zhuǎn)發(fā)的路由傳輸機(jī)制相比,網(wǎng)絡(luò)編碼能顯著改善數(shù)據(jù)分發(fā)系統(tǒng)性能,如提升網(wǎng)絡(luò)吞吐量,節(jié)約傳輸帶寬和均衡網(wǎng)絡(luò)負(fù)載等。網(wǎng)絡(luò)編碼具有重要的理論價(jià)值和廣泛的應(yīng)用前景,其研究已經(jīng)引起了學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注和高度重視。國(guó)際知名大學(xué)、科研機(jī)構(gòu)和公司,如普林斯頓大學(xué)、麻省理工學(xué)院(MIT)、貝爾實(shí)驗(yàn)室(BellLab)、AT&T的香農(nóng)信息實(shí)驗(yàn)室和微軟公司(Microsoft)等都積極投入對(duì)網(wǎng)絡(luò)編碼的研究,并取得了一些重要的研究成果。我國(guó)的香港中文大學(xué)(CUHK)、清華大學(xué)、中國(guó)科學(xué)技術(shù)大學(xué)、西安電子科技大學(xué)和南京大學(xué)等也對(duì)網(wǎng)絡(luò)編碼展開(kāi)了研究,并取得一定的進(jìn)展。機(jī)會(huì)網(wǎng)絡(luò)經(jīng)常出現(xiàn)鏈路斷裂,網(wǎng)絡(luò)不連通的狀況,在這種情況下,節(jié)點(diǎn)一般并不丟棄數(shù)據(jù)包,相反節(jié)點(diǎn)傳輸數(shù)據(jù)一般采用“存儲(chǔ)一攜帶一轉(zhuǎn)發(fā)”的模式,傳統(tǒng)的機(jī)會(huì)網(wǎng)絡(luò)中,中間節(jié)點(diǎn)只進(jìn)行數(shù)據(jù)的存儲(chǔ)與轉(zhuǎn)發(fā)操作,但是運(yùn)用網(wǎng)絡(luò)編碼的機(jī)會(huì)網(wǎng)絡(luò)中,中間節(jié)點(diǎn)可以對(duì)接收到的數(shù)據(jù)塊進(jìn)行隨機(jī)線性組合編碼,可以增大單次傳輸?shù)臄?shù)據(jù)量。隨著網(wǎng)絡(luò)規(guī)模的日趨龐大、各種網(wǎng)絡(luò)方案和協(xié)議日趨復(fù)雜,分析、實(shí)驗(yàn)和仿真等方法成為了當(dāng)前進(jìn)行網(wǎng)絡(luò)技術(shù)研究的有效手段。研究網(wǎng)絡(luò)仿真技術(shù)成為了現(xiàn)代通信網(wǎng)絡(luò)設(shè)計(jì)的重要環(huán)節(jié),在通信網(wǎng)絡(luò)性能研究中起關(guān)鍵性作用。在眾多網(wǎng)絡(luò)仿真軟件中NS2具有免費(fèi)、源代碼開(kāi)放、易擴(kuò)展等等優(yōu)點(diǎn)而備受研究人員的青睞。NS2是一個(gè)開(kāi)源的網(wǎng)絡(luò)仿真軟件,可以再windows/unix上運(yùn)行,且所有源代碼公開(kāi),對(duì)于進(jìn)行網(wǎng)絡(luò)的研究和擴(kuò)展非常方便。本課題研究的內(nèi)容就是在仿真平臺(tái)NS2下設(shè)計(jì)并建立機(jī)會(huì)網(wǎng)絡(luò)模型,理解網(wǎng)絡(luò)編碼的原理,在NS2中編程實(shí)現(xiàn)基于分簇的隨機(jī)線性網(wǎng)絡(luò)編碼數(shù)據(jù)分發(fā)的仿真并與一般的網(wǎng)絡(luò)編碼比較其網(wǎng)絡(luò)吞吐量和時(shí)延性能。1.2本文的內(nèi)容組織本文內(nèi)容組織如下:先分別介紹了機(jī)會(huì)網(wǎng)絡(luò)、網(wǎng)絡(luò)編碼原理及仿真平臺(tái)NS2的各種知識(shí),然后使用NS2構(gòu)建機(jī)會(huì)網(wǎng)絡(luò)拓?fù)洌幊龈鱾€(gè)代碼腳本,在NS2上仿真實(shí)驗(yàn),得出數(shù)據(jù)并畫(huà)圖進(jìn)行說(shuō)明驗(yàn)證。2機(jī)會(huì)網(wǎng)絡(luò)及網(wǎng)絡(luò)編碼相關(guān)知識(shí)2.1機(jī)會(huì)網(wǎng)絡(luò)的概念機(jī)會(huì)網(wǎng)絡(luò)是一種特殊的自組織網(wǎng)絡(luò),它不需要存在端到端的完整路徑,充分利用了節(jié)點(diǎn)移動(dòng)帶來(lái)的相遇機(jī)會(huì)(contact),實(shí)現(xiàn)數(shù)據(jù)逐跳轉(zhuǎn)發(fā),并最終傳送到目的節(jié)點(diǎn)[5]。從本質(zhì)上來(lái)看,機(jī)會(huì)網(wǎng)絡(luò)否定了傳統(tǒng)網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)囊粋€(gè)根本前提——在路由期間或者數(shù)據(jù)傳遞期間,存在一條或者多條源端到目的端的路徑。機(jī)會(huì)網(wǎng)絡(luò)中的相遇(contact)概念是指節(jié)點(diǎn)之間發(fā)生的一次聯(lián)系。當(dāng)節(jié)點(diǎn)(如:車(chē)輛、移動(dòng)用戶(hù))進(jìn)入彼此的通信范圍之內(nèi)時(shí),則發(fā)生通信,當(dāng)兩者離開(kāi)彼此通信范圍時(shí),則鏈路斷開(kāi),停止通信。在機(jī)會(huì)網(wǎng)絡(luò)中,contact是機(jī)會(huì)性的,而非確定性的。圖2.1是一個(gè)機(jī)會(huì)網(wǎng)絡(luò)示意圖,t1時(shí)刻源節(jié)點(diǎn)S希望將數(shù)據(jù)傳輸給目標(biāo)節(jié)點(diǎn)D,但S和D位于不同的連通域而沒(méi)有通信路徑,因此,S首先將數(shù)據(jù)打包成消息發(fā)送給鄰居節(jié)點(diǎn)3,由于3并沒(méi)有合適的機(jī)會(huì)轉(zhuǎn)發(fā)下一跳節(jié)點(diǎn),它將消息在本地存儲(chǔ)并等待傳輸機(jī)會(huì),經(jīng)過(guò)一段時(shí)間到達(dá)t2時(shí)刻,節(jié)點(diǎn)3運(yùn)動(dòng)到節(jié)點(diǎn)4的通信范圍并轉(zhuǎn)發(fā)給節(jié)點(diǎn)4,在t3時(shí)刻,節(jié)點(diǎn)4將消息傳輸給目標(biāo)節(jié)點(diǎn)D,完成數(shù)據(jù)傳輸。圖2.1機(jī)會(huì)網(wǎng)絡(luò)示意圖機(jī)會(huì)網(wǎng)絡(luò)的部分概念來(lái)源于早期的延遲容忍網(wǎng)絡(luò)DTN(delaytolerantnetwork)[6]研究。DTN最初是容遲網(wǎng)絡(luò)研究組(DTNRG)為星際網(wǎng)絡(luò)IPN(interplanetarynetwork)[7]通信而提出來(lái)的,其主要目標(biāo)是支持具有間歇性連通、延遲大、錯(cuò)誤率高等通信特征的不同網(wǎng)絡(luò)的互聯(lián)和互操作,如互聯(lián)Internet和傳感器網(wǎng)絡(luò)、移動(dòng)自組織網(wǎng)絡(luò)等。DTN網(wǎng)絡(luò)體系由多個(gè)底層運(yùn)行獨(dú)立通信協(xié)議的DTN域組成。域間網(wǎng)關(guān)利用“存儲(chǔ)-轉(zhuǎn)發(fā)”的模式工作,當(dāng)去往目標(biāo)DTN域的鏈路存在時(shí)轉(zhuǎn)發(fā)消息,否則,將消息存儲(chǔ)在本地持久存儲(chǔ)器中等待可用鏈路。機(jī)會(huì)網(wǎng)絡(luò)可以看成是具有一般DTN網(wǎng)絡(luò)特征的無(wú)線自組網(wǎng)。2.2機(jī)會(huì)網(wǎng)絡(luò)的構(gòu)架機(jī)會(huì)網(wǎng)絡(luò)的體系結(jié)構(gòu)與傳統(tǒng)Internet傳輸結(jié)構(gòu)的最大區(qū)別在于束層(BundleLayer),它位于傳輸層和應(yīng)用層之間,它跟底層協(xié)議相互配合,使得應(yīng)用程序可以跨過(guò)多個(gè)區(qū)域?qū)崿F(xiàn)通信。機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)使用束層來(lái)發(fā)送和接受數(shù)據(jù),并保證逐跳轉(zhuǎn)發(fā)的可靠性以及端到端的確認(rèn)。該架構(gòu)非常靈活,既保證了各層的共性,又避免非法使用其他層。1、束層為了實(shí)現(xiàn)“存儲(chǔ)-攜帶-轉(zhuǎn)發(fā)”的消息交換機(jī)制,機(jī)會(huì)網(wǎng)絡(luò)在節(jié)點(diǎn)的應(yīng)用層和傳輸層之間插入了一個(gè)新的協(xié)議層——束層。使用束層的一個(gè)主要原因是在機(jī)會(huì)網(wǎng)絡(luò)中,傳輸延時(shí)差異很大,當(dāng)一個(gè)數(shù)據(jù)包丟失時(shí),整個(gè)傳輸?shù)臄?shù)據(jù)成為無(wú)用數(shù)據(jù)。因此為了避免這樣的事情發(fā)生,將數(shù)據(jù)打包成一個(gè)較大的消息,稱(chēng)之為束,并使之不能輕易分割成更小的片段。機(jī)會(huì)網(wǎng)絡(luò)中一般不存在從源節(jié)點(diǎn)到目的節(jié)點(diǎn)的端到端的連接,因此束會(huì)存儲(chǔ)在中繼節(jié)點(diǎn)上并等待合適機(jī)會(huì)進(jìn)行傳輸。一個(gè)束必須包含的信息有:源端地址、目的端地址、起始時(shí)間、束的生存時(shí)間、數(shù)據(jù)長(zhǎng)度及服務(wù)類(lèi)型等。此外,對(duì)于具體的應(yīng)用,可能還需要一些狀態(tài)域和認(rèn)證消息,例如,監(jiān)管傳送請(qǐng)求等。2、監(jiān)管傳送束層提供了一種簡(jiǎn)單的并且不需要應(yīng)答的投遞機(jī)制,但框架本身提供了兩種可能的方法來(lái)提高可靠性:端到端的應(yīng)答和監(jiān)管傳送。通過(guò)監(jiān)管傳送,可以保證端到端的可靠性。在特定的環(huán)境下,這種機(jī)制可以更好地利用資源,例如源節(jié)點(diǎn)可以將已經(jīng)投遞成功的束在緩存中釋放掉。3、機(jī)會(huì)網(wǎng)絡(luò)中的節(jié)點(diǎn)一個(gè)束的源端和目的端是由端點(diǎn)號(hào)EID(Endpoint-Identifier)來(lái)標(biāo)識(shí)的。EID中包含一個(gè)或多個(gè)機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)。當(dāng)目的地收到該束時(shí),認(rèn)為該束傳遞成功。EID可以類(lèi)比于DNS(DomainNameSystem)中的統(tǒng)一資源標(biāo)識(shí)(URI,UniformResourceIdentifier),并且與路由或拓?fù)浣M織結(jié)構(gòu)沒(méi)有必然聯(lián)系。區(qū)域名是早先提出的一個(gè)概念,一個(gè)完整的地址由區(qū)域號(hào)和節(jié)點(diǎn)號(hào)組成?;谶@種區(qū)域的概念,束首先投遞到目的節(jié)點(diǎn)所在的區(qū)域,然后再投遞到目的節(jié)點(diǎn)。4、服務(wù)分類(lèi)按重要性不同,束層引入了三類(lèi)服務(wù):1、大塊束(bulkbundles),只需要較小的投入,當(dāng)有資源可用時(shí)就可以提供這種服務(wù);2、正常束(normalclassbundles),比大塊束優(yōu)先級(jí)要高,但比“加快束”(expeditedbundles)優(yōu)先級(jí)要低;3、加快束,這類(lèi)服務(wù)只是針對(duì)來(lái)自同一個(gè)端點(diǎn)的束而言,例如:當(dāng)大塊束與加快束來(lái)自不同的端點(diǎn)時(shí),即使加快束比大塊束優(yōu)先級(jí)高,但大塊束仍有可能比加快束先傳遞。5、安全機(jī)會(huì)網(wǎng)絡(luò)框架提供了一個(gè)可選的安全構(gòu)架,使用逐跳、端到端的授權(quán)和誠(chéng)信機(jī)制,主要的困難是如何對(duì)網(wǎng)絡(luò)進(jìn)行控制和如何轉(zhuǎn)發(fā)控制消息。沒(méi)有進(jìn)行認(rèn)證的節(jié)點(diǎn)不能夠通過(guò)機(jī)會(huì)網(wǎng)絡(luò)發(fā)送數(shù)據(jù),并且不能利用該網(wǎng)絡(luò)以外的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。2.3機(jī)會(huì)網(wǎng)絡(luò)拓?fù)涮攸c(diǎn)1、多跳網(wǎng)由于無(wú)線通信的距離受限制,機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)之間的通信通常需要借助其他節(jié)點(diǎn)的中繼轉(zhuǎn)發(fā)才能實(shí)現(xiàn),便形成了多跳通信路徑。2、動(dòng)態(tài)的網(wǎng)絡(luò)拓?fù)錂C(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)間的相互連通性構(gòu)成了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。由于機(jī)會(huì)網(wǎng)絡(luò)中的節(jié)點(diǎn)可以以隨機(jī)的速度和方式移動(dòng),加上發(fā)射功率的變化,以及無(wú)線信道的干擾大小不斷變化等因素,節(jié)點(diǎn)間通過(guò)無(wú)線通信形成的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可能隨時(shí)發(fā)生變化,而且變化的方式和速度都是難以預(yù)料的。3、分布式控制在機(jī)會(huì)網(wǎng)絡(luò)中,為了實(shí)現(xiàn)網(wǎng)內(nèi)節(jié)點(diǎn)之間的通信,需要解決無(wú)線資源使用、路由發(fā)現(xiàn)等控制問(wèn)題。由于機(jī)會(huì)網(wǎng)絡(luò)沒(méi)有預(yù)設(shè)的基礎(chǔ)設(shè)施,也就沒(méi)有預(yù)設(shè)的中心控制節(jié)點(diǎn),所以只能采用分布式控制的方式來(lái)完成。4、對(duì)等性機(jī)會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)與節(jié)點(diǎn)可以直接互通,每個(gè)節(jié)點(diǎn)都相同,無(wú)主從之分,每個(gè)節(jié)點(diǎn)都能夠支持邏輯上的自發(fā)自收,即節(jié)點(diǎn)直接的來(lái)去雙向鏈路都相同。因此,無(wú)機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)的無(wú)線通信裝置一般采用時(shí)分雙工方式(TDD)。 5、臨時(shí)自組織性若干個(gè)無(wú)線節(jié)點(diǎn)聚集到一起時(shí),他們便臨時(shí)自組織性地形成了一個(gè)無(wú)線通信網(wǎng)絡(luò),該臨時(shí)性包括:網(wǎng)絡(luò)成員的臨時(shí)性,網(wǎng)絡(luò)組織的臨時(shí)性,網(wǎng)絡(luò)拓?fù)涞呐R時(shí)性,網(wǎng)絡(luò)路由的臨時(shí)性,網(wǎng)絡(luò)無(wú)線資源分配采用按需臨時(shí)分配等。6、鏈路帶寬受限機(jī)會(huì)網(wǎng)絡(luò)采用無(wú)線傳輸技術(shù)作為其基本通信手段,與有線傳輸技術(shù)相比,它具有較低的傳輸帶寬。并且由于各個(gè)節(jié)點(diǎn)分布式競(jìng)爭(zhēng)使用信道,使得每個(gè)移動(dòng)節(jié)點(diǎn)實(shí)際使用的帶寬遠(yuǎn)小于物理層所提供的最大傳輸速率。7、能量受限機(jī)會(huì)網(wǎng)絡(luò)內(nèi)的移動(dòng)節(jié)點(diǎn)一般需要依靠電池來(lái)提供能量,因此,節(jié)省功率將使自組網(wǎng)技術(shù)中一個(gè)需要高度重視的問(wèn)題。8、有限的安全性機(jī)會(huì)網(wǎng)絡(luò)由于采用分布式控制、無(wú)中心、臨時(shí)組織等原因,它比一般的無(wú)線網(wǎng)絡(luò)更易受到安全方面的威脅。2.4機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)移動(dòng)模型節(jié)點(diǎn)移動(dòng)模型描述了節(jié)點(diǎn)的移動(dòng)模式,包括位置、速度等特征的變化,廣泛應(yīng)用于自組網(wǎng)協(xié)議性能的分析和評(píng)價(jià),是自組織網(wǎng)絡(luò)的基礎(chǔ)研究之一。傳統(tǒng)的MANET假設(shè)網(wǎng)絡(luò)是全連通的,節(jié)點(diǎn)的移動(dòng)對(duì)路由層以上的協(xié)議是“屏蔽”的。因此一般從網(wǎng)絡(luò)拓?fù)浣嵌热シ治鲆苿?dòng)模型對(duì)協(xié)議性能的影響,如拓?fù)溥B通率、節(jié)點(diǎn)連通度等,而機(jī)會(huì)網(wǎng)絡(luò)中的移動(dòng)模型研究是以刻畫(huà)節(jié)點(diǎn)相遇特征為核心的。這是因?yàn)樵跈C(jī)會(huì)網(wǎng)絡(luò)中的數(shù)據(jù)傳輸依賴(lài)于節(jié)點(diǎn)移動(dòng)帶來(lái)的相遇機(jī)會(huì),而節(jié)點(diǎn)的相遇概率和相遇時(shí)間分布是由節(jié)點(diǎn)的移動(dòng)模型決定的。因此,相比于傳統(tǒng)的MANET,移動(dòng)模型對(duì)機(jī)會(huì)網(wǎng)絡(luò)研究更加重要。2.4.1獨(dú)立同分布的理論移動(dòng)模型許多學(xué)者研究了3個(gè)經(jīng)典的獨(dú)立同分布移動(dòng)模:RandomWayPoint[8](RWP)RandomWalk(RW)和RandomDirection[9](RD)。這些模型下的節(jié)點(diǎn)相遇特征可用兩個(gè)參數(shù)來(lái)刻畫(huà):相遇時(shí)間(meetingtime,簡(jiǎn)稱(chēng)MT)和相遇間隔時(shí)間(intermeetingtime,簡(jiǎn)稱(chēng)IMT)。MT是指兩個(gè)節(jié)點(diǎn)從靜止開(kāi)始到第一次相遇(進(jìn)入通信范圍)經(jīng)過(guò)的時(shí)間間隔,而IMT是指兩個(gè)節(jié)點(diǎn)前后兩次相遇的時(shí)間間隔。文獻(xiàn)[9]都分別從不同的角度證明了上述3個(gè)移動(dòng)模型的節(jié)點(diǎn)期望相遇時(shí)間(expectedmeetingtime)服從指數(shù)分布或其尾部服從指數(shù)分布,并基于此分析了多種路由協(xié)議的延時(shí)性能。文獻(xiàn)[10]推導(dǎo)出RW模型下期望相遇間隔時(shí)間的分布也服從指數(shù)分布,而文獻(xiàn)[11]推導(dǎo)了RD模型和RWP模型下的期望相遇間隔時(shí)間分布,并證明了RWP和RD模型下相遇時(shí)間和相遇間隔時(shí)間的尾部分布是無(wú)記憶的。2.4.2基于統(tǒng)計(jì)的實(shí)際移動(dòng)模型除了從理論來(lái)推導(dǎo)以外,一些研究人員還利用統(tǒng)計(jì)方法,通過(guò)收集實(shí)際環(huán)境中節(jié)點(diǎn)的運(yùn)動(dòng)軌跡來(lái)研究節(jié)點(diǎn)的移動(dòng)特征。MIT的RealityMining項(xiàng)目[12]記錄了MIT校園中100個(gè)攜帶藍(lán)牙智能手機(jī)的學(xué)生和職工為期9個(gè)月的移動(dòng)軌跡和相遇數(shù)據(jù);UCSD的WirelessTopologyDiscovery[13]收集了11周內(nèi)300個(gè)無(wú)線PDA與Wi-Fi接入點(diǎn)的相遇數(shù)據(jù);劍橋大學(xué)的Haggle項(xiàng)目[14]則記錄了若干個(gè)帶有藍(lán)牙接口的iMote設(shè)備在校園的相遇情況。此外,他們還在INFOCOM參會(huì)期間進(jìn)行了類(lèi)似的實(shí)驗(yàn);UMass研究小組[15]收集并分析了由公交車(chē)上的Wi-Fi節(jié)點(diǎn)組成的機(jī)會(huì)網(wǎng)絡(luò)DieselNet實(shí)際運(yùn)行中的相遇規(guī)律。文獻(xiàn)[2]通過(guò)分析文獻(xiàn)[13]中的數(shù)據(jù)集發(fā)現(xiàn),實(shí)際節(jié)點(diǎn)的移動(dòng)具有社區(qū)特性,節(jié)點(diǎn)相遇時(shí)間服從近似的冪律分布,而不是根據(jù)經(jīng)典移動(dòng)模型推導(dǎo)出的指數(shù)分布,這些成果證實(shí)了傳統(tǒng)的移動(dòng)模型并不一定適用于實(shí)際節(jié)點(diǎn)的移動(dòng)特征,但研究人員在對(duì)于使用何種分布的移動(dòng)模型問(wèn)題上一直存在爭(zhēng)議。文獻(xiàn)[16]試圖統(tǒng)一這兩種類(lèi)型的移動(dòng)模型,作者從理論上推導(dǎo)出在一個(gè)有限邊界的移動(dòng)空間中,節(jié)點(diǎn)相遇間隔時(shí)間服從指數(shù)分布,如果去掉有限邊界的條件,按照RW模型移動(dòng)的節(jié)點(diǎn)相遇間隔就與統(tǒng)計(jì)觀察到的結(jié)果相一致,服從近似冪律分布。2.4.3基于社區(qū)的移動(dòng)模型人所攜帶設(shè)備組成的網(wǎng)絡(luò)是機(jī)會(huì)網(wǎng)絡(luò)的一個(gè)主要應(yīng)用,探索適用于這類(lèi)場(chǎng)景且便于數(shù)學(xué)分析的移動(dòng)模型機(jī)會(huì)網(wǎng)絡(luò)研究的一個(gè)重點(diǎn)。基于由人組成的機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)移動(dòng)實(shí)際表現(xiàn)出的社區(qū)特性,一些研究人員提出了基于社區(qū)的移動(dòng)模型(communitybasedmodel)。該模型下的節(jié)點(diǎn)并不是隨機(jī)選取移動(dòng)位置,而是考慮了3種情況來(lái)決策下一步移動(dòng)位置:1)節(jié)點(diǎn)偏好,節(jié)點(diǎn)比其他節(jié)點(diǎn)更傾向于去往某個(gè)特定位置或遇到特定節(jié)點(diǎn);;2)節(jié)點(diǎn)異構(gòu)性:某些節(jié)點(diǎn)能夠到達(dá)所有位置,遇到所有其他節(jié)點(diǎn);3)行為時(shí)變性:節(jié)點(diǎn)移動(dòng)隨著時(shí)間變化。Musolesi等人[17]結(jié)合社會(huì)網(wǎng)絡(luò)理論提出了一種基于社區(qū)的移動(dòng)模型。該模型根據(jù)節(jié)點(diǎn)之間聯(lián)系的緊密程度,將節(jié)點(diǎn)分布在多個(gè)在不同區(qū)域的社區(qū),然后計(jì)算不同社區(qū)對(duì)每個(gè)節(jié)點(diǎn)的吸引力,并以此確定節(jié)點(diǎn)是否移動(dòng)以及朝哪個(gè)目標(biāo)區(qū)域移動(dòng)。Spyropoulos等人[18,19]提出了時(shí)變的社區(qū)移動(dòng)模型,每個(gè)節(jié)點(diǎn)的工作周期由正常移動(dòng)周期和集中移動(dòng)周期組成,每個(gè)周期內(nèi),節(jié)點(diǎn)隨機(jī)選擇一個(gè)社區(qū)作為它的本地社區(qū)。節(jié)點(diǎn)在每個(gè)周期都有兩種移動(dòng)狀態(tài),Localepoch和Roamingepoch。前者是選擇在本地社區(qū)內(nèi)移動(dòng),后者是在其他地方漫游。節(jié)點(diǎn)在兩個(gè)狀態(tài)之間以一定的概率來(lái)切換,形成一個(gè)馬爾可夫鏈,概率大小由所處的移動(dòng)周期來(lái)確定。例如,在集中移動(dòng)周期內(nèi),節(jié)點(diǎn)訪問(wèn)本地社區(qū)的概率較高。2.5網(wǎng)絡(luò)編碼的概念思想在傳統(tǒng)網(wǎng)絡(luò)中,結(jié)點(diǎn)僅對(duì)接收的數(shù)據(jù)進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā),難以達(dá)到網(wǎng)絡(luò)傳輸?shù)淖畲笸掏铝亢蛶捓寐剩魯?shù)據(jù)傳輸路徑出現(xiàn)瓶頸鏈路,則網(wǎng)絡(luò)數(shù)據(jù)傳輸性能將受限于瓶頸鏈路。對(duì)此,在網(wǎng)絡(luò)中引入網(wǎng)絡(luò)編碼技術(shù),增加結(jié)點(diǎn)對(duì)數(shù)據(jù)的編碼運(yùn)算功能,節(jié)約網(wǎng)絡(luò)鏈路的帶寬資源,減小網(wǎng)絡(luò)數(shù)據(jù)傳輸中瓶頸鏈路的影響。網(wǎng)絡(luò)編碼(networkcoding)是一種融合編碼和路由的信息交換技術(shù),在傳統(tǒng)存儲(chǔ)轉(zhuǎn)發(fā)的路由方法基礎(chǔ)上,通過(guò)允許對(duì)接收的多個(gè)數(shù)據(jù)包進(jìn)行編碼信息融合,增加單次傳輸?shù)男畔⒘?,提高網(wǎng)絡(luò)整體性能。Ahlswede等人于2000年提出了網(wǎng)絡(luò)編碼概念,指出對(duì)組播網(wǎng)絡(luò)中的某些節(jié)點(diǎn)附加額外的編碼操作能使源與組播成員間達(dá)到最大流最小割心的組播速率。網(wǎng)絡(luò)編碼一經(jīng)提出便引起了國(guó)際學(xué)術(shù)界的廣泛關(guān)注,其理論和應(yīng)用已成為通信領(lǐng)域研究的新熱點(diǎn).網(wǎng)絡(luò)編碼在提高網(wǎng)絡(luò)吞吐量、改善負(fù)載均衡、減小傳輸延遲、節(jié)省節(jié)點(diǎn)能耗、增強(qiáng)網(wǎng)絡(luò)魯棒性等方面均顯示出其優(yōu)越性,可廣泛應(yīng)用于AdHoe網(wǎng)絡(luò),傳感器網(wǎng)絡(luò)、P2P內(nèi)容分發(fā)、分布式文件存儲(chǔ)和網(wǎng)絡(luò)安全等領(lǐng)域。經(jīng)過(guò)幾年的發(fā)展,網(wǎng)絡(luò)編碼的理論研究已取得重要進(jìn)展,在應(yīng)用基礎(chǔ)和工程實(shí)踐方面的研究正在全方位展開(kāi)。網(wǎng)絡(luò)編碼已成為一項(xiàng)融合信息論、代數(shù)學(xué)、圖論、網(wǎng)絡(luò)流理論和優(yōu)化理論等多學(xué)科的交叉技術(shù),且日益引起更多研究者的關(guān)注,其對(duì)現(xiàn)有的網(wǎng)絡(luò)體系結(jié)構(gòu)、協(xié)議設(shè)計(jì)方法、信息交換方式和網(wǎng)絡(luò)管理模式帶來(lái)了革命性的變化。網(wǎng)絡(luò)編碼的基本思想是使網(wǎng)絡(luò)中的節(jié)點(diǎn)不僅具有存儲(chǔ)轉(zhuǎn)發(fā)的功能,他們還能夠打若干個(gè)待轉(zhuǎn)發(fā)的數(shù)據(jù)包進(jìn)行編碼壓縮成一個(gè)數(shù)據(jù)包,然后轉(zhuǎn)發(fā)給相應(yīng)的接收節(jié)點(diǎn),并且以足夠大的概率保證它的接收節(jié)點(diǎn)能夠順利地解碼恢復(fù)出原始的數(shù)據(jù)包,從而減少傳輸次數(shù),提高網(wǎng)絡(luò)吞吐量,降低網(wǎng)絡(luò)延遲。以一個(gè)簡(jiǎn)單的具代表性的蝴蝶網(wǎng)絡(luò)來(lái)描述網(wǎng)絡(luò)編碼的思想,一下均假設(shè)每條鏈路單位時(shí)間只能傳輸單位bit的數(shù)據(jù)數(shù)據(jù)信息量。圖2.3和圖2.4中分別是利用網(wǎng)絡(luò)編碼前后的網(wǎng)絡(luò)傳輸狀態(tài),該網(wǎng)絡(luò)有一個(gè)源節(jié)點(diǎn)S,兩個(gè)端節(jié)點(diǎn)Y,Z以及其余4個(gè)T,W,U,X是四個(gè)中轉(zhuǎn)節(jié)點(diǎn)。在圖2.2中,b1和b2都是源s向端節(jié)點(diǎn)y和x發(fā)出的兩個(gè)單位bit的信息,當(dāng)b1和b2到達(dá)w節(jié)點(diǎn)時(shí),由于一次只能處理一個(gè)單位的信息,所以W只能選擇發(fā)送其中之一,而另一個(gè)則必須送入等待隊(duì)列,因此,要使Y和Z這兩個(gè)目的節(jié)點(diǎn)都要收到這兩個(gè)信息,則W必須至少傳送兩次;圖2.3表示的是網(wǎng)絡(luò)編碼方法,節(jié)點(diǎn)W對(duì)輸入的信息進(jìn)行網(wǎng)絡(luò)編碼操作(“+”表示模二加),然后將操作結(jié)果b1+b2(稱(chēng)為編碼信息)發(fā)送至輸出鏈路(W,X),然后又通過(guò)鏈路(X,Y)和(X,Z),最終傳送給信宿Y和Z。當(dāng)信宿Y收到b1和b1+b2后,通過(guò)逆過(guò)程的譯碼操作b1+(b1+b2)就能恢復(fù)出信源S發(fā)出的b2,這樣使得信宿Y同時(shí)收到了b1和b2。按照同樣的方式,信宿Z也可恢復(fù)出信源發(fā)出的b1(通過(guò)譯碼操作b2+(b1+b2))而同時(shí)收到b1和b2。也就是說(shuō),基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)模式實(shí)現(xiàn)了該組播的理論傳輸容量。可見(jiàn),與傳統(tǒng)的路由傳輸方式相比,網(wǎng)絡(luò)編碼提升了網(wǎng)絡(luò)的吞吐量。圖2.2網(wǎng)絡(luò)結(jié)構(gòu) 圖2.3普通的存儲(chǔ)轉(zhuǎn)發(fā)圖2.4運(yùn)用網(wǎng)絡(luò)編碼從上述實(shí)例可以看出,基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)的具體實(shí)施過(guò)程是:具備編碼條件的中間節(jié)點(diǎn)(比如該節(jié)點(diǎn)的入度至少為2,如圖2.4中的節(jié)點(diǎn)W就具備編碼條件,節(jié)點(diǎn)T,U和X等則不具備編碼條件,只能執(zhí)行存儲(chǔ)和轉(zhuǎn)發(fā)操作)對(duì)接收到的數(shù)據(jù)信息按照一定方式的處理(編碼),然后傳輸給下一級(jí)的網(wǎng)絡(luò)節(jié)點(diǎn),收到信息的下一級(jí)節(jié)點(diǎn)如果具備編碼條件,又對(duì)其接收的信息按照同樣的方式進(jìn)行處理和傳輸,如此反復(fù),直到所有經(jīng)過(guò)處理后的信息都匯聚到信宿節(jié)點(diǎn)為止。最后,在信宿節(jié)點(diǎn),通過(guò)逆過(guò)程的操作(譯碼),即可譯出信源發(fā)出的原始信息。節(jié)點(diǎn)對(duì)傳輸?shù)男畔⑦M(jìn)行如何處理和操作,屬于網(wǎng)絡(luò)編碼的碼構(gòu)造問(wèn)題。如果節(jié)點(diǎn)對(duì)傳輸?shù)男畔⑦M(jìn)行線性操作,則稱(chēng)為線性網(wǎng)絡(luò)編碼;否則稱(chēng)為非線性網(wǎng)絡(luò)編碼(Non-linearNetworkCoding)。如果網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)信息進(jìn)行操作的系數(shù)是隨機(jī)選取的,則稱(chēng)為隨機(jī)網(wǎng)絡(luò)編碼;如果是通過(guò)算法確定出來(lái)的,則稱(chēng)為確定性網(wǎng)絡(luò)編碼。因此,線性網(wǎng)絡(luò)編碼是一種有效的網(wǎng)絡(luò)編碼碼構(gòu)造方式,當(dāng)前具體的基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)系統(tǒng)中均采用線性網(wǎng)絡(luò)編碼作為其碼構(gòu)造方式。圖2.4所示的節(jié)點(diǎn)W對(duì)輸入的信息b1和b2進(jìn)行的模二加操作,就是一種最簡(jiǎn)單的線性網(wǎng)絡(luò)編碼操作方式。2.6網(wǎng)絡(luò)編碼的應(yīng)用雖然網(wǎng)絡(luò)編碼提出的初衷是為改善組播傳輸網(wǎng)絡(luò)中數(shù)據(jù)分發(fā)系統(tǒng)的傳輸性能,但隨著研究的不斷深入,網(wǎng)絡(luò)編碼表現(xiàn)出了越來(lái)越廣泛的應(yīng)用前景。目前,網(wǎng)絡(luò)編碼與覆蓋網(wǎng)絡(luò)(OverlayNetwork)和無(wú)線網(wǎng)絡(luò)(WirelessNetwork)等相結(jié)合的研究取得了重要的進(jìn)展,被認(rèn)為是網(wǎng)絡(luò)編碼最有可能被首先應(yīng)用的領(lǐng)域。數(shù)據(jù)分發(fā)網(wǎng)絡(luò)編碼最直接的應(yīng)用就是數(shù)據(jù)分發(fā),尤其是大范圍的數(shù)據(jù)分發(fā)。前面討論的基于組播網(wǎng)絡(luò)的數(shù)據(jù)分發(fā),均是網(wǎng)絡(luò)編碼最典型的應(yīng)用。Chou等最早將隨機(jī)網(wǎng)絡(luò)編碼付諸實(shí)施,構(gòu)建了一個(gè)可實(shí)用化的網(wǎng)絡(luò)編碼數(shù)據(jù)分發(fā)系統(tǒng),并在Washington大學(xué)的Rocketfuel項(xiàng)目所獲得的幾個(gè)ISP骨干網(wǎng)絡(luò)拓?fù)渖线M(jìn)行了仿真,取得了較好的傳輸性能。CodedStream也是在網(wǎng)絡(luò)中較早進(jìn)行了基于網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)的嘗試[71],CodedStream是一個(gè)基于P2P模式的,面向高帶寬流媒體的數(shù)據(jù)分發(fā)系統(tǒng)。它按照編碼網(wǎng)絡(luò)分發(fā)數(shù)據(jù)的特性,在覆蓋網(wǎng)絡(luò)上構(gòu)建一個(gè)K-redundant路徑圖作為網(wǎng)絡(luò)拓?fù)洌W(wǎng)絡(luò)編碼被用于圖中“瓶頸”處的數(shù)據(jù)分發(fā)。最初的CodedStream在自己的仿真平臺(tái)上進(jìn)行了測(cè)試,其后續(xù)研究將整個(gè)思想進(jìn)一步擴(kuò)展,并利用PlanetLab平臺(tái)進(jìn)行了更廣泛的測(cè)試。網(wǎng)絡(luò)編碼與應(yīng)用層組播(ApplicationLayerMulticast,ALM)相結(jié)合也取得一定進(jìn)展。應(yīng)用層組播中的數(shù)據(jù)分發(fā)由客戶(hù)端主機(jī)實(shí)現(xiàn)的,端主機(jī)具有一定的計(jì)算能力,這為網(wǎng)絡(luò)編碼提供了良好的應(yīng)用環(huán)境。而且,應(yīng)用層組播利用的覆蓋網(wǎng)絡(luò)拓?fù)淇梢园葱枳兓?,這也恰好可以利用網(wǎng)絡(luò)編碼對(duì)動(dòng)態(tài)網(wǎng)絡(luò)適應(yīng)性強(qiáng)的優(yōu)勢(shì)。Y.Zhu給出了一個(gè)基于網(wǎng)絡(luò)編碼的應(yīng)用層組播的完整實(shí)現(xiàn)。通過(guò)對(duì)比測(cè)試,證明了基于網(wǎng)絡(luò)編碼的應(yīng)用層組播在網(wǎng)絡(luò)吞吐量、資源利用率等方面的性能要優(yōu)于網(wǎng)絡(luò)層組播和普通的應(yīng)用層組播。但是在傳輸遲延和信息冗余等方面不夠理想。而且,大多數(shù)情況下,網(wǎng)絡(luò)編碼能將應(yīng)用層組播的吞吐量提升一倍以上。但是,T.Nad等通過(guò)進(jìn)一步的實(shí)驗(yàn)證實(shí),由于在執(zhí)行編碼和譯碼操作時(shí)需要一定的I/O和CPU消耗,基于網(wǎng)絡(luò)編碼的應(yīng)用層組播的傳輸容量往往無(wú)法達(dá)到預(yù)期。無(wú)線網(wǎng)絡(luò)由于無(wú)線鏈路的不可靠性和物理層廣播特性,應(yīng)用網(wǎng)絡(luò)編碼,可以解決傳統(tǒng)路由、跨層設(shè)計(jì)等技術(shù)無(wú)法解決的問(wèn)題。具體來(lái)說(shuō),網(wǎng)絡(luò)編碼除了提升無(wú)線網(wǎng)絡(luò)的網(wǎng)絡(luò)吞吐量,還可以減少數(shù)據(jù)包的傳播次數(shù),降低無(wú)線發(fā)送能耗。采用隨機(jī)網(wǎng)絡(luò)編碼,即使部分網(wǎng)絡(luò)節(jié)點(diǎn)或鏈路失效,最終在目的節(jié)點(diǎn)仍然能恢復(fù)原始數(shù)據(jù),從而增強(qiáng)網(wǎng)絡(luò)的容錯(cuò)性和魯棒性。此外,無(wú)需復(fù)雜的加密算法,采用網(wǎng)絡(luò)編碼就可以提高無(wú)線網(wǎng)絡(luò)的安全性等。文獻(xiàn)[20]對(duì)網(wǎng)絡(luò)編碼在無(wú)線自組織網(wǎng)絡(luò)(WirelessAdHocNetworks)、無(wú)線傳感器網(wǎng)絡(luò)(WirelessSensorNetworks)和無(wú)線網(wǎng)狀網(wǎng)(WirelessMeshNetworks)中的應(yīng)用進(jìn)行了探討。J.Yuan提出了一種利用網(wǎng)絡(luò)編碼來(lái)優(yōu)化信息流的路由方法[21],以此來(lái)提升AdHoc網(wǎng)絡(luò)中數(shù)據(jù)分發(fā)的效率。該方法基于一種在網(wǎng)絡(luò)層和物理層平衡鏈路帶寬供需的跨層優(yōu)化策略。Y.Wu等在AdHoc組播方面提出了應(yīng)用網(wǎng)絡(luò)編碼的最小化能量解決方法[22],使得傳輸每比特信息消耗的能量最小,以此來(lái)節(jié)省AdHoc網(wǎng)絡(luò)中數(shù)據(jù)分發(fā)的能耗。此外,還有一些學(xué)者對(duì)如何利用網(wǎng)絡(luò)編碼增加AdHoc傳輸?shù)聂敯粜詥?wèn)題進(jìn)行了研究,如Chen等研究在分布式天線系統(tǒng)和多入多出系統(tǒng)(DAS-MIMO)中,引入網(wǎng)絡(luò)編碼的概念,經(jīng)過(guò)理論推導(dǎo)和實(shí)驗(yàn)仿真,證明了無(wú)論有無(wú)輔助天線,網(wǎng)絡(luò)編碼都能提高網(wǎng)絡(luò)的性能,尤其是減小系統(tǒng)丟包損耗。相對(duì)于AdHoc網(wǎng)絡(luò),無(wú)線傳感器網(wǎng)絡(luò)密度較大,移動(dòng)性不強(qiáng),通常運(yùn)行在無(wú)人值守的惡劣甚至危險(xiǎn)的遠(yuǎn)程環(huán)境中,能源無(wú)法替代,設(shè)計(jì)有效的策略延長(zhǎng)網(wǎng)絡(luò)的生命周期成為無(wú)線傳感器網(wǎng)絡(luò)的核心問(wèn)題。麻省理工學(xué)院的Petrovic等人提出了一種結(jié)合網(wǎng)絡(luò)編碼的對(duì)無(wú)線信號(hào)不進(jìn)行調(diào)制的策略[23],并證明:運(yùn)用分布式隨機(jī)網(wǎng)絡(luò)編碼,未經(jīng)調(diào)制的無(wú)線信號(hào)能夠達(dá)到與經(jīng)過(guò)調(diào)制的無(wú)線信號(hào)一樣的吞吐量,這樣就能節(jié)省大量因?yàn)槟M器件進(jìn)行調(diào)制而消耗的能量和降低節(jié)點(diǎn)的成本。傳感器網(wǎng)絡(luò)需要把節(jié)點(diǎn)資源整合起來(lái),實(shí)現(xiàn)一個(gè)可靠和健壯的網(wǎng)絡(luò),基于這種想法,文獻(xiàn)[35]提出了一種結(jié)合分布式源編碼和網(wǎng)絡(luò)編碼的優(yōu)化算法,目的是用來(lái)提高傳感器網(wǎng)絡(luò)的容錯(cuò)性和可靠性,同時(shí)對(duì)分布式源編碼的壓縮效率和魯棒性進(jìn)行了折中考慮。Katti等提出的基于機(jī)會(huì)的網(wǎng)絡(luò)編碼方法(COPE)首次研究了網(wǎng)絡(luò)編碼在無(wú)線環(huán)境協(xié)議層面上的具體實(shí)現(xiàn)問(wèn)題。在COPE協(xié)議中,每個(gè)節(jié)點(diǎn)對(duì)傳輸媒體進(jìn)行偵聽(tīng),獲得它的鄰居節(jié)點(diǎn)的狀態(tài)信息,決定進(jìn)行編碼的機(jī)會(huì),并在本地的FIFO緩存結(jié)構(gòu)內(nèi)進(jìn)行編碼,然后進(jìn)行基于機(jī)會(huì)的路由。COPE協(xié)議要求每個(gè)節(jié)點(diǎn)利用本地信息各自決定哪些數(shù)據(jù)包需要進(jìn)行編碼以及如何進(jìn)行編碼。靈活的設(shè)計(jì)使得即使在網(wǎng)絡(luò)交通需求未知或者網(wǎng)絡(luò)流量劇增、或者發(fā)送/接收方動(dòng)態(tài)變化的情況下,COPE協(xié)議仍能有效的支持多路單播流。然而該協(xié)議需要節(jié)點(diǎn)存儲(chǔ)數(shù)據(jù)包并進(jìn)行編碼,如果網(wǎng)絡(luò)出現(xiàn)擁塞,可能就會(huì)耗費(fèi)較多的節(jié)點(diǎn)存儲(chǔ)空間。另外,文件共享是無(wú)線網(wǎng)狀網(wǎng)的一種典型應(yīng)用,為了評(píng)估網(wǎng)絡(luò)編碼對(duì)該應(yīng)用的影響,Hamra等[64]在理想化MAC協(xié)議基礎(chǔ)上開(kāi)發(fā)了特定的仿真平臺(tái),分別比較了服務(wù)時(shí)間等性能在節(jié)點(diǎn)個(gè)數(shù)、盲轉(zhuǎn)發(fā)(BlindForwarding)和選擇性轉(zhuǎn)發(fā)(SelectiveForwarding)情況下的表現(xiàn)。實(shí)驗(yàn)結(jié)果表明應(yīng)用網(wǎng)絡(luò)編碼得到的改進(jìn)雖然不如在有線網(wǎng)絡(luò)中顯著,但仍能在很大程度上提高吞吐量、縮短服務(wù)時(shí)間。2.7隨機(jī)線性網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)隨機(jī)線性網(wǎng)絡(luò)編碼方法的核心思想是利用節(jié)點(diǎn)的運(yùn)算能力,在發(fā)送節(jié)點(diǎn)線性編碼組合不同的信息包,在接收節(jié)點(diǎn)獲得足夠的線性編碼組合后,通過(guò)運(yùn)算得到原始信息包,其可用性推廣了網(wǎng)絡(luò)編碼理論的應(yīng)用范圍。應(yīng)用網(wǎng)絡(luò)編碼的理論成果,Gkantsidis等給出了基于隨機(jī)網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)系統(tǒng)的原理模型(或稱(chēng)概念模型),如圖2.5所示。假設(shè)Server節(jié)點(diǎn)(存放原始文件的服務(wù)器)需分發(fā)某文件給PeerA,首先Server將該文件分割成n個(gè)文件塊(Block),即B1,B2,B3Bn,如果使用網(wǎng)絡(luò)編碼,則Server節(jié)點(diǎn)從有限域中選擇n個(gè)系數(shù)C11,C12C1n構(gòu)成編碼向量(EncodingVector)c1=[C11,C12C1n],并利用該向量對(duì)分割后的文件塊進(jìn)行有限域中的線性運(yùn)算。隨后,Server節(jié)點(diǎn)將運(yùn)算后的編碼信息E1=B1c11+B2c12++Bnc1n,分發(fā)給PeerA圖2.5基于隨機(jī)線性網(wǎng)絡(luò)編碼的數(shù)據(jù)分發(fā)系統(tǒng)的原理模型假設(shè)PeerA又下載了另外一個(gè)編碼信息塊E2=B1c21+B2c22++Bnc2n,該信息來(lái)自Server節(jié)點(diǎn)或其它鄰居節(jié)點(diǎn),當(dāng)PeerB對(duì)PeerA發(fā)出下載請(qǐng)求時(shí),PeerA按照上述同樣的方式在有限域中選擇系數(shù)c1",c2",并對(duì)當(dāng)前緩存的編碼信息塊E1和E2進(jìn)行線性組合,將運(yùn)算結(jié)果E'=E1c1"+E2c2"分發(fā)給PeerB。如果下游節(jié)點(diǎn)向PeerB請(qǐng)求數(shù)據(jù)包,則PeerB按照同樣的規(guī)則將編碼后的數(shù)據(jù)信息分發(fā)給下游節(jié)點(diǎn)。對(duì)PeerB收到的E'而言,其對(duì)應(yīng)的編碼向量為c1c1"+c2c2"??梢?jiàn),采用網(wǎng)絡(luò)編碼,節(jié)點(diǎn)之間不再傳輸原始的文件塊,而是編碼信息(塊)。當(dāng)某Peer接收到n個(gè)已編碼信息E1,E2...,En后,則有:公式(2.1)如果公式2.1的系統(tǒng)轉(zhuǎn)移矩陣C滿秩,即各編碼向量之間線性獨(dú)立,則能通過(guò)求解矩陣方程[B1,B1Bn]=C-1[E1,E2En]T譯出各原始文件塊B1,B1Bn,并恢復(fù)出原始文件。由于采用隨機(jī)網(wǎng)絡(luò)編碼總能保證矩陣C以接近1的概率滿秩,基于隨機(jī)網(wǎng)絡(luò)編碼和圖2.5所示的原理模型,文獻(xiàn)[25]構(gòu)建了一種網(wǎng)絡(luò)編碼數(shù)據(jù)分發(fā)的原型系統(tǒng):Avalanche。在Avalanche系統(tǒng)中,節(jié)點(diǎn)之間傳輸?shù)男畔⑹前凑丈鲜鲈韺?duì)原始文件塊執(zhí)行隨機(jī)網(wǎng)絡(luò)編碼操作后的編碼信息。Avalanche能克服基于存儲(chǔ)和轉(zhuǎn)發(fā)的數(shù)據(jù)分發(fā)系統(tǒng)(如BitTorrent等)的缺陷和不足,可以顯著減少節(jié)點(diǎn)平均下載時(shí)間,進(jìn)一步提升數(shù)據(jù)分發(fā)系統(tǒng)的傳輸性能。3NS2仿真平臺(tái)3.1NS2簡(jiǎn)介NS2,即NetworkSimulatorVersion2,是面向?qū)ο蟮摹㈦x散事件驅(qū)動(dòng)的網(wǎng)絡(luò)環(huán)境模擬器,主要用于解決網(wǎng)絡(luò)研究方面的問(wèn)題。NS2提供了在無(wú)線或有線網(wǎng)絡(luò)上的TCP、路由、多播等多種協(xié)議的模擬。NS2—晝以來(lái)都在吸收全世界各地研究人員的成果,包括UCB、CMU笏大學(xué)和SUN等公司的無(wú)線網(wǎng)絡(luò)方面的代碼。NS2足一個(gè)面向?qū)ο蟮木W(wǎng)絡(luò)桟擬工具,對(duì)以完整地模擬整個(gè)網(wǎng)絡(luò)壞境。NS2使用一整套C++類(lèi)庫(kù)實(shí)現(xiàn)了大多數(shù)常見(jiàn)的網(wǎng)絡(luò)協(xié)議以及鏈路層模型,利用這些類(lèi)的實(shí)例可以搭建起整個(gè)網(wǎng)絡(luò)的模型,而且包括具體的細(xì)節(jié)實(shí)現(xiàn)。NS2使用兩種編程語(yǔ)言,OTcl(具有面向?qū)ο筇匦缘腡cl腳本程序設(shè)計(jì)語(yǔ)言)和C++,它底層的模擬引擎主要由C++編寫(xiě),同時(shí)利用麻省理工學(xué)院的面向?qū)ο蟮墓ぞ呙钫Z(yǔ)言O(shè)Tcl作為模擬時(shí)的命令和配置接口語(yǔ)言。一方面,由于C++程序運(yùn)行速度快,并且可以設(shè)計(jì)精確、復(fù)雜的算法,可以用于模擬各種網(wǎng)絡(luò)協(xié)議,適合于底層的實(shí)現(xiàn)。另一方面,具有面向?qū)ο筇匦缘腡cl腳本語(yǔ)言通過(guò)調(diào)用引擎中各類(lèi)的屬性、方法定義網(wǎng)絡(luò)的拓?fù)?,配置?shù)據(jù)源,目的端,建立連接,產(chǎn)生所有事件的時(shí)刻表,運(yùn)行并跟蹤模擬結(jié)果,還可以對(duì)結(jié)果進(jìn)行相應(yīng)的統(tǒng)計(jì)處理或制圖,方便網(wǎng)絡(luò)研究者在短時(shí)間內(nèi)快速地開(kāi)發(fā)和模擬出所需要的網(wǎng)絡(luò)壞境。和兩種語(yǔ)言的對(duì)象和變量是通過(guò)關(guān)聯(lián)起來(lái)的,++的類(lèi)和對(duì)象為編譯類(lèi)和編譯對(duì)象,而的類(lèi)和對(duì)象為解釋類(lèi)和解釋對(duì)象,是在基礎(chǔ)上的封裝。圖是架構(gòu)圖,描述了l、l和之間的關(guān)系。圖3.1NS2構(gòu)架圖3.2NS2的特點(diǎn)1、抽象NS模擬器在設(shè)計(jì)上能夠滿足網(wǎng)絡(luò)研究界在模擬方面的多種需。抽象NS具備不同程度的抽象級(jí)別,不僅可以對(duì)細(xì)節(jié)進(jìn)行模擬,也對(duì)以對(duì)不同層次的總體框架進(jìn)行模擬。2、仿真NS提供了更加接近真實(shí)網(wǎng)絡(luò)的仿真環(huán)境,這是其他仿真軟件所不具備的。3、場(chǎng)景生成NS中自帶了流最場(chǎng)景生成文件和運(yùn)動(dòng)場(chǎng)景cbrgen生成文件setdest,讓使用更加方便,當(dāng)然也支持用戶(hù)按照自己的實(shí)際需要編寫(xiě)場(chǎng)景及運(yùn)動(dòng)文件腳本。4、可視化通過(guò)其中的網(wǎng)絡(luò)動(dòng)畫(huà)工具Nam,以動(dòng)畫(huà)的方式實(shí)現(xiàn)網(wǎng)絡(luò)仿真的全過(guò)程,讓整個(gè)運(yùn)動(dòng)過(guò)程一目了然。5、可擴(kuò)充性可擴(kuò)充性表現(xiàn)在可以方便的添加新協(xié)議,讓使用范圍更加廣泛。3.3NS2仿真一般流程進(jìn)行網(wǎng)絡(luò)仿真前,首先分析仿真涉及哪個(gè)層次,NS仿真分兩個(gè)層次:一個(gè)是基于OTcl編程的層次。利用NS已有的網(wǎng)絡(luò)元素實(shí)現(xiàn)仿真,無(wú)需修改NS本身,只需編寫(xiě)OTcl腳本。另一個(gè)是基于C++和OTcl編程的層次。如果NS中沒(méi)有所需的網(wǎng)絡(luò)元素,則需要對(duì)NS進(jìn)行擴(kuò)展,添加所需網(wǎng)絡(luò)元素,即添加新的C++和OTcl類(lèi),編寫(xiě)新的OTcl腳木。假設(shè)用戶(hù)已經(jīng)完成了對(duì)NS的擴(kuò)展,或者NS所包含的構(gòu)件已經(jīng)滿足了要求,那么進(jìn)打一次仿真的步驟大致如下:1、開(kāi)始編寫(xiě)OTcl腳本。首先配置模擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),此時(shí)可以確定鏈路的基本特性,如延遲、帶寬和丟失策略等。2、建立協(xié)議代理,包栝端設(shè)備的協(xié)議綁定和通信業(yè)務(wù)量模型的建立。3、配置業(yè)務(wù)量模型的參數(shù),從而確定網(wǎng)絡(luò)上的業(yè)務(wù)量分布。4、設(shè)置Trace對(duì)象。NS通過(guò)Trace文件來(lái)保存整個(gè)模擬過(guò)程。仿真完后,用戶(hù)可以對(duì)Trace文件進(jìn)行分析研究。5、編寫(xiě)其他的輔助過(guò)程,設(shè)定模擬結(jié)束時(shí)間,至此OTcl腳本編寫(xiě)完成。6、用NS解釋執(zhí)行剛才編寫(xiě)的OTcl腳本。7、對(duì)Trace文件進(jìn)行分析,得出有用的數(shù)據(jù)。8、調(diào)整配置拓?fù)浣Y(jié)構(gòu)和業(yè)務(wù)量模型,重新進(jìn)行上述模擬過(guò)程。下面是仿真的流程圖:圖3.2NS2進(jìn)行仿真的基本流程圖3.4NS2仿真的基本組件和使用3.4.1節(jié)點(diǎn)的結(jié)構(gòu)和配置無(wú)線網(wǎng)絡(luò)中的節(jié)點(diǎn)是可移動(dòng)的節(jié)點(diǎn),擁有很多屬性,如果使用NS研究無(wú)線網(wǎng)絡(luò)需要在無(wú)線節(jié)點(diǎn)創(chuàng)建之前對(duì)節(jié)點(diǎn)的各項(xiàng)屬性進(jìn)行配置。節(jié)點(diǎn)的屬性配置使用Simulator類(lèi)的noed-config{}方法,該方法采用可變的模塊化結(jié)構(gòu),以實(shí)現(xiàn)不同類(lèi)型的節(jié)點(diǎn)在相同的節(jié)點(diǎn)基類(lèi)下定義。配置好屬性以后再創(chuàng)建節(jié)點(diǎn),這是創(chuàng)建節(jié)點(diǎn)的基本方式,如需創(chuàng)建不同的節(jié)點(diǎn)則重新配置屬性以后再創(chuàng)建。下面是使用node-config{}配置一個(gè)節(jié)點(diǎn)屬性的例子。setns[newSimulator] #建立一個(gè)模擬實(shí)例settopo[newTopography] #建立一個(gè)拓?fù)鋱D對(duì)象#配置無(wú)線節(jié)點(diǎn)$nsnode-config-adhocRoutingAODV\ #無(wú)線路由協(xié)議是AODV協(xié)議 -llTypeLL\ #邏輯鏈路層類(lèi)型是LL層 -macTypeMac/802.11\ #MAC層協(xié)議采用802.11協(xié)議 -ifqTypeQueue/DropTail/PriQueue\#接口隊(duì)列類(lèi)型是IFQ隊(duì)列 -ifqLen50\ #網(wǎng)絡(luò)接口隊(duì)列的大小是50 -antTypeAntenna/QmniAntenna\ #天線模型是全向天線 -propTypePropagation/TwoRayGround\ #無(wú)線傳輸模型是TwoRayGround -phyTypePhy/WirelessPhy\ #網(wǎng)絡(luò)接口類(lèi)型是無(wú)線物理層 -channelChannel/WirelessChannel\ #物理信道類(lèi)型無(wú)線信道 -topoInstance$topo\ #設(shè)置拓?fù)鋵?shí)例 -agentTraceON\ #開(kāi)啟代理層trace -routerTraceON\ #開(kāi)啟路由層trace -macTraceOFF\ #關(guān)閉mac層的trace -movementTraceOFF #關(guān)閉移動(dòng)節(jié)點(diǎn)的移動(dòng)記錄設(shè)置完節(jié)點(diǎn)的屬性之后,使用node-congfig{}方法的-reset選項(xiàng)可以將節(jié)點(diǎn)的所有屬性的參數(shù)值設(shè)置為默認(rèn)值:$nsnode-config-reset3.4.2數(shù)據(jù)流生成工具cbrgenNS2自帶有交通場(chǎng)景生成器,名稱(chēng)為cbrgen.tcl。數(shù)據(jù)流生成工具cbrgen用來(lái)生成傳輸負(fù)載,可以產(chǎn)生移動(dòng)節(jié)點(diǎn)之間的TCP流和CBR流。該工具所在的目錄為~ns/indep-utils/cmu-scen-gen/,使用方法如下:nscbrgen.tcl[-typecbr/tcp][-nnnodes][-seedseed][-mcconnections][-raterate]其中各種參數(shù)的含義如下:-type:選擇tcp表示生成tcp流,選擇cbr表示生成cbr流;-nn:nodes表示節(jié)點(diǎn)數(shù)目;-seed:seed表示指定隨機(jī)種子;-mc:connections表示節(jié)點(diǎn)間的最大連接數(shù);-rate:rate表示每個(gè)連接間的數(shù)據(jù)流的速率;在使用cbrgen設(shè)置節(jié)點(diǎn)數(shù)n時(shí),節(jié)點(diǎn)的編號(hào)是從node_(1)到node_(n)。3.4.3拓?fù)溥\(yùn)動(dòng)場(chǎng)景生成工具setdest拓?fù)溥\(yùn)動(dòng)場(chǎng)景生成工具setdest是用來(lái)隨機(jī)生成無(wú)線網(wǎng)所需的節(jié)點(diǎn)運(yùn)動(dòng)場(chǎng)景,也即一定數(shù)量的節(jié)點(diǎn)在某一固定大小的矩形區(qū)域中隨機(jī)移動(dòng)。生成setdest的命令的源代碼文件在~ns/indep-utils/cmu-scen-gen/setdest文件夾下,使用前需執(zhí)行make命令以生成可執(zhí)行文件。setdest的使用方法如下:setdest-v<1>-n<nodes>-p<pause_time>-M<max_speed>-t<simulation_time>-x<max_x>-y<max_y>或setdest-v<2>-n<nodes>-s<speed_type>-m<min_speed>-M <max_speed>-t<simulation_time>-P<pause_type>-p<pause_time>-x <max_x>-y<max_y>其中使用到的參數(shù)定義如下:-v:version_of_setdest指定setdest的版本;-n:nodes指定場(chǎng)景中總節(jié)點(diǎn)數(shù)目;-p:pause_time指定了節(jié)點(diǎn)在運(yùn)動(dòng)到一個(gè)目的點(diǎn)后停留的時(shí)間,如果設(shè)置為0表示節(jié)點(diǎn)不做停留;-s:speed_type為uniform/normal;-m:min_speed指定節(jié)點(diǎn)移動(dòng)的最小速率;-M:max_speed指定節(jié)點(diǎn)移動(dòng)的最大速率;-P:pause_type為constant/uniform;-t:simulation_time指定了模擬場(chǎng)景的持續(xù)時(shí)間,單位為s;-x:max_x指定了節(jié)點(diǎn)運(yùn)動(dòng)區(qū)域的長(zhǎng)度,單位為m;-y:max_y指定了節(jié)點(diǎn)運(yùn)動(dòng)區(qū)域的寬度,單位為m;版本不用使用的參數(shù)也有區(qū)別,需按要求使用。執(zhí)行make命令生成可執(zhí)行文件以后,若沒(méi)有將setdest命令添加到linux系統(tǒng)環(huán)境變量中,則應(yīng)在使用setdest時(shí)需要指定路徑全稱(chēng)或在~ns/indep-utils/cmu-scen-gen/setdest目錄下使用,而且要在setdest前面加“./”。cbrgen和setdest產(chǎn)生的文件均可以采用source命令加入另一個(gè)Otcl腳本中,注意產(chǎn)生的文件用到了諸如node_數(shù)組變量和god_變量,需要在Otcl腳本中預(yù)先建立。3.4.4簡(jiǎn)單動(dòng)畫(huà)顯示工具NAMNAM(NetworkAnimater)的功能是根據(jù)網(wǎng)絡(luò)模擬軟件或真實(shí)環(huán)境的特定格式的Trace輸出文件來(lái)運(yùn)行動(dòng)畫(huà),以觀測(cè)網(wǎng)絡(luò)模擬中的Trace和數(shù)據(jù)分組流向。NAM使用方法如下:nam-g<geometry>-t<graphInput>-i<interval>-j<startup_time>-k<initial_socket_port_number>-N<application_name>-c<cache_size>-f<configuration_file>-r<initial_animation_rate>-a-p-S<namfile>NAM命令中的參數(shù)意義如下:-g:指明NAM窗口的幾何位置;-t:指定nam使用tkgraph,并為tkgraph確定輸入文件;-i:指定屏幕刷新率,單位為毫秒(ms),默認(rèn)為50ms;-j:指定nam演示時(shí)的仿真時(shí)間;-k:初始化socket端口號(hào);-N:為nam實(shí)例命名,它可能在此后用于對(duì)等的同步;-g:指明NAM窗口的幾何位置;-c:進(jìn)行反向演示(模擬的逆過(guò)程)時(shí),緩沖區(qū)所能存儲(chǔ)的活動(dòng)對(duì)象的最大值(size);-f:演示啟動(dòng)時(shí)所載入的文件;-r:演示速度,默認(rèn)是2ms(0.002);-a:創(chuàng)建一個(gè)獨(dú)立的nam實(shí)例;-p:打印Trace的文件格式;-S:開(kāi)啟X同步以便于圖形的調(diào)試,僅限于有X環(huán)境的UNIX系統(tǒng)。OTcl腳本中可以對(duì)節(jié)點(diǎn)、鏈路、隊(duì)列、和Agent等對(duì)象進(jìn)行動(dòng)畫(huà)顯示方面的屬性控制,nam動(dòng)畫(huà)顯示的命令如下:節(jié)點(diǎn)$nodecolor[color] #設(shè)定節(jié)點(diǎn)的顏色$nodeshape[shape] #設(shè)定節(jié)點(diǎn)的形狀$nodelabel[label] #設(shè)定節(jié)點(diǎn)的名稱(chēng)$nodelabel-color[color] #設(shè)定節(jié)點(diǎn)顯示名稱(chēng)的顏色$nodelabel-at[ldirection] #設(shè)定節(jié)點(diǎn)名稱(chēng)的顯示位置2、鏈路和隊(duì)列$nsduplex-link-op<attribute><value>其中attribute的值可以是orient、color、queuePos和label。Orient指定了鏈路的方向,可以是:right、left、down、right-up、right-down、left-up以及l(fā)eft-down。Color指定鏈路的顏色,label定義鏈路顯示的名稱(chēng),queuePos定義隊(duì)列顯示的方向。Agent$nsattach-agent$node$Agent$nsadd-agent-trace$AgentAgentName使用上面的命令就可以使想要顯示的Agent以Agentname出現(xiàn)在節(jié)點(diǎn)的附近的方框內(nèi),這樣可以再nam顯示中看出摸個(gè)節(jié)點(diǎn)上綁定了哪些Agent。3.4.5Trace文件格式Trace文件是在模擬過(guò)程中生成的記錄模擬每一個(gè)分組調(diào)度事件的文件,一次模擬生成的信息基本上全體現(xiàn)在Trace文件中。Trace文件包含了很多有用的可供分析的數(shù)據(jù),我們需要從中篩選出我們關(guān)注的數(shù)據(jù)進(jìn)行分析。有線網(wǎng)絡(luò)的Trace格式有線網(wǎng)絡(luò)的Trace格式中每條記錄包含了如下截圖顯示12項(xiàng)內(nèi)容:圖3.3有線網(wǎng)絡(luò)的Trace部分截圖內(nèi)容現(xiàn)在來(lái)分析有線網(wǎng)絡(luò)的Trace格式的一條記錄中每一項(xiàng)的信息:Event:發(fā)生事件的類(lèi)型有+、-、r和d等4種,分別表示分組進(jìn)入鏈路隊(duì)列、分組離開(kāi)鏈路隊(duì)列、目的節(jié)點(diǎn)接收分組以及隊(duì)列丟棄分組等含義。Time:事件發(fā)生的時(shí)間。Fromnode:發(fā)送分組的源節(jié)點(diǎn)id。Tonode:接收分組的目的節(jié)點(diǎn)id。Pkttype:分組的類(lèi)型。Pktsize:分組的大小。Flags:標(biāo)志項(xiàng)。Fid:IPv6定義的流標(biāo)示符。Srcaddr:表示分組的來(lái)源端,例如2.0表示節(jié)點(diǎn)2的0號(hào)端口。Dstaddr:表示分組的目的端,例如3.0表示節(jié)點(diǎn)3的0號(hào)端口。Seqnum:分組的序列號(hào)。Pktid:分組的唯一標(biāo)示符。無(wú)線網(wǎng)絡(luò)的Trace格式圖3.4無(wú)線網(wǎng)絡(luò)的Trace部分截圖內(nèi)容無(wú)線網(wǎng)絡(luò)的Trace格式的記錄的每一項(xiàng)信息:(1)Event:事件的類(lèi)型有是s、r、f和d4種,分別表示分組的發(fā)送、接收、轉(zhuǎn)發(fā)、丟棄事件。(2)Time:事件發(fā)生的時(shí)間。(3)Node:事件發(fā)生的節(jié)點(diǎn)id。(4)Layer:發(fā)生事件所在的層。(5)Flags:標(biāo)志項(xiàng)。(6)Pktid:分組的id。(7)Pkttype:分組的類(lèi)型。(8)Pktsize:分組的大小。(9)[MACLayerInfo]:MAC層的信息。(10):分隔符。(11)[IPInfo]:IP層的信息。3.5性能參數(shù)分析模型傳輸時(shí)延網(wǎng)絡(luò)的傳輸時(shí)延D(End-to-EndDelay)定義為源節(jié)點(diǎn)發(fā)送出一個(gè)分組到目的節(jié)點(diǎn)接收到該分組之間的時(shí)間差,它包括電(或光)信號(hào)在物理介質(zhì)中的傳播延時(shí)和數(shù)據(jù)在網(wǎng)絡(luò)中的處理延時(shí),也即指網(wǎng)絡(luò)中數(shù)據(jù)傳輸所用的時(shí)間。在很多網(wǎng)絡(luò)應(yīng)用中,比較關(guān)注分組的時(shí)延大小,要求分組的時(shí)延不能太大,例如實(shí)時(shí)的視頻會(huì)議、網(wǎng)絡(luò)電話等。結(jié)合NS的Trace文件,以分組發(fā)送和到達(dá)接收之間的時(shí)間間隔來(lái)計(jì)算傳輸延時(shí),計(jì)算方式如下:D(i)=RT(i)-S(i)T 公式(3.1)式中,D(i)表示第i個(gè)分組的傳輸時(shí)延,RT(i)表示第i個(gè)分組的接收時(shí)間,ST(i)表示第i個(gè)分組的發(fā)送時(shí)間。在分析網(wǎng)絡(luò)的傳輸時(shí)延時(shí),一般都統(tǒng)計(jì)平均傳輸時(shí)延公式(3.2)即統(tǒng)計(jì)Trace腳本中N個(gè)分組的平均傳輸時(shí)延。網(wǎng)絡(luò)吞吐量網(wǎng)絡(luò)的吞吐量(Throughput)TH是網(wǎng)絡(luò)性能的一個(gè)重要參數(shù),是指在不丟包的情況下單位時(shí)間內(nèi)節(jié)點(diǎn)可以接收的數(shù)據(jù)量,單位是字節(jié)每秒或比特每秒。端到端的吞吐量與網(wǎng)絡(luò)狀況有很大關(guān)系,為了測(cè)試端到端的最大吞吐量,應(yīng)該逐漸增大發(fā)送端的數(shù)據(jù)發(fā)送速率,然后計(jì)算接收端的吞吐量,直至吞吐量達(dá)到最大。在分析Trace文件時(shí),使用以下的計(jì)算方式計(jì)算吞吐量: 公式(3.3)上式中:TB(i)是指到底i個(gè)分組被目的節(jié)點(diǎn)接收時(shí)已經(jīng)傳輸?shù)臄?shù)據(jù)總量,RT(i)是第i個(gè)包的接收時(shí)間。i>m,表示計(jì)算從第m個(gè)分組到底i個(gè)分組的吞吐量,特別的,若取m=1則是計(jì)算平均吞吐量。3.6Trace文件分析處理3.6.1gawk處理文檔的過(guò)程gawk是一種對(duì)文檔資料具有很強(qiáng)處理能力的程序語(yǔ)言,簡(jiǎn)短的幾句代碼就可以完成對(duì)文檔的修改、對(duì)比、抽取,相對(duì)其他的語(yǔ)言來(lái)說(shuō),其對(duì)文檔資料的處理方面具有很大的優(yōu)勢(shì)。gawk語(yǔ)言將說(shuō)要處理的文檔分解為一條條的記錄(一般一條記錄是數(shù)據(jù)文件的一行數(shù)據(jù)),每條記錄默認(rèn)以空格TAB鍵分隔為一個(gè)個(gè)字段。例如,Trace文件的每一行作為一個(gè)記錄,取實(shí)際Ttrace文件的記錄如下:圖3.5仿真實(shí)驗(yàn)Trace文件部分截圖內(nèi)容在對(duì)記錄的處理過(guò)程中,一般都要對(duì)記錄的字段進(jìn)行操作。對(duì)記錄中字段的提取可以采用字段變量“$1,$2,$3”等,gawk讀入記錄后已自動(dòng)把字段值存入字段變量。需要注意的是“$0”表示所讀取的整條記錄。表3.1是對(duì)圖3.5Trace文件的記錄進(jìn)行分解和提取的例子。表3.1對(duì)Trace文件記錄的分解和提取一二三四五六七八九十十一r47.355426347_2_AGT251cbr532[13a25800][1:02:0292]$1$2$3$4$5$6$7$8gawk處理文檔的過(guò)程是針對(duì)檔案的每一條記錄搜尋指定的模式(Pattern),當(dāng)記錄中有符合指定的模式時(shí),gawk就會(huì)在此記錄執(zhí)行被指定的動(dòng)作(Action)。gawk依照此方式處理輸入檔案的每一條記錄知道輸入檔案結(jié)束。gawk程序是由很多的Pattern與Action所組成,Action卸載大括號(hào){}里面,一個(gè)pattern后面就跟著一個(gè)Action,整個(gè)gawk程式的結(jié)構(gòu)如下:Pattern(1) {Action(1)}Pattern(2) {Action(2)}Pattern(n) {Action(n)}當(dāng)讀取一條記錄時(shí),該記錄會(huì)經(jīng)過(guò)程序中所有Pattern的審查,如果滿足某一個(gè)Pattern,就執(zhí)行該P(yáng)attern后面的Action。執(zhí)行g(shù)awk程序有兩種方式,第一,如果gawk程序很短,則可以直接寫(xiě)在終端命令行,如gawk“program”input-file1[input-file2...],其中program包括一些Pattern和Action;第二,如果gawk程序較長(zhǎng),較為方便的做法是將gawk程序放在一個(gè)文檔中,即Pattern和Action寫(xiě)在名為program-file的文檔里面,執(zhí)行g(shù)awk的格式如下所示:gawk-fprogram-fileinput-file1[input-file2...]gawk程序的文檔不止一個(gè)時(shí),執(zhí)行g(shù)awk的格式如下所以:gawk-fprogram-file[-fprogram-file2...]input-file1[input-file2...]編寫(xiě)gawk程序的規(guī)則是:Pattern或Action能夠被省略,但是不能同時(shí)被省略;如果Patte被省略,對(duì)于輸入文檔里面的每一條記錄,Action都會(huì)執(zhí)行;如果Action被省略,內(nèi)定的Action則會(huì)打印出所以符合的Pattern的輸入行。其中BEGIN和END是特別的Pattern,gawk在開(kāi)始或要結(jié)束時(shí)分別執(zhí)行相對(duì)應(yīng)于BEGIN或END的Action。3.6.2使用xgraph繪圖Xgraph是NS2自帶的一個(gè)小巧的繪圖工具,是一個(gè)根據(jù)兩列數(shù)據(jù)生成平面圖形的繪圖工具,它還可以根據(jù)數(shù)據(jù)文件里的數(shù)據(jù)繪制出相應(yīng)的圖形。一般數(shù)據(jù)文件由兩列數(shù)據(jù)組成,每一列表示圖中的一個(gè)點(diǎn),第一列為x坐標(biāo),第二列為y坐標(biāo)。兩列之間以空格(包括Tab)、逗號(hào)、分號(hào)、或者句號(hào)隔開(kāi)。使用如下命名畫(huà)圖:xgraphfilenam1,filename2<-options>其中,filename1,filename2為數(shù)據(jù)文件,表明xgra可以將多個(gè)數(shù)據(jù)流的信息圖畫(huà)在一張圖上,有利于對(duì)數(shù)據(jù)進(jìn)行比較。-options可以設(shè)定相關(guān)參數(shù),包括繪圖的顏色、輸出圖形文件的格式、圖形的標(biāo)題等。一些命令選型如下:-hpg以非交互的方式,將圖形以hpg文件格式輸出-t 設(shè)置圖形名稱(chēng)-x設(shè)置x坐標(biāo)軸的名稱(chēng)-y 設(shè)置y坐標(biāo)軸的名稱(chēng)-bb 為圖形設(shè)置邊線-m 數(shù)據(jù)點(diǎn)加粗顯示-tk 用標(biāo)記代替網(wǎng)格顯示4仿真實(shí)現(xiàn)4.1設(shè)計(jì)與建立機(jī)會(huì)網(wǎng)絡(luò)仿真模型了解機(jī)會(huì)網(wǎng)絡(luò)的拓?fù)涮攸c(diǎn)及NS2仿真平臺(tái)的功能后,經(jīng)過(guò)一番選擇,在NS2仿真平臺(tái)下建立如下的機(jī)會(huì)網(wǎng)絡(luò)拓?fù)淠P?,各參?shù)如下表4.1表4.1機(jī)會(huì)網(wǎng)絡(luò)拓?fù)淠P蛥?shù)無(wú)線節(jié)點(diǎn)個(gè)數(shù)10個(gè)節(jié)點(diǎn)顯示大小40仿真拓?fù)鋱?chǎng)景大小500m×500m數(shù)據(jù)流類(lèi)型cbrcbr分組的大小512字節(jié)每秒發(fā)送分組個(gè)數(shù)4場(chǎng)景最大數(shù)據(jù)流連接數(shù)5節(jié)點(diǎn)隨機(jī)移動(dòng)最大速度20m/s節(jié)點(diǎn)停留時(shí)間0s仿真模型持續(xù)時(shí)間100s4.1.1編寫(xiě)仿真模型腳本代碼選好機(jī)會(huì)網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)動(dòng)模型和路由協(xié)議后,就可以按照ns2仿真平臺(tái)的知識(shí)來(lái)編寫(xiě)腳本代碼了。編好運(yùn)行成功后的Tcl腳本代碼如下:#無(wú)線節(jié)點(diǎn)參數(shù)setval(chan) Channel/WirelessChannel #物理信道類(lèi)型是無(wú)線信道setval(prop) Propagation/TwoRayGround #無(wú)線傳輸模型是TwoRayGroundsetval(netif) Phy/WirelessPhy #網(wǎng)絡(luò)接口層是無(wú)線物理層setval(mac) Mac/802_11 #MAC層協(xié)議采用802.11setval(ifq) Queue/DropTail/PriQueue #接口隊(duì)列模型是IFQ隊(duì)列setval(ll) LL #邏輯鏈路層類(lèi)型是LL層setval(ant) Antenna/OmniAntenna #天線模型是全向天線setval(ifqlen) 50 #網(wǎng)絡(luò)接口隊(duì)列大小是50setval(rp) AODV #路由協(xié)議是AODVsetval(x) 500 #設(shè)定拓?fù)鋱?chǎng)景范圍-長(zhǎng)度-500msetval(y) 500 #設(shè)定拓?fù)鋱?chǎng)景范圍-寬度-500msetval(stop) 100.0 #設(shè)定模擬仿真時(shí)間,100ssetval(nn) 10 #設(shè)定無(wú)線節(jié)點(diǎn)數(shù)目為10個(gè)setval(cp) "cbr-10-5-4" #流量場(chǎng)景生成文件setval(sc) "scene-10-20-100" #運(yùn)動(dòng)場(chǎng)景生成文件#建立一個(gè)模擬實(shí)例setns[newSimulator] #開(kāi)啟Trace跟蹤文件和nam顯示文件 settracefd[open3.trw]setnamtrace[open3.namw]$nstrace-all$tracefd$nsnamtrace-all-wireless$namtrace$val(x)$val(y)#建立一個(gè)拓?fù)鋱D對(duì)象,記錄節(jié)點(diǎn)的移動(dòng)情況settopo[newTopography]$topoload_flatgrid$val(x)$val(y)#創(chuàng)建god對(duì)象,存儲(chǔ)網(wǎng)絡(luò)狀態(tài)以及節(jié)點(diǎn)間的連接信息setgod_[create-god$val(nn)]#創(chuàng)建物理信道對(duì)象setchan_1_[new$val(chan)]#配置無(wú)線節(jié)點(diǎn)(包括各種參數(shù))$nsnode-config-adhocRouting$val(rp)\ -llType$val(ll)\ -macType$val(mac)\ -ifqType$val(ifq)\ -ifqLen$val(ifqlen)\ -antType$val(ant)\ -propType$val(prop)\ -phyType$val(netif)\ -channel$chan_1_\ -topoInstance$topo\ -agentTraceON\ -routerTraceON\ -macTraceOFF\ -movementTraceOFF#建立無(wú)線節(jié)點(diǎn)for{seti0}{$i<$val(nn)}{incri}{ setnode_($i)[$nsnode] $node_($i)random-motion0; #禁止節(jié)點(diǎn)隨機(jī)移動(dòng)}#調(diào)用流量場(chǎng)景生成文件source$val(cp)#調(diào)用隨機(jī)運(yùn)動(dòng)場(chǎng)景生成文件source$val(sc)#設(shè)定無(wú)線節(jié)點(diǎn)的大小for{seti0}{$i<$val(nn)}{incri}{ $nsinitial_node_pos$node_($i)40}#仿真結(jié)束時(shí)重置節(jié)點(diǎn)for{seti0}{$i<$val(nn)}{incri}{ $nsat100.0"$node_($i)reset";}#定義結(jié)束過(guò)程,關(guān)閉Trace文件盒NAM顯示文件,模擬結(jié)束時(shí)調(diào)用procfinish{}{ globalnstracefdnamtrace $nsflush-trace close$tracefd close$namtrace exit0}#模擬結(jié)束時(shí)調(diào)用結(jié)束過(guò)程$nsat$val(stop)"finish"$nsat$val(stop)"puts\"NSEXISTING...\";$nshalt"puts"StartSimulation..." #執(zhí)行模擬$nsrun4.1.2數(shù)據(jù)流場(chǎng)景文件的生成數(shù)據(jù)流類(lèi)型選擇cbr流,包固定大小為512比特,無(wú)線節(jié)點(diǎn)數(shù)目10個(gè),隨機(jī)種子設(shè)為1,節(jié)點(diǎn)間的最大連接數(shù)設(shè)為5且每秒發(fā)送4個(gè)分組包,所以數(shù)據(jù)發(fā)送速率為4×512×8=16kbps。調(diào)用數(shù)據(jù)流生成工具cbrgen生成數(shù)據(jù)流場(chǎng)景文件cbr-10-5-4:圖4.1數(shù)據(jù)流場(chǎng)景文件生成執(zhí)行上述命令后,就會(huì)生成一個(gè)cbr-10-5-4的文件,然后把生成的這個(gè)文件放到跟Tcl腳本文件相同的目錄下,就可以在Tcl腳本中用souce命令調(diào)用這個(gè)文件了。生成的數(shù)據(jù)流場(chǎng)景文件cbr10-5-4的里面代碼內(nèi)容如下:#nodes:10,maxconn:5,sendrate:0.25,seed:1#1connectingto2attime2.5568388786897245setudp_(0)[newAgent/UDP]$nsattach-agent$node_(1)$udp_(0)setnull_(0)[newAgent/Null]$nsattach-agent$node_(2)$null_(0)setcbr_(0)[newApplication/Traffic/CBR]$cbr_(0)setpacketSize_512$cbr_(0)setinterval_0.25$cbr_(0)setrandom_1$cbr_(0)setmaxpkts_10000$cbr_(0)attach-agent$udp_(0)$nsconnect$udp_(0)$null_(0)$nsat2.5568388786897245"$cbr_(0)start"#4connectingto5attime56.333118917575632setudp_(1)[newAgent/UDP]$nsattach-agent$node_(4)$udp_(1)setnull_(1)[newAgent/Null]$nsattach-agent$node_(5)$null_(1)setcbr_(1)[newApplication/Traffic/CBR]$cbr_(1)setpacketSize_512$cbr_(1)setinterval_0.25$cbr_(1)setrandom_1$cbr_(1)setmaxpkts_10000$cbr_(1)attach-agent$udp_(1)$nsconnect$udp_(1)$null_(1)$nsat56.333118917575632"$cbr_(1)start"#4connectingto6attime146.96568928983328setudp_(2)[newAgent/UDP]$nsattach-agent$node_(4)$udp_(2)setnull_(2)[newAgent/Null]$nsattach-agent$node_(6)$null_(2)setcbr_(2)[newApplication/Traffic/CBR]$cbr_(2)setpacketSize_512$cbr_(2)setinterval_0.25$cbr_(2)setrandom_1$cbr_(2)setmaxpkts_10000$cbr_(2)attach-agent$udp_(2)$nsconnect$udp_(2)$null_(2)$nsat146.96568928983328"$cbr_(2)start"#6connectingto7attime55.634230382570173setudp_(3)[newAgent/UDP]$nsattach-agent$node_(6)$udp_(3)setnull_(3)[newAgent/Null]$nsattach-agent$node_(7)$null_(3)setcbr_(3)[newApplication/Traffic/CBR]$cbr_(3)setpacketSize_512$cbr_(3)setinterval_0.25$cbr_(3)setrandom_1$cbr_(3)setmaxpkts_10000$cbr_(3)attach-agent$udp_(3)$nsconnect$udp_(3)$null_(3)$nsat55.634230382570173"$cbr_(3)start"#7connectingto8attime29.546173154165118setudp_(4)[newAgent/UDP]$nsattach-agent$node_(7)$udp_(4)setnull_(4)[newAgent/Null]$nsattach-agent$node_(8)$null_(4)setcbr_(4)[newApplication/Traffic/CBR]$cbr_(4)setpacketSize_512$cbr_(4)setinterval_0.25$cbr_(4)setrandom_1$cbr_(4)setmaxpkts_10000$cbr_(4)attach-agent$udp_(4)$nsconnect$udp_(4)$null_(4)$nsat29.546173154165118"$cbr_(4)start"#Totalsources/connections:4/54.1.3隨機(jī)運(yùn)動(dòng)場(chǎng)景文件的生成指定setdest的版本號(hào)為1,場(chǎng)景總節(jié)點(diǎn)數(shù)目為10,節(jié)點(diǎn)不停留,最大移動(dòng)速度設(shè)為20m/s,仿真時(shí)間為100s,拓?fù)鋱?chǎng)景的范圍為500m,500m,由此調(diào)用setdest工具生成隨機(jī)運(yùn)動(dòng)場(chǎng)景文件scene-10-20-100:圖4.2生成隨機(jī)運(yùn)動(dòng)場(chǎng)景文件如圖4.2執(zhí)行上述命令后得到隨機(jī)運(yùn)動(dòng)場(chǎng)景文件scene-10-20-100,然后也必須把這個(gè)文件放到跟Tcl腳本文件相同的目錄下才能在Tcl腳本文件中用source調(diào)用隨機(jī)運(yùn)動(dòng)場(chǎng)景文件。scene-10-20-100文件的詳細(xì)代碼見(jiàn)附錄A。4.2NAM查看運(yùn)行過(guò)程處理好Tcl腳本文件、cargen-10-5-4文件及scene-10-20-100文件后,就可以運(yùn)行Tcl腳本文件并用NAM來(lái)查看整個(gè)仿真拓?fù)涞倪\(yùn)行變化了。先執(zhí)行Tcl腳本文件后會(huì)產(chǎn)生2個(gè)分別是.nam文件和.tr文件,再運(yùn)行.nam文件就可以看到拓?fù)溥\(yùn)行動(dòng)畫(huà)了。執(zhí)行過(guò)程如下圖4.3所示:圖4.3nam文件執(zhí)行過(guò)程生成的動(dòng)畫(huà)如下:圖4.4time=47.294286時(shí)刻的網(wǎng)絡(luò)運(yùn)行狀態(tài)的截圖圖4.5time=29.375975時(shí)刻nam動(dòng)畫(huà)放大后的狀態(tài)截圖圖4.6time=29.554319時(shí)刻的運(yùn)行狀態(tài)截圖其中圖4.4中顯示的就是time=47.294286時(shí)刻的網(wǎng)絡(luò)運(yùn)行狀態(tài),各個(gè)無(wú)線節(jié)點(diǎn)都在隨機(jī)運(yùn)動(dòng)并發(fā)送數(shù)據(jù);圖4.5是time=29.375975時(shí)刻的狀態(tài),圖中的那兩個(gè)黑色斑點(diǎn)就是節(jié)點(diǎn)之間發(fā)送的分組包,通過(guò)查看Trace文件3.tr內(nèi)容可知分別表示節(jié)點(diǎn)5接收節(jié)點(diǎn)1發(fā)來(lái)的分組和節(jié)點(diǎn)5轉(zhuǎn)發(fā)由源節(jié)點(diǎn)1發(fā)送給目的節(jié)點(diǎn)2的分組包;圖4.6中圓圈表示發(fā)射功率的范圍,功率越大,范圍越大,功率越小,范圍越小,說(shuō)明time=29.554319時(shí)刻有新的數(shù)據(jù)流cbr產(chǎn)生,各個(gè)節(jié)點(diǎn)開(kāi)始偵聽(tīng)新的路由路徑,我們也可以從數(shù)據(jù)流場(chǎng)景的生成文件cbrgen-10-5-4的內(nèi)容中得到證明。4.3仿真結(jié)果分析當(dāng)運(yùn)行nam文件觀看完整個(gè)仿真網(wǎng)絡(luò)拓?fù)涞倪\(yùn)行狀態(tài)后,就可以開(kāi)始用gawk語(yǔ)言對(duì)Trace文件3.tr進(jìn)行分析得到想要的相關(guān)網(wǎng)絡(luò)性能參數(shù),然后通過(guò)xgraph工具對(duì)分析處理得到的數(shù)據(jù)進(jìn)行繪圖得到更直觀的表現(xiàn)。4.3.1時(shí)延分析根據(jù)得到的Trace文件3.tr及第四部分的時(shí)延的定義算式編寫(xiě)出分析時(shí)延的gawk程序:3delay.awk,編寫(xiě)的代碼內(nèi)容為:BEGIN{highest_pkt_id=0; #保存已處理過(guò)的分組中最大的pkt_id值}{ event=$1; #第1個(gè)字段$1標(biāo)識(shí)事件的類(lèi)型 time=$2; #第2個(gè)字段$2標(biāo)識(shí)事件的發(fā)生的時(shí)間 node_id=$3; #第3個(gè)字段$3標(biāo)識(shí)事件發(fā)生所在的節(jié)點(diǎn) node_=substr(node_id,2,1); #獲取節(jié)點(diǎn)號(hào),從_x_變成xtrace_type=$4; #第4個(gè)字段$4標(biāo)識(shí)事件發(fā)生所在的網(wǎng)絡(luò)層面flag=$5;pkt_id=$6; #第6個(gè)字段$6標(biāo)識(shí)分組的idpkt_type=$7; #第7個(gè)字段$7標(biāo)識(shí)分組的類(lèi)型 pkt_size=$8; #第8個(gè)字段$8標(biāo)識(shí)分組的大小 if(pkt_id>highest_pkt_id)#更新highest_pkt_id的值 highest_pkt_id=pkt_id;if(event=="s"&&trace_type=="AGT"&&pkt_type=="cbr") start_time[pkt_id]=time; #滿足條件的話保存發(fā)送分組的時(shí)間 if(trace_type=="AGT"&&pkt_type=="cbr"&&event=="r") end_time[pkt_id]=time; #滿足條件保存目的節(jié)點(diǎn)接收分組的時(shí)間 }#程序結(jié)束時(shí)執(zhí)行END的動(dòng)作 END{ for(pkt_id=0;pkt_id<=highest_pkt_id;pkt_id++){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保育員對(duì)幼兒的冬季護(hù)理
- 電話銷(xiāo)售相關(guān)培訓(xùn)課件
- 腦卒中早期康復(fù)護(hù)理
- 開(kāi)心工作培訓(xùn)課件
- 藥店員工培訓(xùn)
- 中醫(yī)內(nèi)科護(hù)理常規(guī)
- 熔模鑄造工藝流程詳解
- 園長(zhǎng)崗位培訓(xùn)
- 四式教育之社會(huì)發(fā)展史
- 護(hù)理行業(yè)調(diào)研
- 人力資源 公司勞務(wù)派遣招聘流程及制度
- 新版人音版小學(xué)音樂(lè)一年級(jí)下冊(cè)全冊(cè)教案
- 初中語(yǔ)文:非連續(xù)性文本閱讀練習(xí)(含答案)
- 國(guó)開(kāi)(山東)2024年《小學(xué)生心理健康教育》形考1-3終考答案
- 人工智能營(yíng)銷(xiāo)(第2版)課件全套 陽(yáng)翼 第1-8章 邁入人工智能領(lǐng)域-人工智能營(yíng)銷(xiāo)的倫理與法律問(wèn)題
- 上海市2023-2024學(xué)年八年級(jí)下學(xué)期期末數(shù)學(xué)練習(xí)卷(解析版)
- RCA分析之給藥錯(cuò)誤課件
- 高級(jí)護(hù)理實(shí)踐智慧樹(shù)知到期末考試答案章節(jié)答案2024年浙江中醫(yī)藥大學(xué)
- JBT 14645-2023 低溫裝置用密封墊片 (正式版)
- 海南省天一大聯(lián)考2025屆物理高一第二學(xué)期期末聯(lián)考試題含解析
- 北京市2022-2023學(xué)年八年級(jí)下學(xué)期英語(yǔ)期末試卷(含答案)
評(píng)論
0/150
提交評(píng)論