网络仿真软件ns的结果输出和分析
- 格式:pdf
- 大小:410.06 KB
- 文档页数:4
ns2的基本功能和用法。
NS2是一款广泛使用的离散事件网络仿真器,它可以用来模拟网络协议、网络拓扑结构、传输层协议等各种网络方面的问题。
在本文中,我们将会详细介绍NS2的基本功能和用法,让您了解如何使用这个强大的工具来开展网络仿真和探索。
第一部分:NS2的简介NS2全称Network Simulator 2,是一款免费且开源的网络仿真平台,它可以运行于Linux和Windows操作系统。
NS2是C++编写的,它是由一个模块化的体系结构构建而成的。
NS2可以帮助你模拟和测试各种网络协议和技术,包括但不限于TCP/IP、WiFi、无线通信、移动通信、卫星通信等。
NS2的基本组成部分包括:- OTcl:OTcl是一个面向对象的Tcl解释器,它被用来编写NS2的脚本文件。
它可以帮助您表示仿真模型以及控制仿真场景和参数。
- C++代码:NS2的模拟核心是由C++编写的,它包含了底层的网络协议处理逻辑和数据结构。
- Trace:NS2的Trace模块可以记录仿真过程中所有的事件和消息交换。
我们可以通过Trace来分析仿真结果,并对仿真场景进行可视化。
总结NS2是一个开源且强大的网络仿真器,它的核心部分是由C++编写而成的。
NS2可以帮助您模拟和测试各种网络协议和技术,并提供一个强大的OTcl 脚本语言来控制和配置仿真模型。
第二部分:NS2的基本功能NS2提供了很多强大的功能,如下所示:1. 拓扑结构模拟NS2可以帮助我们模拟各种网络拓扑结构,例如星型、树形结构、层次结构等。
通过定义节点、连接和协议,我们可以很容易地构建复杂的拓扑结构,并进行仿真和测试。
2. 参数设置和控制通过OTcl脚本,我们可以轻松地配置和控制仿真模型。
我们可以设置各种参数,例如发送速率、仿真持续时间、节点位置等等。
此外,我们还可以通过设置事件触发器来控制仿真场景的流程。
3. 模拟协议NS2可以帮助我们模拟各种协议,例如TCP、UDP、ICMP等。
浅析Opnet,Ns2,Matlab网络仿真工具【摘要】网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。
本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
【关键字】网络仿真;OPNET;NS2;MATLAB引言随着网络结构和规模越来越复杂化以及网络的应用越来越多样化,单纯地依靠经验进行网络的规划和设计、网络设备的研发以及网络协议的开发,已经不能适应网络的发展,因而急需一种科学的手段来反映和预测网络的性能,网络仿真技术应运而生。
网络仿真可以有效提高网络规划和设计的可靠性和准确性,明显地降低网络投资风险,减少不必要的投资浪费。
各种网络仿真工具在此背景下应运而生。
本文就常见的三种网络仿真工具(OPNET、NS2及MATLAB),从它们的基本情况及特点进行了分析。
基本情况及特点分析1.OPNETOPNET公司最初只有一种产品OPNET Modeler,到目前已经拥有Modeler、ITGuru、SPGuru、WDMGuru、ODK等一系列产品。
对于网络的设计和管理,一般分为3个阶段:第1阶段为设计阶段,包括网络拓扑结构的设计,协议的设计和配置以及网络中设备的设计和选择;第2阶段为发布阶段,设计出的网络能够具有一定性能,如吞吐率、响应时间等等;第3阶段为实际运营中的故障诊断、排错和升级优化。
而OPNET公司的整个产品线正好能面向网络研发的不同阶段,即可以作网络的设计,也可以作为发布网络性能的依据,还可以作为已投入运营的网络的优化和故障诊断工具。
OPNET公司也是当前业界智能化网络管理分析解决方案的主要提供商。
OPNET的主要特点:层次化的网络模型。
使用无限嵌套的子网来建立复杂的网络拓扑结构。
简单明了的建模方法。
Modeler建模过程分为3个层次:过程(process)层次、节点(Node)层次以及网络(Network)层次。
网络系统仿真设计的案例分析与实践经验总结一、引言网络系统仿真是一种通过模拟网络系统的各种运行和行为来预测和分析网络性能的方法。
在现代信息技术的快速发展和复杂网络需求的增加下,网络系统仿真设计变得越来越重要。
本文将通过案例分析和实践经验总结,探讨网络系统仿真设计方面的关键问题和解决方法。
二、案例分析1. 案例一:数据中心网络仿真设计数据中心是现代网络架构中的核心,其性能对整个网络系统的稳定和高效运行至关重要。
通过网络系统仿真,可以模拟数据中心的负载分布、流量特点和网络拓扑结构,进而预测系统的性能和容量。
在实际案例中,我们可以利用NS-3网络仿真工具和真实的数据中心网络数据进行仿真实验,评估不同网络拓扑、路由算法和负载分布策略对系统性能的影响。
2. 案例二:无线网络仿真设计无线网络是现代通信领域的热点研究方向之一,而无线网络的实际部署和性能评估十分复杂。
通过网络系统仿真,可以模拟无线网络的信道特性、干扰情况和传输效率,从而优化网络配置和协议设计。
在实际案例中,我们可以利用Omnet++和Veins仿真平台,结合真实的地理环境数据,研究无线网络的传输距离、干扰抑制和路由选择等问题。
3. 案例三:云计算平台仿真设计云计算平台是大规模分布式系统的典型代表,其性能和可靠性直接关系到用户体验和服务质量。
通过网络系统仿真,可以模拟云计算平台的负载分布、资源调度和可用性等特性,从而评估系统的性能和优化策略。
在实际案例中,我们可以利用CloudSim仿真工具和真实的负载数据,研究云计算平台的资源分配、虚拟机调度和负载均衡等问题。
三、实践经验总结1. 选择合适的仿真工具:根据仿真需求和网络系统特点,选择合适的仿真工具是关键。
常见的仿真工具包括NS-3、Omnet++、CloudSim等,每个工具都有其适用的场景和模型。
2. 获取真实的数据:仿真的准确性和可靠性与所使用的真实数据密切相关。
在进行仿真实验时,尽量使用真实的负载数据、网络拓扑数据和地理环境数据,以保证仿真结果的准确性。
NS-3网络仿真一:实验要求用NS-3仿真某个特定的网络环境,并输出相应的仿真参数(时延,抖动率,吞吐量,丢包率)。
二:软件介绍NS-3是一款全新新的网络模拟器,NS-3并不是NS-2的扩展。
虽然二者都由C++编写的,但是NS-3并不支持NS-2的API。
NS-2的一些模块已经被移植到了NS-3。
在NS-3开发过程时,“NS-3项目”会继续维护NS-2,同时也会研究从NS-2到NS-3的过渡和整合机制。
三:实验原理及步骤NS-3是一款离散事件网络模拟驱动器,操作者能够编辑自己所需要的网络拓扑以及网络环境,来模拟一个网络的数据传输,并输出其性能参数。
软件中包含很多模块:节点模块(创造节点),移动模块(仿真WIFI,LTE可使用),随机模块(生成随机错误模型),网络模块(不同的通信协议),应用模块(创建packet数据包以及接受packet数据包),统计模块(输出统计数据,网络性能参数)等等;首先假设一个简单的网络拓扑:两个节点之间使用点对点链路,使用TCP协议进行通信,假设随机错误率为0.00001,节点不可移动(因为不是无线网络),具体代码如下:NodeContainer nodes;nodes.Create(2);创建两个节点;PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute("DataRate",StringValue("5Mbps"));pointToPoint.SetChannelAttribute("Delay",StringValue("2ms"));设置链路的传输速率为5Mbps,时延为2ms;NetDeviceContainer devices;devices=pointToPoint.Install(nodes);为每个节点添加网络设备Ptr<RateErrorModel>em=CreateObject<RateErrorModel>();em->SetAttribute("ErrorRate",DoubleValue(0.00001));devices.Get(1)->SetAttribute("ReceiveErrorModel",PointerValue(em));创建一个错误模型,讲错误率设置为0.00001,仿真TCP协议的重传机制。
网络仿真是使用计算机技术构造网络拓扑、实现网络协议的模拟网络行为。
它能获取特定的网络特性参数,进而可对网络性能进行研究和分析,达到改善网络运行状况的目的。
它包括网络拓扑仿真、协议仿真和通信量仿真,模拟网络流量在实际网络中传输、交换等的过程。
目前,知名的网络仿真软件主要有Seawind,OPNET和免费软件NS等。
在本课题的研究中,我主要选用NS2网络仿真软件做有关网络QoS的模拟实验。
1 NS简介NS是Network Simulator(网络模拟器)的简写,它是一个离散事件模拟器,是美国DARPA支持的VINT项目的核心部分,由UC Berkeley,USC/ISI,LBL和Xerox PARC等大学和实验室联合开发。
NS是一个面向对象的仿真工具,既能进行现有网络元素的仿真分析,又是一个开发新协议、新方案的强大工具,而且还具有进行各种网络性能仿真的能力。
模拟平台采用C++语言编写,并使用OTcl语言编写命令和配置接口,NS软件是一个软件包,包括Tcl/Tk,Otcl,NS,Tclc1。
其中Tcl是一个开放脚本语言,用来对NS进行编程;Tk是Tcl的图形界面开发工具,可帮助用户在图形环境下开发图形界面;OTcl是基于Tcl/Tk的面向对象扩展,有自己的类层次结构;NS为本软件包的核心,是面向对象的仿真器,用C++编写,以OTcl解释器作为前端;Tclcl则提供NS和OTcl的接口,使对象和变量出现在两种语言中。
为了直观地观察和分析仿真结果,NS提供了可选件Xgraph(显示静态的图形曲线)、可选件Nam(动态观察仿真的进行过程)。
NS在Unix下开发,除了可用于各种Unix系统、Linux 系统外,也可用于Windows系统,后者需要添加两个可选件:Cywin(针对Windows操作系统的通用图形开发工具)和Perl。
目前,NS提供了大量仿真环境的元素,如仿真器、节点和分组转发、链路和延迟、队列管理与分组调度、代理、时钟、分组头及其格式、错误模型、局域网、地址结构(平面型和层次型)、移动网络、卫星网络、无线传播模型、能量模型等;提供了丰富的数学支持,如随机数产生、积分等;提供方便的追踪和监视方法等;提供完整的路由支持,如单播/多播路由、动态/静态路由、层次路由等。
ns2网络仿真软件NS 是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块已经非常丰富,几乎涉及到了网络技术的所有方面。
所以,NS成了目前学术界广泛使用的一种网络模拟软件。
在每年国内外发表的有关网络技术的学术论文中,利用NS给出模拟结果的文章最多,通过这种方法得出的研究结果也是被学术界所普遍认可的,此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。
因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。
然而,对初学者来说,NS是非常难于掌握的,一般人从学习NS到上手至少需要半年多时间。
原因是多方面的:一方面,NS内容庞杂,随软件所提供的手册更新不够快,初学者阅读起来非常困难;另一方面,使用NS还要掌握其它很多必备的相关知识以及相关工具,这会使初学者感到无从入手;有的使用者可能还不了解网络模拟的过程或是对NS软件的机制缺乏理解,这也影响了对NS的掌握。
另外,不论在国外还是国内,还没有一本书能集中回答和解决这些问题,这也是NS难于被掌握的一个重要原因。
1、NS2简介NS2 (Network Simulator, version 2)是一种面向对象的网络仿真器,由UC Berkeley开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP,Telnet,Web CBR和VBR;路由队列管理机制,比如Droptail,RED和CBQ;路由算法,比如Dijkstra等。
NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。
NS2 使用C++和Otcl作为开发语言。
NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。
课程:计算机网络项目:实验4 ns2 实验一、实验目的安装并运行网络仿真器NS2,了解其功能模块及配套工具的使用,掌握利用NS2进行网络仿真的方法,为进一步的网络系统性能分析设计创造良好的条件。
二、实验原理NS2(Network Simulator version 2,网络仿真软件第二版)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。
最早来源于1989年哥伦比亚大学开发的Real Network Simulator项目,是一款开源免费的网络模拟软件。
由加州大学伯克利分校(UC Berkeley)开发而成。
它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。
目前NS2 可用于仿真各种不同的通信网络。
已经实现的仿真模块有:网络传输协议,如TCP 和UDP;业务源流量产生器,如FTP、Telnet、Web CBR 和VBR;路由队列管理机制,如Droptai、RED和CBQ;路由算法,如Dijkstra,以及无线网络的WLAN,Ad hoc路由,移动IP 和卫星通信网络等。
NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。
NS2使用C++和OTcl作为开发语言。
NS2可以说是OTcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。
事件调度器用于计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。
所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器,它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。
事件调度器的另一个用处就是计时。
由于效率的原因,NS2将数据通道和控制通道的实现相分离,为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对OTcl解释器可见。
三、实验内容(1)安装ns-allinone-2.35(2)NS2仿真示例-nam方式四、实验结果与分析:建立一个OTcl脚本文件set ns [new Simulator] /建立对象$ns color 1 Blue /设定颜色$ns color 2 Redset nf [open out.nam w] /打开跟踪文件$ns namtrace-all $nfproc finish {} { /定义结束过程global ns nf$ns flush-traceclose $nfexec nam out.nam &exit 0}set ns0 [$ns node]set ns1 [$ns node]set ns2 [$ns node]set ns3 [$ns node]$ns duplex-link $ns0 $ns2 1Mb 10ms DropTail$ns duplex-link $ns1 $ns2 1Mb 10ms DropTail$ns duplex-link $ns3 $ns2 1Mb 10ms DropTail$ns duplex-link-op $ns0 $ns2 orient right-down$ns duplex-link-op $ns1 $ns2 orient right-up$ns duplex-link-op $ns2 $ns3 orient right$ns duplex-link-op $ns2 $ns3 queuePos 0.5set udp0 [new Agent/UDP] /建立代理UDP $udp0 set class_ 1$ns attach-agent $ns0 $udp0set cbr0 [new Application/Traffic/CBR]$cbr0 set packetSize_ 500$cbr0 set interval_ 0.005$cbr0 attach-agent $udp0set udp1 [new Agent/UDP]$udp1 set class_ 2$ns attach-agent $ns1 $udp1set cbr1 [new Application/Traffic/CBR]$cbr1 set packetSize_ 500$cbr1 set interval_ 0.005$cbr1 attach-agent $udp1set null0 [new Agent/Null] /建立代理NULL$ns attach-agent $ns3 $null0$ns connect $udp0 $null0$ns connect$udp1 $null0$ns at 0.5 "$cbr0 start" /传送数据$ns at 1.0 "$cbr1 start"$ns at 4.0 "$cbr1 stop"$ns at 4.5 "$cbr0 stop"$ns at 5.0 "finish" /调用结束过程$ns run /仿真结果如下:实验分析:系统从n0开始传送数据实验分析:系统从n1开始传送数据实验分析:采用FIFO机制丢包,丢弃n0发送的数据包(3)代码:set ns [new Simulator]set f0 [open out0.tr w]set f1 [open out1.tr w]set f2 [open out2.tr w]for { set i 0 } { $i<5 } {incr i} {set n$i [$ns node]}$ns duplex-link $n0 $n3 1Mb 100ms DropTail$ns duplex-link $n1 $n3 1Mb 100ms DropTail$ns duplex-link $n2 $n3 1Mb 100ms DropTail$ns duplex-link $n3 $n4 1Mb 100ms DropTailproc finish {} {global f0 f1 f2close $f0close $f1close $f2exec xgraph out0.tr out1.tr out2.tr -geometry 800x400 & exit 0}proc attach-expoo-traffic { node sink size burst idle rate } { set ns [Simulator instance]set source [new Agent/UDP]$ns attach-agent $node $sourceset traffic [new Application/Traffic/Exponential]$traffic set packetSize_ $size$traffic set burst_time_ $burst$traffic set idle_time_ $idle$traffic set rate_ $rate$traffic attach-agent $source$ns connect $source $sinkreturn $traffic}proc record {} {global sink0 sink1 sink2 f0 f1 f2set ns [Simulator instance]set time 0.5set bw0 [$sink0 set bytes_]set bw1 [$sink1 set bytes_]set bw2 [$sink2 set bytes_]set now [$ns now]puts $f0 "$now [expr $bw0/$time*8/1000000]"puts $f1 "$now [expr $bw1/$time*8/1000000]"puts $f2 "$now [expr $bw2/$time*8/1000000]"$sink0 set bytes_ 0$sink1 set bytes_ 0$sink2 set bytes_ 0$ns at [expr $now+$time] "record"}set sink0 [new Agent/LossMonitor]set sink1 [new Agent/LossMonitor]set sink2 [new Agent/LossMonitor]$ns attach-agent $n4 $sink0$ns attach-agent $n4 $sink1$ns attach-agent $n4 $sink2set source0 [attach-expoo-traffic $n0 $sink0 200 2s 1s 100k]set source1 [attach-expoo-traffic $n1 $sink1 200 2s 1s 200k]set source2 [attach-expoo-traffic $n2 $sink2 200 2s 1s 300k]$ns at 0.0 "record"$ns at 10.0 "$source0 start"$ns at 10.0 "$source1 start"$ns at 10.0 "$source2 start"$ns at 50.0 "$source0 stop"$ns at 50.0 "$source1 stop"$ns at 50.0 "$source2 stop"$ns at 60.0 "finish"$ns run结果如下:实验分析:三条数据流的峰值分别为0.1Mbit/s, 0.2Mbit/s,0.3Mbit/s五、实验总结在nam辅助分析工具中发现ftp1在零秒开始启动,ftp2在第三秒时刻开始启动,都在第十秒停止,这符合设计目标。
网络仿真实验报告网络仿真实验报告一、引言网络仿真是通过计算机模拟网络环境,以实现对网络性能、协议、拓扑结构等的评估和优化的一种方法。
本报告旨在对网络仿真实验进行详细分析和总结,以便更好地理解网络仿真的应用和意义。
二、实验目的本次网络仿真实验的目的是通过使用特定的仿真工具,模拟一个具有一定规模和复杂性的网络环境,以评估和优化网络性能。
实验将重点关注以下几个方面:1. 网络拓扑结构的设计与构建;2. 不同网络协议的性能比较;3. 网络负载和带宽的优化。
三、实验环境1. 仿真工具:本次实验选择使用NS-3作为网络仿真工具,其具有强大的功能和灵活的配置选项。
2. 实验设备:使用一台性能较好的计算机作为仿真主机,确保仿真过程的稳定性和准确性。
四、实验步骤与结果1. 网络拓扑结构的设计与构建在实验开始之前,首先需要设计和构建一个合适的网络拓扑结构。
根据实验要求,我们选择了一个具有多个子网和路由器的复杂网络结构。
通过使用NS-3提供的API和配置文件,我们成功地搭建了一个符合实验要求的网络拓扑。
2. 不同网络协议的性能比较为了评估不同网络协议的性能,我们选择了TCP和UDP两种常用的传输协议进行比较。
通过在仿真环境中模拟不同的网络负载和带宽情况,我们对比了两种协议在不同场景下的性能表现。
实验结果显示,在低延迟和高可靠性要求较高的场景下,TCP表现更好;而在实时性要求较高的场景下,UDP则更适合。
3. 网络负载和带宽的优化为了优化网络负载和带宽的利用效率,我们尝试了不同的策略和算法。
通过调整路由器的缓冲区大小、优化拓扑结构和使用流量控制算法等手段,我们成功地提高了网络的吞吐量和响应速度。
实验结果表明,合理的网络负载和带宽优化策略对于提升网络性能具有重要作用。
五、实验总结通过本次网络仿真实验,我们深入了解了网络仿真的原理和应用。
实验结果显示,网络仿真是一种有效的方法,可以帮助我们评估和优化网络性能。
同时,我们也发现网络拓扑结构的设计和网络协议的选择对于网络性能具有重要影响。
网络仿真软件的分析探讨范红艳,周彩根,樊昀北京邮电大学计算机科学与技术学院,北京 (100876)E-mail:fanicy@摘要:网络仿真是进行网络研究的重要方法,随着网络的发展,目前有多种网络仿真软件,不同的仿真软件适用于网络不同方面的研究,本文主要介绍了OPNET和NS2两种目前比较流行的仿真软件的特点及主要技术,然后针对一个实例比较了两种仿真软件的仿真效果。
关键词:网络仿真,仿真软件,OPNET,NS2中图分类号:TP 391.091.引言随着网络的快速发展,对于网络性能和新技术的研究也越来越重要,但是如果在现实网络中进行性能研究和新技术的设计开发,是不太现实的。
因此,网络仿真软件的出现大大提高了网络研究的效率,也减少了网络新技术开发的费用。
网络仿真是一种利用数学建模和统计分析的方法来模拟网络行为,从而获取特定的网络特性参数的技术。
网络仿真软件通过在计算机上建立一个虚拟的网络平台,来实现真实网络环境的模拟。
网络技术开发人员在这个平台上不仅可以对网络通信,网络设备,协议以及网络应用进行研究设计,还可以对网络的性能进行分析和评估。
本文接下来主要阐述了两种仿真软件的特点及主要技术,最后针对一个实例对两种仿真软件的仿真效果进行了比较。
2.网络仿真软件2.1 OPNET介绍OPNET是一种优秀的网络仿真和建模的工具,支持面向对象的建模方式,并提供图形化的编辑界面,更便于用户使用。
它强大的功能和全面性几乎可以模拟任何网络设备、支持各种网络技术,除了能够模拟固定通信模型外,OPNET的无线建模器还可用于建立分组无线网和卫星通信网的模型。
同时,OPNET在新网络的设计以及对现有网络的分析方面都有卓越表现。
它为通信协议和路由算法的研究提供与真实网络相同的环境。
此外,功能完善的结果分析器为网络性能的分析提供了有效又直观的工具。
OPNET的 Modeler是专门用于可视化原型设计的软件,它的使用既方便了网络模型的建立,又减少了编程的工作量。
网络通讯与安全电脑知识与技术在网络规模迅速膨胀的今天,网络设计研究人员一方面需要不断研究新的协议和算法,为网络发展做出前瞻性的研究,另一方面也要考虑如何整合、利用现有的资源,使网络运行达到最高效能。
网络仿真软件是进行网络性能分析、网络设计方案评估的有力工具,它能够实现网络拓扑仿真、协议仿真和通信量仿真,从模拟的网络行为中获取各项网络性能参数,掌握网络的运行情况,进而对网络性能进行综合分析,发现网络瓶颈,优化网络结构[1]。
在众多的网络仿真软件中,NS-2是一种扩展性良好、使用广泛的免费仿真软件。
1NS-2仿真软件概述NS-2是NetworkSimulator(版本2)的缩写,它产生于1989年,1995年DARPA通过VINT(VirtualInternetNetworkTestbed)项目给予资助,目前由USC/ISI,XeroxPARC,LBNL和UCB等机构共同开发。
现在,NS以其对网络协议的广泛支持,强大而简便的二次开发能力等特性,在网络研究领域得到广泛应用。
NS-2有多种平台下的版本,包括Unix、Linux和Windows[2],目前的最新版本为2.28,可以从“http://www.isi.edu/nsnam/dist/”免费下载。
1.1NS-2的体系结构NS-2仿真软件是一个软件包,包括Tcl/Tk,OTcl,NS,Tclcl等组件[3]。
其中Tcl是一种脚本语言,基于它对仿真过程进行编程;Tk是Tcl的图形界面开发工具;OTcl是基于Tcl/Tk的面向对象的扩展语言;NS是用C++实现的面向对象的仿真器;Tclcl提供C++和OTcl的接口,能够对各种网络实体和协议,构造出分裂的对象模型,即一个对象同时有C++和OTcl的两种实现。
组件Xgraph用来显示通信数据的流量,组件Nam用来动态的观察仿真过程。
图1是NS-2的体系结构,除了前面提到的各个组件之外,还用C++实现了事件调度器(Scheduler)和多种网络实体。
第三篇包含了第7~10章的内容:第7章介绍
NS 中自带的几个辅助仿真的工具cbrgen、setdest 和
NAM;第8章介绍专门用于文档分析的一种简单的
编程语言gawk;第9章介绍一款Linux 下的优秀的
绘图工具gnuplot;第10章则介绍如何分析NS 模拟
仿真生成的Trace 跟踪文件,以得到网络的性能情况。
学习了前面两篇的内容以后,读者也许已经能够
使用NS 做初步的仿真工作。
仿真的输出是网络运行
的各个时刻分组的活动记录,而本篇的内容则是告诉
读者在运行仿真得到有关的数据后该运用哪些工具,
以及如何利用这些工具去分析所得到的结果。
第7章
NS 仿真辅助工具 103
第8章 gawk 语言简介 107
第9章 使用gnuplot 绘图 116
第10章 Trace 文件分析 129
第 三 篇
NS 仿真辅助及仿真结果分析工具。