ns2使用及实验报告级计算机网络实验

合集下载

NS2仿真实验报告

NS2仿真实验报告

Ns2简单有线网络仿真实验报告一、实验概述1、在windows系统下安装Centos虚拟机2、在Centos系统下安装NS2仿真工具包3、Nam方式示例二、实验内容1)NS2仿真工具包安装说明1.在Centos系统下设置root账户2.解压NS2文件3.安装ns-allinone-2.35设置环境变量4.验证NS2工具包安装情况2)Nam方式Otcl脚本# 产生一个仿真的对象set ns [new Simulator]#针对不同的资料流定义不同的颜色,这是要给NAM用的$ns color 1 Green$ns color 2 Red#开启一个NAM trace fileset nf [open out.nam w]$ns namtrace-all $nf#开启一个trace file,用来记录封包传送的过程set nd [open out.tr w]$ns trace-all $nd#定义一个结束的程序proc finish {} {global ns nf nd$ns flush-traceclose $nfclose $nd#以背景执行的方式去执行NAMexec nam out.nam &exit 0}#产生6个网络节点set n0 [$ns node]set n1 [$ns node]set n2 [$ns node]set n3 [$ns node]set n4 [$ns node]set n5 [$ns node]#把节点连接起来$ns duplex-link $n0 $n2 2Mb 10ms DropTail$ns duplex-link $n1 $n2 2Mb 10ms DropTail$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail$ns duplex-link $n3 $n4 1.7Mb 30ms DropTail$ns duplex-link $n3 $n5 1.5Mb 30ms DropTail#设定ns2到n3之间的Queue Size为10个封包大小$ns queue-limit $n2 $n3 10$ns queue-limit $n3 $n4 5#$ns queue-limit $n3 $n5 10#设定节点的位置,这是要给NAM用的$ns duplex-link-op $n0 $n2 orient right-down$ns duplex-link-op $n1 $n2 orient right-up$ns duplex-link-op $n2 $n3 orient right$ns duplex-link-op $n3 $n4 orient right-up$ns duplex-link-op $n3 $n5 orient right-down#观测n2到n3之间queue的变化,这是要给NAM用的$ns duplex-link-op $n2 $n3 queuePos 0.5#建立一条n0-n5TCP的联机set tcp [new Agent/TCP]$ns attach-agent $n0 $tcpset sink [new Agent/TCPSink]$ns attach-agent $n5 $sink$ns connect $tcp $sink#在NAM中,TCP的联机会以Green表示$tcp set fid_ 1#在TCP联机之上建立FTP应用程序set ftp [new Application/FTP]$ftp attach-agent $tcp$ftp set type_ FTP#建立一条UDP的联机set udp [new Agent/UDP]$ns attach-agent $n1 $udpset null [new Agent/Null]$ns attach-agent $n3 $null$ns connect $udp $null#在NAM中,UDP的联机会以红色表示$udp set fid_ 2#在UDP联机之上建立CBR应用程序set cbr [new Application/Traffic/CBR]$cbr attach-agent $udp$cbr set type_ CBR$cbr set packet_size_ 1000$cbr set rate_ 1mb$cbr set random_ false#设定FTP和CBR资料传送开始和结束时间$ns at 0.1 "$cbr start"$ns at 1.0 "$ftp start"$ns at 4.0 "$ftp stop"$ns at 4.5 "$cbr stop"#结束TCP的联机(不一定需要写下面的程序代码来实际结束联机)$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"#在仿真环境中,5秒后去呼叫finish来结束仿真(这样要注意仿真环境中#的5秒并不一定等于实际仿真的时间$ns at 5.0 "finish"#执行仿真$ns run3)仿真结果仿真结束后,会产生out.nam和out.tr两个档案用来把仿真的过程用可视化的方式呈现出来4)数据分析1.End-to-End Delay把测量CBR封包端点到端点间延迟时间的awk程序,写在档案measure-delay.awk档案中BEGIN {#程序初始化,设定一变量以记录目前最高处理封包的ID。

NS2网络仿真实验

NS2网络仿真实验

NS2网络仿真实验实验目的:通过修改NS2的TCP协议代码,来简单的观察窗口阈值的不同算法对网络资源利用率的影响。

