(一)Ns3网络仿真软件简单介绍


1.  什么是NS-3?

NS是一个开源离散事件驱动网络模拟器。官方定义:(fromhttp://www.nsnam.org/)

ns-3 is a discrete-event network simulatorfor Internet systems, targeted primarily for research and educational use. ns-3is free software, licensed under the GNU GPLv2 license, and is publiclyavailable for research, development, and use.

ns-3 is intended as an eventual replacementfor the popular ns-2 simulator. The project acronym “nsnam” deriveshistorically from the concatenation of ns (network simulator) and nam (networkanimator).

适用平台:Linux/MacOS/Cygwin

Latest release version:ns-3.22 (5 February,2015)

2.  NS-3 vs NS-2

NS-3虽然冠以一个“3”,但事实上跟它广泛流行的前任NS-2并非一脉相承,或者从使用角度上说,仅仅继承了一个名称而已。NS-3基本上是一个新的模拟器,不支持NS-2的API。NS-3是完全用C++编写的(也有可选的Python接口),而NS-2一部分模块使用C++而另一部分使用 OTcl。因而NS-3最大的特点就是脚本可以C++或Python语言,而在NS-2中,我们使用的是C++和OTcl,两种语言都得懂。

NS-3的功能模块仍旧在开发补充中,因此它远没有NS-2完善(当然NS-2的维护也在进行中)。NS-3并不包含目前所有NS-2的功能,但它具有某些新的特性:正确的多网卡处理、IP寻址策略的使用、更详细的802.11模块等等。

Lateststable release: ns-3.2.2 (5 February,2015)

3.  NS-3的一些名词解释

Doxygen:DocumentationGenerator

支持C++、C、Java、Objective-C、Python、IDL、Fortran、VHDL、PHP、C#等各种语言的文档生成器,用于从源代码中生成说明文档。(类似于我之前使用过的Sandcastle,貌似更加强大些,有必要得学习一下。)

PyViz

一个利用Python开发的ns-3在线可视化工具,不需要使用tace文件。

NetAnim

一个独立的、基于Qt4的离线动画演示工具,在ns-3仿真过程中生成XML格式的trace文件,仿真结束后NetAnim读取文件显示网络拓扑和节点间数据分组流等动画过程。

Waf

NS-3项目使用的新一代的基于Python的编译系统(BuildSystem)

WireShark

一种GUI包嗅探器。由于NS-3能生成.pcap文件,因此可以使用类似于WireShark的软件对数据进行分析

tcpdump

另一种包嗅探器。在Linux下使用CLI进行数据分析

Mercurial

NS-3代码维护使用的源码版本控制管理系统

4.  基础知识要求

•    C++(类,继承/多态/聚合,模版)

•    套接字编程(基本的套接字API)

•    Ubuntu/Debian/Fedora/Redhat/Mac OS

•    编译系统Waf

•    调试(GDB,eclipse等)

学习资料

•    Source code

•    ns-3 Tutorial

•    ns-3 Mannual

•    Doxygen

•    Internet

5.  NS3 网络架构

NS-3的架构较NS-2更为清晰。NS-3中把网络构件分为四类。

通信基本过程:发送节点从上往下由应用层产生数据,利用类socket编程实现数据分组的向下传递,数据分组通过协议栈—TCP/IP向下传递给网络设备,网络设备包括MAC层、物理层协议,这样数据分组像真实网络中流动一样,有数据帧转换成二进制流,最终变成信号通过媒介信道传输到目的节点;而目的节点与此相反,收到数据分组后从下往上逐层转交。

6.  Ns3网络仿真基本流程

1)  选择和开发相应模块;

根据实际仿真对象和仿真场景选择相应的仿真模块;如果搭建的网络比较新,读者就需要开发自己设计的协议。

2)  编写网络仿真脚本;

生成节点node;

安装信道Channel和相应的网络设备NetDevice,

安装协议栈

安装应用层协议

其他配置等

启动仿真

3)  仿真结果分析;

4)  根据结果调试网络配置参数和修改源代码;

参考文献:

[1] http://blog.sina.com.cn/s/articlelist_1923709774_8_1.html

[2] ns-3project. ns-3 Software Tutorial. ns-3 project. 2015年2月26日

