Skip to main content

2nd day of tracing INET6: Application/PingAPP

· One min read

Define_Module (PingApp); 模組名稱是 PingApp

PingApp::initialize()

  1. 讀入 omnetpp.ini 中設定的參數.
  2. 在 TKenv 中監視
  • sendSeqNo
  • expectedReplySeqNo
  • dropCount
  • outOfOrderArrivalCount 這幾個結果 PingApp::handleMessage (cMessage *msg)

if (msg->isSelfMessage ()) 若訊息來自本身節點

destAddr = IPAddressResolver ().resolve (par ("destAddr")); 解析目的位址設定

來自其他節點則啟動回覆機制

processPingResponse(check_and_cast<pingpayload>(msg));

void PingApp::sendPing()

PingPayload msg = new PingPayload (name); 新增封包,接著下面照著宣告的格式填入對應的值 msg->setLength (8packetSize); //? 封包裡沒宣告

sendToICMP (msg, destAddr, srcAddr, hopLimit); 把訊息送到 ICMP 裡

PingApp::scheduleNextPing(cMessage *timer)

simtime_t nextPing = simTime () + intervalp->doubleValue (); 模擬時間加上間隔時間

void PingApp::sendToICMP (cMessage *msg, const IPvXAddress& destAddr, const IPvXAddress& srcAddr, int hopLimit) 判斷送出 v4/v6 icmp 格式封包

void PingApp::processPingResponse (PingPayload *msg) 收到 ICMP 封包,判斷</pingpayload> v4/v6 並<pingpayload>處理 </pingpayload>

如何在 VS C++ .Net 2003 底下編譯 INET

· One min read

針對我所要用的編譯器 還有 執行檔 定義一些所需要的 set path

在命令提示字元底下一定要找得到以下幾個可執行的程式: nmake cl vcvars32.bat

我的電腦按右鍵 -> 內容 -> 進階 -> 環境變數 -> 系統變數 -> 編輯 path, 加入 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;

切換到目錄,執行 vcvars32.bat 以設定 vc71 環境. 若 path 變數未設好,則會出現找不到這檔案的訊息. 接著執行 m.bat 編譯即可.

若發生問題,可以試著鍵入 makemake 重新產生 makefiles. 再打入 nmake -f makefile.vc depend 確認相依性. 之後再執行 m.bat 重新編譯一次即可

參考網址 http://java.csie.nctu.edu.tw/~deryann/paper/HowToSTL.htm

使用 OMNeT++ 跑 TinyOS 程式

· One min read

這裡有使用 OMNeT++ 跑 TinyOS 程式的 wireless framework,

看起來蠻適合用來做 sensor network/p2p 模擬的

6th. day of porting INET6 第六天

· One min read

11th. Part: IPv4d/IPProcessing 模組功能等同 IPv4/IP 模組

因此 IPv4 資料夾即已實作 IPv4 協定 IPv4d 資料夾內程式則是將 IP 模組內容拆開成多個子模組, 以此推論,若模擬的目標是 IP 協定運作情形, 單單只看到 IP 模組並不能滿足要求時, 則將 Nodes/INET/ 各 .ned 檔中的 "IP" 改成 "IPProcessing" 應該 就可以看到更詳細的 IP 協定運作情形。建議名稱: Routerd / Router6d?

節點先做 Nodes/INET6/BurstHost6 與 Router6, StandardHost6 稍後再處理

  • 要寫自行設定模組的 Tutorial

12th. Part: INET 比 NS2 好的特色: FlatNetworkConfigurator, 只需指定網域 / 遮罩, INET 即自動配置各節點模擬用的位址.

  • 要研究 AutoRouting 中 FlatNetworkConfigurator 的做法 (怎麼與 ND 互補?(有 ND 那 FlatNetworkConfigurator 就不應作用於 '*Host' 上) ex:
  • 決定 Prefix/Prefix Lenth (Subnetmask),
  • 設定啟不啟動 DAD 等)

Neighbor Discovery vs ARP IPv6d/ND 將作為一個模組來對應 NetworkInterfaces/ARP

IP protocol header is represented by the IPDatagram message class