ns3学习之初识ns3

    由于网络的不可控性、易变和不可预测等特性,给新的网络方案的验证、分析和比较带来的极大的困难。

    NS3是一个离散事件模拟器,旨在满足学术研究和教学的需求。NS3项目是一个始于2006年的开源项目,负责开发ns3软件。 NS-3并不是NS-2的扩展,而是一个全新的模拟器。

    网络通信研究方法:

  1.  分析方法:在理论和协议层面上对网络通信技术或系统进行研究分析,抽象出数学分析模型,利用数学分析模型对问题进行求解。如采用数学建模、协议分析、状态机、集合论以及概率统计等多种理论分析手段和方法对通信网络及其算法、协议、网络性能等各个方面进行研究。
  2.  网络模拟:即计算机模拟仿真算法。网络模拟日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟,网络技术研究人员可以在平台上对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评价。
  3. 实验网方法:对网络协议、网络行为和网络性能采用建立实验室测试网络、网络测试平台和小规模商用实验网络的方式对网络进行实战检验。如各大网络设备提供商和运营商在不同城市建有不同规模的实验网络。

    其中网络模拟是网络通信研究中一种重要的方法:是理论方法和实验网方法的中间环节,可以对新协议进行初步实现和验证,并有助于新协议的及时调整。

    优点如下:1)成本低 2)灵活可靠、可重构 3)避重就轻(可选择感兴趣的方面) 4)提供研究大规模网络的机会。5)易于比较。由于可以通过软件配置轻松建立、重构各种网络模型,实现不同的协议和算法。

    缺点如下:1)无法完全重现真是网络环境,可能会忽略一些重要的网络细节。2)在对协议、算法和网络系统模拟之前,必须通过软件编程对其进行软件模拟的实现,增加了额外的工作量。3)网络模拟所得的结果并不一定与真是网络环境下的结果一致,在投入实际应用之前,还需要多方面的验证和通过测试网络的检验。

     一款好的网络模拟软件必须具备以下特点:

  1. 能够提供简单易用的使用界面,能方便快捷的建立和修改模拟环境和模拟配置;
  2. 能够提供常用的绝大部分网络协议、算法和应用模块;
  3. 能够方便地进行配置和扩展,有利于添加新的协议和算法。

    当前有许多优秀的网络模拟软件,如ns-2(network simulator version 2)、OPNET(optimized performance network engineering tool)、OMNet++(objective modular network testbed in C++)、GloMoSim(global mobile information system simulator)、SSFNet、 JiST(Java in simulator time)和Simpy等。

  1. ns-2:是一种面向对象的网络仿真器,最初由UC Berkeley开发而成。本质上是一个离散事件模拟器,自身有一个虚拟时钟,所有的仿真都是由离散事件驱动。实现了多种网络协议的模拟,如TCP、UDP、FTP、Telnet、Web、CBR、VBR;实现了DropTail、RED、CBQ等几种路由队列管理机制以及Dijkstra、动态路由、静态路由、多播路由等路由方法。此外ns-2还支持多播协议SRM以部分MAC层协议。ns-2是用C++和Otcl语言编写而成的,免费开源,可扩展,可以把自己开发的新协议模块集成到ns-2中。ns-2使用C++语言进行功能扩展,而使用Otcl脚本语言配置仿真场景,仿真结果可以通过网络动画器NAM(network animator nam)来演示。
  2. OPNET:最早由麻省理工学院LIDS实验室受美国军方委托开发的,可模拟LAN、WAN、ISDN及卫星通信网等各种网络,可以模拟现有的绝大部分网络和协议,如TAM、Frame Relay、FDDI、Ethernet、Token Ring TCP/UDP/IP、HTTP等,目前作为商业软件。价格昂贵、开放性比较差、学习障碍很大、需要通过一段时间的专门培训才能掌握。协议滞后。
  3. OMNet++:是基于离散事件的,是一个免费的、开源的、可扩展的多协议网络仿真软件。是基于组件的模块化的、开放的网络平台,具有强大完善的图形界面接口。还支持分布式并行仿真,可以利用多种机制来进行用于几个并联的分布式模拟器之间的通信仿真,比如MPI和制定的通道。很容易扩展。OMNEST是商业版本,OMNet++只在学术和非营利性活动免费。
  4. GloMoSim:是美国加州大学洛杉矶分校用并行语言Parsec开发的开放源代码的无线网络模拟软件,但主要适用于ad-hoc网。适用于无线网络的可扩展仿真系统模型,对应于OSI模型,在层与层之间提供了标准的API接口函数,这样就可以在不同层或开发人员之间建立快速的综合集成。引入了网格的概念。QualNet是其商业版,拥有较快的速度,较好的可扩展性和保真度,通过快速建模和深入分析工具,易于优化现有的网络性能。从有线LAN和WAN到蜂窝、卫星、WLAN和移动ad hoc网络,其具有支持广泛的联网应用模拟功能。
  5. SSFNet:是一个Internet网络协议的模拟和建模软件,由基于Java和C++的SSF软件框架所组成。提供面向对象的可扩展模拟建模的并行运行环境,主要支持IP分组级别以上的细粒度模拟,其链路层和物理层的协议模型均以独立的组件方式提供。是一个自配置的模拟软件,每一个SSFNet类能通过询问本地的配置数据库或者通过网络进行自主配置。
  6. JiST: 使用标准Java。
  7. SimPy:它是由一个由Python编写的空仿真API。在SimPy中,基本的仿真实体是进程。

    ns3介绍

    ns3不是ns2的扩展,而是一个全新的网络模拟器,其广泛汲取了现在优秀开源网络模拟器如ns2、GTNetS、Yans等的成功技术和经验,专门用于教育和研究用途的离散事件模拟器,是由C++编写的,并不支持ns2的API。ns2中的一些模块已经移植到ns3中。比较节省资源、综合性能较高。

    学习方法:

  1. 要克服恐惧心理。只是一种工具软件。
  2. 了解基本知识。计算机网络基本原理、面向对象程序设计、网络编程技术。
  3. 和真实网络相对应。搭建ns3网络仿真环境和搭建实际网络很相似,ns3把实际网络中的软硬件对象抽象成相应的概念,并且用C++实现,其相应的方法也易于理解和吸收。其中,硬件包括网络节点、网络连接卡和网络连接线等,软件包括TCP/IP网络协议栈等。如果把握住几个关键概念,如节点(node)、网络设备(net device)、信道(channel)、应用程序(application)等和实际网络相对应。计算机网络就是多个计算机(节点)通过网卡(网络设备)和媒介(信道)相连,机器中配有相应的软件协议,对应ns3中的是应用层、协议栈(主要是IP层),应用层和IP层通过传输层(TCP、UDP)相连,其实在ns3的网络设备中包含了MAC层和物理层,而信道相当与媒体层。
  4. 实例学习。用实例展示有关ns3的概念和技术细节。阅读和修改源代码是ns3提高和进行高级模拟的必经之路,特别是对于算法和协议效果改进的研究,必须对算法源码进行相应的修改。
  5. 查阅资料。ns3-tutorial:ns3入门教程,包括安装、基本技术、关键概念等。ns3-manual:介绍ns3软件的整体架构、核心模块技术等。ns3-model-library:ns3模型库,介绍ns3中各个功能模块的具体细节。API Documentation:包括所有的模块、文件和类及其成员。

你可能感兴趣的:(ns3学习,ns3学习)