NS3(Network Simulator)

NS3 学习的一些方法

2017-06-25  本文已影响936人  shawn168

在线文档

网址:https://www.nsnam.org/doxygen/index.html
该网址是NS3的在线文档,包含API说明,属性,类,模块,命名空间等,查找起来非常方便。

离线文档

在下载好的ns3目录下,使用命令:

./waf --doxygen

即可在本地生成离线的文档,在doc目录下面生成。该文档与上述文档一样,只不过是在电脑本地生成,不依赖与网络,随时查看。
缺点:生成得到离线文档非常大,如果是双系统情况,ubuntu配置的不够大的话,打开会比较费劲。

建议ubuntu分配空间大一些,50G左右,还有就是生成离线文档之后,把路径记下来,用浏览器使用路径打开,不要每次打开的时候,进入doc目录,这样会方便一些。

系统自带全局值

全局值.png

图中列举了系统默认配置的全局值,全局值在代码运行的过程中,该值都可以获取,并且能够设置。

当然,也可以添加自己的全局值。

具体使用,可以参看我的另一篇文章NS3 GlobalValue类API以及使用说明

属性列表

属性列表

图中列举了NS3的全部可以使用的属性,并且按类分割,使用起来也很方便。

类索引

类索引.png

类索引给我们查找某一个类非常方便,这个是经常使用的功能。

类描述

类描述.png

从类索引中查找Ipv4Interface类,可以看到类的简单描述和类继承关系。

可以简单了解类的实现功能和类的集成关系,父类、子类等。

类说明

类说明.png

点击上面类描述中的More..,可以跳转到类说明部分。

在类说明部分有类的描述的详细信息、属性配置路径、属性列表等。

类描述说明类的功能。

类的属性配置路径,对于我们使用Config类来配置属性值非常方便。

属性列表列举了类中可以配置的属性,属性值都可以通过上面的属性配置路径进行配置。

另外,还有一个跟踪源,Ipv4Interface类中没有跟踪源,就是Trace,也可以通过Config类来进行配置。

具体使用,请参看我的另一篇文章NS3 Config类API说明

方法说明

方法说明.png

方法说明部分给出了参数说明,另外一个重要的部分就是该方法在哪些代码中进行了调用,都可以通过下面的调用图中看出来。

这是与其他API文档不同的。
我们在学习NS3的过程中,需要知道方法的跳转过程,从那个方法调转到那个方法,并且NS3中大量的回调功能的设置,方法调转过程复杂,从上面的方法调用图中就可以看出,是代码的哪个类的哪个方法调用了该方法。

从上面的图中就可以看出,ns3::Ipv4L3Protocol::Send方法调用了ns3::Ipv4Interafce::Send方法和ns3::Ipv4L3Protocol::SendRealOut方法。同时ns3::Ipv4L3Protocol::SendRealOut方法又调用了ns3::Ipv4Interafce::Send方法。

配置eclipse

NS3使用waf进行编译的,如果没有图形界面是在不方便,所以最好的方式就是eclipse中配置NS3,用eclipse来写代码并调试。

另外,eclipse运行NS3的过程中,大家可能写了自己的代码运行,运行过程中,可能会出现无缘无故停止了,一个很大的可能就是自己写的代码中出现了空指针。因为c++没有像Java那样,出现空指针异常的时候会输出异常栈信息流,NS3出现空指针直接退出了,没有任何的提示信息。所以这个时候就用到了eclipse的Debug来进行调试。

上一篇下一篇

猜你喜欢

热点阅读