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...