向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協議
- RTSP協議、RTMP協議、HTTP協議的區別協議HTTP
- TCP/IP協議常見漏洞型別TCP協議型別
- JavaScript 隱性型別轉換步驟淺析JavaScript型別
- http協議Content-Type型別表HTTP協議型別
- GOLANG使用簡單型別,在協議解析的妙用Golang型別協議
- Zookeeper的ZAB協議與Paxos協議區別協議
- Gossip協議和Grpc協議的區別Go協議RPC
- win10更改網路型別的步驟_win10如何修改網路型別Win10型別
- 輕鬆整合系列一:如何向 KubeBlocks 新增新的資料庫型別?以 Oracle MySQL 為例BloC資料庫型別OracleMySql
- HTTP協議中URI和URL區別HTTP協議
- hanlp新增自定義字典的步驟介紹HanLP
- Swift中的協議Swift協議
- Kotlin 1.1新增協程、型別別名特性,提升了對JavaScript的支援Kotlin型別JavaScript
- Win10如何開啟NetBIOS協議_win10系統開啟NetBIOS協議步驟Win10iOS協議
- HTTP協議中PUT和POST使用區別HTTP協議
- 向RAC中已經存在的磁碟組新增一塊新硬碟硬碟
- 國密SSL協議與標準TLS協議的區別協議TLS
- SDN南北向介面協議-VeCloud協議Cloud
- http協議中,“get”和“post”的區別是什麼HTTP協議
- 怎麼檢視電腦bios啟動型別?電腦bios型別的檢視方法步驟iOS型別
- Objective-C 中的協議(@protocol)和介面(@interface)的區別Object協議Protocol
- TCP協議與UDP協議以及兩者之間的區別TCP協議UDP
- SFTP和FTS協議的區別FTP協議
- [swift 進階]讀書筆記-集合型別協議 C3P5_專門的集合型別Swift筆記型別協議
- OGG實施操作步驟(包括操作過程中的所有步驟)
- Windows Phone 8 新增功能:Windows.Storage新的檔案操作型別Windows型別
- Win10系統中PIN碼新增、修改以及刪除的操作步驟Win10
- 在listener.ora檔案中tcp協議和ipc協議有什麼區別?(轉)TCP協議
- 協議中的私有屬性協議
- 企業運維軟體的選型步驟運維
- DKHhadoop叢集新增節點管理功能的操作步驟Hadoop
- 遠端訪問的型別使用的協議和身份驗證方法介紹型別協議
- Http get,post,soap協議的區別HTTP協議
- 通訊協議和網路協議有什麼區別協議
- Jaspersoft?Studio新增mysql資料庫配置步驟MySql資料庫
- oracle DG online_redolog新增步驟Oracle