ns2中模擬wsn,用timestamp時間戳計算點對點delay延遲時
如果在發包時呼叫了
scheduler::instance().schedule(target_, p, jitter); //這裡用jitter來避免與鄰居同時發包來減少collision
但是這個也同時delay了發包時間。所以給發包加timestamp時應該把它計算上才是正確的發包時間。這樣在接受到這個包時,用接受時間減去發包時間才能計算出正確的delay
下面是具體的實現方法,先在標頭檔案中定義2個巨集
#define current_time scheduler::instance().clock()
#define jitter (random::uniform()*0.5)
...
在send()函式中
double jitter = jitter;
//current_time是生成packet的時刻,並不是實際發包的時刻,所以要加上jitter才是
send_time = current_time + jitter;
scheduler::instance().schedule(target_, p, jitter);
接受端的recv()函式
//計算delay,這裡的current_time是接受到包時的當前時刻
delay = current_time - pkt->send_time;
在NS2中新添協議
在ns2下進行新協議開發的一般流程 由於ns2使用 物件模型,所以在協議開發的過程中,總是從c 和tcl兩個類入手。流程說明如下 1 定義新的路由協議 在aodv.h中定義class aodv public agent 在ns2中,所有路由協議都是從agent類繼承而來的。其中,recv 函式和co...
ns2中AODV協議HDR CMN p 的含義
剛開始看 aodv 協議就被兩個函式難到 hdr cmn p 和hdr ip p 經查功能都差不多,以 hdr cmn p 為例說明。struct hdr cmn ch hdr cmn p 結構體hdr cmn 的定義在 ns allinone 2.34 ns 2.34 common packet....
大話NS2網路模擬1 綜述
歡迎批評指正593061657 qq.com 接觸ns2快3個月了,從一點不懂的菜鳥,到完全乙個專案。點點滴滴。突發奇想的想把自己經歷的都記錄下來。一是加深自己的理解。二是如果以後有做到相同的,有個參考,都說好記性不如爛筆頭的嘛。更重要的是,方便一下後來的菜鳥。免得向曾經的自己,明明乙個很簡單的東西...