NS2 TORA協議修正

2021-08-15 19:36:56 字數 1166 閱讀 6224

ns2.35中自帶了經典的tora路由協議,但是無法正常執行,需要對其c++原始檔進行修改。

需要修改3個c++原始檔:ns/ns-2.35/tora/tora.h, ns/ns-2.35/tora/tora.cc, ns/ns-2.35/imep/imep.cc

(1)修改 ns/ns-2.35/tora/tora.h

新增標頭檔案:

#include

在最後新增:

//added for the port -dmux, for passing packets up to agents

protected

: portclassifier *dmux_;

(2)修改 ns/ns-2.35/tora/tora.cc

在 int toraagent::command(int argc, const charconst argv) 函式的最後乙個 else if 後 新增:

elseif(

strcmp

(argv[1]

,"port-dmux")==

0)return tcl_ok;

}

(3)修改 ns/ns-2.35/imep/imep.cc

將 void imepagent::handlerrexmittimer() 函式中的 rexmittimer.start(rexat - current_time); 替換為:

if

(rexat-current_time<

0.000001

)// preventing eternal loop.

rexmittimer.

start

(0.000001);

else

rexmittimer.

start

(rexat - current_time)

;

如果沒有修改 imep.cc 可能會出現死迴圈。

ns2 AODV協議分析

2 協議從接收到乙個分組開始的基本流程 aodv 路由協議主要包括以下幾個元件 1 協議實體 2 路由表 3 定時器 1 廣播定時器 2 週期hello 報文廣播定時器 3 用於鄰居管理的定時器 4 用於路由快取的定時器 5 用於本地修復的定時器 6 快取廣播id 的定時器 4 日誌記錄器 5 路由...

ns2,AODV協議解析

在ns2.27中,aodv路由協議主要包括以下幾個元件 1 協議實體 2 路由表 3 定時器 1 廣播定時器 2 週期hello報文廣播定時器 3 用於鄰居管理的定時器 4 用於路由快取的定時器 5 用於本地修復的定時器 6 快取廣播id的定時器 4 日誌記錄器 5 路由快取佇列 首先來看協議從接收...

在NS2中新添協議

在ns2下進行新協議開發的一般流程 由於ns2使用 物件模型,所以在協議開發的過程中,總是從c 和tcl兩個類入手。流程說明如下 1 定義新的路由協議 在aodv.h中定義class aodv public agent 在ns2中,所有路由協議都是從agent類繼承而來的。其中,recv 函式和co...