ns2通信网仿真作业2Word下载.docx
《ns2通信网仿真作业2Word下载.docx》由会员分享,可在线阅读,更多相关《ns2通信网仿真作业2Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
(3)服务机构。
(1)输入过程:
输入即指顾客到达排队系统,可能有下列各种不同情况,当然这些情况并不是彼此排斥的。
顾客的总体(称为顾客源)的组成可能是有限的,也可能是无限的。
顾客到来的方式可能是一个一个的,也可能是成批的。
顾客相继到达的间隔时间可以是确定型的,也可以是随机型的。
顾客的到达可以是相互独立的。
就是说,以前的到达情况对以后顾客的到来没有影响,否则就是有关联的。
输入过程可以是平稳的,或称对时间是齐次的,是指描述相继到达的间隔时间分布和所含参数(如期望,方差)都是与时间无关的,否则称为非平稳的。
(2)排队规则:
顾客到达时,如所有服务台都正被占用,在这种情形下顾客可以随即离去,也可以排队等候。
前者称为即时制或损失制,排队等候的称为等待制。
等待制可以采用先到先服务规则;
后到先服务规则;
随机服务规则;
有优先权规则。
(3)服务机构:
(A)服务机构可以没有服务台(服务员),也可以有一个或多个。
(B)在有多个服务台的情形中,它们可以是平行排列、先后排列和混合排列。
(C)服务方式是,可以对单个顾客进行,也可以成批顾客进行。
(D)和输入过程一样,服务时间也分确定型和随机型。
(E)和输入过程一样,服务时间的分布我们总假定是平稳的,即分布的期望值、方差等参数都不受时间的影响。
2.2排队机模型的分类
排队模型按主要特征进行分类。
一般是以相继顾客到达系统的间隔时间分布、服务时间的分布和服务台数目为分类标志。
现代常用的分类方法是英国数学家D.G.肯德尔提出的分类方法,即用肯德尔记号X/Y/Z进行分类。
X处填写相继到达间隔时间的分布;
Y处填写服务时间分布;
Z处填写并列的服务台数目。
目前典型的排队机模型有M/M/1,M/D/1和D/D/1(其中,M表示到达过程为泊松过程或负指数分布;
D表示定长输入)。
其中,D/D/1表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型;
M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型;
M/M/1表示顾客相继到达的时间间隔为负指数分布、服务时间间隔为负指数分布和单个服务台的模型。
2.3M/M/1计算模型
2.3.1标准的M/M/1模型
标准的M/M/1计算模型是指适合下列条件的排队系统:
顾客源是无限的,顾客单个到来,相互独立,一定时间的到达数服从泊松分布,到达过程是平稳的。
单队,且对队长没有限制,先到先服务;
单服务台,各顾客的服务时间是相互独立的,服从相同的负指数分布。
此外,还假定到达间隔时间和服务时间是相互独立的。
2.3.2达到与服务的概率分布
用
表示顾客平均达到率,
表示服务台平均服务率。
对于泊松流,在时间
内,系统内有
个顾客的概率服务泊松分布:
若顾客流为泊松流时,顾客到达的时间间隔服从负指数分布:
从而可求得到达的时间间隔均值为
;
到达时间间隔方差为
在这种计算模型中,由于服务机构只有一个服务台,对一个顾客的服务时间,即忙期内两顾客离开系统的时间间隔,服从参数为
的负指数分布,
为平均服务率,即单位时间内离开系统的顾客平均数。
服务时间的均值和方差为:
综上所述,在M/M/1计算模型中,达到的顾客数服从泊松分布,服务时间服从负指数分布。
2.3.3服务系统的运行指标
1.系统中无顾客的概率
2.平均排队的顾客数
3.系统中的平均顾客数
4.顾客花在排队上的平均等待时间
5.顾客在系统中的平均逗留时间
6.顾客得不到及时服务必须排队等待的概率
7、系统中恰好有n个顾客的概率
此外,还有,平均队长:
系统状态的数学期望(顾客数的期望值)
平均排队长:
排队顾客数的期望值
逗留时间分布为
所以平均逗留时间
平均排队时间:
关于
:
服务强度,反映了服务员忙期所占的比例,同时实际上也是平均服务台数。
指标参数之间的关系:
。
忙期与闲期,
服务员平均连续忙的时间
平均连续闲的时间
2.4M/D/1计算模型
M/D/1表示顾客相继到达的间隔时间为负指数分布、确定的服务时间间隔和单个服务台的模型。
它是M/G/1计算模型(G表示一般相互独立的随机分布)的一种特殊情况,即M/G/1模型中服务时间均方差
=0的情况。
表示单位时间顾客的平均达到数;
表示单位时间内的平均服务顾客数,则一个顾客的平均服务时间为
,服务时间的均方差为
在M/G/1计算模型中,达到的顾客数服从泊松分布,服务时间为一般的服务时间。
而作为M/G/1的特殊情况M/D/1计算模型,其达到的顾客数亦服从泊松分布,但服务时间为固定时间。
M/G/1服务系统的运行指标包括:
5.系统中顾客的平均逗留时间
6.系统中顾客必须排队等待的概率
7.系统中恰好有n个顾客的概率
2.5D/D/1计算模型
D/D/1计算模型是一种表示顾客按照确定的时间间隔到达、服务时间为确定的时间间隔和单个服务台的模型,它是三个排队模型中最特殊的情况。
值得注意的是D/D/1模型一定要求服务时间为确定的时间。
在D/D/1模型中,用
,与此同时,如果顾客到达率小于服务率(
),则此时处于无需等待D/D/1队列中。
3.实验仿真结果图
3.1几种排队模型主要的仿真程序
3.1.1M/M/1仿真程序
在M/M/1仿真程序中,我们假设包的到达速率是1packet/s,到达间隔时间服从指数分布,链路的处理速度恒定,定为44000bits/s,包的大小服从指数分布(这样可以代替服务时间的指数分布),分布的参数为44000/(8*u),其中u=1.1packets/s(模拟服务器处理速度)此时参数大致已经设定,贴源码如下:
setns[newSimulator]
settf[openout.trw]
$nstrace-all$tf
setlambda
1
setmu
1.1
setn1
[$nsnode]
setn2[$nsnode]
setlink[$nssimplex-link$n1
$n244kb0msDropTail]
$nsqueue-limit$n1
$n2
100000
setInterArrivalTime[newRandomVariable/Exponential]
$InterArrivalTimesetavg_[expr
1/$lambda]
setpktSize[newRandomVariable/Exponential]
$pktSizesetavg_[expr44000.0/(8*$mu)]
#将n1定义为src
setsrc[newAgent/UDP]
$nsattach-agent$n1$src
#监听队列
setqmon[$nsmonitor-queue$n1
$n2[openqm.outw]0.1]
$linkqueue-sample-timeout
#定义队列中包的个数,初始化为0
setpktAmount0
procfinish{}{
globalnstf
$nsflush-trace
close$tf
exit0
}
procsendpacket{}{
globalnssrcInterArrivalTimepktSizepktAmount
settime[$nsnow]
settempTime[$InterArrivalTimevalue]
$nsat[expr$time+$tempTime]"
sendpacket"
settempSize[exprround([$pktSizevalue])]
setbytes$tempSize
#在处理完传进的包后,删除掉一个包,delpacket在下面定义,这里来记录包个数有点问题,这里做法是在当前时刻的$tempSize*8/44000处理完进来包的时间后将包的个数减少1,忽略了等待的过程
$nsat[expr$time+[expr$tempSize*8/44000]]"
delpacket"
#puts"
$time$bytes"
$srcsend$bytes
#发送后将包数加一
setpktAmount[expr$pktAmount+1]
puts"
$time$pktAmount"
}
procdelpacket{}{
globalpktAmount
setpktAmount[expr$pktAmount-1]
}
setsink[newAgent/Null]
$nsattach-agent$n2$sink
$nsconnect$src$sink
$nsat0.0001
"
$nsat
1000.0"
finish"
$nsrun
3.1.2M/D/1仿真程序
M/D/1的仿真程序是将M/M/1中的
$pktSizesetavg_[expr44000.0/(8*$mu)]代码改成setpktSize5000即可。
3.1.3D/D/1仿真程序
setns[newSimulator]
settracefile1[openout.trw]
$nstrace-all$tracefile1
#OpentheNAMtracefile
setnamfile[openout.namw]
$nsnamtrace-all$namfile
#Definea'
finish'
procedure
globalnstracefile1namfile
$nsflush-trace
close$tracefile1
close$namfile
execnamout.n