D1MD1MM1排队性能分析Word文件下载.docx
- 文档编号:18413132
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:9
- 大小:130.96KB
D1MD1MM1排队性能分析Word文件下载.docx
《D1MD1MM1排队性能分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《D1MD1MM1排队性能分析Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
针对本次作业,将本组所有成员分成三个小组:
第一小组的主要任务是负责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排队系统的概述
排队论(queuingtheory),或称随机服务系统理论,是通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律,然后根据这些规律来改进服务系统的结构或重新组织被服务对象,使得服务系统既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。
排队模型的表示方法:
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队列程序的共同部分:
setns[newSimulator]
setf[openqueue2.trw]
setmu133.0
setlambda130.0
setn1[$nsnode]
setn2[$nsnode]
setlink[$nssimplex-link$n1$n21Mb1msDropTail]
$nsqueue-limit$n1$n250
setsrc1[newAgent/UDP]
$nsattach-agent$n1$src1
setsink1[newAgent/LossMonitor]
$nsattach-agent$n2$sink1
$nsconnect$src1$sink1
setholdtime10
setholdseq10
setholdrate10
D/D/1、M/M/1、M/D/1队列程序的不同部分:
针对D/D/1队列:
数据包发送
procsendpacket1{}{
globalnssrc1mu1lambda1
settime[$nsnow]
$nsat[expr$time+[expr1/$lambda1]]"
sendpacket1"
setbytes[exprround([expr100000.0/(8*$mu1)])]
$src1send$bytes
}
针对M/M/1队列:
两个指数分布的生成:
setInterArrivalTime1[newRandomVariable/Exponential]
$InterArrivalTime1setavg_[expr1/$lambda1]
setpktSize1[newRandomVariable/Exponential]
$pktSize1setavg_[expr100000.0/(8*$mu1)]
数据包的发送,将两个指数分布同数据发送间隔时间与数据大小绑定:
globalnssrc1InterArrivalTime1pktSize1
$nsat[expr$time+[$InterArrivalTime1value]]"
setbytes[exprround([$pktSize1value])]
针对M/D/1队列:
数据包发送,将一个指数分布(生成见M/M/1)同数据发送间隔时间绑定:
globalnssrc1InterArrivalTime1mu1
setbytes[exprround([expr100000.0/(8*$mu1)])]
D/D/1、M/M/1、M/D/1队列程序的其余共同部分:
#记录及计算:
procrecord{}{
globalsink1fholdrate1
setns[Simulatorinstance]
settime0.9
setbw0[$sink1setbytes_]
setnow[$nsnow]
if{$now==0}{
puts$f"
$now0.0"
}else{
Puts$f"
$now[expr(($bw0+$holdrate1)*8)/($now*1000000)]"
$sink1setbytes_0
setholdrate1[expr$bw0+$holdrate1]
}
$nsat[expr$now+$time]"
record"
#启动:
$nsat0.01"
$nsat100.0"
stop"
$nsat100.01"
puts\"
NSEXITING...\"
;
$nshalt"
#结束:
procstop{}{
globalnsf
close$f
exit0
#运行:
puts"
StartingSimulation..."
$nsrun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- D1MD1MM1 排队 性能 分析