Ns3网络仿真软件简单介绍

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 Architecture. ns-3 project. 2015年2月26日

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

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

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

时间: 2024-11-05 14:49:35

Ns3网络仿真软件简单介绍的相关文章

iOS开发——网络OC篇&网络爬虫简单介绍

网络爬虫简单介绍 先来看看网络爬虫的基本原理: 一个通用的网络爬虫的框架如图所示: 网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中.此外,将这些URL放进已抓取URL队列. 4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环. 以下内容均为本人个人

iOS开发网络篇—简单介绍ASI框架的使用

iOS开发网络篇—简单介绍ASI框架的使用 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大. ASI的实现基于底层的CFNetwork框架,因此运行效率很高.可惜作者早已停止更新,有一些潜在的BUG无人去解决 ASI的github地址 https://github.com/pokeb/asi-http-request ASI的使用参考 http://www.cnblogs.com/dot

网络爬虫简单介绍(python)

一.简介 爬虫就是利用代码大量的将网页前端代码下载下来使用的一种程序,一般来说常见的目的为下: 1.商业分析使用:很多大数据公司都会从利用爬虫来进行数据分析与处理,比如说要了解广州当地二手房的均价走势就可以到房屋中介的网站里去爬取当地房源的价钱除以平方米 2.训练机器:机器学习需要大量的数据,虽然网络上有许多免费的库可以提供学习,不过对于部分机器他们需要的训练资料比较新,所以需要去爬取实时的数据 3.练习爬虫技术:很多网络爬虫其实没有什么商业目的性,只是程序员拿来练习用的 4.其他程序:像是搜索

iOS网络-NSURLSessionTask简单介绍

NSURLSessionTask也可以用来发送网络请求, 相对NSURLConnection, 推荐使用NSURLSessionTask. a.NSURLSessionTask是一个抽象类,本身不能使用,只能使用它的子类 b.NSURLSessionDataTask\NSURLSessionUploadTask\NSURLSessionDownloadTask 基本使用(GET/POST)跟NSURLConnection类似: -(void)get1 { //1.创建请求路径 NSURL *ur

常见网络协议简单介绍

IPv4 网际协议版本号4(Internet Protocol version 4).自20世纪80年代早期以来一直是网际协议簇的主力协议.它使用32位地址. IPv4给TCP.UDP.SCTP.ICMP和IGMP提供分组递送服务. IPv6 网际协议版本号6(Internet Protocol version 6).自20世纪90年代中期作为IPv4的一个替代品设计的. 其主要变化是使用128位更大的地址以应对因特网的爆发性增长.IPv6给TCP.UDP.SCTP和ICMPv6提供分组递送服务

iOS网络-NSURLConnection简单介绍

GET请求 同步请求(GET-SendSync)(1)步骤    1 设置请求路径    2 创建请求对象(默认是GET请求,且已经默认包含了请求头)    3 使用NSURLSession sendsync方法发送网络请求    4 接收到服务器的响应后,解析响应体 (2)相关代码 //1.确定请求路径 //协议头+主机地址+接口名称+?+参数1&参数2&参数3 NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:

TCP/IP协议简单介绍

简单介绍 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准. TCP/IP 不是一个协议,而是一个协议族的统称,里面包括了 IP 协议.ICMP 协议.TCP 协议.以及 http.ftp.pop3.https 协议等.网络中的计算机都采用这套协议族进行互联. TCP/IP协议OSI 七层模型 TCP/IP四层模型 (1)应用层:应用程序通

iOS开发网络篇—UIWebView简单介绍

iOS开发网络篇—UIWebView简单介绍 一.简单介绍 1.简单说明 UIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但能加载远程的网页资源,还能加载绝?部分的常见文件 html\htm pdf.doc.ppt.txt  mp4 ...... 2.UIWebView常?的加载资源的方法 - (void)loadRequest:(NSURLRequest *)request; 3.常用的属性和方法 重新加载(刷新)  

iOS开发——网络编程OC篇&(一)XMPP简单介绍与准备

XMPP简单介绍与准备 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容. 有许多的IM系统,如AOL IM.Yahoo IM. MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议. 协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过