首页 > 代码库 > 2、NS3-目录结构和相关模块
2、NS3-目录结构和相关模块
Waf是基于Python开发的编译工具,ns-3系统本身和将要写的仿真代码都由waf负责编译运行。
Scratch目录一般存放用户脚本文件,也可以把要运行的例子拷贝到该目录下。
Example是ns-3提供的关于如何使用ns-3的例子,包含许多模块的使用。
Doc目录是帮助文档,可以使用./waf --doxygen编译本地Doxygen文档。
Build目录是ns-3编译目录,包含编译文件时使用的共享库和头文件(build/ns3)。
Src是ns-3源码目录。
模块里面的wscript文件结构是固定的,用来注册模块中包含的源码和使用其他模块情况。Model目录包含模块代码的.cc和.h文件。Helper目录存放的是模块对应的helper类代码的源文件。Test目录包含的是模块设计者编写的模块测试代码,而examples目录存放的是应用该模块的实例代码。Doc是帮助文档,bindings目录是模块用来绑定Python语言的。
常用模块:
Core:ns-3的内核模块,实现了ns-3的基本机制,如智能指针(Ptr)、属性(attribute)、回调(callback)、随机变量(random ariable)、日志(logging)、追踪(tracing)和事件调度(event scheduler)等内容。
Network:网络数据分组(packet)的模块,一般仿真会用到。
Internet:实现了关于TCP/IPv4和IPv6的相关协议族,包括IPv4、IPv6、ARP、UPP、TCP、邻居发现和其他相关协议,目前大多数网络都是基于Internet协议栈的。
Applications:集中常用的应用层协议
Mobility:移动模型模块
Topolopy-read:读取指定轨迹文件数据,按照指定格式生成相应的网络拓扑。网络协议时能量不得不考虑。
Status:统计框架模块,方便ns-3仿真的数据收集、统计和分析。
Tools:统计工具,包括统计作图工具gnuplot的接口和使用。
Visualizer:可视化界面工具PyViz
Netanim:动画演示工具Netnim
Propagation:传播模型模块
Flow-monitor:流量监控模块。
下面是几种典型的网络模块。
Point-to-point:实现点对点通信的网络
CSMA:实现了基于IEEE802.3的以太网络,包括MAC层、物理层和媒体信道。
Wifi:如何实现基于IEEE 802.11 a/b/g的无线网络,可以是有基础设施的也可以是ad hoc网络。
Mesh:实现基于IEEE 802.11s的无线mesh网络。
Wimax:实现了基于IEEE802.16标准的无线城域网络。
LTE:(long term evolution,长期演进)是第三代合作伙伴计划(3GPP,3rd generation partnership project )主导的通用移动通信系统(UMTS,universal mobile telecommunications system)技术的长期演进。
UAN:ns-3的水声通信网络(UAN,underwater acoustic network)模块,能仿真水下网络场景。实现了信道、物理层和MAC层。
对新技术:
Click:ns-3中集成的可编程模块化的软件路由(the click modular router)。
Openflow:在ns-3中仿真OpenFlow交换机。
MPI:并行分布式离散事件仿真,ns-3实现了标准的信息传递接口(MPI,message passing interface)。
Emu:ns-3可以集成到实验床和虚拟机环境下。