ns-3入门简介



  • 简介

    ns-3是一个网络仿真器,本质上是一个软件,这个软件的主要功能是构建的计算机网络模型,对于网络及其性能进行评估和研究。

    为了进一步了解ns-3的作用,我们首先要了解为什么需要网络的软件仿真器?一般来说,进行网络研究有以下几种模式:

    • 数学分析
    • 数值计算工具/链路级仿真(e.g., MATLAB)
    • 基于数据包的仿真工具
    • 系统级仿真工具
    • 实验床、原型系统
    • 实际网络

    网络研究

    可以看到,随着网络研究的真实性增强,整个网络系统的复杂度会增大,会越来越不利于网络的研究和测试,同时结果也越来越难复现。因此,仿真器作为研究大规模的网络和衡量网络性能的可行性工具,具有重要的作用和意义。而ns-3则是一个基于数据包的离散事件仿真工具,并且具有多样的仿真模块和类型,能够帮助我们更好的研究大规模的网络。

    除了对于大规模的网络进行仿真,ns-3还可以对一些非网络的系统进行建模和测试。并且由于其开源性质,众多的开发者都参与到ns-3的开发和维护中,帮助我们提供多样的资料和更加可靠的仿真器。

    主要的特性

    • 使用C++ 进行开发,C++/Python作为脚本语言
    • 具有活跃的社区和组织
    • 主要应用于类unix系统
    • 可以进行单独网络方针,也可以和实验床等继承进行仿真
    • ns-3是一个离散事件驱动网络模拟器,仿真基于事件和数据包传输
      ns-3
      图片来源

    发展历史

    ns-3主要用于教育和研究领域。ns-3 项目开始于 2006 年,是一个开发 ns-3 的开源项目。目前,ns-3委员会由华盛顿大学进行组织,由多位华盛顿大学教授进行牵头,并且有许多高校和机构参与维护。

    与ns-2的关系

    ns-3并不是ns-2的升级版,而是完全独立开发的一个版本。相比于ns-2,ns-3更多的只是沿袭了ns-2的设计方面的一些思路,并且完全使用C++ 进行开发(包括脚本语言),虽然C++本身具有一定难度,但是对于开发者来说,不用为了脚本多学习其他语言也是较为轻松的。另外,ns-3支持Python进行脚本的开发,为新手提供了更多上手的空间,同时未来的ns-3将会支持Python3。

    主要的贡献者

    ns-3的社区有许多开发者和组织维护,同时作为活跃的开源社区,ns-3还参与的各种开源项目,如Google Summer of Code等。除此之外,大家还通过Github/Gitlab以及Google Group等社区进行交流,进一步帮助组织维护代码,也能够帮助更多的人更好的使用ns-3.

    官方学习资料整理

    ns-3提供了很多官方的学习资料可以参考,并且Wiki界面中有很多有用的参考信息,也会有很及时的更新,这里简单整理了一些资料可以供大家参考。后续我也会更新许多中文的教程,如果大家感兴趣或者觉得英语读起来比较费劲,可以参考。

    官方的文档

    https://www.nsnam.org/
    https://www.nsnam.org/wiki
    https://www.nsnam.org/documentation/

    Google Group

    https://groups.google.com/forum/#!forum/ns-3-users

    官方的教程

    https://www.nsnam.org/wiki/HOWTOs

    官方培训材料

    https://www.nsnam.org/wiki/AnnualTraining2019


 

Copyright © 2018 bbs.dian.org.cn All rights reserved.

与 Dian 的连接断开,我们正在尝试重连,请耐心等待