实验步骤:1. 实验环境搭建(1)系统环境:虚拟机:virtrulbox;操作系统:linux/ubuntu 10.04工作目录:/home/wangtao/workspace/(2)NS2安装与使用:下载NS2软件包到工作目录,地址/sourceforge/nsnam/ns-allinone-2.33.tar.gz解压(注:以下斜体字为命令行命令)tar -zxf ns-allinone-2.33.tar.gzcd ns-allinone-2.33./install(中间的两个bug已经修改,此处忽略)耐心等待安装完毕后将出现如下画面说明安装正常:接下来是系统环境配置,重新进入终端cd ~vim .bashrc(如果没有安装vim最好安装一下,sudo apt-get install vim)在打开的.bashrc的末尾加上以下内容:PATH="$PATH:/home/wangtao/worksapce/ns-allinone-2.33/bin:/home/wangtao/worksapce/ns-a llinone-2.33/tcl8.4.18/unix"exportLD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib"exportTCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library"保存并退出,重新进入终端安装xgraphsudo apt-get install xgraph运行一个简单的例子,以证明环境安装完成:ns /home/wangtao/workspace/ ns-allinone-2.33/tcl/ex/simple.tcl出现如下图说明成功:2.修改代码vim /home/wangtao/workspace/ns-allinone-2.33/tcp/(将窗口阈值一半变为的窗口阈值1/3——wt_)第一处:……if (cwnd_ < ssthresh_)slowstart = 1;if (precision_reduce_) {//halfwin = windowd() / 2; //wangtaohalfwin = windowd() / 3;第二处:……} else {int temp;//temp = (int)(window() / 2);//wangtaotemp = (int)(window() / 3);halfwin = (double) temp;……第三处:……switch (how) {case 0:/* timeouts *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = int(wnd_restart_);break;case 1:……第四处……case 4:/* Tahoe dup acks *///ssthresh_ = int( window() / 2 );//wangtaossthresh_ = int( window() / 3 );if (ssthresh_ < 2)ssthresh_ = 2;cwnd_ = 1;break;default:abort();……3.编写tcl代码,实现一个简单的3节点,2条链路的网络网络如下图,具体代码见附件中的源代码。

无线网络实验

无线网络实验

一、实验目的了解和学习NS-2平台。

二、实验任务首先学习和了解NS-2的相关内容。

参阅资料:NS2官方网站/nsnam/ns/NS2教学手册.tw/smallko/ns2_old/ns2.htm 1.Windows环境下安装(基于Cygwin)安装步骤:下载并解压cygwin.rar选择install from local directiory,然后点击下一步:选择安装路径:点击下一步:选择解压后的cygwin包中的文件夹进行导入:下一步,你可以看到如下,在这个窗口中,cygwen安装程序让你选择要选择安装的软件:.XFree86-base, XFree86-bin, XFree86-prog, XFree86-lib, XFree86-etc, make, patch, perl, gcc, gcc-g++, gawk, gnuplot, tar and gzip需要被选中。

点击前方的“New”选项中的“Skip” ,将会选中:选择完毕后,点击下一步:成功安装:Linux(虚拟机)环境下安装Ns2的安装和环境配置:下载myNS2,解压,安装,指令:./install修改路径信息,把可执行文件的路径加到PATH环境变量中.bashrc文件export NS_HOME=/home/PC-100/ns-allinone-2.28/ns-allinone-2.28exportPATH=$NS_HOME/nam-1.11:$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATHexportLD_LIBRARY_PA TH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/otcl-1. 9:$NS_HOME/lib:$LD_LIBRARY_PATHexport TCL_LIBRARY=$NS_HOME/tcl8.4.5/library运行:2.示例运行(验证)弹出窗口:运行:example2.tcl和example4.tcl三、实验中存在的问题及解决办法【问题1】cygwin和ns2版本不相容问题。

《计算机网络实验》实验报告

《计算机网络实验》实验报告

《计算机网络实验》实验报告一、实验目的计算机网络实验是计算机相关专业学习中的重要实践环节,通过实验操作,旨在深入理解计算机网络的基本原理、协议和技术,提高我们的动手能力和解决实际问题的能力。

具体目的包括:1、熟悉计算机网络的体系结构和各层协议的工作原理。

2、掌握网络设备的配置和管理方法,如交换机、路由器等。

3、学会使用网络工具进行网络性能测试和故障诊断。

4、培养团队合作精神和沟通能力,提高解决复杂问题的综合素养。

二、实验环境本次实验在学校的计算机网络实验室进行,实验室配备了以下设备和软件:1、计算机若干台,安装了 Windows 操作系统和相关网络工具软件。

2、交换机、路由器等网络设备。

3、网络线缆、跳线等连接设备。

三、实验内容及步骤实验一:以太网帧的捕获与分析1、打开网络协议分析软件 Wireshark。

2、将计算机连接到以太网中,启动捕获功能。

3、在网络中进行一些数据传输操作,如访问网站、发送文件等。

4、停止捕获,对捕获到的以太网帧进行分析,包括帧的格式、源地址、目的地址、类型字段等。

实验二:交换机的基本配置1、连接交换机和计算机,通过控制台端口进行配置。

2、设置交换机的主机名、管理密码。

3、划分 VLAN,并将端口分配到不同的 VLAN 中。

4、测试不同 VLAN 之间的通信情况。

实验三:路由器的基本配置1、连接路由器和计算机,通过控制台端口或Telnet 方式进行配置。

2、设置路由器的接口 IP 地址、子网掩码。

3、配置静态路由和动态路由协议(如 RIP 或 OSPF)。

4、测试网络的连通性。

实验四:网络性能测试1、使用 Ping 命令测试网络的延迟和丢包率。

2、利用 Tracert 命令跟踪数据包的传输路径。

3、使用网络带宽测试工具测试网络的带宽。

四、实验结果与分析实验一结果与分析通过对捕获到的以太网帧的分析,我们清楚地看到了帧的结构,包括前导码、目的地址、源地址、类型字段、数据字段和帧校验序列等。

NS2简单无线网络模拟实验报告

NS2简单无线网络模拟实验报告

HUNAN CITY UNIVERSITYNS2与网络模拟实验报告实验题目:简单无线网络模拟 __专业: ____班级学号_____ _2015年 10月 27日1.实验目的•熟悉NS2网络模拟的基本操作流程•练习TCL脚本代码的编写•理解基本的无线网络节点的配置过程、以及数据流的发生2.实验原理NS2是指 Network Simulator version 2,NS(Network Simulator)是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面。

所以,NS成了目前学术界广泛使用的一种网络模拟软件。

此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。

因此,目前在学术界和教育界,有大量的人正在使用NS。

NS2是一种面向对象的网络仿真器,本质上是一个离散事件模拟器,由UC Berkeley开发而成。

它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。

目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有网络传输协议,比如TCP和UDP, 流量产生器,比如FTP, Telnet, Web CBR和VBR;路由队列管理机制,比如Droptail, RED和CBQ;路由算法,比如AODV、DSDV、DSR等无线路由协议。

NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。

3.实验内容和步骤•打开虚拟机播放器VMware Player•打开播放Ubuntu虚拟机镜像(Ubuntu.vmx)•登录系统后,打开控制台Terminal输入下列命令:•cd Desktop/EXP/•ns 6-simple-wireless.tcl•模拟运行完毕后,动画演示器NAM自动打开,播放动画,观察模拟过程。

4.实验结论•截取NAM动画演示结果。

••详细解释TCL脚本文件中与无线网络相关的代码。

NS2仿真技术在计算机网络实验教学中的应用与研究

NS2仿真技术在计算机网络实验教学中的应用与研究

51计算机教育 2005.10教/育/信/息/化长时间以来,很多学生反映计算机网络的教学很枯燥,其实,很多计算机网络任课教师也反映这个问题,这主要是因为计算机网络原理涉及到很多协议和算法,这些内容在传统的实验环境下很难模拟或成本太高。

因此,很多高校的计算机网络教学仅仅是让学生练习组建局域网、网络命令、服务器或其他网络互连设备的配置,更有甚者,只是简单地通过IE访问Internet,而很少深入到网络的内核,这直接影响到计算机网络的教学效果。

为此,我们构建了一个计算机网络仿真平台,不仅可以演示底层协议的工作原理,通过自己修改协议参数来改进协议并进行验证,还可以模拟网络拓扑和一些网络设备的工作方式。

仿真技术的引入,不仅节约了实验成本,极大地提高了学生的积极性,更提高了实验教学的水平和质量,仿真环境和真实环境结合,达到了很好的效果。

经过两年的应用,我校计算机网络的教学效果有了明显改善。

目前,知名的仿真软件主要有Seawind、OPNET、MATLAB、NS2和GloMoSim。

我们采用了免费且开放源代码的网络仿真软件NS2。

NS2仿真软件工作机制NS2由编译和解释两个层次组成。

编译层包括C++类库,而解释层包括对应的Otcl类,用户以Otcl解释器作为前台使用NS。

其体系结构如图1所示。

NS2仿真有两个层次:一个基于Otcl编程,通过Tcl脚本程序设计,利用现有的NS元素实现仿真,不用修改NS本身;另一个层次基于C++(在图2中用虚线表示)和Otcl的编程,利用Otcl和NS的接口,编写C++程序,然后重新编译NS来增加新的功能,从而实现仿真的目的,如图2所示。

对于本科生的实验教学来说,只需要用到第一种仿真方法,对于部分水平较高的学生,可以涉及到第二个层次。

使用NS2进行网络仿真的一般过程(如图2所示)为:(1)分析要解决的问题,建立模型;(2)编写Tcl脚本,模拟问题的处理过程,或修改C++代码并重新编译NS;(3)运行Tcl脚本,得到仿真结果数据;(4)对结果数据进行分析,并以动画或静态图像来演示仿真结果。

NS2仿真实验分析报告

NS2仿真实验分析报告

NS2仿真实验分析报告一引言1 NS2简介NS2是一款开放源代码的网络模拟软件,最初由UC Berkeley开发。

它是一种向象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件驱动。

其采用了分裂对象模型的开发机制,采用C++和OTcl两种语言进行开发。

它们之间采用Tclcl 进行自动连接和映射。

考虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离。

为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++编写,这些对象通过Tclcl映射对OTcl解释器可见。

目前NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、CBR、We b和VBR;路由队列管理机制,如DropTail、RED和CBQ;路由算法;以及无线网络WLAN、移动IP和卫星通信网络等模块,也为进行局域网的模拟实现了多播协议以及一些MAC子层协议。

2 基本概念(1)RED:随机早期探测(Random Early Detect,RED)。

RED属于主动队列管(Active Queue Management, AQW),是目前常见的TCP上防止拥塞的手段。

它通过以一定概率丢失或标记报文来通知端系统网络的拥塞情况。

RED使用平均队列长度度量网络的拥塞程度,然后以线性方式将拥塞信息反馈给端系统。

RED使用最小阈值,最大阈值和最大概率等几个参数。

RED的基本思想是通过监控路由器输出端口队列的平均长度来探测拥塞,一旦发现拥塞逼近,就随机地选择连接来通知拥塞,使它们在队列溢出导致丢包之前减少拥塞窗口,降低发送数据速度,缓解网络拥塞。

RED配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。

【最新文档】NS2与网络模拟学习总结报告-推荐word版 (7页)

【最新文档】NS2与网络模拟学习总结报告-推荐word版 (7页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==NS2与网络模拟学习总结报告HUNAN CITY UNIVERSITYNS2与网络模拟学习总结报告专业:网络工程学生姓名:班级学号:201X年 11月 5日1. 所学章节重点内容概要第一章:NS2简介一.NS2(Network Simulator - Version2)1.由C++和OTcl编写2.面向对象的,事件驱动的网络模拟器。

? UC Berkeley设计? 多用于多播和MAC层协议仿真? :NS2安装? 在NS2是在Unix平台下运行的? NS2的使用? Windows平台1.需先安装Cygwin,模拟Unix环境2.安装虚拟机,在虚拟的Unix或Linux环境下安装NS2 ? :TCL语法? TCL简介1.TCL-”tickle”2.所有平台都支持3.NS2中主要描述网络环境和参数? TCL基本语法1.唯一数据类型:字符串2.字符串的三中形式(命令,表达式,列表)3.注释:#? :NS2语法? 建立在Tcl脚本语言之上? 拥有自己的库? Tcl脚本标准模板? 编写一个简单的Tcl脚本1.添加两个节点,一条连接2.传输数据? 简单网络拓扑结构和模拟实例? ~第九章:NS2结果分析? 跟踪文件Out.tr1.NS2执行过程中会自动产生一个跟踪文件2.记录数据包(分组)的传输情况? 动画演示工具NAM1.NAM基于Tcl/Tk的动画演示工具2.NAM进行演示3.基本命令格式4.NS2中NAM常用命令? 分析工具Awk1.Awk是一种程序语言,具有一般程序语言的常见功能2.Awk具备一些特殊的内在功能,使其擅长处理数据记录(Record),字段(Field)型的数据3.常用来处理和分析NS2的跟踪文件4.Awk在读入数据后会把每个记录的每个字段的值存入字段变量? 绘图工具Xgr aph,Gnuplot1.XGraph是NS2自带的简单绘图工具2.Gnuplot是一个命令行的交互式绘图工具? :模拟器(Simulator)? 类Simulator1.在\ns-2.33\tcl\lib\ns-lib.tcl和\ns-2.33\common\scheduler.{cc,h}2.提供模拟配置和事件调度方案3.初始化? 调度器和事件1.NS2是事件驱动(event-driven)模拟器2.NS2支持四种调度机制3.设置模拟调度的机制命令? 其他1.时钟精度2.常用命令? :节点和包(node and packet)? 类node和类packet。

NS2在无线网络实验教学中的应用word精品文档4页

NS2在无线网络实验教学中的应用word精品文档4页

NS2在无线网络实验教学中的应用基金项目:本文系2010-2013年重庆邮电大学教改项目“通信网络虚拟体验系统建设与实验课程开发”(项目编号:XJG1002)的研究成果。

无线网络技术[1]是当前计算机网络中的最热点的研究领域,也是一门理论性比较强的课程,在传统的实验室中开展实验教学比较困难。

现有的针对无线网络的实验设备,成本非常昂贵,而且代码保密,学生很难深入理解网络协议和算法。

为此,我们将网络仿真工具NS2引入无线网络实验教学中,利用NS2的动画效果动态演示节点的收发包过程,不但可以帮助学生深刻理解网络协议和算法,提高学生学习无线网络的兴趣,而且利用NS2代码开源的特点,还可以使得学生深入到协议和算法的具体实践中去,从而提高学生的编程能力,激发学生对无线网络协议验证、改进和开发的兴趣。

一、NS2的介绍网络模拟是进行网络技术研究的一种基本手段,是指采用软件对网络的协议、拓扑和性能进行模拟分析。

网络模拟可以在硬件条件不具备的情况下帮助科研人员快速学习、设计、分析和改进协议和算法。

此外,网络模拟还可以在不需要建立实际网络系统的情况下比较、评估和验证新旧协议和算法的性能。

目前,常见的网络仿真软件主要有OPNET、SPD、Qualnet 和NS2等。

所有的仿真软件都支持有大量的网络协议,但是OPNET、SPD和Qualnet均为商业化产品,价格昂贵。

而NS2属于开源软件,有着良好的开放性和可扩展性,因此在网络模拟中使用最为广泛。

NS[2]是由UC Berkeley大学开发的一种面向对象的网络环境模拟器,来源于1989年的Real Network Simulator项目,目前最流行的是版本2,即NS2(Network Simulator 2)。

经过全世界各地研究者多年来不断的努力和完善,NS2已经成为一个涉及网络各个方面的优秀的网络模拟工具。

NS2集成的大量无线网络协议,以及其强大的二次开发能力使得NS2已经成为无线网络学术研究最常用的仿真平台。

计算机网络ns2实验报告

计算机网络ns2实验报告

课程:计算机网络项目:实验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在第三秒时刻开始启动,都在第十秒停止,这符合设计目标。

基于NS2的计算机网络实践教学初探

基于NS2的计算机网络实践教学初探

基于NS2的计算机网络实践教学初探1. 前言计算机网络是信息化时代的核心技术之一,越来越多的学生和从业人员选择学习和掌握这项技术。

在计算机网络课程的教学中,实践性教学是至关重要的一环。

为了提高学生的实践能力,本文尝试以NS2(Network Simulator 2)为平台,开展计算机网络实践教学。

2. NS2简介NS2是一个基于事件驱动的离散事件模拟器,用于对计算机网络的性能进行评估。

它支持C++和OTcl两种编程语言,同时也支持多种网络协议的模拟。

NS2通过模拟网络环境中的各种行为,可以帮助学生更好地理解计算机网络的工作原理。

3. 实践教学内容与方法实践教学的内容应该与计算机网络课程的知识点相对应,例如TCP/IP协议、路由算法、网络拓扑等。

NS2可以模拟多种协议和网络环境,因此可以根据教学内容选取合适的模拟方案。

实践教学的方法可以结合课堂教学和实验室实验。

在课堂上,利用PPT或白板等工具介绍相关的知识点,并演示NS2的相关操作。

在实验室中,让学生通过编写NS2脚本,模拟一些网络应用场景,如文件传输、路由算法等,最终通过实验结果来验证各种协议和算法的正确性和性能。

4. 实践教学的意义利用NS2开展计算机网络实践教学,可以有效提高学生的实践能力,培养学生的解决问题和实验设计的能力。

同时也可以帮助学生更好地理解计算机网络的工作原理,加深对课程知识的理解和掌握。

此外,实践教学还可以帮助学生培养团队协作和沟通能力,加强师生之间的交流。

5. 结语本文简要介绍了利用NS2进行计算机网络实践教学的方法和意义。

NS2作为广泛使用的网络模拟器,可以帮助教师更好地进行实践教学,提高学生的实践能力和课程掌握水平。

希望这篇文章对计算机网络实践教学有所启示和帮助。

NS2实验报告

NS2实验报告

实验报告一、实验概述1.在windows系统下安装ubuntu虚拟机2.在ubuntu混井下安装NS2仿真工具包,附说明3.Nam方式示例4.Xgraph方式示例二、实验要求1.内存较大的机器2.Ubuntu系统或linux系统,NS工具包三、实验内容1.NS2仿真工具包安装说明:①在ubuntu系统下设置root账户;②解压NS2文件;③安装ns-allinone-2.35;④设置环境变量⑤验证NS2工具包安装情况2.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] /产生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.Xgraph方式otcl脚本: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] /$i外无括号}$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 & /tr后面有空格,调用Xgraph显示仿真结果exit 0}proc attach-expoo-traffic { node sink size burst idle rate } { /建立UDP,产生Expoo流量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.5 /定义调用周期set 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 /重置变量byte的值$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] /建立UDP,产生Expoo流量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 /执行仿真实验日志:使用Xgraph画图,编写OTcl文件,运行出现如下错误:Parameter LabelFont: can't translate `helvetica-10' into a font(defaulting to `fixed')X Error: BadFont (invalid Font parameter)Major opcode of failed request: 55 (X_CreateGC)解决方案:将“elvetica-10”改为“fixed”,在~/ns-allinone-2.35/xgraph-12.2目录查找名为init.c的文件后重新编译init.c文件,切换到~/ns-allinone-2.35/ns-2.35/xgraph-12.2目录下make,此时make的文件列表内产生了init.c。

NS2实验报告

NS2实验报告

NS2实验报告一、实验平台和环境本实验是在Windows XP操作系统平台下安装了Cygwin软件以模仿Linux 下的编程环境,然后在Cygwin模仿的环境中安装了ns-allinone-2.34软件包,该软件包包含nam、otcl、tcl、tclcl、tk以及xgraph等软件包和辅助分析工具。

二、实验步骤2.1 安装与配置1.安装cygwina)在cygwin官方网站下载setup.exe。

b)运行setup.exe,使用默认配置选择unix安装。

c)在选择安装组件时确认安装以下内容:XFree86-base, XFree86-bin,XFree86-prog,XFree86-lib, XFree86-etc,make,patch,perl,gcc,gcc-g++,gawk,gnuplot,tar 和gzip。

Diffstat,diffutils,libXmu,libXmu-devel,libXmu6,libXmuu1,X-startup-scriptsxorg-x11-basexorg-x11-binxorg-x11-develxorg-x11-bin-dllsxorg-x11-bin-lndirxorg-x11-etcxorg-x11-fencxorg-x11-fntsxorg-x11-libs-dataxorg-x11-xwin2.安装NS2a)在NS2官方网站下载ns2-allinone-2.34.tar.gz安装包。

b)将ns2-allinone-2.34.tar.gz拷贝放入cygwin用户目录下。

c)运行cygwin,命令行下输入tar xvfz ns2-allinone-2.34.tar.gz。

d)进入ns2-allinone-2.34目录,执行./install开始安装。

e)安装结束后,会提示设定PATH,LD_LIBRARY_PATH,TCL_LIBRARY等内容,可在用户目录下修改.bashrc文件,添加以下内容:export NS_HOME=/home/Administrator/ns-allinone-2.34export PATH=$NS_HOME/nam-1.13:$NS_HOME/tcl8.4.18/unix:$NS_HOME/tk8.4.18/unix:$NS_HOME/bin:$PATHexport LD_LIBRARY_PATH=$NS_HOME/tcl8.4.18/unix:$NS_HOME/tk8.4.18/unix:$NS_HOME/otcl-1.13:$NS_HOME/lib:$LD_LIBRARY_PATHexport TCL_LIBRARY=$NS_HOME/tcl8.4.18/libraryf)进入~/ns-allinone-2.34/ns-2.34目录,可运行./validate进行验证。

(完整word版)NS2网络仿真实验

(完整word版)NS2网络仿真实验

移动自组织网络实验报告NS2网络仿真实验何云瑞13120073电信研1301班1.实验目的和要求1.学会NS2的安装过程,并熟悉NS2的环境;2.观察并解释NAM动画,分析Trace文档。

3.学会用awk和gnuplot分析吞吐量、封包延迟、抖动率和封包丢失率。

2.实验环境先在PC上安装VMware虚拟机,再在虚拟机上安装Ubuntu系统,最后再Ubuntu系统上安装NS2软件,本次实验采用的是NS-2.34版本。

3.基本概念3.1 NS2简介NS2是一款开放源代码的网络模拟软件,最初由UC Berkeley开发。

它是一种面向对象的网络模拟器,它本质上是一个离散事件模拟器,其本身有一个模拟时钟,所有的模拟都由离散事件驱动。

其采用了分裂对象模型的开发机制,采用C++和OTcl两种语言进行开发。

它们之间采用TclCL进行自动连接和映射。

考虑效率和操作便利等因素,NS2将数据通道和控制通道的实现相分离.为了减少封包和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++编写,这些对象通过TclCL映射对OTcl解释器可见。

目前,NS2可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主要模块有:网络传输协议,如TCP和UDP;业务源流量产生器,如FTP、Telnet、CBR、Web和VBR;路由队列管理机制,如Droptail、RED和CBQ;路由算法;以及无线网络WLAN、移动IP和卫星通信网络等模块。

也为进行局域网的模拟实现了多播协议以及一些MAC子层协议。

3。

2 NS2的功能模块NS2仿真器封装了许多功能模块,最基本的是节点、链路、代理、数据包格式等,下面对各个模块进行简单的介绍:(1)事件调度器:目前NS2提供了四种具有不同数据结构的调度器,分别是链表、堆、日历表和实时调度器。

(2)节点(node):是由TclObject对象组成的复合组件,在NS2中可以表示端节点和路由器.(3)链路(link):由多个组件复合而成,用来连接网络节点.所有的链路都是以队列的形式来管理封包的到达、离开和丢弃。

基于NS2的计算机网络实践教学初探

基于NS2的计算机网络实践教学初探

基于NS2的计算机网络实践教学初探【摘要】本文通过对基于NS2的计算机网络实践教学的初探进行了探讨。

首先介绍了NS-2的基本概念,然后分析了计算机网络实践教学的重要意义。

接着详细探讨了基于NS2的计算机网络实践教学的方法和实践案例。

通过对实践案例的分析,评估了教学效果并提出了建设性的意见和建议。

总结了基于NS2的计算机网络实践教学初探的成果和经验,展望了未来的发展方向。

通过本文的研究,可以为计算机网络实践教学提供新思路和方法,促进教学质量的提升,为学生提供更好的学习体验和实践机会。

【关键词】计算机网络、NS2、实践教学、教学探索、实践案例、教学效果、评价、总结1. 引言1.1 绪论计算机网络是当今社会信息通信的基础,已成为各行各业不可或缺的一部分。

在计算机网络领域,实践教学一直占据着重要地位,通过实践教学能够帮助学生更好地理解理论知识,提高解决问题的能力,并增强实际操作的技能。

基于NS2的计算机网络实践教学成为了一种不错的选择。

NS2是一个经典的网络模拟器,具有强大的模拟功能和丰富的网络协议支持,可以帮助学生进行网络实验,并直观地观察实验结果。

本文旨在探讨基于NS2的计算机网络实践教学方法,探讨其对学生学习效果的影响,以及教学效果的评价。

通过具体的实践案例分析,深入探讨NS2在计算机网络实践教学中的应用,以及如何有效地进行教学设计和指导。

最终,通过结论部分对基于NS2的计算机网络实践教学进行总结,为今后的教学实践提供参考和借鉴。

2. 正文2.1 NS-2的基本介绍NS-2是一个广泛使用的网络仿真工具,是一个自由软件。

NS-2的全称是Network Simulator Version 2,它是一个基于事件驱动的网络模拟器。

NS-2的设计目标是提供一个灵活的仿真平台,用于研究和评估网络协议和技术。

NS-2支持多种网络技术,包括有线网络、无线网络、Ad hoc网络和卫星网络等。

NS-2采用了C++语言编写,并使用了Tcl脚本语言作为界面。

计算机网路实验-使用NS2模拟多媒体通讯与无线网路(实验...

计算机网路实验-使用NS2模拟多媒体通讯与无线网路(实验...
14
2010/3/5


-Ma 0 -Md 0 -Ms 0 -Mt 0 該列給出了MAC層信息,標識以“-M”開始 -Ma: 持續時間 -Md: 目的乙太網址 -Ms: 來源乙太網址 -Mt: 乙太網類型 -Is 0.255 -Id -1.255 -It message -Il 32 -If 0 -Ii 0 -Iv 32
2010/3/5
7
else { #計算吞吐量 $throughput=$sum*8.0/$granularity; if ($throughput > $maxrate){ $maxrate=$throughput; } #輸出結果: 時間 吞吐量(bps) print STDOUT "$x[2]: $throughput bps\n"; #設定下次要計算吞吐量的時間 $clock=$clock+$granularity; $sum_total=$sum_total+$x[4]; $sum=$x[4]; }
2010/3/5
;# disable random motion
20
# Provide initial (X,Y, for now Z=0) co-ordinates for mobilenodes # # 設定節點0在一開始時,位置在(350.0, 500.0) $node_(0) set X_ 350.0 $node_(0) set Y_ 500.0 $node_(0) set Z_ 0.0
# Load the god object with shortest hop information # 在節點1和節點2之間最短的hop數為1 $god_ set-dist 1 2 1

网络模拟器NS-2及其应用分析

网络模拟器NS-2及其应用分析

1.2
NS-2 体系结构
NS-2 的结构如图 1 所示。 NS-2 采用了两级体系结构, 为了提高代码的执行效率, NS-2 将数据操作与控制部分
的实现相分离,事件调度器和基本的网络组件使用 C++编写和编译,其主要功能是实现对数
据包的处理;NS-2 的前端是一个 Otcl 解释器,主要的功能是对模拟环境的配置、建立。从 图 1 的左下角看,用户利用 Otcl 库中的模拟对象设计和运行 TCL 仿真,事件调度器和网络 组件通过 OTcl 链接(tclcl 类)和 Otcl 相关联,这样用户可以在 Otcl 空间能够方便地对 C ++对象的函数和变量进行修改与配置。
图 3 利用 NS-2 进行网络模拟的过程
2.1
Otcl 实现模拟的一般过程
(1) 建立 network model: 描述模拟网络拓扑结构,确定链路
的基本特性,如延迟、带宽和丢失策略等。 (2) 建立 traffic model: 包括端设备的协议绑定和通信业务
量模型的建立,配置业务量模型的参数,从而确定网络上的业务量分布。 (3) 设置 ห้องสมุดไป่ตู้race 对象。Trace 对象能够把模拟过程中发生的特
1
1.1
NS-2 体系结构及功能模块
NS-2 简介
NS-2 是面向对象的,基于离散事件驱动的网络环境模拟器。它实现了多种网络协
议的模拟,如网络协议 TCP、UDP,流量源行为,如 FTP、Telnet、Web、CBR、VBR;实现了 DropTail、RED、CBQ 等几种路由器队列管理机制以及 Dijkstra,动态路由、静态路由、组播 路由等路由算法。此外,NS-2 还支持组播协议 SRM 及部分 MAC 层协议。 NS-2 用 C++和 Otcl 语言编写而成。它是免费的,开放源代码的,可以很方便地扩展 NS-2 的功能,将自己开发的新协议模块集成到 NS-2 环境中。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级计算机网络实验吴德云SC11011042-SC11011042-吴德云一、实验目的学生能够初步掌握NS2网络模拟平台,并且能够利用网络模拟平台进行简单的实验,加深对TCP拥塞控制与流量控制机制的理解,并且能够为实验需要简单修改NS2的核心模块。

二、实验要求1、了解NS2基本原理。

2、熟悉Tcl和Otcl脚本语言。

3、熟悉分裂对象模型和Tcl。

4、熟悉NS的基本模块。

5、按照《NS2安装与使用.doc》的操作流程搭好实验必需的环境。

6、本次实验室的核心是,按照预设改变修改NS2核心模块(即C++代码),并用利用NS2模拟出修改后的效果。

三、实验过程1、安装NS2点击/sourceforge/nsnam/ns-allinone-2.33.tar.gz下载。

下载的版本是有问题的,源文件有两个bug。

1、选择解压缩位置本演示实验在当前用户下新建PROGRAM目录:图2:解压缩位置2、解压缩鼠标右击软件包选择解压缩到此处:图3:解压缩3、在终端安装(1)打开一个终端(位置:应用程序>系统工具>终端):在终端里输入sudo-i,回车;按提示输入密码,回车,进入root权限操作:图4:进入root权限(2)下载并安装下一步安装ns-2.33时所必需要的系统包:首先,在终端里输入apt-get install build-essential进行下载、安装,这一步是为了gcc and some essential的安装;接着,在终端里输入apt-get install tcl8.4tcl8.4-dev tk8.4tk8.4-dev进行下载、安装,这一步是为了tcl and tk的安装;(注意4个名字中间用空格隔开)最后,在终端里输入apt-get install libxmu-dev进行下载、安装,这一步是为了nam的安装。

以上三步示意图如下:图5:apt-get install build-essential图6:apt-get install tcl8.4tcl8.4-dev tk8.4tk8.4-dev图7:apt-get install libxmu-dev(3)输入cd命令,转到ns-allinnone-2.33文件夹下,输入./install,进行安装,如下图所示:图8:安装NS2程序按下回车键,同学们可以休息一会啦,这个过程大概需要5分钟左右(具体时间关乎您机器的性能),5分钟之后大概出现如下提示:Ns-allinone package has been installed successfully.Here are the installation places:tcl8.4.18:/home/ttcndujian/PROGRAM/ns-allinone-2.33/{bin,include,lib}tk8.4.18:/home/ttcndujian/PROGRAM/ns-allinone-2.33/{bin,include,lib}otcl:/home/ttcndujian/PROGRAM/ns-allinone-2.33/otcl-1.13tclcl:/home/ttcndujian/PROGRAM/ns-allinone-2.33/tclcl-1.19ns:/home/ttcndujian/PROGRAM/ns-allinone-2.33/ns-2.33/nsgt-itm:/home/ttcndujian/PROGRAM/ns-allinone-2.33/itm,edriver,sgb2alt,sgb2ns,sgb2comns,sgb2hierns----------------------------------------------------------------------------------Please put/home/ttcndujian/PROGRAM/ns-allinone-2.33/bin:/home/ttcndujian/PROGRAM/ns-allinone-2.33 /tcl8.4.18/unix:/home/ttcndujian/PROGRAM/ns-allinone-2.33/tk8.4.18/unixinto your PATH environment;so that you'll be able to run itm/tclsh/wish/xgraph.IMPORTANT NOTICES:(1)You MUST put/home/ttcndujian/PROGRAM/ns-allinone-2.33/otcl-1.13,/home/ttcndujian/PROGRAM/ns-allinone-2.33/lib,into your LD_LIBRARY_PATH environment variable.If it complains about X libraries,add path to your X librariesinto LD_LIBRARY_PATH.If you are using csh,you can set it like:setenv LD_LIBRARY_PATH<paths>If you are using sh,you can set it like:export LD_LIBRARY_PATH=<paths>(2)You MUST put/home/ttcndujian/PROGRAM/ns-allinone-2.33/tcl8.4.18/library into your TCL_LIBRARY environmentalvariable.Otherwise ns/nam will complain during startup.After these steps,you can now run the ns validation suite withcd ns-2.33;./validateFor trouble shooting,please first read ns problems page/nsnam/ns/ns-problems.html.Also search the ns mailing list archivefor related posts.此时,ns2程序已基本安装结束,下面需要做的是按照下面给出的提示来配置环境变量,否则无法使用。

退出现在使用的这个终端,重现打开一个,进行下一步操作:5、设置环境变量在新建的终端里输入如下命令:gedit.bashrc,回车。

(注意不要忘记bashrc前面的点,而且新打开的bashrc不是空文件)在打开的文件里最下方添加如下内容:export PATH="$PATH:/home/ttcndujian/PROGRAM/ns-allinone-2.33/bin:/home/ttcndujian/PROGRAM/ns-allinone-2.33/tcl8.4.18/unix" export LD_LIBRARY_PA TH="$LD_LIBRARY_PAHT:/home/ttcndujian/PROGRAM/ns-allinone-2.33/otcl-1.13,/home/ttcndujian/PROGRAM/ns-allinone-2.33/lib"export TCL_LIBRARY="$TCL_LIBRARY:/home/ttcndujian/PROGRAM/ns-allinone-2.33/tcl8.4.18/library"然后,保存,退出。

(注意黑色部分可能与你具体的ns-allinone-2.33安装路径相关)。

示意图如下:图9:输入命令,准备添加环境变量图10:添加环境变量这样,一个完整的NS就安装好了。

重启终端,以便重新载入环境变量,使刚才的配置生效。

6、验证安装(1)在重启后的终端下输入ns,如果得到%,说明安装成功,如图:图11:验证NS2安装成功(2)安装xgraph:输入命令:sudo apt-get install xgraph,输入密码回车安装xgraph,如图所示:图10:安装xgraph7、运行例子先进入目录/home/ttcndujian/PROGRAM/ns-allinone-2.33/ns-2.33/tcl/ex,然后键入命令ns simple.tcl,并回车,如图所示:图11:准备运行例子图12:例子运行成功此时出现上面的网络模拟动画。

至此,NS就算是安装好了:)。

注意:安装过程中出现了如下错误***buffer overflow detected***:ns terminated=======Backtrace:=========这是gcc的版本问题,解决方法如下:a安装gcc-4.4输入:sudo apt-get intall gcc-4.4b.安装g++-4.4输入:sudo apt-get intall g++-4.4c.修改tcl8.4.18/unix文件夹下的文件Makefile.in将Makefile.in的270行:CC=@CC@修改为:CC=@CC@-V4.4;注意是大写的‘V’,这样gcc使用的参数版本为4.4。

d.重新安装ns2.33。

2、编写Tcl脚本(1)编写一个Tcl脚本,实现如图1的一个网络拓扑。

实现以下仿真:a.节点0与节点4之间用FTP协议实现连接;b.节点1与节点4之间用UDP的CBR应用;c.节点3与节点4之间用FTP协议实现连接。

图1(2)脚本编写#产生一个仿真的对象set ns[new Simulator]#针对不同的数据流定义不同的颜色,这是要给NAM用的$ns color1Blue$ns color2Red$ns color3Green#开启一个NAM trace fileset nf[open out.nam w]$ns namtrace-all$nf#开启一个trace file,用来记录封包传送的过程set nd[open out.tr w]$ns trace-all$nd#定义一个结束的程序proc finish{}{global ns nf nd$ns flush-traceclose$nfclose$nd#以背景执行的方式去执行NAMexec nam out.nam&exit0}#产生四个网络节点set n0[$ns node]set n1[$ns node]set n2[$ns node]set n3[$ns node]set n4[$ns node]#把节点连接起来$ns duplex-link$n0$n22Mb10ms DropTail$ns duplex-link$n1$n22Mb10ms DropTail$ns duplex-link$n2$n41.7Mb20ms DropTail$ns duplex-link$n3$n43Mb10ms DropTail#设定ns2到n4之间的Queue Size为10个封包大小$ns queue-limit$n2$n410#设定节点的位置,这是要给NAM用的$ns duplex-link-op$n0$n2orient right-down$ns duplex-link-op$n1$n2orient right-up$ns duplex-link-op$n2$n4orient right$ns duplex-link-op$n3$n4orient left-up#观测n2到n4之间queue的变化,这是要给NAM用的……具体参见SC11011042.tcl3、修改NS2核心模块(1)预设改变:修改队列的丢包策略,当接收队列中未丢包,数据包正常入队列,一旦出现队列丢包现象,则暂停接受数据包,一直到队列为空再接受。

相关文档
最新文档