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的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简单无线网络模拟实验报告

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仿真技术在计算机网络实验教学中的应用与研究

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仿真实验分析报告一引言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页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)预设改变:修改队列的丢包策略,当接收队列中未丢包,数据包正常入队列,一旦出现队列丢包现象,则暂停接受数据包,一直到队列为空再接受。