向NS2中新增新協議型別的步驟
[具體的可以參考ping協議的實現例子]
在NS2中定義一種新的型別的packet,至少要實現如下4個步驟。下面以ns2中的tcp包頭為例子說明。
具體原始碼見 "~ns/tcp" 目錄、 "~ns/common" 目錄以及"~ns/tcl/lib" 目錄下的相關檔案。
1. 為packet頭定義一個struct資料型別, 例如 "struct hdr_tcp"; ( 在 "~ns/tcp/tcp.h" 檔案中)
2. 實現該packet的OTcl linkage,即需要定義一個 PacketHeader 類。例如 static class TcpHeaderClass,並需要將"PacketHeader/TCP" 作為引數傳給該類的建構函式; (在 "~ns/tcp/tcp.cc" 檔案中)
3. 在 "~ns/common/packet.h" 檔案中,為 enum packet_t 新增一個新的條目 "PT_TCP" ,並在p_into類的建構函式中新增一個新的陣列元素 name[PT_TCP] = "tcp",要注意此處的位置必須對應。
4. 在檔案 "~ns/tcl/lib/ns-packet.tcl" 中新增,往 "foreach prot" 中新增一行 "TCP" 。
以上各個步驟中,步驟1是為了定義新的包頭格式;步驟2是為了能夠將該資料包與Otcl聯絡起來;步驟3是為了在trace中能夠使用該資料包,注意name[PT_TCP]="tcp",其中的 "tcp" 即是出現在trace檔案中的第五列,pkt type;步驟4是為了NS在啟動的時候能夠載入我們定義的包頭。
最後需要注意:如果新建的協議是無線路由協議,則還需要在 "~ns/tcl/lib/ns-lib.tcl" 檔案中Simulator的create-wireless-node方法中新增相應的處理。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9378682/viewspace-1018026/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python:多型、協議和鴨子型別Python多型協議型別
- Java 網路程式設計 – TCP協議基本步驟Java程式設計TCP協議
- http協議Content-Type型別表HTTP協議型別
- TCP/IP協議常見漏洞型別TCP協議型別
- JavaScript 隱性型別轉換步驟淺析JavaScript型別
- Win10如何開啟NetBIOS協議_win10系統開啟NetBIOS協議步驟Win10iOS協議
- Gossip協議和Grpc協議的區別Go協議RPC
- win10更改網路型別的步驟_win10如何修改網路型別Win10型別
- Zookeeper的ZAB協議與Paxos協議區別協議
- 輕鬆整合系列一:如何向 KubeBlocks 新增新的資料庫型別?以 Oracle MySQL 為例BloC資料庫型別OracleMySql
- hanlp新增自定義字典的步驟介紹HanLP
- 怎麼檢視電腦bios啟動型別?電腦bios型別的檢視方法步驟iOS型別
- HTTP協議中URI和URL區別HTTP協議
- rac新增節點步驟(11g)
- 國密SSL協議與標準TLS協議的區別協議TLS
- DKHhadoop叢集新增節點管理功能的操作步驟Hadoop
- 批次給大量影片新增srt字幕的簡單步驟
- HTTP協議中PUT和POST使用區別HTTP協議
- SDN南北向介面協議-VeCloud協議Cloud
- 11gR2 RAC新增節點步驟
- Jaspersoft?Studio新增mysql資料庫配置步驟MySql資料庫
- [swift 進階]讀書筆記-集合型別協議 C3P5_專門的集合型別Swift筆記型別協議
- http協議中,“get”和“post”的區別是什麼HTTP協議
- CXP 協議中upconnection 與downconnection的說明及其區別協議
- Win10系統中PIN碼新增、修改以及刪除的操作步驟Win10
- 企業運維軟體的選型步驟運維
- python 多型 協議詳解Python多型協議
- 特別詳細的react專案搭建步驟React
- YOLOv5新增註意力機制的具體步驟YOLO
- win10新增輸入法的操作步驟是什麼Win10
- 協議中的私有屬性協議
- MQTT 協議中的 Keep Alive 。MQQT協議
- 通訊協議和網路協議有什麼區別協議
- java中呼叫dll檔案的步驟Java
- java中UDP接收資料的步驟JavaUDP
- Laravel5.5 新專案建立步驟Laravel
- Allure2新增用例標題、用例步驟
- Jaspersoft?Studio新增mysql資料庫配置步驟特破MySql資料庫
- 11g rac新增節點步驟(11g)