一、目录结构
首先,我们进入刚刚安装的ns-allinone-3.27,进入目录ns-3.27。我们看一下ns-3的目录结构。
我们首先介绍几个常用的目录文件,后续会补充其他目录文件的介绍。
waf:基于python开发的编译工具,不管是ns3系统本身自带的和我们自己写的仿真代码都是都是由waf负责编译的。
scratch:存放用户脚本文件,是ns-3默认的脚本存放目录。我们可以把要运行的脚本文件或者例子放到这个目录下,使用waf运行脚本文件时可以不用加目录scratch,当脚本文件在其他目录时需要在文件名称前加目录名称才能正常编译运行。
examples:里边包含关于如何使用ns-3的例子,包含许多模块的使用,如能量,路由,无线网络等,如果你和我一样是一个ns-3初学者的话,只是想利用ns-3现有模块编写脚本文件进行网络仿真,比如使用常规协议栈中的协议配置一个有线或者无线局域网络等,那么使用examples目录下的示例对我们很有帮助。examples目录下的文件都是我们一些常用到的例子:
build:这个目录是ns-3的编译目录,包含文件编译时使用的共享库和头文件(build/ns3)。
这里对这个build目录补充一下,build是我们利用waf工具编译脚本一定会进入的路径。以aodv.cc脚本(我随便找的,无所谓)的编译说明一下这个过程(其他任何脚本的编译都是这个过程):
aodv.cc脚本里的部分代码如下:
#include "ns3/aodv-module.h"
#include "ns3/core-module.h"
#include "ns3/network-module.h"
#include "ns3/internet-module.h"
#include "ns3/mobility-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/wifi-module.h"