网络性能的仿真+ns2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验一:网络性能的仿真一、实验要求1)对64个计算机结点,每个计算机采用若干100Mbps集线器(HUB)的方式连接到一台服务器上。采用NS2仿真软件,对于以上的具体环节进行网络性能的仿真,给出网络的吞吐量,丢包率,总时延,抖动率等参数的仿真曲线,并对结果进行分析。2)将以上环境中的集线器(HUB)换成交换机(switch),给出网络的信道利用率,吞吐量,传输时延,排队延迟等参数的仿真曲线,并对结果进行分析。二、实验目的通过本次实验的完成,首先能够学会在Ubuntu环境下安装搭建NS2运行的环境。其次对于tcl语言有了更加全面的了解。通过对具体环境的网络环境进行仿真,可以加深对网络的信道利用率,吞吐量,传输时延,排队延迟等参数的计算及了解。最后通过仿真环境中集线器(HUB)和交换机(Switch)之间的仿真的区别,加深对HUB和交换机之间差别的理解。三、实验原理1、NS2(NetworkSimulatorversion2),NS(NetworkSimulator)是一种针对网络技术的源代码公开的,免费的软件模拟平台。计算机网络是一个相当复杂的系统,包含了各种通信协议和网络技术,而网络仿真是网路通信技术研究的重要手段之一,网络仿真是指采用计算机软件对网络协议,网络拓扑,网络性能进行模拟分析的一种研究手段。NS2是一种面向对象的网络仿真器,本质是一个离散事件模拟器,它可以仿真各种不同的IP网,实现一些网络传输协议,比如TCP和UDP,还包括业务源流量产生器,比如FTP,CBR等。NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。NS2软件仿真出的nam图界面如图1所示:图1nam界面NS2仿真软件生成的trace文件如图2所示:图2NS2仿真生成的trace文件每一行记录的格式如表1所示:eventtimeFromnodeTonodePkttypepktsizeflagsfidSrcaddrDstaddrpktid表1trace文件每一行的格式解释如下:event:时间描述符,一共有4个,分别为人r,+,-,d其中r(received)表示数据包被to_node接收,+(enqueued)表示数据包进入from_node的队列,-(dequeued)表示数据包离开(from_node)的队列,d(dropped)表示数据包被from_node丢弃。time:时间发生的时间。From_node/to_noed:事件发生的起始结点。Pkt_type:数据报的类型。Pkt_size:数据包的大小。Flags:数据包的标志字段。Fid:流标识,标明该数据包属于哪一个数据流。Src_addr/dst_addr:数据包的源地址和目的地址。Seq_num:数据包的序列号。Pkt_id:数据包的唯一标识。2、集线器(HUB)是计算机网络中连接多个计算机或其他设备的连接设备,是对网络进行集中管理的最小单元。英文HUB就是中心的意思,像树的主干一样,它是各分支的汇集点。许多种类型的网络都依靠集线器来连接各种设备并把数据分发到各个网段。HUB基本上是一个共享设备,其实质是一个中继器,主要提供信号放大和中转的功能,它把一个端口接收的全部信号向所有端口分发出去。集线器有多种类型,各个种类具有特定的功能、提供不同等级的服务。依据总线带宽的不同,HUB分为10M、100M和10M/100M自适应三种;根据端口数目的不同主要有8口、16口和24口几种。交换机(Switch),它是集线器的升级换代产品,从外观上来看的话,它与集线器基本上没有多大区别,都是带有多个端口的长方形盒状体。交换机是按照通信两端传输信息的需要,用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称。广义的交换机就是一种在通信系统中完成信息交换功能的设备。交换机除了能够连接同种类型的网络之外,还可以在不同类型的网络(如以太网和快速以太网)之间起到互连作用。如今许多交换机都能够提供支持快速以太网或FDDI等的高速连接端口,用于连接网络中的其它交换机或者为带宽占用量大的关键服务器提供附加带宽。它是一个网络设备,拥有路由器的一部分功能,它可以决定接收到的数据向什么地方发送,它的速度比路由器要快。交换机和集线器的主要区别在于以下几方面:1)集线器属于OSI的第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。也就意味着集线器只是对数据的传输起到同步、放大和整形的作用,对数据传输中的短帧、碎片等无法进行有效的处理,不能保证数据传输的完整性和正确性;而交换机不但可以对数据的传输做到同步、放大和整形,而且可以过滤短帧、碎片等。2)集线器的工作机理是广播(broadcast),无论是从哪一个端口接收到什么类型的信包,都以广播的形式将信包发送给其余的所有端口,由连接在这些端口上的网卡(NIC)判断处理这些信息,符合的留下处理,否则丢弃掉,这样很容易产生广播风暴,当网络较大时网络性能会受到很大的影响。从它的工作状态看,HUB的执行效率比较低(将信包发送到了所有端口),安全性差(所有的网卡都能接收到,只是非目的地网卡丢弃了信包)。而且一次只能处理一个信包,在多个端口同时出现信包的时候就出现碰撞,信包按照串行进行处理,不适合用于较大的网络主干中。交换机的工作就完全不同,它通过分析Ethernet包的包头信息(其中包含了原MAC地址、目标MAC地址、信息长度等),取得目标MAC地址后,查找交换机中存储的地址对照表(MAC地址对应的端口),确认具有此MAC地址的网卡连接在哪个端口上,然后仅将信包送到对应端口,有效的有效的抑制广播风暴的产生。3)集线器不管有多少个端口,所有端口都是共享一条带宽,在同一时刻只能有二个端口传送数据,其他端口只能等待,同时集线器只能工作在半双工模式下;而对于交换机而言,每个端口都有一条独占的带宽,这样在速率上对于每个端口来说有了根本的保障。当二个端口工作时并不影响其他端口的工作,同时交换机不但可以工作在半双工模式下而且可以工作在全双工模式下。4)集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。3、网络性能分析包括对信道利用率,吞吐量,传输时延,排队延迟等参数的分析。信道利用率公式:)12(1121000AaTNTTTSRav0Ta参数a是总线的单程传播时延与帧的发送时延之比。A为某个站发送成功的概率。网络吞吐量是指在某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽。即在没有帧丢失的情况下,设备能够接受的最大速率。网络吞吐量可以帮组寻找网络路径中的瓶颈。本次实验中所指的吞吐量为平均吞吐量,定义为单位时间内目的节点接收到的比特数。端到端时延(end-to-enddelay)是指IP数据包从源结点发送到目的结点所需的时间。计算公式为接收数据包的时间-源端发送数据包的时间。平均时延的计算公式为呗接收数据包的时延之和/被接收数据包的个数。丢包率的计算公式为丢失的数据包个数、总共发出的数据包个数。抖动率就是延迟时间变化量,由于网络的流量随时都在变化,当流量大的时候,许多封包就必须在结点的队列中等待被传送,因此每个封包从传送端到目的地端的时间也不一定会相同,而这个不同的差异就是所谓的抖动率。抖动率越大,则表示网络越不稳定。四、仿真过程本次实验中,队列管理机制采用双向连接,分别在交换机和集线器两种不同的组网条件下,进行仿真实验。首先是1对结点分别以2、4、8Mbp的速率双向收发UDP数据。实验中共产生三种不同速率的cbr数据流,分别为cbr1,cbr2,cnr3,速率分别为2、4、8Mbp。实现双向收发,则需建立两条UDP通信协议,用起始和结束时间来控制数据流,此时只控制一对计算机结点进行通信。具体代码实现如下:#在第10秒改变时的数据流cbr1setcbr1($i)[newApplication/Traffic/CBR]$cbr1($i)attach-agent$udp($i)$cbr1($i)settype_CBR$cbr1($i)setpacket_size_1000$cbr1($i)setrate_2mb$cbr1($i)setrandom_false#在第20秒改变时的数据流cbr2setcbr2($i)[newApplication/Traffic/CBR]$cbr2($i)attach-agent$udp($i)$cbr2($i)settype_CBR$cbr2($i)setpacket_size_1000$cbr2($i)setrate_4mb$cbr2($i)setrandom_false#在第30秒改变时的数据流cbr3setcbr3($i)[newApplication/Traffic/CBR]$cbr3($i)attach-agent$udp($i)$cbr3($i)settype_CBR$cbr3($i)setpacket_size_4000$cbr3($i)setrate_8mb$cbr3($i)setrandom_falsefor{seti0}{$i1}{incri}{$nsat0.0$cbr1($i)start$nsat0.0$cbr1([expr$i+34])start$nsat1.0$cbr1($i)stop$nsat1.0$cbr1([expr$i+34])stop}for{seti0}{$i1}{incri}{$nsat1.1$cbr2($i)start$nsat1.1$cbr2([expr$i+34])start$nsat2.1$cbr2($i)stop$nsat2.1$cbr2([expr$i+34])stop}for{seti0}{$i1}{incri}{$nsat2.2$cbr3($i)start$nsat2.2$cbr3([expr$i+34])start$nsat3.2$cbr3($i)stop$nsat3.2$cbr3([expr$i+34])stop}同理2对结点,4对结点一直到32对结点之间分别以2、4、8Mbp速率双向收发UDP数据,相同的思路只需要在一对结点通信的基础上修改通信的结点的数量即可。吞吐量是用awk语言来实现。awk从数据文件上读取基本单元。执行awk时会反复进行以下四个步骤:(1)自动从指定的数据文件中读取一笔数据。(2)自动更新(Update)相关的内建变量的值。(3)逐次执行程序中所有的”Pattern{Actions}”指令。(4)当执行完程序中所有的”Pattern{Actions}”时,若数据文件中还有未读取的数据,则反复执行步骤(1)和步骤(4)。(5)做完数值分析后,把数值的结果画成图形呈现出来,本次实验采用的绘图工具是gnuplot。五、实验仿真结果及分析一对结点双向分别以2、4、8Mbp速率双向收发UDP仿真结果如图3nam图所示:其中结点32、33是一对交换机。图3一对节点2M速率双向收发UDP图4一对节点4M速率双向收发UDP图5一对节点8M速率双向收发UDP图6一对

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功