ns2 模擬WSN協議之手記

2021-08-23 15:42:40 字數 820 閱讀 8228

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個月了,從一點不懂的菜鳥,到完全乙個專案。點點滴滴。突發奇想的想把自己經歷的都記錄下來。一是加深自己的理解。二是如果以後有做到相同的,有個參考,都說好記性不如爛筆頭的嘛。更重要的是,方便一下後來的菜鳥。免得向曾經的自己,明明乙個很簡單的東西...