日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NS2仿真分析无线网络的攻击防御(2)

發布時間:2024/8/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NS2仿真分析无线网络的攻击防御(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

牙說:繼續上一篇博文進行翻譯。

4. NS和我們的工作

我們試圖評估黑洞攻擊在無線Ad-hoc網絡中的影響。 為了實現這一點,我們已經使用NS 網絡模擬 [14]程序模擬了一個含有黑洞節點的無線自組網絡場景。為了模擬無線自組織網絡中的黑洞節點,我們實現了一種將數據包吸引到自身之后丟棄數據包的新協議。在本章中,我們介紹了NS以及我們對這個軟件的改變。

4.1 NS網絡模擬器

NS是一個事件驅動的網絡模擬器程序,加利福尼亞州伯克利大學開發,其中包括許多網絡對象,如協議,應用程序和流量來源行。 NS是VINT項目軟件的一部分[15],自從1995年以來一直由DARPA資助。

?? 圖13 NS-2模式

在仿真層,NS使用OTcl(面向對象的工具命令語言)編程語言來解釋用戶仿真腳本。 OTcl語言實際上是面向對象的Tcl語言擴展。 Tcl語言與C ++編程語言完全兼容。在頂層,NS是用戶TCL腳本的解釋器,它們與C++代碼一起使用,在第五章將詳細介紹TCL語言的使用。

如圖13 [16]所示,用戶編寫的OTcl腳本由NS解釋。 當OTcl腳本被解釋時,NS同時創建兩個主要的分析報告。 其中之一是NAM對象,顯示模擬的視覺動畫。另一個是由模擬中所有對象的行為組成的跟蹤對象。它們都是由NS創建的文件,與NS一起使用的NAM軟件使用.nam文件。 Latter是一個“.tr”文件,其中包含文本格式的所有模擬軌跡。(牙注:翻譯不好,詞大致達意)

在本研究中,我們使用了ns一體式的2.29版本,并使用Cygwin在Windows環境中安裝了該軟件包。 在版本2之后,NS通常使用NS-2,在我們的論文中,我們將其稱為NS-2 我們在文本編輯器中編寫了“.tcl”文件,并使用Unix操作系統的“cat”,“awk”,“wc”和“grep”命令分析了“.tr”文件的結果。 AODV協議的黑洞行為的實現階段是使用C ++編寫的。

4.2?在NS中實現新的路由協議以模擬黑洞行為

在[17]中描述了NS-2中新的Manet單播路由協議的實現。在我們的工作中,我們已經使用了使用AODV協議的無線自組織網絡中顯示黑洞行為的節點(牙注:這句話非常繞口,考驗語文水平……)。 由于節點表現為黑洞,因此它們必須使用可以參與AODV消息傳遞的新路由協議。 下面詳細介紹這種新的路由協議的實現:

NS中的所有路由協議安裝在“ns-2.29”的目錄中。 我們復制此目錄中AODV協議,并將目錄的名稱更改為“blackholeaodv”

我們把這個目錄中標記為“aodv”的所有文件的名稱將更改為“blackholeaodv”,如blackholeaodv.cc,blackholeaodv.h,blackholeaodv.tcl,blackholeaodv_rqueue.cc,blackholeaodv_rqueue.h等,除了“ aodv_packet.h“。 我們的工作重點是AODV和黑洞AODV協議將相互發送相同的AODV數據包。 因此,我們沒有將“aodv_packet.h”文件復制到blackholeaodv目錄中。

我們目錄中的所有文件所有類,函數,結構體,變量和常量名稱都改變了(牙注:改變大概是說改aodv為blackholeaodv吧),而不包括屬于AODV packet.h代碼的結構體名稱。我們設計了aodv和blackholeoadv協議來發送對方的aodv數據包。 這兩個協議實際上是一樣的。

在上述更改之后,我們更改了NS-2共享的兩個常見文件,將新的blackholeaodv協議集成到模擬器中。以下是更改說明:


圖16 ?blackholeaodv“協議代理添加在”\ tcl \ lib \ ns-lib.tcl“中

第一個修改的文件是“\ tcl \ lib \ ns-lib.tcl”,其中協議代理程序被編碼為一個過程。 當節點使用blackholeaodv協議時,該代理在模擬開始時進行調度,并分配給將使用blachholeadodv協議的節點。 blackholeaodv的代理程序如圖14所示。

在“ns-2.29”的根目錄中修改的第二個文件是“\ makefile”。 在所有實現準備好之后,我們必須再次編譯NS-2來創建對象文件。 我們將圖15中的下面的行添加到“\ makefile”中。


圖17?“/makefile”中添加的部分

到目前為止,我們已經實施了一個新的路由協議,被標記為blackholeaodv。 但是,這種新的路由協議還沒有實現黑洞行為。 要將黑洞行為添加到新的AODV協議中,我們在blackholeaodv / blackholeaodv.cc C ++文件中進行了相同的更改。 我們將在blackholeaodv / blackholeaodv.cc文件中描述我們在AODV和Black Hole AODV協議下的工作機制的這些改變。

當通過“aodv / aodv.cc”的“recv”功能接收到數據包時,它將根據其類型處理數據包。 如果數據包類型是許多AODV路由管理數據包中的任何一個,它將數據包發送到下面我們將要解釋的“recvAODV”函數下。如果接收到的數據包是數據包,通常AODV協議將其發送到目標地址,但是作為黑洞,它會丟棄所有數據包。?在下面的代碼中,第一個“if”條件提供如果它是目標時節點接收數據包的情況,“else”條件會丟棄所有剩余的數據包。 If語句如圖16所示。


圖16 接收或者丟棄數據包的情況

如果分組是AODV管理分組,則“recv”函數將其發送到“recvblackholeAODV”功能。 “recvblackholeAODV”功能將檢查AODV管理包的類型,并根據包的類型將其發送到具有“case”語句的適當函數。 例如; RREQ數據包發送到“recvRequest”函數,RREP數據包發送到“recvReply”函數等,“recvblackholeAODV”函數的case語句如圖17所示。


圖17?用于選擇AODV控制消息類型的案例語句

在我們的情況下,我們將考慮RREQ功能,因為黑洞行為是在惡意節點接收到RREQ數據包時進行的。 當惡意節點接收到RREQ數據包時,它會立即發送RREP數據包,就好像它有足夠的能力快速到達目的地。惡意節點通過這樣的方式欺騙節點。AODV協議的最大序列號是4294967295(32位無符號整數值中的最大值)。為了達到最好的欺瞞效果,惡意節點將發送的RREP數據包的序列號設置為4294967295,跳數設置為1。

黑洞攻擊的偽RREP消息如圖18所示。


圖18?黑洞攻擊的虛假RREP消息


所有更改完成后,我們重新編譯所有NS-2文件以創建對象文件。 完成編譯后,我們有一個新的測試臺來模擬AODV協議中的黑洞攻擊。 在下一章中我們將介紹模擬和仿真結果。


5.黑洞攻擊模擬及其影響

? ?在本章中,首先,我們將簡要介紹Tcl語言來了解仿真場景,接著展示了如何測試黑洞的實現以及展示黑洞攻擊的模擬來演示其效果。然后我們將評估黑洞攻擊在Ad-Hoc網絡中的影響。

5.1 NS中的TCL語言

? ?TCL是加州大學伯克利分校的John Ousterhout開發的強大的解釋性編程語言。 [18] TCL是一個非常強大和動態的編程語言。Tcl是一個真正的跨平臺語言,易于部署而且具有高擴展性。

? ?Tcl語言最顯著的優點是與C語言完全兼容,Tcl庫可以直接與C程序進行互操作。我們將在下一節中描述我們設計用于實施黑洞攻擊的Tcl代碼。

5.2 測試黑洞AODV

為了更加直觀地顯示實驗結果,我們使用了NAM應用程序進行觀測。比較黑洞節點的的效果,我們使用了兩個模擬:在第一種情況下,我們沒有使用任何黑洞AODV節點(開展黑洞攻擊的惡意節點稱為黑洞節點),在第二種情況下,我們在模擬中添加了一個黑洞攻擊節點,然后我們使用NAM比較了模擬的結果。

5.2.1 模擬參數和測試指標

為了從模擬節點中獲得等價準確的結果,我們使用了UDP協議。在使用UDP協議的時候,即使數據包丟失,源節點也會持續不斷地發送數據包,但是如果是TCP協議,它就會斷開連接。使用UDP,我們可以觀察到仿真期間發送節點和接收節點之間的連接流動,還能夠分開發送和接收的數據包,因為在仿真期間UDP連接不會丟失。 如果使用TCP協議,我們不能對發送或接收的數據包進行計數,因為如果沒有收到TCP ACK數據包,則啟動TCP連接的節點將在一段時間后完成連接。

我們生成一個具有7個節點的小型網絡,并在節點2和節點5之間建立UDP連接,附加通過UDP連接生成常量數據包的CBR(Constant Bit Rate)。CBR數據包的大小選擇為512字節長,數據速率設置為1M字節/s(牙注:有疑問……/s?)。場景大小為79m x 659m的持續時間設置為20s,CBR的連接在時刻1s開始并且持續到仿真結束。我們手動定義了節點的適當位置以顯示數據流,并且還向節點1引入一個運動,以顯示網絡中的數據流的變化。 Tcl腳本包含第一次模擬的黑洞AODV,如附錄A所示。(牙注:附錄見最后

5.2.2?模擬評估

在沒有黑洞AODV節點的第一種情況下,當我們使用NAM查看模擬的動畫時,節點5和節點4之間的連接是正常的不連接,圖19顯示了從節點2到節點5的數據流。當節點1移動離開節點2的傳播范圍時,通過節點3建立了新的連接。新的連接路徑如圖20所示。

19 節點2和節點5通過節點1和節點6建立的數據流

19 節點2和節點5通過節點3和節點4建立的數據流

? ? 在第二種情況下,注釋掉Tcl腳本中的三個語句,如圖21所示,我們可以輕松地將Black Hole行為添加到Node0中。第一個語句“$ ns node-config -adhocRouting blackholeAODV”是添加黑洞AODV行為到從此點創建的節點。 但是我們只將節點0定義為黑洞AODV,并且在節點0再次使用第三個語句之后,我們必須更改為AODV協議。 第二個聲明只是向Node0發出通知,將其定義為黑洞節點。


圖21?在Tcl腳本中創建和配置節點

節點0為黑洞AODV節點,它吸收從節點2到節點5的連接中的數據包。圖22顯示了黑洞AODV節點如何吸收流量。


圖22?節點0(黑洞節點)吸收節點2到節點5的數據包

因為我們不能輕易地看到黑洞AODV Node在大量節點和連接中的影響,在實際的仿真中進行實驗之前,我們必須在具有少量節點的小型模擬中測試實現。


5.3 黑洞攻擊的測試

5.3.1?模擬參數和測量指標

在偶數節點(包括0(零))和奇數節點之間建立UDP連接,我們使用了20個節點,節點18和節點19沒有連接到網絡中的任何其他節點

在這些情況下,偶數節點(節點0 - 節點16)是發送節點,奇數節點(節點1 - 節點17)是接收節點,偶數節點將分組發送到下一個奇數節點,例如 節點0到節點1,節點2到節點3,節點4到節點5等等。我們可以對任何2個節點之間的發送和接收分組進行計數。我們將 UDP代理連接到偶數節點,并且NULL代理附加到奇數節點。

這個場景中,18個節點之間共有9個連接,并且所有這些連接總是位于相同的節點之間。 但是,在每種情況下,每個單個節點都被放置在不同的坐標上并且有著不同的運動表現,這有助于我們使用相同的節點得到不同的結果,。節點位置和移動由NS的第三方應用程序“./setdest”隨機生成,并保存在模擬根目錄的“/ scenario”目錄中。 使用“./setdest”的參數命名每個場景,例如?“scen1forAODV-n20-t500-x750-y750”,“./setdest”應用程序會在750 x 750米的平面空間中,在500秒內,隨機選擇速度,從20個節點之間產生一個從隨機起點移動到隨機目的地的場景。

我們附加通過UDP連接生成常量數據包的CBR(常數比特率)應用程序。 場景的持續時間為500秒,CBR連接在場景的第一秒開始,持續到場景的450秒。在本實驗中,CBR參數如下:

包大小:512bytes

數據速率:10Kbits

在這個仿真中,我們沒有使用隨機包。

連接類型由NS的第三方應用程序“./cbrgen”生成,并在模擬根目錄的“/ scenario”目錄中保存為名為“cbr”的文件。 附錄A中注釋的for循環將創建相同的cbr連接。

仿真中的節點由Tcl語言的“for”循環語句生成。 創建節點的這些語句如圖23所示。第一個循環創建圖24中配置的前19個節點。“$ ns_ node-config - adhocRouting blackholeAODV”語句將節點配置的路由協議更改為NS中實現的“blackholeAODV”。在這句語句后面的第二個循環創造了最后一個節點。改變“$ val(nnaodv)”變量,我們可以根據需要創建AODV和Black Hole AODV節點。

23 使用循環創建無線節點

24 無線節點配置

我們的模擬文件以其模擬數字和“BlackHole”定義命名,例如“sim1forBlackHole.tcl”用于模擬1.為了比較具有黑洞AODV節點的模擬與沒有的模擬文件,我們更改了“ $ val(nnaodv)“變量為20,并在”$ ns_ node-config -adhocRouting blackholeAODV“語句前放置注釋”#“,然后我們將Tcl腳本復制到同一目錄中,用“AODV”更改”BlackHole“定義的文件名,例如“sim1forAODV.tcl”用于模擬1.黑洞AODV的第一個模擬文件的內容,如附錄A所示。

5.3.2?檢查跟蹤文件并獲取結果

我們從Tcl腳本的輸出跟蹤文件中獲取模擬結果,該文件具有.tr擴展名。 跟蹤文件包括模擬中的所有事件,例如發送數據包,哪個節點生成它們,哪個節點已經接收到那個類型的數據包被發送,如果它被丟棄為什么被丟棄等等。在我們的模擬中,我們使用特別用于無線網絡的“new-trace”文件格式,并包括詳細的事件信息。 新追蹤文件示例如附錄B所示。

為了從跟蹤文件獲得結果,我們只需要字段1中的事件種類,字段4中的節點id(-Ni)和跟蹤級別(-Nl),字段5中的源地址,目標地址和數據包類型。要識別 以上來自跟蹤文件的信息,我們使用UNIX的“cat”命令,并將其輸出寫入文件以供模擬的所有跟蹤文件使用。 在所有輸出中,我們只需要:

字段0中的事件信息的“s”值,以計算發送節點發送的CBR數據包數量

字段0中的事件信息的“r”值,以計算接收節點接收到的CBR數據包數量

node?id”值為字段4中的節點id信息,用于發送節點或接收節點

“MAC”值在字段4中的跟蹤級別信息,以過濾MAC級別(牙注:過濾mac級別是什么意思?)

字段5中的源地址和目的地地址信息的“源地址”和“目的地址”值,以計數從發送節點到接收節點的數據包。

cbr:字段5中的數據包類型,用于過濾cbr包(牙注:過濾cbr包是什么意思?

總結

以上是生活随笔為你收集整理的NS2仿真分析无线网络的攻击防御(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。