毕业设计(论文)-基于NS2环境下的网络带宽的从研究与实现--基于包对模型的测量.doc_第1页
毕业设计(论文)-基于NS2环境下的网络带宽的从研究与实现--基于包对模型的测量.doc_第2页
毕业设计(论文)-基于NS2环境下的网络带宽的从研究与实现--基于包对模型的测量.doc_第3页
毕业设计(论文)-基于NS2环境下的网络带宽的从研究与实现--基于包对模型的测量.doc_第4页
毕业设计(论文)-基于NS2环境下的网络带宽的从研究与实现--基于包对模型的测量.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽建筑工业学院毕业设计(论文)摘 要 随着网络规模的迅速膨胀及其复杂性的增加,网络测量受到越来越多的重视。瓶颈链路带宽测量一直是网络测量的研究热点之一。本文阐述了链路带宽,瓶颈带宽,可利用带宽的基本概念及相互关系,并分别介绍了它们的测量技术和方法。根据测量方式,可把网络测量分为主动测量和被动测量两大类。依据包对理论提出一种带宽测量算法,可以解决网络背景流量的干扰问题和首包的排队问题。通过在NS2平台上的模拟,分析了包对理论在网络环境中的行为逻辑,然后仔细研究了算法的性能和存在问题,最后提出了进一步的研究方向。 关键词:带宽测量 瓶颈带宽 包对 网络模拟Abstract With Internet expanding in quantity and complexity, network measurement becomes more and more important. Bottleneck link bandwidth measurement is one of the hot spots in Internet measurement field.The paper gives the link bandwidth bottleneck bandwidth, you can take advantage of the bandwidth of the basic concepts and relationships, and describes their measurement techniques and methods. According to measurement mode,network measurement could be classified into the following two categories:active measurement and passive measurement. This paper presents a bandwidth measurement algorithm based on packet pair. The algorithm is effective in resolving the issues of network cross-traffic packets interfered in packet pair and the first packet queue.Through the NS2 platform simulation and analysis of the package on the theory of behavior in a network environment logic, and then study their performance and issues to be solved, at last point out the ways to improve them. Key words: Network measurement Bottleneck link Packet pair Network simulation Bandwidth目 录摘 要1Abstract2目 录3第1章 绪论41.1研究可用网络带宽测量的意义41.2可用网络带宽测量的研究现状51.3可用网络带宽测量未来的发展趋势51.4可用网络带宽测量的研究所面临的挑战5第2章 基础简介72.1 研究背景72.2 基础概念8第3章 测量网络带宽的工具123.1 Pathchar带宽测量工具123.2 端到端带宽测量工具123.3 可利用带宽测量工具13第4章 包对模型的应用与原理144.1包对模型的应用原理144.2 包对模型的原理分析154.3 不同测量包大小对测量结果的影响174.4 包对技术在实际应用中存在的问题19第5章 NS2环境简介205.1 NS2简介205.2 NS2的运行界面21第6章 NS2环境下网络模拟256.1网络模拟拓扑描述256.2 试验程序分析266.3 运行结果29第7章 Xgraph曲线描绘32第8章 总结33致 谢34参考文献35基于NS2环境下的网络带宽的从研究与实现 -基于包对模型的测量电子与信息工程学院 网络工程专业 2008级2班 付靖洋指导老师:姚传茂,赵彦强第1章 绪论1.1研究可用网络带宽测量的意义 近年来以TCP/IP为主要协议的IP网络呈指数速度增长,同时网络应用及网络用户也在不断的增加,在网络规模及网络上的流量急剧增长的同时网络也变得越来越复杂。目前网络基础设施和结构呈现复杂性和多样性,但是并没有一个中心管理机制对网络进行管理,因此人们无法对网络的内部结构、网络性能、运行状态等进行精确的了解。为了了解网络内部的结构和状态,研究人员采用了网络测量的方法。 网络测量包括拓扑、延迟、带宽等等网络参数,网络可用带宽作为了解网络运行状态的一个重要参数,已成为一个网络测量的热点。对于网络运营商来说,可以根据带宽的状况来指导网络维护和运行、扩容规划工作;对于网络协议和应用的开发者来说,可以根据网络带宽的状况优化其协议和应用的性能,如根据带宽的状况决定一个http服务器的放置位置;网络用户也可以根据带宽选择合适的服务器,如流媒体服务器或代理的选择;同样对移动计算来说,移动用户也可以根据带宽的不同来选择不同网络接口和服务,这些都有助于网络性能的提高。可见,通过优化带宽的使用和分配可以提升网络性能,而网络带宽测量为人们了解带宽的状况提供了可能。带宽测量存在着许多潜在的应用:比如overlay 网络中路由多播树的建立;内容分发网中最优服务器的选择;流媒体应用中最佳的编码速率;网络服务器多镜像选择;p2p网络中应用层拓扑的建立;VPN用户对所租用网络带宽的自主监测;网络运营维护和瓶颈故障检测;基于速率的拥塞控制;基于策略的接纳控制以及异构无线网络的移动切换性能优化等。1.2可用网络带宽测量的研究现状因特网数据分析合作组织CAIDA、Stanford大学和美国的NIMI等,对带宽测量已经或正在进行大量的研究,并取得了一些成果。国内一些高校和研究所,如中国科学院计算技术研究所、信息产业部电信传输研究所、北京邮电大学、湖南大学等,也在进行带宽测量的研究。目前形成的可用带宽测量方法和测量工具比较多,但由于可用带宽与背景流量相关,其值随链路上流量的变化而变化,是一个动态的概念,要准确测量它非常困难,因此,如何准确的测量可用带宽是一个具有挑战性的问题,也是网络技术的研究热点之一。1.3可用网络带宽测量未来的发展趋势最近提出一种新的应用于IPv6网络的带宽测量方法PTTS(Packet TrainTimeStamp)。源端主动向网络发送报文序列,序列中负载报文反应网络流量特征,测试报文带有IPv6时间戳扩展报文头,逐跳记录路由器的当前时间,获得报文序列通过链路所花费的时间,得到可用带宽。同时利用IPv6基本报文头中流标签字段定义测试流,确保报文列中测试报文和负载报文路径一致;利用流量类型字段,增设用于网络测量的测试级消除其余背景业务的相互影响。仿真证明,报文设计合理,测量方法可行。1.4可用网络带宽测量的研究所面临的挑战评价网络性能有很多指标,包括网络容量、丢包率、可用带宽、延时、背景流量等。随着网络的飞速发展,网络应用更加关心的是自己可以使用的带宽,即可用带宽。在过去的十几年中,研究者们一直不懈地努力提高端到端的可用带宽测量算法的精度和速度,然而,可用带宽本身具有动态变化的特性,受到很多因素的影响,可用带宽测量面临诸多挑战:1)背景流量的突发特性:造成了可用带宽的动态性,给测量带来了很大困难,需要采用一定的技术缓和背景流量的突发性给测量结果造成的偏差。2)可用带宽测量技术的实际应用性:即要求可用带宽测量准确性和可操作性,而且测量时间短,开销低,从而能在实际网络应用程序中集成,达到测量可用带宽的真正目的。3)多瓶颈链路模型的可用带宽测量:现有的可用带宽测量技术都是基于单瓶颈链路模型,用于多瓶颈链路环境时,测量结果就会出现一定的偏差。4)时间精度问题:现有的可用带宽测量技术都是基于时间信息统计分析,因此,最小时间粒度(时间精确度)是限制可用带宽测量精度的一个非常重要的因素。如果最小时间粒度比测量的间隔还大,那么可获得的时间间隔就是最小时间粒度;如果最小时间粒度比两个包的时间间隔大,就认为这两个包同时到达。第2章 基础简介2.1 研究背景近年来网络规模不断扩大,网络流量急剧增长,尤其是实时业务和多媒体应用等新业务的不断增加,例如远程教学,视频会议、视频点播,视频监控等OoS敏感的网络应用,这些应用对网络传输提出了一组性能度量的要求,主要包括带宽、延迟、丢包率等。为了向用户提供可靠的端到端(Endtoend)服务质量保证,网络应用必须得到实时的网络性能来评估当前网络对应用的支持程度。网络测量是开展服务质量(QoS)敏感应用、提供服务质量(QoS)保证的前提条件。然而,目前对网络测量技术的研究明显滞后于网络及其应用的快速发展。研究网络性能测量技术是了解网络行为、进行网络控制、实施服务质量(QoS)保证、提高网络性能的基础和重要环节,因此具有十分重要的意义。网络带宽测量的研究对于提高仿真系统性能,有着非常重要的作用。通过带宽测量,了解广域网带宽资源情况,从而指导广域网实时仿真系统的数据传送和带宽分配,提高广域网实时仿真系统性能。在广域网环境下的分布交互仿真系统中,网络带宽测量技术的研究有助于大幅度提高带宽利用率并降低仿真数据的延迟。在测量可用带宽时,必须要保证测量的准确性、非干扰性(测量的探测速率不能响到正常的业务流)和快速性。很多因素给可用带宽的实际测量造成了困难,例如链路的可用带宽随时在变化,并且由于网络技术存在着差异性,端与端之间需要协同工作,业务流量使用不同的传输协议,背景流量存在多样性,各种路由器具有各自的特点等。如何对可用带宽进行快速有效地测量,获得高精度的测量结果,已成为下一代网络关键技术研究的热点。随着Internet得到越来越广泛的应用,网络性能也越来越受到关注,影响网络性能的因素很多,带宽就是其中最重要的因素之一。对于网络运营商来说,可以根据带宽的状况来指导网络维护和运行、扩容规划工作;对于网络协议和应用的开发者来说,可以根据网络带宽的状况优化其协议和应用的性能,如根据带宽的状况决定一个http服务器的放置位置;网络用户也可以根据带宽选择合适的服务器,如流媒体服务器或代理的选择;同样对移动计算来说,移动用户也可以根据带宽的不同来选择不同网络接口和服务,这些都有助于网络性能的提高。可见,通过优化带宽的使用和分配可以提升网络性能,而网络带宽测量为人们了解带宽的状况提供了可能。在网络通信中,个人或组织在使用网络时总是希望带宽越来越宽,特别是Internet的使用,对数据传输的要求呈现出爆炸性的增长,因此对带宽的要求也日甚一日。当今,新一代多媒体、影像传输、数据库、网络电视的信息量猛增使得带宽成为了严重的瓶颈,迫使以太网向更高的速度发展。目前,各种开发光纤网带宽的技术正在研究和使用中。因此,了解带宽的作用无疑将节约大量的资金,作为一名网络设计人员,带宽是主要的设计点。作为网络专业人士,带宽和吞吐量是分析网络运行情况的要素。2.2 基础概念链路带宽:即链路容量,指的是链路在物理设计上能够达到的最大数据传输速率,一般是一个固定值。 瓶颈带宽:两个节点之间路径上的最小的链路带宽,它表示一条路径的最大传输速率。对于大多数网络来说,两个主机之间的瓶颈带宽不会改变,也不受网络流量的影响。如果表示一条从源端S到目的端D的通路,n表示路径的跳数,表示第条i链路,表示链路带宽,那么通路的瓶颈带宽可用如下公式表示: (1)链路的可利用带宽:链路上未被竞争流占用的剩余带宽。按公式(1),如果表示的利用率,链路的可利用带宽。通路的可利用带宽:一条路径中最小的链路可利用带宽。通路的可利用带宽可用如下公式表示: (2)窄链路:瓶颈带宽所在的链路。 紧链路:通路的可利用带宽所在的链路。需要指出的是瓶颈带宽表示的是一个连接传输数据的速度的上限,可利用带宽表示的是一个连接实际传输数据的速度,可利用带宽不可能超过瓶颈带宽,而且受瓶颈带宽和通路流量的限制,但是由于可利用带宽受网络中已有流量的影响,窄链路和紧链路并不一定在同一位置,因而瓶颈带宽和通路的可利用带宽并没有必然的联系。如图1,瓶颈带宽是,而通路的可利用带宽是。图中阴影部分表示网络中的已有流量,表示第i条链路的链路带宽,表示第i条链路的可利用带宽。 瓶颈带宽反映的是路径的静态特征,而可用带宽则真正反映了在某时段链路的实际通信能力,所以可用带宽的测量和建模更具有重要意义。网络背景流量的多样性和突发性,造成网络链路可用带宽的动态性,给端到端路径可用带宽测量带来了很大的挑战。网络测量的分类标准有多种。比如,根据测量方式,可以分为主动测量和被动测量,如图2所示;根据测量基准,可以分为基于流、基于网络接口、基于连接、基于节点对和基于路径的网络测量;根据测量点的多少,可分为单点和多点测量;根据被测量者是否知情,可分为协作式测量与非协作式测量。在主动测量方式中,通过向网络中发送数据,观察结果和发送数据所需时间来研究网络的行为。主动测量向网络中发送实际的业务量,利用这些业务量测量反映网络提供给其他用户的服务的参数,包括round-trip time(RTT)和丢包率。到目前为止,人们所做的大多数项目都涉及到主动测量。比如,美国的NIMI(national Internet measurement infrastructure)项目,利用ping,traceroute,mtrace等工具进行主动测量;AMP(active measurement program)项目,采用Ping进行双向测量,测量RTT、丢包率和拓扑.到了2000年6月,运行主动测量监视器的源站点有116个(美国114个,新西兰、挪威各1个),被测量的目的站点约有13 340个。其目的是为了增强参与站点和用户对高性能网络运行情况的理解,帮助网络用户和提供商分析问题;Surveyor是一个建立在全球参与站点上的测量平台,部分由NSF支持。Surveyor测量Internet的路径性能,包括单向延时、损耗、路由测量等,并研究相应的分析方法与工具。设有55个监测点,在1 883条路经上进行单向时延测量;依托于UCSD/SDSC(University of California, San Diego, Supercomputer Center)的研究部门CAIDA(Cooperative Association for Internet Data Analysis),开展网络测量、分析、可视化工具的研发,维护全球因特网平台的健壮性和可扩放性,受到NSF(National Science Foundation)、DARPA(Defense Advanced Research Projects Agency)、ISP(Internet service providers)和硬件供应商的资助,研究对象包括Internet拓扑结构、网络负载、网络性能、网络路由,监测正/异常活动,关注带宽估计,负载刻画,长期趋势识别,以进行流量工程设计、能力计划、安全迹象检测,等等。加拿大国家研究机构使用perl script跟踪对TRIUMF感兴趣的节点。每10分钟检测一次丢包率,每天收集4次tracert数据并生成网络可视化图;欧洲的PPNCG(Particle Physics Network Coordinating Group)项目,监视全欧洲某些粒子物理研究所的网络端到端性能,并加以优化,在主动测量项目中,测量的范围比被动测量大得多,可大到全球。如此庞大的测量体系,有可能造成较大的网络负荷,且难以统一配置和管理.。在被动测量方式中,记录网络活动的探针被接入到网络中,在大多数情况下探接到网络节点之间的连接上,汇总和记录那条连接上业务流量的信息。目前开展的被动测量项目有:受美国国家科学基金会NSF资助的美国应用网络研究国家实验室(NLANR)的测量项目PMA(passive measurement and analysis),旨在为高级网络(如vBNS,Abliene)提供协作性的服务支持。它采用OC 3mon数据搜集系统,包括专门的群机系统、装有FORE ATM cards 和Optical Splitters(分光器),采集ATM的数据流,使用CoralReef根据一定的规则集进行数据采集,并可使用perl等语言对数据进行分析,和IBM共同开发的SPAND(shared passive network performance discovery)项目,它通过对捕捉到的UDP/TCP分组进行分析得到连接带宽、丢包率等性能,等等。被动测量主要在一个特殊点观察网络的行为,不增加和修改通过网络的数据负载,因此对网络的行为没有影响。这种方法能够达到对观察点网络行为的详尽理解,但难以获得对网络的整体理解,或者对网络的端到端行为的理解。被动测量经常用于测量业务量的特征。同时不难看出,被动测量的前提是协作,否则无法在测量点安装必要的软、硬件设备,其测量范围由此而受限。从测量点的数量来讲,网络测量分为单点和多点测量。在研究初期,许多工作都属于单点测量,但因为测量能力有限,搜集的信息不全面,分布式多点测量应运而生,尤其是多点主动测量,利用多个探测点得到的数据,能够综合出大规模的网络数据和单点所得不到的交叉路由信息。单点测试的典型例子是贝尔实验室的Internet Mapping项目,这是一个非合作测量。该项目成功地描述了科索沃战争期间南斯拉夫和科索沃两个网络的拓扑变化情况,这表明在IP网络测量中,单点非合作测量具有相当强的网络探测能力。这也是网络测量在军事领域中应用的典范。第3章 测量网络带宽的工具3.1 Pathchar带宽测量工具在这一小节里介绍的工具使用VPS测量技术对每一跳的带宽进行测量。所有单跳带宽中最小的即为这条路径的端到端带宽。而使用这些工具需要具备超级用户的权限,因为它们需要访问rawIP数据包的权限来读取ICMP消息。Pathchar是第一个使用VPS技术的带宽测量工具。 Pchar是VPS技术的另外一种开源实现。它使用libpcap来获取内核级的时间隔。Pchar提供了三种不同的线性衰减算法来获取最小的RTT值关于不同的数据包大小的斜率。它支持许多种不同种类的探测包,在多种Unix平台上都是可以使用的。3.2 端到端带宽测量工具这些工具测量的主要指标是一条路径的瓶颈带宽。它们中的大多数都采用分 组包对技术。Bprobe在处理数据包的过程中,试图丢弃那些受到背景流量影响的包对。Bprobe只要求对发送主机进行访问,而接收方主机只需要对发送方的ICMP报文回送ICMP响应报文。但是ICMP回送报文有时会受到限制,因此会在一定程度上影响测量的准确性。 Pathrate Pathrate利用可变长度的探测包来进行测量,属于报文对测量技术。需要在源端和目的端进行软件安装。Pathrate以UDP协议为基础,在客户机服务器模式下工作。Pathrate改变探测数据包的大小从而获取多组测量数据。通过分析这些数据找 出许多局部众数,而通常其中的一个与路径的带宽相联系。然后,pathrate发送一个长的数据包序列测量出路径的传播率D。D不会大于路径的带宽,这样提供了一个路径带宽的下限。最后,pathrate将通过数据包对获得的测量值中大于D的众数C做为带宽的估计值。Pathrate不需要超级用户的权限,但是需要测量软件同时安装在发送方与接收方。 C1 ink C1 ink是一个开放源代码的利用VPS探测技术的测量瓶颈带宽的工具。最初的版本只能在Linux操作系统中运行。它采用了一种“奇偶”(even-odd)技术来完成链路间隔容量测量。当测量过程中路由不稳定时,C1 ink跟随路由的变化,对使用每条路径进行跟踪测量,并采集相关的测量数据,知道其跟踪路径的测量数据满足同意需求。 Pathload Pathload是基于SLOP技术的典型代表。有美国乔治亚理工大学的研究人员开发的,源代码是公开的测量端到端的可用带宽的工具。要求能够接入路径的两端,通过发送UDP分组进行测量。测量开始,从发送端周期性的向接收端发送分组流,当分组流的发送速率大雨可用带宽时,短时间的过载可能导致测量出来的相对时延呈上升趋势。通过类似折半查找的方法,产生一系列不同速率的分组流,直到汇聚到可用带宽的一个区间。Pathload工具通常给出一个可用带宽的区间范围不是单个估计值。Pathload因而收敛时间较长,而且每次估计产生的负载较大。所以该算法最大的缺点在于探测包使用量大,用时过长,计算量大。 Nettimer Nettimer可以被当作一个VPS探测工具使用,也可以被做为一个分组包对的测量工具。但是怎样将其做为一个VPS工具使用的文档是不公开的,因此,在大多数情况下它都被用做一个分组包对的测量工具。 SprobeSprobe是一个轻量级的带宽测量工具,它能够快速进行测量。Sprobe只运行在源主机方。为了测量源主机到一台远程主机的传输路径上的带宽,Sprobe发送一些数据包对 (通常是TCP SYN数据包)到远程主机。远程主机回复TCP RST 数据包,使得发送方可以据此估算出从源主机到远程主机的网络传输路径上的传 输率。3.3 可利用带宽测量工具 CprobeCprobe是一个进行可利用带宽测量的工具。Cprobe测量一个包含8个 “最大尺寸”数据包的序列的传输率。然而,在这个数据包序列所测得的传输率并不等同于可利用带宽。通常,这个传输率依赖于这条路径上的所有链路的带宽,同时也与数据包序列的初始速率相关。但是,传输路径的可利用带宽却只由所有链路中可利用带宽最小的链路决定。第4章 包对模型的应用与原理 4.1包对模型的应用原理假设一条通路由如图3所示的3条链路组成其中链路1和链路3的吞吐量为3C,链路2的吞吐量为C。图3 包对算法示意图发送一对背靠背的测试包通过该通路,每个测试包的大小均为L。在这两个测试包经过瓶颈链路2,后由于链路2和链路3吞吐量的不同而造成第2个数据包的延时,显而易见有如下公式: (1)因此,只要知道了两个包之间的延时,便可以求得该条通路上的瓶颈带宽 (2)在实际的网络测量中,发送方发出的两个包不可能是严格意义的背靠背,但是,只要发送时两个包之间的延时 在一定范围内,那么当首包进入瓶颈链路时,末包由于速度较快可以追上首包,这样两个包都进入瓶颈链路后仍然紧邻,不会影响测量结果。因此,所允许的最大延时为 (3)对于固定的,该包对序列理论上能够准确测量的最大瓶颈带宽为 (4)4.2 包对模型的原理分析 包对算法可描述为:定义端点A 和B 之间有一目标路径r (如图2所示) , A 为源端点, B 为目标节点, r 由N 条链路组成,即r 上有N + 1 个节点, 其中N - 1 个是中间节点. r 的瓶颈带宽为bmin . 从A端向B 端发送大小相同的两个数据包,如果两个数据包发送的时间间隔足够小, 而且链路上没有其他网络流量的干扰,它们到达B 端的时间间隔就等于第2 个数据包的长度除以瓶颈链路带宽.A -Ni -Ni +1- B下面是变量定义.n : 链路跳数Ni : 第i 个节点.l i :第i 条链路.di :链路i 的时延.bi :链路i 的带宽.sk :包k 的大小.tki:包k 完全到达节点i 的时刻.qki:包k 在链路i 的排队时间.依据变量定义, r 可描述为r = N1 , N2 , ,N n + 1 , l1 , l2 , l n , 其中N1 = A , N n + 1 = B1 假设r上每条链路l i 的带宽为bi ,则有bmin bi ( Pi ,1 in) 1考察数据包在r 上的传输,有下列情况.(1) 数据包k 由A 开始经i - 1 个中间节点和i条链路到达i + 1 节点的传输时间等于在所有i - 1个节点上的排队时间、在所有i 条链路上的传输时间以及所有i 条链路的时延之和,即i(2) 根据算法描述, 由于没有其他流量干扰, 第1 个数据包在所有链路的起始端节点的排队时间为0 ,即如果在第2 个数据包到达第i 个节点时, 第1个数据包已经离开第i 个节点, 那么第2 个数据包在节点i 的排队时间为0 ;否则为两者的时间差,即引理定义两个数据包在节点i 的发送时间间隔为i = t2i- t1i , 1 i n . 如果s1 = s2 , 那么有i + 1 =max (i , s2/ bi) .证明从式(5) 可以得到根据式(8) ,则i +1 = t2i +1 - t1i+1 = ( t2i+ s2/ bi + di + q2i) -( t1i+ s1/ bi + di + q1i) = i + q2i- q1i由式(7) ,有i +1 = i + max (0 , t1i+1 - di - t2i) - q1i=max (i - q1i, t1i+1 - di - t2i) - q1i由式(8) ,有i +1 = max (i - q1i, s1/ bi)由式(6) ,有i +1 = max (i , s2/ bi)根据前述公式和引理可证明包对算法成立.下面用数学归纳法对n 进行归纳.(1) n = 2 时, 此时路径r 中没有中间节点, 链路l1 连通A 和B . 由引理1 ,两数据包到达B 的时间间隔为2 = max (1 , s2/ b1) = s2/ b1 = s2/ bmin ,包对算法成立.(2) 假定n = m (2 m) 时算法成立, 即m =s2/ bmin ,则n = m + 1 时,m + 1 = max (m , s2/ bm ) ,那么定义前m 个节点的带宽为bmin ( m - 1) ,m + 1 =max ( s2/ bmin ( m - 1) , s2/ bm ) = s2/ min ( bmin ( m - 1) , bm )= s2/ bmin ,包对算法成立.(3) 从式(1) 和式(2) 可知, 对于所有的n , 包对算法都成立. 根据前面的假设,包对算法是处于理想状态下的估测算法,它的前提是网络路径上没有其他流量干扰. 如果估测算法用于实际网络,网络中的流量常常会干扰估测结果,其主要有两点: 首包后续排队现象,即第1 个数据包并不是在所有节点的排队时间为0. 假设瓶颈链路序号为i , 理想状况下如果没有其他流量的干扰, 两个数据包在经过瓶颈链路之后,将在以后的传输中一直保持i + 1的时间间隔,直至到达目的端. 如果存在其他流量的干扰,第1 个数据包在链路j ( j i ) 上有排队现象发生, 经过链路j 之后, 两个数据包的时间间隔将为j + 1 =max (i + 1 - q0j, s1/ bj) ,而j + 1 i + 1 ,使得最终估测结果大于实际带宽的大小, 从而降低估测结果的准确性. 第2 个数据包和第1 个数据包之间可能会插入其他流量, 即qki= max ( 0 , c + t k - 1i + 1 - di -tki) , c 为干扰流量的排队时间. 尤其是在瓶颈链路,流量干扰会增加第2 个数据包的排队时间, 使得最终带宽估测结果小于实际的带宽大小. 即使干扰发生在其他非瓶颈链路,如果干扰过大,以至于经过此链路之后的两个数据包的时间间隔比经过瓶颈链路后的时间间隔还要大, 最后估测的结果将不是瓶颈链路的带宽.在实际网络运行中,拥塞现象经常出现在瓶颈链路,它造成带宽估测值小于带宽实际值。4.3 不同测量包大小对测量结果的影响使用不同大小的测试包,在经过瓶颈链路后,两包之间的间隔,即链路的空闲时间是不同的。而它们之间的间隔越大,插入背景流量包的概率也就越大。如图4,图中。经过瓶颈链路后,两包之间的间隔有别于用于测量带宽的两包间延时,而应该是延时减去第2个数据包在链路中传输所用的时间 (1)可见,在链路1和链路2的吞吐量、固定的情况下,包对序列中每个包的大小L越大,经过瓶颈链路后,两个包之间的间隔 越大,在两个包之间插入其它无关背景流量的数据包的可能性也就越大。背景流量数据包的插入对于测量结果的影响表现在两个方面:(1) 首末包间背景流量数据包的插入会造成测量值的偏低,这一点在前面已经有所论述。(2) 包对在经过瓶颈链路后,如果遇到拥塞排队,由于插入的背景流量数据包的影响,即使首包由于排队而延时,末包也不会追上首包,从而削弱了由于排队造成的测量值偏高的影响。通过分析可以得知,当使用不同大小的测试包进行带宽测量时,测试包在网络中的行为表现有所不同,最终导致测量值的不同。这种情况可以简单总结如图4所示。图4 测量包的大小对测试结果的影响4.4 包对技术在实际应用中存在的问题包对技术在理论上可以精确测量网络中瓶颈链路的带宽。但是在实际网络环境中,背景流量的存在会干扰包对的传输,从而进一步影响到测量结果的准确性。影响包对测量准确度的因素主要表现为以下两点:1) 首包末包之间插入背景流量数据包,造成测量值偏低。图5 经过瓶颈链路后的首末包间隔2)包对经过瓶颈链路后首包遇到拥塞排队,造成测量值偏高。假设通路上瓶颈链路吞吐量为C,一个长度为的背景流量数据包插入了组成包对的首包与末包之间,那么,通过瓶颈链路后,首包与末包之间的延时为 (1)计算得到的瓶颈带宽测量值为 (2)可见 , 即测量值小于网络实际的瓶颈带宽。包对在经过瓶颈链路后,如果遇到排队,首包进入队列等待被发送,此时末包会追上首包,消除了由于经过瓶颈链路而形成的延时。等到排队结束,包对再次被发送后,首末包之间的延时已经不能反应瓶颈链路带宽,而对应了排队后经过链路的吞吐量。这就造成了测量值的偏高。第5章 NS2环境简介5.1 NS2简介 NS2是指 Network Simulator version 2,NS(Network Simulator) 是一种针对网络技术的源代码公开的、免费的软件模拟平台,研究人员使用它可以很容易的进行网络技术的开发,而且发展到今天,它所包含的模块几乎涉及到了网络技术的所有方面。所以,NS成了目前学术界广泛使用的一种网络模拟软件。此外,NS也可作为一种辅助教学的工具,已被广泛应用在了网络技术的教学方面。因此,目前在学术界和教育界,有大量的人正在使用或试图使用NS。NS2(Network Simulator,version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP,Telnet,Web CBR和VBR;路由队列管理机制,比如Droptail,RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MAC 子层协议。NS2主要内涵NS2使用C+和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C+编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C+写出并编译的,这些对象通过映射对Otcl解释器可见。当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。NS2是一套物件导向网络模拟器,有UC Berkeley所开发完成。它能模拟真实网络系统的架构和特性,在网络架构的方面,由模拟路由器(router)、链路(link)、网络的节点(end point)等;网络特性的方面有封包的延迟(packer delay)或封包的丢弃(packet drop)等模拟。网络组件:NOde 节点 Link 链路 Queue 队列 Delay 延时 Agent 代理 Timer 定时器 Packet 分组 Application 应用程序 Trace 跟踪文件 5.2 NS2的运行界面双击图标 进入NS2的操作界面,如图6所示。在NS2操作界面中输入cd ns-allinone2.28,回车键,如图7所示。图7根据以上方法在NS2操作界面中依次输入如下命令:cd ns-2.28cd ns-tutorialcd examplesStartxwin.bat运行结果如图8所示.图 8执行完上步操作后,会形成一个新的操作界面,如图9所示。图 9 在上图所形成的操作界面中输入 ls ,会显示出文件夹ns-allinone2.28/ns-2.28/ns-tutorial/examples中的所有文件,并选择想要执行的程序,如图10所示。图 10第6章 NS2环境下网络模拟6.1网络模拟拓扑描述我们使用NS2网络模拟器建立了如图7所示的网络实验拓扑环境。S1、S2作为测量的发起方,发送包对测量从s2到Dst之间的瓶颈带宽。R0到R6作为通路上的转发节点。R0到R6节点间链路吞吐量分别为100Mbps、30Mbps、15Mbps、50Mbps、10Mbps和20Mbps,其余链路吞吐量均为100Mbps。网络模拟实验拓扑图6.2 试验程序分析#产生一个模拟的物件set ns new Simulator#针对不同的资料流定义不同的颜色,给NAM用的$ns color 1 Blue$ns color 2 Red#开启一个NAM记录档set nf open out.nam w$ns namtrace-all $nf#开启一个模拟过程记录档,用来记录封包传送的过程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#产生传输节点,s1的id为0,s2的id为1set s1 $ns nodeset s2 $ns node#产生路由器节点,r0的id为2,r1的id为3,以此类推set r0 $ns nodeset r1 $ns nodeset r2 $ns nodeset r3 $ns nodeset r4 $ns nodeset r5 $ns nodeset r6 $ns node#产生资料接收节点,d的id为9set d $ns node#描述链路的频宽,传输延迟时间,队列管理方式$ns duplex-link $s1 $r0 50Mb 10ms DropTail$ns duplex-link $s2 $r0 50Mb 10ms DropTail$ns duplex-link $r0 $r1 100Mb 20ms DropTail$ns duplex-link $r1 $r2 30Mb 20ms DropTail$ns duplex-link $r2 $r3 15Mb 20ms DropTail$ns duplex-link $r3 $r4 50Mb 20ms DropTail$ns duplex-link $r4 $r5 10Mb 20ms DropTail$ns duplex-link $r5 $r6 20Mb 20ms DropTail$ns duplex-link $r6 $d 100Mb 20ms DropTail#设定各链路之间Queue Limit为2个封包大小$ns queue-limit $r0 $r1 2#设定节点的位置,这是要给NAM用的$ns duplex-link-op $s1 $r0 orient right-down$ns duplex-link-op $s2 $r0 orient right-up$ns duplex-link-op $r0 $r1 orient right$ns duplex-link-op $r1 $r2 orient right$ns duplex-link-op $r2 $r3 orient right$ns duplex-link-op $r3 $r4 orient right$ns duplex-link-op $r4 $r5 orient right$ns duplex-link-op $r5 $r6 orient right$ns duplex-link-op $r6 $d orient right#观测路由器到资料接收点之间queue的变化,这是要给NAM用的$ns duplex-link-op $r6 $d queuePos 0.5$ns duplex-link-op $r5 $r6 queuePos 0.5$ns duplex-link-op $r4 $r5 queuePos 0.5$ns duplex-link-op $r3 $r4 queuePos 0.5$ns duplex-link-op $r2 $r3 queuePos 0.5$ns duplex-link-op $r1 $r2 queuePos 0.5$ns duplex-link-op $r0 $r1 queuePos 0.5#建立一条TCP的连线set tcp new Agent/TCP$ns attach-agent $s1 $tcpset sink new Agent/TCPSink$ns attach-agent $d $sink$ns connect $tcp $sink#在NAM中,TCP的连线会以蓝色表示$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 $s2 $udpset null new Agent/Null$ns attach-agent $d $null$ns connect $udp $null#在NAM中,UDP的连线会以红色表示$udp set fid_ 2#在UDP连线之上建立CBR应用程序set cbr new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论