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 file
set 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-trace
close $nf
close $nd
#以背景执行的方式去执行NAM
exec 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-2的网络协议仿真
U p gn类派生 .命 名为mU p gn;同时在接收 端也 建立一个 dA et dA et A et gn,用十 接收并处理 收到的 分组 。该A et] gn gntA et 生 ,命 1  ̄派
名为mU p ik d Sn 。
23 . Ot连 接 d
() 1 实现类的映 射 用户 为了 址 自己编 写的c + + 类能在解 释器 中可见 。需要借 助 Tla 类的帮助 ,Tlas c ls cs c l 类可以实现将解释器中的对象与N 编译 cs S 类的映射 ,这样通过 创建一 个从T la  ̄ 承而来的静态 类 ,用 户 c ls . cs 就可以在O c Tl 脚本中直接使用c + + 类。 在Oc = , tq ̄建mU p gn l } dA et 实例需要 在编译层定义 一个连接 类的 对象 ,称之 为 “ U p gn l s .这个对象是从T ll s m d A et a ” Cs c a 继承而 Cs 来的 ,其代码如下:
saicasmUd Ag nCls p biT l asl tt l c s p c t as: u l cCls c
p b i: ul Байду номын сангаас c
N 是 一个用c + 写的面向对象仿 真器 ,由编 译和解释 两个 S +编 层次组 成。图l 说明了N 的整体架构 。编译层包括c + S + 类库 ,而解 释 层包 括对 应 的Oc类 .用户 以Oc解 释器 作 为前 台 使用 N 。 t l t l S Tl则提供 N 和O c cl c S Tl 的接 口,使对象 和变量 出现在 两种语 言中。 山于N - 是基于事件驱动的 ,调度器也就成为N - 的调度中心 , S2 S2 它可以跟踪仿真时间 .调度当前事件队列 中的仿真事件并交 由产生 该事件的对象处理。 N S仿真器用了六种T l , l: c 。 T lbet c I s c类 l T l c j .T l a . p O c Cs Tlo m n c m a d, E bd c T 1 I t a C m ed d c . n V r。N 中 的组 件 包括 节 点 s S (oe.链路(n) 代理( et nd) 1 k. i a n 和包(akt 。 g ) pce等 ) 仿真分两个层次: 一个基于Oc编程 , t l 用N S已有的 网络仿真元素实现仿真, 无需 对N 本身作 任何改动 ,只要编写T l S c脚本 便 可;另一个层 次是基于c+ +和O c t 的编 l 程, 用户可以利用Oc和N t l S的接 口,编写 c+ +程序 ,更新N S来实现新的功能 。下 面将着重介绍第 二层次的仿真 ,以在 N 中 s
基于NS2的无线自组网路由协议的研究与仿真
无线自组网 仿真工具NS2 无线自组网路由协议 路由仿真
无线自组网
无线自组网是一个多跳、临时、可自 由移动无中心网络。它不需要现有信息 基础网络设施的支持,可以在任何时候、 任何地点快速构建。
特点: ❖ 自组织 ❖ 动态拓扑 ❖ 多跳路由 ❖ 无中心且所有节点地位平等 ❖ 灵活性好
应用领域: ❖ 军事应用 ❖ 无线传感器网络 ❖ 个人通信 ❖ 移动会议 ❖ 应用于紧急和突发场合 ❖ 与蜂窝移动通信系统等现有移动通
信系统相结合
仿真工具NS2
NS2(Network Simulator version 2)是面向 对象的、 离散事件驱动的网络环境模拟器,主要用 于解决网络研究方面的问题。NS2提供了在无线或有 线网络上的TCP/IP、路由、队列管理、IP QoS等多 种协议的模拟。
NS2使用C++和OTcl(具有面向对象特性的Tcl脚 本程序设计语言)作为开发语言。
不同平台对NS2的支持情况
仿真流程
无线自组网路由协议
无线自组网的路由协议作为影响网络性能的一 个重要因素,是确保移动自组网络正确运行的关键。 对该领域进行深入而广泛的研究将为移动自组网的 应用提供重要科学依据。
分类:根据源端何时获得路由信息
பைடு நூலகம்
仿真的三种路由协议
❖ 动态源路由协议DSR ❖ 无线自组网按需平面距离矢量路由协议
第2章 NS2网络仿真实验
2.1.4 NS2的仿真元素
• 从网络拓扑仿真、协议仿真和通信量仿真等方面对NS2的 仿真元素进行简单的介绍: • (1)网络拓扑由链路和节点组成。NS2的链路包括一系 列的连接器(Connector),而它的节点包括一系列的分 类器(Classifier,如地址分类器等)。 • (2)在节点上,配置不同的代理可以实现相应的协议或 其它模型仿真。如NS2的TCP代理,发送代理有:TCP, TCP/Reno , TCP/Vegas , TCP/Sackl , TCP/FACK , TCP/FULLTCP 等 ; 接 收 代 理 有 : TCPSINK , TCPSINK/DELACK , TCPSINK/SACK1 , TCPSINK/SACKl /DELACK等。此外,还提供有UDP代 理及接收代理Null(负责通信量接收)、Loss Monitor( 通信量接收并维护一些接收数据的统计)。
2.1.3 NS2的功能模块(续)
• (8)动画演示Nam,是基于Tcl/Tk的动画演示工具,用 来把模拟的过程用可视化的方式呈现出来,模拟结束后会 产生out.man文件。 • (9)数据分析:gawk。awk是一种程序语言,它具有一 般程序语言常见的功能。因awk语言具有某些特点,使用 awk撰写程序比起使用其他语言更简洁便利且节省时间。 gawk是GNU所开发的awk,最初在1986年完成,之后不 断改进和更新,gawk包含awk的所有功能。
移动通信系统与原理实验-NS2
移动通信系统与原理实验-NS2
移动与通信系统实验——NS2仿真方法
移动通信网络实验,实验软件
一、构建实验环境
在window系统装虚拟机——VMware环境(晨光资源:VMware-worktation-full-7.1.4-385536)
创建LINU某系统环境——Fedora14实验软件——NS2(推荐直接安装nallinone-2.35)(晨光资源:移动通信原理与系统——NS2实验安装方法)(兴趣扩展)
课程资源:已经搭建好的Fedora14+n2.35环境(tet)2
移动通信网络实验,实验软件
NS2功能
有线网络
移动通信网络实验,实验软件
NS2功能
无线网络网络类型:MANET,SenorNetwork路由:
AODV,DSR,DSDV,MobileIP以及HMIPv6等MAC:802.11,802.15.4,Smac等传输层、多种数据流模拟
移动通信网络实验,实验软件
NS2组件
n:网络模拟器
执行tcl脚本,进行模拟,并将所有的模拟结果以trace文件的格式
输出。将n的结果可视化。Gawkgnuplot
nam:网络AniMator
模拟的流程tcl脚本
n-2
Trace文件Nam文件
nam
移动通信网络实验,实验软件
NS2体系结构
面向对象的设计支持重用容易维护方便扩展,如添加新协议
分裂对象模型
C++是高效的编译执行语言,功能模拟,性能较好Otcl解释执行的,进行场景配置。不必重新编译更灵活6
移动通信网络实验,实验软件
NS2系统结构--离散事件模拟
每一个事件都有一个预定的执行(虚拟的)时间,独立于真实执行时间。
基于NS-2的网络控制系统仿真研究及实现
N tok dC nrl ytm N S )a el stei lmett n po esb sn S一2 s uao.I u h e re o t s s( C s sw la h mpe nai rcs yuigN w oS e o i ltr nsc m
d sg e i n,we r ai ev r i g r t a l gmo e rNCS n e l i o v r rd fe e ta u c i n f o to e l ay n a e s mp i d lf z n o s a d r a —tme s l e ifr n i l n t s o n r l o f f o c s se y u i g d s r t y t msb sn ic e e—e e t rv n f s i n a d p o r mmi gf s i n a a o o st ++ i v n ie a h o n r g a d n a h o n l g u o C n NS一2 smu a o . i ltr F r e mo e h e to o to l o i m f r NCS s p e e td,w i h k e s t e c o e — l o y t m sa l u t r r ,t e t s fc n r l ag r h o h t s i r s n e h c e p h ls d o p s se tbe u d rt e a s mp i n o x si g i f r t n s h d l g i c n r l s se n c o n f t e lmie n t r n e h s u t f e i t n o mai c e u i n o to y t m o a c u t o h i t d e wo k o n o n c a n lc p ct n a i g s mp i g r t . L sl ,we p e e t h i l t n r s l . h n e a a i a d v r n a ln a e y y at y r s n e s mu ai e u t t o s KEYW ORDS:Newo k d c n r ls se ;Va i g r t a l g t r e o t y t ms o y r n a e s mp i ;Ne w r i l t n;I f r to c e u i g n t o k s mu ai o n o ma i n s h d ln
NS2简单无线网络模拟实验报告
HUNAN CITY UNIVERSITY
NS2与网络模拟实验报告
实验题目:简单无线网络模拟 __
专业: ____
班级学号_____ _
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)
用NS_2进行无线网络仿真
28
下面给出一个例子, 将对一个简单的无线场景进行模 拟, 该场景包括 2 个移动节点: node_ (0) 和 node_ (1) , 他 们在一个 500 m ×500 m 的区域内运动, 两节点间有一个 TCP 数据流。 211 设定属性
Ke yw o rds: N S 2; netw o rk sim u la tion; w ireless netw o rk; C+ +
近年来, 各种网络技术尤其是无线通信技术得到了快 速发展。为了满足新的通信需求, 研究人员开发了许多新 的协议和算法。在这些新的网络方案投入使用前, 要对其 进行验证和分析。而网络仿真技术便是一种有效的对实际 网络进行模拟与分析的方法, 在通信网络技术的研究中有 着重要的意义。可用于无线网络仿真的软件有M IL 3 公司 的 O PN ET 和免费软件 N S 2 等。
《现代电子技术》2004 年第 22 期总第 189 期
嵌入式与单片机
用 NS 2 进行无线网络仿真
王兆强, 葛万成, 皮坤宝
(同济大学 电信学院 上海 200092)
摘 要: 介绍了一款可用于无线网络仿真的免费软件 N S 2, 分析了该软件的成员及体系结构, 重点讨论如何用 N S 2 进行无线网络仿真, 并给出了一个无线仿真的实例。
NS-2移动代理网络仿真功能扩展设计和实现
Vol. 16 No. 1 Jan. 2004系 统 仿 真 学 报 JOURNAL OF SYSTEM SIMULATION• 85 •NS-2 移动代理网络仿真功能扩展设计和实现李建枫,糜正琨,成际镇(南京邮电学院通信工程系,南京 210003)摘要:在分析网络仿真工具 NS-2 特点的基础上,提出了移动代理模型的建立以及数据包、节点和代理扩展技术, 通过修改原有的数据结构和增加新的网络模块扩展 NS-2 的功能以实现移动代理网络 的仿真,并据此设计实现了移动代理网络模拟软件。利用该软件,可以有效地分析移动代理系统的 网络性能,为其设计和评估提供可靠的依据。 关键词:移动代理;网络性能分析;仿真软件;面向对象设计;NS-2 文章编号:1004-731X (2004) 01-0085-06 中图分类号:TP18 TP391.9 文献标识码:ADesign and Implementation of NS-2 Functional Extension to Mobile Agent Network EmulationLI Jian-feng,MI Zheng-kun,CHENG Ji-zhen(Department of Communication Engineering Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210003, China)Abstract: Following the analysis of the features of network simulation tool NS-2, the establishment of mobile agent model and the design techniques of packet, node and agent extension have been proposed. Through the modification of existing data structure and the addition of new network modules, NS-2 functionality has been extended to cope with the emulation of mobile agent networks. Based on these techniques, a mobile agent network simulation software is designed and implemented. Using this software, the network performance of mobile agent systems can be effectively analyzed, which will provide sound evidence for their design and evaluation. Keywords:mobile agent; network performance analysis; emulation software; object-oriented design; NS-2引 言1移动代理(Mobile agent)是近年来迅速发展的 IT 界热 点研究课题。它独特的自主性、智能性和移动性为分布式计 算和网络控制引入了一种全新的模型, 是下一代信息网络具 有挑战性优势和广阔应用前景的侯选技术。目前,人们正致 力于移动代理基本技术及其在信息检索、电子商务、网络管 理等方面应用的研究。 诚然,移动代理的技术优势已为业界所公认,但是其能 否在未来信息网络中实际使用, 在很大程度上将取决于它的 网络性能。正因为如此,性能分析已成为移动代理研究的一 项重要内容。目前移动代理性能研究主要采用基于模型的分 析方法[1][2],这些文献提出的分析模型都比较简化,且其着 眼点是代理本身的行为, 并不考虑代理在具体网络上运行的 性能。 为了有效地评估移动代理系统对于各种应用环境的适 用性,比较实际的方法是通过软件模拟来验证其网络性能。 因此, 开发一套相应的软件仿真工具对于该项前沿技术的应 用研究具有十分重要的意义。 为了使模拟软件能适应多种网络环境,通过成熟的通用网络仿真工具的扩展进行开发,应 是一种高效而又可靠的方法。 首选的通用仿真工具自然是学 术界广泛使用的 NS-2 模拟软件。 国际上,美国 MIT 首先将这种方法用于主动网络的仿 真模拟,通过对 NS-2 软件的扩展支持主动包(capsule)在 IP 网络上的运行 [3]。最近,英国萨里大学为了验证他们提出 的基于移动代理的分布式网络管理算法,也通过 NS-2 的扩 展对该算法进行了模拟分析[4]。然而均未公开仿真设计技 术,至今为止,也未见 NS-2 发布任何关于移动代理的扩展 模块。国内学术界近年来积极进行移动代理的研究,内容主 要集中在概念、模型、框架和编程系统、信息、协作、事务 以及标准化等方面,但是对于其网络性能的研究甚少。本文 借鉴上述文献的思路,设计实现了基于 NS-2 的移动代理网 络模拟软件,补足了国内研究移动代理的空缺环节。1 NS-2 技术特点NS-2 由美国 DARPA 和 NSF 项目资助开发, 是一个面 向对象的、离散的、事件驱动的网络仿真工具[5],可以仿真 多种 IP 网络,已实现许多网络组件(如 TCP 和 UDP) 、数 据源生成器(如 FTP、Telnet、Web、CBR 和 VBR) 、路由 器队列管理机制(如 Drop Tail、 RED 和 CBQ) 路由算法 、 (如 Dijkstra)以及 MAC 层协议。除此以外,NS-2 还支持多种 有线和无线通信网(包括卫星网)的仿真,能够对不同网络 层次、不同网络结构、不同网络组件进行仿真。收稿日期: 2003-06-09 修回日期: 2003-10-07 基金项目: 国家自然科学基金项目(60072047); 华为基金项目(2003外 05) 作 者 简 介 : 李 建 枫 (1979-), 男, 山东荣成人, 硕士生, 研究方向为移 动代理技术及其在电信网业务中的应用; 糜 正 琨 (1946-), 男, 浙江上 虞人, 教授, 博导, 研究方向为多媒体宽带通信网理论和技术; 成际 镇(1957-), 男, 江苏高邮人, 副教授, 硕导, 研究方向为 IP 宽带网络 技术。
9-网络仿真N&S2
动机:
学习通过仿真评估网络
性能的基础知识
提纲: 离散事件仿真基础 分析仿真输出 NS-2仿真
3-1
什么是仿真?
系统边界
外界系统输入 (环境)
被研究的系统 (拥有主管其行为的 确定性规则)
“real” life
观察者
程序边界
伪随机系统输入 (模拟环境)
计算机程序 仿真主管行为的 确定性规则 观察者
更新统计值
n
结束?
y
3-7
仿真:例子
处理有双处理系统的客户到达(间隔时间平均为:1/ l)请求(平均
的执行时间为1/m) 到达客户加入到最短CPU等待队列中
l
系统状态:每个队列的长度
系统事件: 任务加入 服务时间结束 定义收集的性能测量值
m1
m2
3-8
仿真:例子
l
m1 m2
3-31
第4步:创建连接
简单2个层次: transport and app transports: TCP, UDP, etc. sources, sinks 传输层协议实例依附于节点 applications: (agents)
ftp, telnet, etc.
应用层实例依附于传输层协议实例
3-10
仿真:例子
NS2仿真实例汇总
NS-2仿真模拟实例汇总
(以方路平的书为主)
1.附录1 简单有线网络实例(p105)
#Create a simulator object
set ns [new Simulator]
#Define different colors for data flows
$ns color 1 Blue
$ns color 2 Red
#Open the nam trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the trace file
close $nf
#Execute nam on the trace file
exec nam out.nam &
exit 0
}
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Create links between the nodes
$ns duplex-link $n0 $n2 1Mb 10ms DropTail
$ns duplex-link $n1 $n2 1Mb 10ms DropTail
$ns duplex-link $n3 $n2 1Mb 10ms SFQ
$ns duplex-link-op $n0 $n2 orient right-down
NS2网络模拟器的原理和应用
NS2网络模拟器的原理和应用
1. NS2网络模拟器简介
NS2(Network Simulator 2)是一个开源的网络模拟器,可以用于从高性能网
络到无线移动网络的广泛应用。NS2是一个离散事件模拟器,可以模拟真实网络
环境中的各种网络协议和网络应用。
2. NS2网络模拟器的原理
NS2的核心是基于离散事件的模拟器,它采用事件驱动模型来模拟网络中的各
种事件。NS2的模拟对象包括路由器、主机、链路等,每个对象都有自己的状态
和行为。
NS2的模拟器通过以下步骤进行模拟:
•创建拓扑结构:在NS2中,需要事先定义网络的拓扑结构,即网络中的节点和连接关系。可以通过使用OTcl(Object TCL)脚本来定义网络拓扑。
•设置通信行为:在NS2中,可以设置节点之间的通信行为,包括传输协议、数据包大小、传输速率等等。可以通过OTcl脚本来设置节点的通信属性。
•生成事件:NS2中的事件包括节点的发送、接收、路由更新等等。
可以通过OTcl脚本生成相应的事件。
•事件调度:NS2会根据事件发生的时间顺序来调度事件的处理。在每个时间点,NS2会根据当前时间来决定下一个事件处理的顺序。
•事件处理:根据事件类型,NS2会调用相应的函数来处理事件。比如,当一个节点发送数据包时,NS2会调用节点的发送函数来处理此事件。
3. NS2网络模拟器的应用
NS2的应用非常广泛,主要应用于以下几个方面:
3.1 网络协议研究
NS2可以用于研究和评估各种网络协议的性能。可以通过在网络拓扑中设置不
同的协议参数和网络条件,来模拟和评估协议的性能指标,例如吞吐量、延迟、丢包率等。
基于NS-2的IP网络仿真
1.引言
随着IP 网络的迅速发展而不断提出更多新的协议和算法,以及研究如何利用和整合现有的网络资源使网络达到最高效能,对于网络技术和网络性能的研究成了目前网络研究的热点领域。进行网络技术研究的方法主要有理论分析、试验测试和网络仿真等,其中网络仿真以其灵活性、高效性和低费用等优点而成为网络技术研究的重要手段。
本文要介绍的是目前应用较为广泛的网络仿真软件NS-2[1]
(Netwo rk Sim ulator Version 2),它是在美国DARPA 的项目VINT (Virtual InterNet Testbed)支持下,由伯克利大学开发而成的源代码开放的免费软件。NS-2有C ++和OT cl 两种语言编写而成,可以运行在装有C++编译器的通用操作系统(如Unix 、Linux 或Wind ows 等)。它是一种易扩展、易配置、基于离散事件驱动、面向对象的网络仿真软件,既能进行现有网络元素的仿真分析,又能开发新协议、新方案以及真实网络的故障诊断。它支持大型、多协议、多种类型数据流的网络仿真,支持多种IP 网络类型的仿真,实现了对许多网络协议(如T CP 、UDP 等)及数据源(如FT P 、WWW 、Telnet 、Web 和C BR 等)的仿真,也实现了M ulticast 和一些应用于局域网仿真的在M AC 层的协议,仿真了路由队列的缓冲管理机制,如Drop T ail,RED 和CBQ 等,实现了Dijkstra 和其它的路由算法。NS-2中许多协议代码都和实际网络中的应用代码十分相似,能近乎真实的仿真IP 网络的多种情况和行为。
计算机网络ns2仿真实验分析(RED、丢包率、端到端延迟、吞吐量)附源码
(4)to node:分组传送的目的节点的 id。
(5)pkt type:分组类型
(6)pkt size:分组大小。
(7)flags:标志项
(8)fid:流标识符。
(9)src addr:源地址,格式为 node.port,其中 node 代表分组发送节点的 id,port 表示发送
分组的端口号。
(1)RED:随机早期探测(Random Early Detect,RED)。RED 属于主动队列管理(Active Queue Management, AQW),是目前常见的 TCP 上防止拥塞的手段。它通过以一定概率丢失或标记 报文来通知端系统网络的拥塞情况。RED 使用平均队列长度度量网络的拥塞程度,然后以线 性方式将拥塞信息反馈给端系统。RED 使用最小阈值,最大阈值和最大概率等几个参数。
目前 NS2 可以用于模拟各种不同的通信网络,它功能强大,模块丰富,已经实现的主 要模块有:网络传输协议,如 TCP 和 UDP;业务源流量产生器,如 FTP、Telnet、CBR、Web 和 VBR;路由队列管理机制,如 Droptail、RED 和 CBQ;路由算法;以及无线网络 WLAN、 移动 IP 和卫星通信网络等模块。也为进行局域网的模拟实现了多播协议以及一些 MAC 子层 协议。 2. 基本概念
timeArr[i]=time; lossrate[i]=(float)(dropNum/totalNum); i++; } if(fid == 2 && event== "d") dropNum ++; } END{ printf("#number of packet sent:%d,lost:%d\n",totalNum,dropNum); printf("#lost rate of packets:%f\n",dropNum/totalNum); for(j=0;j<i;j++) printf("%f\t%f\n",timeArr[j],lossrate[j]); }
基于NS-2的无线自组织网络仿真实验设计
v i r on m e n t .
Ke y wo r d s : NS 一 2; Ne t wo r k S i mu l a t i o n; Ad - HO C Ne t wo r k; Ne wo t r k P r o t o c o l
0 引言
等场景是高校无法实现的实验环境。
摘 要: 随着 通信 技术 的快速发 展 , 以移动 通信 与互 联 网为代 表 的无 线 自组织 网络成 为信 息技 术发 展 的
重要方向之一, 而该方 向在实验环节中通 常涉及到复杂的网络硬件设备和抽象的网络协议, 移动通信的实验 环 境 也难 以在 实验 室解 决 , 将 NS 一 2仿 真 技 术应 用 于 自组 织 无 线 网络 实验 环节 , 通过模 拟无 线 网络配 置 、 仿
问题 :
( 3 )无 线 自组 织 网络 的实验 数据 可能 来 自于 几
十个甚至上百个节点 , 采用移动通信方式 , 学生在实
NS2网络模拟(精)
The application of wireless Ad-hoc network
[Hospital mobile server]
Lin Qiu
Department of Mathematics&Computing
2009University of South Queensland
Queensland,Australia
Supervised by Dr.ZhongWei,Zhang
dan_n2003@
ABSTRACT
Wireless ad-hoc networks have attracted many applications
in part decade due to its feature of being wireless and with-outfixed nodes as router or gateway.This type of network has an important potential of being token in the healthcare
or hospitals,where the physical connectivities is hard,or not economical.In this paper,we simulate a wireless ad-hoc network by using NS2,inspect its performance under many
different settings and models.
General Terms
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.gz
cd 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"
export
LD_LIBRARY_PATH="$LD_LIBRARY_PAHT:/home/wangtao/worksapce/ns-allinone-2.33/otcl-1.13,/ home/wangtao/worksapce/ns-allinone-2.33/lib"
export
TCL_LIBRARY="$TCL_LIBRARY:/home/wangtao/worksapce/ns-allinone-2.33/tcl8.4.18/library"
保存并退出,重新进入终端
安装xgraph
sudo 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; //wangtao
halfwin = windowd() / 3;
第二处:
……
} else {
int temp;
//temp = (int)(window() / 2);//wangtao
temp = (int)(window() / 3);
halfwin = (double) temp;
……
第三处:
……
switch (how) {
case 0:
/* timeouts */
//ssthresh_ = int( window() / 2 );//wangtao
ssthresh_ = int( window() / 3 );
if (ssthresh_ < 2)
ssthresh_ = 2;
cwnd_ = int(wnd_restart_);
break;
case 1:
……
第四处
……
case 4:
/* Tahoe dup acks */
//ssthresh_ = int( window() / 2 );//wangtao
ssthresh_ = int( window() / 3 );
if (ssthresh_ < 2)
ssthresh_ = 2;
cwnd_ = 1;
break;
default:
abort();
……
3.编写tcl代码,实现一个简单的3节点,2条链路的网络网络如下图,具体代码见附件中的源代码。
实验演示:
首先,我们先来看看在不修改代码时网络的模拟结果:运行时间为50秒的结果
运行时间为500秒的结果
然后我们来观察一下修改过后的运行结果:运行时间为50秒的结果
运行时间为500秒的结果
我们再将窗口阈值的一半改为3/4,修改内容类似wt_tcp1.tcl,具体代码见wt_tcp2.tcl 我们观察500秒的运行结果:
我们观察坐标中曲线和x轴所包围的面积即网络的带宽利用情况,从这四幅图中的比较我们可以得出,1/2比1/3能更好的利用带宽,3/4比1/2能更好的利用带宽,因此该值越大越有利于减少网络不必要的浪费。
实验总结:
NS2是一个功能强大的且方便的仿真工具,我们能在其上面完成很多平时在学习网络课程中的一些自己的想法,通过对C++代码的修改,可以自由的实现自己想要的协议或者算法,实验结果也是十分的清晰明白,通过观察实验结果来验证自己的想法是否可行,是否更好。通过这样的模拟实验后会更加深入的理解课程上学习到的知识,并融会贯通,收获很大。