[3] ns-3project. ns-3 Reference Manual. ns-3 project. 2015年2月26日

[4]《ns-3网络模拟器基础及应用》,人民邮电出版社,马春光 姚建盛,2014年1月

部分参考网络资料,未一一列举,敬请原谅!

(一)Ns3网络仿真软件简单介绍相关推荐

  1. 公司网络架构简单介绍

    公司网络架构简单介绍 公司服务器架构简单介绍: CDN:租用的,用于提高用户访问速度 前边两台LVS:实现负载均衡和高可用 三台Nginx服务器提供Web服务 三台Tomcat服务器当动态Web服务 ...

  2. [深度学习-原理]GAN(生成对抗网络)的简单介绍

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之DCGAN基于CIFAR10数据集的例子 深度学习GAN(三)之DCGAN基于手写体Mnist数据集的例子 深度学习GAN(四)之c ...

  3. android 网络篇简单介绍

    1 简介 本文简单介绍android 开发中常用的webview .url. volley. json解析等网络工具.由于篇幅问题,这里只做简单介绍并不做详解. 2 WebView的用法 2.1 简单 ...

  4. Docker网络模式简单介绍

    1 简介 docker常见的网络模式有5种,分别为 bridge:Docker中默认的网络驱动模型,在启动容器时如果不指定则默认为此驱动类型: host:打破Docker容器与宿主机之间的网络隔离,直 ...

  5. Python3.5 网络爬虫简单入门

    一.网络爬虫简单介绍 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫. 相对于通用网络爬 ...

  6. IOS学习之 网络编程(10)--简单介绍ASI框架的使用

    转载自 http://www.cnblogs.com/wendingding/p/3950027.html 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是A ...

  7. USB简单介绍USB共享网络功能(一)

    一.USB的简单介绍&USB共享网络功能 USB是比较常用接口类型, 也是PC的标配, 通常外设通过USB口连接至PC 在USB的世界里, 分USB Host和USB Device两种角色 P ...

  8. 李弘毅老师GAN笔记(一),对抗生成网络(GAN)简单介绍

    更新: 原文已经搬运至网站:https://www.link2sea.com/archives/388,后续也将在该网站进行更新. 查看博主更多文章请前往:https://www.link2sea.c ...

  9. 关于网络营销步骤简单介绍

    什么是网络营销 享客网简单介绍下 网络营销(On-line Marketing或E-Marketing)就是以国际互联网络为基础,利用数字化的信息和网络媒体的交互性来辅助营销目标实现的一种新型的市场营 ...

最新文章

  1. Hibernate搭建开发环境+简单实例(二)
  2. python3 url 编码 解码
  3. windows和linux下的文件路径表示
  4. RandomAccessFile类解析
  5. Nginx+Lua+Redis 对请求进行限制
  6. 【安全-相关】kerberos hadoop Login failure for hadoop/localhost@YOUNG.COM from keytab
  7. 微软:Windows 7 和 10 都将删除自动更新!
  8. 星辰小组——第一阶段评分+各小组的意见反馈
  9. python去掉最高分和最低分_【Excel】去掉一个最高分,一个最低分,求平均
  10. ES6学习笔记三(字符串)
  11. ListView 优化
  12. XueTr(PC Hunter) pro 注册分析
  13. 绿坝花季护航,为何如此吸引眼球?
  14. vue 下载文件的两种方法
  15. JAVA实现List集合去重
  16. 2022年下半年软考考哪个科目?看完就懂了
  17. android投屏 电视软件,高清电视投屏软件下载-高清电视投屏 安卓版v20200802-PC6安卓网...
  18. Python入门50个小程序
  19. html5考试总结300字,期中考试总结300字(优秀篇)
  20. 两个IP组播综合配置示例

热门文章

  1. 华为名师揭秘编程界“网红”Python
  2. 量子Fourier变换
  3. TMF8801激光测距芯片驱动程序
  4. 运营管理工作活动方案
  5. 时序分析(13) -- 重新审视GARCH和EWMA
  6. php 抓取网页数据
  7. 元旦快乐,送大家一条水晶龙
  8. 【Linux】Linux简介
  9. 天科大java web_痛心!失联15天,中科大博士遗体在芦苇荡被发现
  10. curl下载FTP文件时阻塞在某一进度的问题