NS2下實現乙個無線網路廣播包的大致流程

2021-07-10 03:32:19 字數 1112 閱讀 1009

在路由層廣播乙個包:

packet *p = packet::alloc();//產生乙個包

struct hdr_cmn *ch = hdr_cmn(p);//增加普通包頭

struct hdr_ip *ih = hdr_ip(p);//增加ip包頭

……………

……………//設定其他內容

ih->daddr() = ip_broadcast;//目的位址設定為廣播位址

………………

scheduler::instance().schedule(target_, p, t);//傳送

在mac層廣播乙個包:

packet *p = packet::alloc();

//產生乙個包

struct hdr_cmn *hdr = hdr_cmn(p);//增加普通包頭

struct hdr_mac *mac = hdr_mac(p); 

//增加mac頭部

……………

……………//設定其他內容

mac->macda() = -1;//目的位址為廣播位址

………………

scheduler::instance().schedule(downtarget_, p, t);//傳送

定義廣播包結構體

struct hdr_broadcastbase

inline static hdr_broadcastbase* access(const packet* p)

};從agent類繼承廣播應用類

class broadcastbaseagent : public agent ;

class sendtimer : public timerhandler

inline virtual void expire(event*);

protected:

broadcastbaseagent* t_;};

自己定義的廣播包結構放在自己定義的檔案裡面,後面需要修改ns原始碼裡面的部分檔案,比如:~/ns-2.*/common/packet.h, ~/ns-2.*/tcl/lib/ns-default.tcl, ns-packet.tcl,以及makefile檔案,再重新編譯整個ns。

ns2 對無線網路模擬

在模擬無線網路時需要對tcl模擬指令碼檔案的引數進行設定,比如pt,cpthresh,csthresh and rxthresh。我們需要借助ns提供的threshold工具來計算相應的引數 extra utility called threshold,在 ns 2.33 indep utils p...

利用NS2進行無線網路模擬

本博文的實驗取材與 ns 2網路模擬基礎與應用 無線網路實驗。場景是三個節點,在乙個矩形區域,移動ad hoc網路使用dsdv路由演算法,然後在適當的時候設定它們的移動方向 速度,並在節點0和節點1之間嘗試建立ftp連線。指令碼 如下 set val chan channel wirelesscha...

Omnipeek空口抓包 2 掃瞄無線網路

建立capture,選擇抓包網絡卡,在802.11選項中select channel by選擇scan,設定掃瞄的通道 edit scanning options,通常無線2.4g網路通道為1 14,這裡可以全部選中,掃瞄結果更全。開始抓包,在wireless的wlan中可以檢視掃瞄結果,例如 掃瞄...