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仿真的IP网络性能分析与研究

关键 词 : S N 2仿 真 ; 能 分 析 ; 扑 ; 能 指 标 性 拓 性
中 图 分 类 号 : P 0 .1 T 33 0 文 献标 识 码 : A 文 章 编 号 :1 7 — 2 6 2 1 ) 0 1 一 4 6 4 6 3 {0 2 1 13 o M-
Pe f r a c n l ss a e e r h f口 n t r b s d o 2 r o m n e a a y i nd r s a c o e wo k a e n NS
Z HAO J— o HOU i ,Z b Yu,Z HOU n -in Ho gqo g
d l t r p ce s rt a dS n T eepr e t sl o a df rn t ooyt e aedf rn e et O e y ie, aktos ae n o . h x e m na r ut s wt t ieeto l p s v ieet f cs HI a jt l O i le s h h p g y h f P
是 实 现 以上 两 个 方 面 的重 要 手 段 。
一
络 仿 真 器 . 核 心 部 分 是 一个 离 散 事 件 模 拟 引 擎 。N 2仿 真 其 S
器具有强 大的数据处 理功能 , 扩 展性强 , 行效率 高 , 可 执 且
仿 真 结 果 的 可 靠 性 高 。N 2支 持 T P U P等 网 络 协 议 , 以 S C 、D 可
随 着 网络 的不 断 发 展 。 络 的 研 究 也 越 来 越 受 到 人 们 的 网 关 注 , 方 面 需 要 不 断 研 究 新 的 网 络 协 议 和 各 种 算 法 , 足 一 满 现 有 网 络 存 在 的 不 足 , 升 性 能 , 网络 发 展 做 出 前 瞻 性 的 提 为 研 究 : 一方面也要考 虑如何整合 、 用现有 的网络资源 . 另 利 完 善 网 络 结 构 。 现 有 网络 达 到 最 高 效 能 。I 使 P网 络 性 能 的分 析
基于NS2的AdHoc网络路由仿真研究的开题报告

基于NS2的AdHoc网络路由仿真研究的开题报告一、研究背景及意义移动AdHoc网络是指由若干个移动设备组成的临时网络,这些设备采用无线通信技术进行通信。
移动AdHoc网络具有自组织、快速部署等优势,可以在没有固定网络设施的情况下提供灵活的通信服务,广泛应用于军事、应急、野外活动等领域。
路由协议是移动AdHoc网络的关键技术之一,对网络性能和可靠性影响很大。
因此,对AdHoc网络路由协议进行仿真研究,是提高移动AdHoc网络性能和可靠性的关键。
NS2是一个广泛应用的网络仿真工具,可以用于AdHoc网络的仿真研究。
本文将基于NS2,从AdHoc网络路由角度出发,对AdHoc网络的性能和可靠性进行深入研究,为AdHoc网络的优化设计提供理论基础。
二、研究内容和方法1.研究内容本研究将从以下几个方面进行研究:(1)AdHoc网络路由协议综述:综合比较各种AdHoc网络路由协议的优缺点及适用场景。
(2)NS2的安装和配置:学习NS2的基本使用和开发环境的搭建。
(3)AdHoc网络性能分析:设计不同路由协议的仿真模拟实验,比较不同路由协议在网络性能的影响,如网络拓扑、节点密度、流量负载等。
(4)AdHoc网络可靠性分析:研究不同路由协议在网络可靠性方面的影响,如路由表更新、链路稳定性、节点能耗等。
(5)实验结果分析:对仿真实验数据进行处理和分析,提出优化方案并进行验证。
2.研究方法本研究主要采用以下几种研究方法:(1)文献综述法:收集和整理AdHoc网络路由协议的相关文献,对不同路由协议进行比较和分析,确定本研究的研究方向。
(2)仿真实验法:在NS2平台上设计不同路由协议的仿真实验,并根据实验数据进行性能和可靠性分析,提出优化方案。
(3)数学建模法:对AdHoc网络路由协议的性能和可靠性进行数学建模,验证仿真实验的结果,提高研究的可信度和准确性。
三、研究进度安排1.第一阶段:文献综述和NS2的学习与掌握(3个月)(1)收集和整理AdHoc网络路由协议的相关文献,对不同路由协议进行比较和分析。
自相似流量的研究及NS2仿真的开题报告

自相似流量的研究及NS2仿真的开题报告一、选题背景随着互联网的发展,网络流量的特征也越来越复杂。
传统的流量模型如泊松流、平稳流等在描述新型流量时已经失去了精度。
自相似流是一种具有均匀和局部非均匀两种特征的流量,这种流量在现实生活和网络中存在广泛的应用,如视频和音频流媒体、网页浏览等。
学术界和工业界对自相似流量的研究和仿真越来越重视。
二、选题目的和意义本文旨在研究自相似流量的特征和行为,探究其对网络性能的影响,并给出NS2仿真实现方案。
本研究的意义在于:1. 对网络流量的深入研究,有利于更好地了解网络行为和性能,为网络优化提供依据。
2. 自相似流量的研究具有重要的理论和实际意义。
通过研究自相似流量的特征和模型,可以为网络设计和优化提供有效的方案。
3. NS2仿真是网络性能研究中常用的工具,本文对自相似流量进行NS2仿真,有助于为实际网络应用提供支持和参考。
三、论文结构和内容本文主要分为以下几个部分:1. 研究背景和选题意义2. 自相似流的特征和模型3. 自相似流对网络性能的影响4. NS2仿真实现方案5. 实验结果和分析6. 结论和展望四、预期成果本文预期完成以下工作:1. 深入研究自相似流量的特征和模型,了解其在网络中的行为。
2. 探究自相似流量对网络性能的影响,包括网络吞吐量、延迟等方面。
3. 给出NS2仿真实现方案,实现自相似流量的仿真。
4. 对实验结果进行分析和总结,探究自相似流量对网络性能的实际影响。
五、研究方法本文主要采用以下方法进行研究:1. 综合文献资料,了解自相似流量的概念、特征和模型,探究其在网络中的行为和影响。
2. 基于文献资料,设计实验方案,使用NS2仿真工具对自相似流量进行仿真。
3. 对仿真结果进行分析和总结,探究自相似流量对网络性能的实际影响。
六、难点和挑战自相似流量的特征和模型的复杂性是本研究的主要难点。
探究自相似流量的行为对于网络性能的影响也是一个挑战。
此外,NS2仿真的实现也需要一定的技术和经验。
基于NS2的网络仿真实验教学研究-最新教育文档

基于NS2的网络仿真实验教学研究网络的发展日新月异,作为电气信息类和计算机类专业的核心专业课――计算机网络,需要教师在教学的过程中不断更新和追踪最新网络技术,以更加适应“计算机网络”教学的要求。
但目前计算机网络教学中存在两个方面的突出问题,首先,缺少必要的实验设备。
像路由器、网关等实验设备比较昂贵,一般的院校无法为学生配备,只能在教学的过程中安排较多的演示,学生无法更好地通过真正的实验环境亲自动手来理解和掌握网络通信原理、锻炼网络工程应用能力[1]。
其次,网络技术和产品的更新换代速度非常快,像近年来无线网络技术飞速发展,对于想学习和研究无线网络的学生而言,再依靠原有局域网环境已无法验证无线网络协议的正确性以及对无线网络性能进行直观、可靠的测试。
因此,尝试将网络仿真软件NS2(Network Simulator Version 2)运用到计算机网络课程教学中,利用NS2,特别是Nam 工具的动画演示可以清晰地向学生演示网络协议的运行过程。
通过NS2进行教学,学生可以直观的看到网络协议的行为,了解各种环境或因素对网络的影响,将抽象的网络概念形象化,把枯燥的网络原理具体化。
1NS2原理和结构NS2是由加州大学伯克利分校(University of California at Berkeley)开发的一种面向对象的、离散事件驱动的网络环境模拟器。
NS2是一款源代码开放且免费的模拟软件,是用于教学、网络研究与分析等方面的网络模拟工具,它内含离散事件模拟引擎,构件库丰富,可以构建并仿真分析整个协议栈的运行情况,也可使用自带的Nam 动画演示程序来观察网络的运行效果,它集成了多种网络协议(如TCP、UDP),业务类型(如FTP、Telnet、Web、CBR等),路由排队机制(如Droptail、RED),路由算法(如Dijkstra算法)可以对固定、无线、卫星以及混合等多种网络进行仿真,实现了绝大多数常见的网络协议以及链路层的模型,利用这些类的实例可以搭建起整个网络的模型。
仿真软件NS-2的分析

技 与
经 上 图 是作 者 在 运 用 N 2 具 时 采 取 的 分 析 步 骤 。在 使 用 济 S 工
兰 兰垒 !兰
至 旦
维普资讯
N -2时 一般有下面三个过程 : S 1 )建立网络模型 :描述整个 网络的拓扑结构 带宽 ,时延 等消息 ;
建立节点 . s 中 . 在N 一2 每个节点都可 以代表终端或者是路
由器 stn Ssnd ] stn Ssnd] e O[ o e e 1[n oe。 n
的 比如一些 比较底层的工作 :事 件的处理 ,封包的传送 等. 这需要较 高的处理速度 . 而且一旦 完成就很少修 改, 所 以c +是最佳 的选择j另外 ,我们在仿真的时候需要设置 + 不 同的网络 环境 、进而动态改变参数 ,这些选择 T L C 这种 直 白性的语言为佳 。同时 N 一 采用tl 来连接这两种语 s2 cc l 言之 间的变量。N -2 S 使用 MT I发展的 O c O j tT 1作 T I( be c) c 为描述 配置、执行仿真的 言 Oc; T l tl是 c 的物件导向 延伸版本。N 2 S 的组成结 构如 图 1 。
通过仿真 ,我们可 以从每
种可能的方案中筛选 出自己需要 的
并加 以改进 ,其次 仿真环境易于修 改。这 样 我们可 以人为 地 区性将某些特定的参 数和算法对仿真的影响降低 。
目前 有相 当多的网络仿真软件 ,最著 名的仿真软件 O N T PE
是美 国 MI 公 司 的 产 品 其 支 援 度十 分 广 泛 ,几 乎包 含 所 有 现 L 3 行 的 网络 标准 但 却 要 价 百 万 元 以 上 F ¥ 了其 在 研 究 领 域 的 E
基才NS2仿真的IP网络性能分析与研究

基才NS2仿真的IP网络性能分析与研究赵吉波;周宇;周红琼【期刊名称】《电子设计工程》【年(卷),期】2012(020)004【摘要】In this paper, network simulation method is mainly adopted. In order to simulate IP network operation, NS2 simulation software is applied. Four typical network topology structures: Bus, Star, Ring, mesh are achieved by programming. We select some key performance indicators of network transmission as experimental collection objects such as packet delay, delay jitter, packet loss rate and so on. The experimental results show that different topology types have different effects on IP network performance.%采用网络模拟仿真方法,选用NS2仿真软件模拟IP网络运行。
编程实现四种典型的网络拓扑结构:总线型、星型、环型、网型,选取网络传输中的数据包延时、延时抖动、丢包率以及吞吐量等关键性能指标为实验采集对象。
通过大量的仿真实验数据分析不同拓扑类型对IP网络性能产生的不同影响。
【总页数】5页(P113-116,119)【作者】赵吉波;周宇;周红琼【作者单位】宁波大学信息学院,浙江宁波315211;宁波大学信息学院,浙江宁波315211;宁波大学信息学院,浙江宁波315211【正文语种】中文【中图分类】TP303.01【相关文献】1.NS2平台的TCP/IP网络拥塞控制算法仿真 [J], 娄久;李秀坤2.NS2仿真典型Ad Hoc网络协议及性能分析 [J], 陈爱霞;杜友福;陈中举3.用网络仿真软件NS2进行IP网络的仿真 [J], 王宇;赵千川4.NS2仿真模型的Ad Hoc典型路由协议的性能分析 [J], 李振宇5.NS2仿真模型的Ad Hoc典型路由协议的性能分析 [J], 李振宇;因版权原因,仅展示原文概要,查看原文内容请购买。
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脚本文件中与无线网络相关的代码。
NS-2的仿真模拟技术分析

第 31 卷 Vol.31第 15 期 № 15计 算 机 工 程 Computer Engineering文章编号:1000—3428(2005)15—0110—03 文献标识码:A2005 年 8 月 August 2005中图分类号:TP393·网络与通信·NS-2 的仿真模拟技术分析杨玉华,刘培宁,刘际炜,陈涵生(华东计算技术研究所,上海 200233) 摘 要:网络仿真是研究通信网络技术的有效工具。
仿真模拟功能提供了实际网络和仿真器交互的能力。
该文介绍了 NS-2 的结构及网络 仿真的设计流程,重点分析了网络仿真 NS-2 中仿真模拟功能的设计和实现。
关键词:仿真;模拟;网络仿真;代理;网络对象Analysis of Network Emulation Technology in NS-2 SimulatorYANG Yuhua, LIU Peining, LIU Jiwei, CHEN Hansheng(East China Institute of Computer Technology, Shanghai 200233) 【Abstract】Network simulation is one of the efficient analysis tools to study the technology of communication networks. Employing an emulation capability in network simulation provides the ability for real-world traffic to interact with a simulation. This paper firstly introduces the architecture of NS-2 simulator, and describes the design of simulation, emphatically analyzes the design and implementation of the emulation facility in the NS-2 simulator. 【Key words】Simulation; Emulation; Network simulation(NS); Agent; Network object网络仿真(Network Simulation, NS)是近几年来被提出的 一个新概念。
基于NS2的DV算法仿真及结果分析

基于 NS 2 的 DV 算法仿真及结果分析
黄镇建
( 韩山师范学院物理与电子工程系, 潮州 521000)
摘 要: 利用 NS2 网络仿真器对路由协议进行仿真是一种既有效又经济的办法。介绍单播动 态路由体系结构, 对 距离 向 量 路由 协 议 ( DV) 进行 了 仿 真。仿 真 实 验表 明 DV 算 法下 丢 包 和 “跳 数 ”最 短 等 现 象 客 观 存 在 。
( 1) 表示一开始的时候, rtProtoDV 包在网络上传 输以交换节点间的路由信息。( 2) 和( 3) 表示从 0.2 秒开始 n0 经由 n1、n2 传 CBR 流给 n3。( 4) ( 5) ( 6) 表 示 1.0 秒时,n1 与 n2 线路断开, 发生丢包失现象, 结 点间通过rtProtoDV 包传送信息, 动态路由重新计算 路径, n0 经 n6、n5、n4 传送数据包给 n3。( 8) ( 9) ( 10) ( 11) 表示 2.0 秒时 n1 与 n2 线路恢复连接, 动态路由 协议通过 rtProtoDV 包传送信息重新计算路由 , n0 按 照 0.2 秒时的路径传送 CBR 流。从上述分析可知, NAM 动画仿真效果和 Trace 文件记录的结果是一致 的。
3 仿真结果分析
为 了 更 好 地 观 察 DV 路 由 算 法 下 网 络 的 通 畅 性 以 及 数 据 包 的 发 送 、接 收 、丢 弃 等 现 象 , 下 面 我 们 对 NAM 动画结果、Trace 文件进行分析, 以便更直观地 得出实验结果。
在仿真过程中,一共截取了 4 个帧(如图 2、3、4、5 所示)。图 2 表示从 0.2 秒开始 n0 向 n3 发送恒定 CBR 流。图 3 表示 1.0 秒时,由于 n1 到 n2 线路中断,数据 包丢失, DV 路由协议重新计算路由。图 4 则表示路由 表更新, n0 以新的路由向 n3 发送 CBR 流。图 5 表示 2.0 秒 时 , n1 到 n2 线 路 得 到 恢 复,n0 重 新 采 用 1.0 秒 时的路由发送 CBR 流。
NS2仿真MM1K队列

global ns tf
$ns flush-trace
close $tf
exit 0
}
proc sendpacket {} {
global ns src InterArrivalTime pktSize
set time [$ns now]
$ns at [expr $time + [$InterArrivalTime value]] "sendpacket"
{
printf("%f %f\n", packet_id, curlen[packet_id]);
}
}
(文件avglen.awk得到平均队列长度)
BEGIN{
ave_lengthofQueue = 0;
lengthofQueue = 0;
lines = 0;
}
{
lines++;
lengthofQueue = lengthofQueue+$5;
$ns at 500.0 "finish"
$ns run
Gawk代码:
(文件curlen.awk得到瞬间队列长度)
BEGIN{
highest_packet_id = 0;
num = 0;
}
{
packet_id = $6;
len = $5;
if(highest_packet_id==packet_id)
{
curlen[highest_packet_id] += len;
num++;
}
if(highest_packet_id<packet_id)
基于NS2的水下传感器网络模拟仿真技术研究的开题报告

基于NS2的水下传感器网络模拟仿真技术研究的开题报告一、研究背景水下传感器网络(Underwater Sensor Networks,简称USN)是指由大量水下传感器节点组成的网络系统,用于实现水下物体的感知、数据处理、通信和控制等功能。
目前,USN已经在海洋科学研究、深海勘探、海洋环境监测、渔业资源管理以及水下安全监控等领域得到广泛应用。
USN的特殊环境和复杂的拓扑结构对网络的设计、性能评估和系统优化提出了挑战。
因此,对USN的模拟仿真技术进行研究显得尤为重要。
NS2是一款开源、广泛应用的网络仿真平台,可以方便地对各种网络协议和系统进行模拟和评估。
基于NS2的USN模拟仿真技术研究可以为USN的设计、优化和实现提供可靠的数据支持。
二、研究目的本课题旨在:1. 研究USN的特殊性质及其对网络仿真的影响;2. 基于NS2平台,开发适用于USN的仿真模型和仿真工具;3. 对USN的各项性能指标(如能量消耗、网络生命周期、传输延迟等)进行模拟仿真分析,提出性能优化方案。
三、研究内容和方法1. USN模拟仿真基础理论研究分析USN的特殊性质和网络拓扑结构,研究基于NS2平台进行USN 仿真的基本理论和方法。
2. USN仿真模型和仿真工具开发设计和开发基于NS2平台的USN仿真模型,包括节点部署、传输协议、路由协议等,开发适用于USN的仿真工具。
3. USN性能仿真实验利用开发的仿真模型和工具,测试USN的各项性能指标,如能耗、网络寿命、传输延迟等指标。
分析各种参数对网络性能的影响,提出性能优化方案。
四、研究意义本课题研究的是基于NS2的USN模拟仿真技术,对于研究USN的性能、优化和安全等方面有一定的参考价值。
具体意义如下:1. 为USN的设计和实现提供可靠的仿真数据支持;2. 为USN性能优化提供基础和参考;3. 为USN相关领域的科学研究和应用提供技术支撑。
五、进度安排阶段 | 工作内容----| ----第一阶段 | 研究USN的特殊性质及其对网络仿真的影响,研究基于NS2平台进行USN仿真的基本理论和方法第二阶段 | 设计和开发基于NS2平台的USN仿真模型,开发适用于USN的仿真工具第三阶段| 利用开发的仿真模型和工具,测试USN的各项性能指标,如能耗、网络寿命、传输延迟等指标第四阶段 | 分析各项仿真结果,提出性能优化方案第五阶段 | 撰写毕业论文六、预期成果1. 基于NS2平台的USN仿真模型和仿真工具;2. USN性能仿真实验的数据和分析结果;3. 学术论文或专利申请。
计算机网络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的无线Ad Hoc网络路由协议仿真

包 , 点 移 动 速 度 最 大 为 4 /, 机 种 子 为 0 , 真 时 节 m s随 .仿 0
间 为 2 0 0s
4 T a e文 件 分 析 rc
rae的 功 能 是 详 细 记 录 模 拟 的 过 程 一 次 场 景 模 rc r 拟 结 束 之 后 . 生 成 一 个 后 缀 名 为 . 的 Tae 件 。对 会 t r r 文 c
ra e文 件 的 分 析 是 从 t c rc r r e中提 取 相 关 信 息 的 过 程 . a
( ) 动 场 景生 成 器具 体 使 用命 令 格 式 为 : 1运
.
/e d s - < > 一 < o e > 一 < a s i > 一 < x stet v 1 n nd s P p ue t me M ma
5 0 0. 6 O 0. 7 0 0. 8 .0 O 9 0 O 1 0 00 l1 0 0
l 0 20
99 50 99 80 99 69 9 983 9 985 9 964 9 973
9 978
99 5 3 99 5 4 99勋 99 5 2 99 1 7 99 55 99 5 6
P 坤
99. 9 88 8 99. 9 72 5 99. 5鹕 6 99 .86 2 g 99 .6围 7
霉 £ 嘞 ‘
0. 8 5 01 82 O. 75 l 01 5 0. 2201 0 3 0 .03 ∞ 70 O .O1 2围 4
3 Ad Ho e网 络 路 由 协 议 度 量
A . b ”o tr e vt:最 后通 过 W . GT c r u. >rc . t r C t包分组 总 时延不 能直接 获取 . 这 个 提 取 过 程 , 目前 较 常 用 的 是 gw a k数 据 处 理 工 具 。
运用关系数据库分析NS-2的仿真结果

运用数据库分析无线自组织网络的NS-2仿真数据1易平1,2,周雍恺1,蔡继文1,田野1,柳宁11网络信息安全教育部工程研究中心1上海交通大学 信息安全工程学院,上海 2002402儿童发展与学习科学教育部重点实验室,南京210096摘 要:网络仿真工具NS2是当今学术界十分流行的一款开源的网络模拟软件,但目前对其仿真运行数据的分析仍然采用文本数据文件输出,手工或自己编程序分析。
工作量大,难于处理。
本文针对上述问题,本文对此提出了一种灵活开放的NS与关系数据库的连接架构,将数据库连接NS2输出,设计了仿真数据的关系模型,直接将仿真运行数据导入数据库。
通过数据库进行分析,能够体现数据之间的联系,大大节省分析的工作量,并且能够对仿真结果数据进行多方面、多层次的深入分析。
关键词:NS2 关系数据库 无线自组织网络中图法分类号:TP393文献标识码: ADatabase Analysis of NS-2’s ad hoc network simulation dataZHOU Yong-kai1, YI Ping1,2, CAI Ji-wen1, TIAN Ye1, LIU Ning11Network Information Security Research Center of the Ministry of Education1School of Information Security Engineering, Shanghai Jiao Tong University, Shanghai, 200030, China2Key Laboratory of Child Development and Learning Science of Ministry of Education,2Southeast University, Nanjing 210096, ChinaABSTRACT:NS‐2 is an open source network simulation software which is widely used in research area. But most of the researchers still analyze NS‐2’s simulation data manually or by writing some awk scripts, which is usually of heavy workload and hard to deal with the huge amount of data. This paper introduces a flexible and open architecture to connect NS‐2 with relational database. NS users could design their own relational model and directly inject the simulation data into database. When analyzing through database, because the relations between the data are well embodied, the process of analyzing could be time‐saving, and multi‐level, multi‐depth analysis can be archived.KEY WORDS: NS2, relation database, wireless ad hoc networks1国家自然科学基金“复杂通信网络的自组织特征及其模型研究”(基金项目号60702047);国家高科技研究计划863资助项目“无线网状网络WMN安全关键技术研究”(基金项目号2006AA01Z436),“无线自组网实时入侵检测与主动防护机制研究”(基金项目号2007AA01Z452);“适应结构化情境与动态拓扑网络的网构软件Agent关键技术研究”(基金项目号2009AA01Z118);国家大学生创新活动计划项目”基于NS2的无线Mesh网络仿真实验床的设计与实现”(项目号IAP2023);0 引言NS2是当今学术界十分流行的一款开源的网络模拟软件,尤其是CMU对其加入了无线模块的支持后,无线ad hoc 的网络模拟基本上都是基于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网络仿真实验

移动自组织网络实验报告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 仿真练习报告实验名称:随机数产生器学院:信息与电子工程学院专业:通信工程班级:姓名:学号:指导老师:目录背景知识 (1)1. 了解随机数产生器 (2)1.1 种子(Seed)和分布(Distribution) (2)1.2 设置种子 (2)1.3 设置分布 (2)2. 测试随机数产生器 (3)2.1 代码 (3)2.2 运行结果 (4)3. 一个在网络仿真中应用到随机数产生器的完整实例 (4)3.1仿真的网络结构图 (4)3.2 效果评比指标:吞吐量(Throughput) (5)3.3 TCL程序代码 (5)3.4分析awk程序代码 (6)3.5执行方法 (7)4. 参数变化.............................................................................................4.1 种子数量变化 (7)4.2变量分布时 (9)4.3 FTP数据流数目变化 (11)5.参考资料 (13)实验目的:了解如何在网络仿真过程中应用随机数产生器。
背景知识:随机数的使用在网络仿真实验的过程中非常重要,凡是网络节点在一个仿真中的位置,或者是应用程序在何时开始传送或结束数据传输,都会用到随机数产生器。
因此,在本实验中,我们将学会如何使用NS2的随机数产生器及其应用。
1.了解随机数产生器1.1种子(Seed)和分布(Distribution)随机数产生器所产生的数值是由种子和分布所控制的,不同的种子或者是分布就会产生不同的随机数。
当一个种子和分布决定之后,随机数产生器会产生一出一个由一长串不同数字所组成的表格,当需要一个随机数时,随机数产生器就会去选取这个表格中的一个数字,当需要另一个随机数时,随机数产生器就会去选取这个表格中第二个数字,依此类推。
所以当使用种子和分布相同时,得到的随机数就会相同;若不同时,得到的随机数就会不同。
毕业论文无线网络中多媒体信息传输的NS2仿真

摘要无线网络中多媒体信息传输的NS2仿真在无线多媒体通信系统中,视频信源在发送端按照一定的编码方式进行编码,形成视频帧,然后在网络层和传输层封装成IP数据包,再经过无线信道传输到达接收端,在接收端进行解包和恢复,得到视频帧,再形成重建后的视频流。
在此过程中,无线信道的传输特性会影响到视频的传输质量.本文在利用Evalvid 工具的基础上,综合NS2仿真工具,建立研究多媒体信息在无线网络中传输的平台。
在视频流仿真方面,本文采用了将视频流的Trace 文件引入NS仿真环境的方法,来模拟实际网络传送的视频流,并在tcl程序代码中设定G-E模型的参数变量,这样就可以得到经模拟网络传输后数据包的收发情况,并对无线信道对多媒体信息传输质量的影响进行评估。
实验中采用的网络拓扑结构为无线局域网拓扑结构。
仿真结果表明,由于无线信道特性的不理想,在接收端恢复视频信息与视频信源相比较,会出现一定的失真。
本文还综合利用多种工具对视频信息的质量变化进行评估,如数据封包的时延、视频的PSNR值、可解画面比例及原始图像和重建后的图像的差异等。
关键词:无线网络;多媒体信息;网络仿真;AbstractThe Simulation Of Multimedia Information Transmission in Wireless Network Video information are encoded by a certain means in the sending end among the system of wireless-multimedia communication,informing the video frames,and then they was encapsulated in the network layer and the transmission layer。
Before they reach the sink,they transmit across the wireless channel,and now they are download and renew,getting the new frames,which inform the rebuided video stream.Among this course,the characteristic of wireless channel could affect the quality of video transmission.Based the useage of Evalvid tool and integrated ns2 simulation tool,we construct the platform for researching the transmission of multimedia in wireless network。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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配置在路由器监视网络流量以便避免拥塞,当拥塞即将发生时,它随机丢弃进来的分组,而不是等到队列缓冲区满是才开始丢弃所有进来的分组,这样可以最少化全局同步的发生。
当拥塞发生时,RED丢弃每个连接分组的概率与该连接占用的带宽成比例,它监视每个输出队列的平均队列长度,随机选择分组丢弃。
(2)丢包率:是一个比率,表示在单位时间内未收到的数据分组数与发送的数据分组数的比率,由于信号衰减、网络质量等诸多因素的影响,可能产生数据分组的丢失。
(3)端到端时延:是由各种因素引起的,包括打包和解包时延,以及网络传送时延,本文中主要讨论的是网络传输时延。
(4)吞吐量:单位时间内,某个节点发送和接受的数据量,单位一般为b/s。
二NS2网络仿真机制与过程使用NS2进行网络仿真的基本操作流程如图1所示,用户首先要进行问题定义,考虑自己要仿真什么东西、拓扑结构应该怎样、是否需要对源代码进行修改或添加等。
如果需要添加或修改代码,如图1中右边方框中所示,有一个对NS2源码进行修改、重新编译和调试的过程;如果不需要修改代码,即采用NS2已有构件即可完成仿真工作,那么用户的主要任务就是编写Tcl/OTcl仿真代码,生成一个.tcl脚本文件,并用NS2执行该脚本进行仿真,仿真程序结束后会生成相应的Trace文件,即仿真结果文件,用户使用不同的工具对该脚本中的内容进行分析得到我们想要的结果和图表,如果结果是我们的预期,那么整个仿真过程即可顺利结束,否则应该分析问题所在,并重新考虑问题定义、源码修改、Tcl脚本修改的必要性。
整个仿真过程主要有三部分的工作量:修改源代码、编写Tcl仿真脚本和分析结果。
(1)源码修改。
这一步只有在仿真需要修改源代码时才进行考虑,修改源代码是一项比较具有挑战性的工作,这需要用户有一定的编程和调试水平。
特别需要注意的是,由于NS2是采用C++和OTcl两种语言编写的,因此在修改源代码时,需要记着修改相应的OTcl代码。
(2)Tcl/OTcl仿真代码编写。
这是NS2仿真中最重要和必不可少的一环,大部分NS2的仿真工作实际就是编写Tcl代码来描述网络结果、网络构件属性和控制调度网络模拟事件的启停的过程。
因此,这需要用户对NS2中的网络构件非常熟悉。
(3)仿真结果分析。
结果分析是真正体现仿真工作成效的重要一环,仿真结果分析要求用户熟悉NS2的Trace文件的结构,并且能够使用一些小工具对该结果文件进行分析以及根据分析结果数据绘制一些汇总图标等。
图1 基本操作流程图三实验过程与结果分析1 仿真实验的模拟情节配置说明本仿真情节包含4个node,各节点之间都是以全双工的链路相连。
n0和n2之间链路的带宽为2Mbps,延迟为10ms,为DropTail队列方式;n1和n2之间链路带宽为2Mbps,延迟为10ms,也为DropTail队列方式;网络拓扑中的带宽瓶颈是在节点n2到节点n3之间,带宽为1.7Mbps,延迟为20ms,同为DropTail方式,且最大队列长度为10个数据包长度。
在n0到n3之间建立了基于TCP协议凡人FTP应用,TCP包的长度采用默认的1Kbytes。
另外,在n1到n3之间建立一条基于UDP协议的CBR应用。
CBR的传递速度为1Mbps,每个包大小为1Kbytes。
CBR业务在0.1秒开始传送,在4.5秒结束传送。
FTP业务在1.0秒开始传送,4.0秒结束传送。
写出仿真脚本并运行,会自动弹出Nam窗口。
通过Nam可以依次看到如图2、图3、图4所示的动态过程。
图中红色代表基于UDP的CBR业务流,蓝色代表基于TCP的FTP业务流。
模拟一开始只有CBR业务流出现,网络依次传递这些数据包,因为各段链路带宽均大于CBR业务速率(1Mbps),网络没有出现排队与丢包现象,如图2所示。
图2 CBR业务启动图3 网络出现排队现象图4 网络出现丢包现象随后FTP业务启动,随着慢启动的开始,FTP的数据速率越来越高,给网络带来很大压力,瓶颈链路n2与n3之间出现排队现象。
并且可看到使用TCP传输数据时,接收方会对收到的数据进行确认,而UDP协议传输时,不发回确认。
整个过程如图3所示。
最终,随着FTP速率的提高,当n2与n3之间的队列占满后,会出现丢包现象,这时TCP协议将会进入拥塞控制,进入慢启动过程,如图4所示。
2 Trace文件格式说明(1)event:“+”:表示分组进入链路队列事件;“—”:表示分组离开链路队列事件;“r”:表示目的节点接受分组事件;“d”:表示队列丢弃分组事件(2)time:事件发生的时间(3)from node:分组发送接点的id(4)to node:分组传送的目的节点的id(5)pkt type:分组类型(6)pkt size:分组大小(7)flags:标志项(8)fid:流标识符(9)src addr:源地址,格式为node.port,其中node代表分组发送节点的id,port表示发送分组的端口号。
(10)dst addr:目的地址,格式为node.port,其中node代表分组发送节点的id,port表示发送分组的端口号(11)seq num:分组的序列号(12)pkt id:分组的唯一标识符。
3 数据处理在NS2中,模拟产生的Trace文件往往非常大,一般情况下,需要借助Gawk对其进行处理,提取相应的数据信息。
(1)处理n1到n3端点间CBR丢包情况,测量程序写在lostRate.awk文件中执行方法:$awk -f lostRate.awk out.tr执行结果:#number of packet sent:550,lost:8#lost rate of packets:0.0145450.100000 0.0000000.108000 0.0000000.116000 0.000000运行结果中显示CBR流量总共发包550,丢失8,丢包率为:0.014545。
同理,我们可以编写延时与吞吐量的awk文件。
我们通过执行如下语句将丢包率、延时、吞吐量保存在cbr_lostRate、cbr_delay、cbr_throughput文件中。
执行方法:$ awk -f lostRate.awk out.tr>cbr_lostRate$ awk -f delay.awk out.tr>cbr_delay$ awk -f throughput.awk out.tr>cbr_throughput在Xwin窗口中输入xgraph cbr_lostRate,就可以把前面所存下来的cbr_lostRate文件使用图形直观的表示出来,如图5所示。
图5 丢包率随时间变化的关系图(2)我们可以得到CBR流量的时延随时间的变化如图6所示:图6 端到端时延随时间变化的关系图(3)节点n2的平均吞吐量随时间的变化如图7所示:图7 节点n2的吞吐量随时间变化的关系图4 结果分析从RED的图示中,可以看出队列的大小波动变化不是很大,在处理突发的包时有一定的优势。
从丢包率、时延和吞吐量的变化图中,可以看出当丢包率增加时,端到端之间的时延也在增加,而吞吐量则下降,丢包率、时延和吞吐量在表示网络性能的好坏时有一定的关系。
四部分相关代码1.网络拓扑仿真脚本ns-simple.tcl#Create a simulator objectset ns [new Simulator]#Define different colors for data flows (for NAM)$ns color 1 Blue$ns color 2 Red#Open the NAM trace fileset nf [open out.nam w]$ns namtrace-all $nfset tf [open out.tr w]$ns trace-all $tf#Define a 'finish' procedureproc finish {} {global ns nf tf$ns flush-trace#Close the NAM trace fileclose $nfclose $tf#Execute NAM on the trace fileexec nam out.nam &exit 0}#Create four nodesset 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 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail#Set Queue Size of link (n2-n3) to 10$ns queue-limit $n2 $n3 10#Give node position (for 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#Monitor the queue for link (n2-n3). (for NAM) $ns duplex-link-op $n2 $n3 queuePos 0.5#Setup a TCP connectionset tcp [new Agent/TCP]$tcp set class_ 2$ns attach-agent $n0 $tcpset sink [new Agent/TCPSink]$ns attach-agent $n3 $sink$ns connect $tcp $sink$tcp set fid_ 1#Setup a FTP over TCP connectionset ftp [new Application/FTP]$ftp attach-agent $tcp$ftp set type_ FTP#Setup a UDP connectionset udp [new Agent/UDP]$ns attach-agent $n1 $udpset null [new Agent/Null]$ns attach-agent $n3 $null$ns connect $udp $null$udp set fid_ 2#Setup a CBR over UDP connectionset 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#Schedule events for the CBR and FTP agents$ns at 0.1 "$cbr start"$ns at 1.0 "$ftp start"$ns at 4.0 "$ftp stop"$ns at 4.5 "$cbr stop"#Detach tcp and sink agents (not really necessary)$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"#Call the finish procedure after 5 seconds of simulation time$ns at 5.0 "finish"#Print CBR packet size and intervalputs "CBR packet size = [$cbr set packet_size_]"puts "CBR interval = [$cbr set interval_]"#Run the simulation$ns run2处理时延的awk代码delay.awk#delay analyseBEGIN{highestPktId=0;}{event = $1;time = $2;fromNode = $3;toNode = $4;pktType = $5;pktSize = $6;flags = $7;fid = $8;srcAddr = $9;dstAddr = $10;seqNum = $11;pktId = $12;if(pktId>highestPktId)highestPktId=pktId;if(beginTime[pktId]==0)beginTime[pktId]=time;if(fid==2 && event!="d"){if(event=="r")endTime[pktId]=time;}else{endTime[pktId]=-1;}END{for(pktId=0;pktId<=highestPktId;pktId++){begin=beginTime[pktId];end=endTime[pktId];pktDuration=end-begin;if(begin<end)printf("%f\t%f\n",begin,pktDuration);}}11。