首页 D1、MD1、MM1排队性能讲解

D1、MD1、MM1排队性能讲解

举报
开通vip

D1、MD1、MM1排队性能讲解通信网仿真与NS仿真器大作业 ——D/D/1、M/D/1、M/M/1排队性能分析 姓名:黄颢 学号:1011010303 班级:通信三班 2012年2月 一、总体目标 获得D/D/1、M/M/1、M/D/1等不同排队系统的吞吐量与流入负载的变化关系。 二、任务分配: 针对本次作业,将本组所有成员分成三个小组: 第一小组的主要任务是负责D/D/1、M/M/1、M/D/1等不同排队系统业务源的生成。 第二小组的主要任务是在第一小组工作的基础上对模拟环境所生成的数据进行记录并做后续的数据处理。 第三小组的主要任务是在...

D1、MD1、MM1排队性能讲解
通信网仿真与NS仿真器大作业 ——D/D/1、M/D/1、M/M/1排队性能分析 姓名:黄颢 学号:1011010303 班级:通信三班 2012年2月 一、总体目标 获得D/D/1、M/M/1、M/D/1等不同排队系统的吞吐量与流入负载的变化关系。 二、任务分配: 针对本次作业,将本组所有成员分成三个小组: 第一小组的主要任务是负责D/D/1、M/M/1、M/D/1等不同排队系统业务源的生成。 第二小组的主要任务是在第一小组工作的基础上对模拟环境所生成的数据进行记录并做后续的数据处理。 第三小组的主要任务是在前两个小组的任务完成之后,进一步讨论实验结果,并在最后撰写实验报告。 三、实验环境 Unbuntu平台下的NS、Gnuplot。 其中Ubuntu的版本为11.10、NS的版本为2.34、Gnuplot的版本为4.4。 四、D/D/1、M/D/1、M/M/1排队系统的概述 排队论(queuing theory), 或称随机服务系统理论, 是通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律,然后根据这些规律来改进服务系统的结构或重新组织被服务对象,使得服务系统既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。 排队模型的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示方法: M= 指数分布 D= 确定型分布 M/M/1:数据进入队列的概率服从泊松分布,数据离开队列的概率亦服从泊松分布,且只有一个队列。由随机过程知识可知数据到达的时间间隔服从指数分布,数据离开队列的时间间隔也是服从指数分布的,而在在队列处理能力一定的基础上,数据离开队列的时间间隔与其大小有正比关系,故可将M/M/1的生成转化为生成一个这样的节点: 1、其发送数据的时间间隔服从指数分布,在程序中设其参数为λ; 2、其发送的数据大小也服从指数分布,在程序中设其参数为μ。 D/D/1:即数据进入队列和离开队列的概率是固定的,由M/M/1的节点生成可知,D/D/1的生成转化为这样一个节点: 1、其发送数据的时间间隔固定; 2、其发送的数据大小也固定,为方便比较其间隔时间和大小也用λ和μ来表示。 M/D/1:综合M/M/1和D/D/1,M/D/1的生成可转化为这样一个节点: 1、其发送数据的时间间隔服从指数分布; 2、其发送的数据大小固定。 五、吞吐量的计算 网络的吞吐量(Throughput,TH)是网络性能的一个重要参数,是指在不丢包的情况下单位时间内可以接收的数据量,单位是字节每秒或者比特每秒。端到端的吞吐量与网络状况有很大关系,为了测试端到端的最大吞吐量,应该逐渐增大发送端的数据发送速率,然后计算接收端的吞吐量,直至吞吐量达到最大。 在分析Trace文件时,可以使用以下的计算方式计算吞吐量。 上式中,TB(i)是指第i个分组被目的节点接收时已经传输的数据总量,TR(i)是第i个包的接收时间。i>m,标识计算从第m个分组到第i个分组的吞吐量,特别的,若取m=1则是计算平均吞吐量。 六、实验步骤 1,根据实验的总体目标,确认本次实验的整体思路,书写仿真程序代码,具体程序代码内容请参考附录。 2,根据上文所述的测量吞吐量的方法,在仿真完成之后,书写awk程序对仿真结果的Trace文件进行分析,具体程序代码内容请参考附录。 3,将第2步中对Trace文件分析的结果送入Gnuplot作图,得到具体直观的结果,并对结果进行验证;当所得结论与理论不符时,修改仿真程序或者awk程序,重复上述第1、2步骤。 七、运行结果与结论 参照上述的步骤,获得以下结果: 图1描述的是D/D/1、M/M/1、M/D/1三种排队系统的吞吐量对比图,其中λ均设为30.0,μ均为33.0,横轴为时间(单位为s),纵轴为平均吞吐量(Mbit/s)。 图1-小负载情况下三种排队系统的吞吐量对比图 由图1可见这三者在输入负载不大的情况下平均吞吐量相差亦不大,其中D/D/1的吞吐量比较稳定,而M/M/1和M/D/1的吞吐量有波动性。 图2-D/D/1队列系统在μ不同情况下的吞吐量对比 图2 为三个D/D/1队列的吞吐量对比,三个D/D/1队列的参数分别为如图所示,横轴为时间(单位为s),纵轴为平均吞吐量(Mbit/s)。λ不变时,随着μ的增大,数据包大小减小,从而输入负载也就减小,由图可知随着μ的增大平均吞吐量是减小的。 图3-M/M/1队列系统在λ不同情况下的吞吐量对比 图3为三个M/M/1队列系统的吞吐量对比,三个M/M/1队列的参数分别为如图所示,横轴为时间(单位为s),纵轴为平均吞吐量(Mbit/s)。μ不变时,随着λ的增大,数据包发送时间间隔减小,从而输入负载也就增大,由图可知随着λ的增大平均吞吐量是增大的。 图4-M/M/1队列系统在λ不同情况下的吞吐量对比 图4为三个M/D/1队列系统的吞吐量的对比,三个M/M/1队列的参数分别为如图所示,横轴为时间(单位为s),纵轴为平均吞吐量(Mbit/s)。μ不变时,随着λ的增大,数据包发送时间间隔减小,从而输入负载也就增大,由图可知随着λ的增大平均吞吐量是增大的。 附录: 业务源生成程序: D/D/1、M/M/1、M/D/1队列程序的共同部分: set ns [new Simulator] set f [open queue2.tr w]  set mu1 33.0 set lambda1 30.0 set n1 [$ns node] set n2 [$ns node] set link [$ns simplex-link $n1 $n2 1Mb 1ms DropTail] $ns queue-limit $n1 $n2 50 set src1 [new Agent/UDP] $ns attach-agent $n1 $src1 set sink1 [new Agent/LossMonitor] $ns attach-agent $n2 $sink1  $ns connect $src1 $sink1  set holdtime1 0 set holdseq1 0 set holdrate1 0 D/D/1、M/M/1、M/D/1队列程序的不同部分: 针对D/D/1队列: 数据包发送 proc sendpacket1 {} { global ns src1 mu1 lambda1 set time [$ns now] $ns at [expr $time + [expr 1/$lambda1]] "sendpacket1" set bytes [expr round ([expr 100000.0/(8*$mu1)] )] $src1 send $bytes } 针对M/M/1队列: 两个指数分布的生成: set InterArrivalTime1 [new RandomVariable/Exponential] $InterArrivalTime1 set avg_ [expr 1/$lambda1] set pktSize1 [new RandomVariable/Exponential] $pktSize1 set avg_ [expr 100000.0/(8*$mu1)] 数据包的发送,将两个指数分布同数据发送间隔时间与数据大小绑定: proc sendpacket1 {} { global ns src1 InterArrivalTime1 pktSize1 set time [$ns now] $ns at [expr $time + [$InterArrivalTime1 value]] "sendpacket1" set bytes [expr round ([$pktSize1 value])] $src1 send $bytes } 针对M/D/1队列: 数据包发送,将一个指数分布(生成见M/M/1)同数据发送间隔时间绑定: proc sendpacket1 {} { global ns src1 InterArrivalTime1 mu1 set time [$ns now] $ns at [expr $time + [$InterArrivalTime1 value]] "sendpacket1" set bytes [expr round ([expr 100000.0/(8*$mu1)])] $src1 send $bytes } D/D/1、M/M/1、M/D/1队列程序的其余共同部分: #记录及计算: proc record {} { global sink1 f holdrate1      set ns [Simulator instance]      set time 0.9 set bw0 [$sink1 set bytes_] set now [$ns now]    if { $now == 0 } { puts $f "$now 0.0" } else { Puts $f "$now [expr (($bw0+$holdrate1)*8)/($now*1000000)]" $sink1 set bytes_ 0 set holdrate1 [expr $bw0 + $holdrate1] } $ns at [expr $now+$time] "record" } #启动: $ns at 0.01 "record" $ns at 0.01 "sendpacket1" $ns at 100.0 "stop" $ns at 100.01 "puts \"NS EXITING...\" ; $ns halt" #结束: proc stop {} { global ns f  close $f exit 0 } #运行: puts "Starting Simulation..." $ns run
本文档为【D1、MD1、MM1排队性能讲解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633808
暂无简介~
格式:doc
大小:32KB
软件:Word
页数:11
分类:
上传时间:2019-05-12
浏览量:46