Omnet++排队模型仿真实验

合集下载

排队论问题实验报告(3篇)

排队论问题实验报告(3篇)

第1篇一、实验背景排队论是运筹学的一个重要分支,主要研究在服务系统中顾客的等待时间和服务效率等问题。

在现实生活中,排队现象无处不在,如银行、医院、超市、餐厅等。

通过对排队问题的研究,可以帮助我们优化服务系统,提高顾客满意度,降低运营成本。

本实验旨在通过模拟排队系统,探究排队论在实际问题中的应用。

二、实验目的1. 理解排队论的基本概念和原理。

2. 掌握排队模型的建立方法。

3. 熟悉排队系统参数的估计和调整。

4. 分析排队系统的性能指标,如平均等待时间、服务效率等。

5. 培养运用排队论解决实际问题的能力。

三、实验内容1. 建立排队模型本实验以银行排队系统为例,建立M/M/1排队模型。

该模型假设顾客到达服从泊松分布,服务时间服从负指数分布,服务台数量为1。

2. 参数估计根据实际数据,估计排队系统参数。

假设顾客到达率为λ=2(人/分钟),服务时间为μ=5(分钟/人)。

3. 模拟排队系统使用计算机模拟排队系统,记录顾客到达、等待、服务、离开等过程。

4. 性能分析分析排队系统的性能指标,如平均等待时间、服务效率、顾客满意度等。

四、实验步骤1. 初始化参数设置顾客到达率λ、服务时间μ、服务台数量n。

2. 生成顾客到达序列根据泊松分布生成顾客到达序列。

3. 模拟排队过程(1)当服务台空闲时,允许顾客进入队列。

(2)当顾客进入队列后,开始计时,等待服务。

(3)当服务台服务完毕,顾客离开,开始下一个顾客的服务。

4. 统计性能指标记录顾客等待时间、服务时间、顾客满意度等数据。

5. 分析结果根据实验数据,分析排队系统的性能,并提出优化建议。

五、实验结果与分析1. 平均等待时间根据模拟结果,平均等待时间为2.5分钟。

2. 服务效率服务效率为80%,即每分钟处理0.8个顾客。

3. 顾客满意度根据模拟结果,顾客满意度为85%。

4. 优化建议(1)增加服务台数量,提高服务效率。

(2)优化顾客到达率,降低顾客等待时间。

(3)调整服务时间,缩短顾客等待时间。

基于OMNeT的Ad+hoc网络仿真

基于OMNeT的Ad+hoc网络仿真

摘要本文主要工作是介绍OMNeT++仿真平台,并基于OMNeT++搭建Ad hoc网络环境来进行仿真试验。

首先是详细介绍OMNeT++仿真器的构成原理,尤其是对其NED语言和编程语法等做深入讲解,同时也对OMNeT++的移动框架(MF,Mobility Framework)组成原理进行了系统的讲解,因为它为我们提供了仿真无线移动网络所需各种基本模块,把我们从设计底层的模块结构和拓扑结构中解放出来,让我们能够把精力放在具体协议的实现上,加快了搭建仿真网络的过程,最后是进行Ad hoc 网络仿真环境的搭建,并在该环境中对在计算机网络中常用来检测网络连通性的Ping 命令进行了仿真试验,并对抽取所需的数据进行分析。

关键字网络仿真OMNeT++ Ad hoc网络AbstractThe main work of this thesis introduces the OMNeT++, and organize a Ad hoc network for the simulation test based on OMNeT++. Firstly, it introduces the structure of OMNeT++ in detail, especially its NED language and the syntax of program, as well as OMNeT++’s Mobile Framework (MF, Mobility Framework) principle, because it provides with basic modules for wireless and mobile network simulation, and free from the designing of the bottom of the module’s structure and topological, so that , it can put more efforts on the achievement of the realization of the protocol, speed up the simulation process. At last, it organizes an Ad hoc network, and simulate the Ping instruction, which is always used in the computer network to detect the network’s connectivity, at the same time, it collects the required data for analysis.Key words Network Simulation OMNeT + + Ad hoc Network目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题背景与意义 (1)1.2 本文的主要工作 (2)1.3 本文的组织结构 (3)第2章OMNeT++基础 (4)2.1 OMNeT++简介 (4)2.2 OMNET++框架 (6)2.2.1 OMNeT++组成 (6)2.2.2 OMNeT++框架 (7)2.3 OMNeT++语法 (8)2.3.1 NED语言 (8)2.3.2 简单模块算法实现和消息传递 (11)2.4 MF移动框架 (14)2.4.1 主机模型 (14)2.4.2 信道控制模块 (16)2.4.3 基本概念 (18)第3章Ad hoc网络基础 (22)3.1 Ad Hoc网络的概念 (22)3.2 Ad hoc网络特点 (23)3.3 Ad hoc网络协议栈 (25)3.4 Ad hoc网络的应用领域 (26)第4章Ad hoc网络仿真的实现 (29)4.1 仿真试验 (29)4.1.1 NIC模块 (30)4.1.2 移动模块 (32)4.1.3 网络层模块 (32)4.1.4 信道控制模块 (35)4.1.5 应用层模块 (36)4.2 仿真结果分析 (37)4.2.1 丢包分析 (37)4.2.2 往返时延分析 (38)4.2.3 数据分析 (38)结论 (39)致谢 (40)参考文献 (41)附录1 外文文献译文 (43)附录2 外文文献原文 (48)第1章绪论1.1 课题背景与意义由于研究方向的不同,许多领域,并不太适合采用实地试验的方式,或者是为了节省时间、资金等目的,最好采用仿真的方式。

OmNeT++手册

OmNeT++手册

• app:App; • routing:Routing; • queue[sizeof(port)]:Queue; • routing.localOut-->app.in; • routing.localIn<--app.out; • for i=0..sizeof(port)-1{
• • • routing.out[i]-->queue[i].in; routing.in[i]<--queue[i].out; queue[i].line<-->port[i];
OMNeT++模型
• OMNeT++模型是由模块组成的,模块之间通过消息传递方式进行通信。
• OMNeT++的整个模型称为network • 模型结构通过NED语言描述 • Messages代表网络中的帧或者包、排队 网络中的工作或者客户 • Gates是模块的输入输出接口 • Connection(link)用于对物理链路建模, • channel具有参数:数据率(data rate)、传播延时(propagation delay)、误码率(bit error rate)、误包率(packet error rate), connection支持这些参数 • Module也有参数,在NED文件中指定,或者在配置文件omnetpp.ini中 指定
• parameters:
• string protocol; // protocol to use: "UDP" / "IP" / "ICMP" / ... • int destAddress; // destination address • volatile double sendInterval @unit(s) = default(exponential(1s));// time between generating packets • volatile int packetLength @unit(byte) = default(100B);// length of one packet • volatile int timeToLive = default(32);// maximum number of network hops to survive

基于OMNeT的INET框架消息传递研究

基于OMNeT的INET框架消息传递研究

基于O MN e T++ 的INET 框架消息传递研究唐敏(中国直升机设计研究所, 江西景德镇333001)摘要:文章在研究O M N e T++平台的基础上,对仿真模型I N E T 框架进行了深入剖析,对在O M N e T++平台上使用I N E T 进行网络协议层之间的信息传输进行了剖析与研究,同时文章还就I N E T 框架中新协议扩展的方法作了初步讨论,为进一步的研究工作提供了前提条件。

关键词:O M N e T++;I N E T;消息传递;协议扩展;数据封装中图分类号:TP393文献标识码:AR esea r c h on INE T Message Tr a n s m i ss i on Based on O MN e T++T A N G M i n(China Helicopter Research and Development Institute,Jiangx i 333001,China)A b s t r act:Based on the research on O M N eT + + pl a t f orm,th i s a rt i c l e a n a l y s i s the s i mu l a t i on model I N ET f r a m e work in- depth, m ea nwh il e,the tr a n s m i ss i on i n f orm a t i on among the network protocol l a y e r in O M N eT + + pl a t f orm i s a l s o been studied in th i s a rt i c l e. In a ddit i on,we a l s o did pr e li m i n a ry di s cu ss i on s on the new protocol e xt e n s i on with I N ET f r a m e work, which prov i de t he pr e condit i on for f urth e r research work .K e y wor ds: O M N e T++;I N ET;message tr a n s m i ss i on;protoc a l e xt e n s i on;dat a e nc a psu l a t i on网络仿真是使用计算机技术构造拓扑结构,模拟网络协议的工作过程。

排队模型与仿真

排队模型与仿真

Standard Deviation mean 0 (1 / k) (Mean) (1 / 2) (Mean) (1 / 2) (Mean) (1 / 22) (Mean) (1 / 4) (Mean)
13
排队模型的符号表示
排队模型通常用下列形式来表示:
服务时间的分布
—/—/—
服务台数目
到达间隔时间的分布
17
Internal Service System 内部服务系统
系统类型
顾客
服务台
秘书服务
雇员
秘书
复印服务
雇员
复印机
计算机编程服务 雇员
程序员
大型计算机
雇员
计算机
急救中心
雇员
护士
传真服务
雇员
传真机
物料处理系统
货物
物料处理单元
维护系统
设备
维修工人
质检站
物件
质检员
18
Transportation Service System 运输服务系统
用于表示可能分布的符号是: M = Exponential distribution (Markovian) D = Degenerate distribution (constant times) Ek = Erlang distribution (shape parameter = k) GI = General independent interarrival-time distribution (any distribution) G = General service-time distribution (any arbitrary distribution)
当顾客是提供服务的组织(内部服务系统)的内部顾客时,第一个 测度比较重要.在这种情况下,

Omnet停等式ARQ模型仿真实验

Omnet停等式ARQ模型仿真实验

实验二Omnet++停等式ARQ模型仿真实验一.实验目的1.熟悉omnet++软件使用。

2.对停等式ARQ模型进行更形象的分析与学习,了解此协议的思想。

二.实验工具Omnet++软件三.实验步骤1.用omnet++软件,创建一个arq.ned文件,编写代码,建立两个具有收发功能的节点并连接,传输延迟设置为100ms。

代码如下:simplesender{parameters:@display("i=block/process");gates:inputin;outputout;}simplereciever{parameters:@display("i=block/process");gates:inputin;outputout;}networkArq{submodules:sender:sender{parameters:@display("i=,cyan");}reciever:reciever{parameters:@display("i=,gold");}connections:sender.out-->{delay=100ms;}-->reciever.in;sender.in<--{delay=100ms;}<--reciever.out;}图形如下图所示:2.对停等式ARQ协议进行编程实现。

在发送端设置定时器,当超出一定时间未收到接收端返回的ACK就认为所发message丢失,再次发送相同message。

按时接到相对应的ACK后,定时器重启。

模块声明及初始化代码如下:classsender:publiccSimpleModule{private:simtime_ttimeout;//timeoutcMessage*timeoutEvent;//holdspointertothetimeoutself-messageintseq;//messagesequencenumbercMessage*message;//messagethathastobere-sentontimeoutpublic:sender();virtual~sender();protected:virtualcMessage*generateNewMessage();virtualvoidsendCopyOf(cMessage*msg);virtualvoidinitialize();virtualvoidhandleMessage(cMessage*msg);};Define_Module(sender);sender::sender(){timeoutEvent=message=NULL;}sender::~sender(){cancelAndDelete(timeoutEvent);deletemessage;}voidsender::initialize(){//Initializevariables.seq=0;timeout=1.0;timeoutEvent=newcMessage("timeoutEvent");//Generateandsendinitialmessage.EV<<"Sendinginitialmessage\n";message=generateNewMessage();sendCopyOf(message);scheduleAt(simTime()+timeout,timeoutEvent);}我们在设定发送端sender的时候,考虑到如果接收端reciever没有接到,sender的上一个message不能被清除,则规定接到相对应的ACK后,将刚刚发送的message清除,否则重发。

多服务台排队系统的仿真

多服务台排队系统的仿真

实验3---多服务台排队系统的仿真姓名:学号:一、目标任务已知一个系统有N个服务员,能力相等,服务时间服从指数分布。

顾客的到达时间间隔服从指数分布。

用Monte-Carlo仿真,分别求按下列方案的总体平均排队时间:① M|M|N。

② N个单通道系统并列,按1/N概率分裂到达流。

③ N个单通道并列,挑选最短的队。

要求:①给出程序设计的过程。

②如果采用固定的N,则要求N>2。

③至少取ρ=0.3和ρ=0.7两种强度运行程序。

④对结果进行分析。

二、编程语言Matlab三、关键代码方案一:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务间隔server_id = mod(client_num, N); % 按1..N的顺序循环排入服务员窗口if server_id ==0server_id = N;endif server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间和总体平均等待时间线状图x = 1:100;%plot(x, avg_wait_time, x, mean_avg_wait_time);scatter(x, avg_wait_time, '.');方案二:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔server_id = randi([1 N]); % 按1/N的概率排入服务员窗口if server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间散点图x = 1:100;scatter(x, avg_wait_time, '.');方案三:N = 3; % 服务员人数r = 6; % 顾客到达流强度u = 20; % 服务员服务强度T = 1000; % 仿真运行时间avg_wait_time = []; % 平均等待时间for i=1:100% 模拟排队函数server_time = [0.0, 0.0, 0.0]; % 用来保存服务员下一空闲时间time = 0; % 绝对时钟,初始为0client_num = 0; % 顾客总数,初始为0CRTime = 0; % 顾客到达时间间隔ServeTime = 0; % 顾客服务时间server_id = 0; % 当前进入排队窗口的服务员编号total_wait_time = 0;% 系统中到达顾客的总等待时间while 1CRTime = exprnd(1/r); % 按指数分布产生顾客到达时间间隔time = time + CRTime; % 更新系统的绝对时钟if time > Tbreak;endclient_num = client_num + 1; % 顾客数加1ServeTime = exprnd(1/u); % 按指数分布产生顾客服务时间间隔temp = min(server_time); % 寻找排队时间最短的服务员窗口[x, y] = find(temp == min(min(server_time)));server_id = y; % 按队伍最短排入服务员窗口if server_time(1, server_id) <= time % 如果当前server_id号服务员空闲,则直接接收服务server_time(1, server_id) = time + ServeTime; % 服务员下一空闲时间为当前绝对时钟加上当前服务时间else % 否则所有服务员都在忙碌,顾客要排队等候total_wait_time = total_wait_time + server_time(1, server_id) - time; % 顾客排队等候时间为当前服务员下一空闲时间减去绝对时钟server_time(1, server_id) = server_time(1, server_id) + ServeTime;endendavg_wait_time = [avg_wait_time, total_wait_time/client_num];end% 计算平均等待时间mean_avg_wait_time = mean(avg_wait_time);fprintf('ρ=%2.1f平均等待时间%6.5f\n', r/u, mean_avg_wait_time); % 打印平均等待时间% 绘制每次仿真的平均等待时间散点图x = 1:100;scatter(x, avg_wait_time, '.');四、实验结果与分析方案一:图1 方案一仿真的平均等待时间散点图图2 方案一平均等待时间M|M|N1. 输入参数:服务员人数N,顾客到达流强度r,服务员服务强度u,仿真运行时间T;2. 各变量初始值置0:绝对时钟time,服务员下一空闲时刻数组server_time[](其中按顺序保存每一个服务员的下一空闲时刻),顾客总数client_num,顾客到达时间间隔CRTime,顾客服务时间ServeTime,当前进入排队窗口的服务员编号server_id,系统中顾客总等待时间total_wait_time;3. 按照指数分布产生下一顾客到达的时间间隔CRTime,time+=CRTime。

OPNET网络仿真实验设计

OPNET网络仿真实验设计

OPNET网络仿真试验设计网络仿真是一种以计算机技术为基础的试验方法,通过对网络的建模和模拟,来模拟真实网络环境中的各种状况和问题。

网络仿真试验设计使用OPNET软件,通过搭建网络拓扑结构、配置网络参数以及设定仿真试验场景,来探究网络性能和应用性能,为网络设计和优化提供指导。

一、试验背景和目标网络仿真试验是在真实网络上进行操纵性试验的一种方法,它通过仿真试验,给出网络资源的利用率以及响应速度等性能参数,援助设计者了解网络的寻址和路由机制以及各种网络规划的可行性。

本试验设计旨在通过OPNET软件进行网络仿真试验,深度了解和精通网络性能分析和网络性能优化方法,提高网络设计和管理的能力。

二、试验步骤和方法1. 确定仿真场景:依据试验目标,选择合适的仿真场景,例如数据中心网络、无线传感器网络等。

确定仿真场景后,依据场景需求设计网络拓扑结构。

2. 设计网络拓扑结构:使用OPNET软件中的拓扑工具,依据试验需求搭建网络拓扑结构,包括网络节点、链路、路由器等。

3. 配置网络参数:依据仿真试验需求,设置各个节点的属性和参数,例如传输速率、延迟、丢包率等。

4. 设定应用场景:依据试验目标,设定合适的应用场景和流量模式,例如FTP、HTTP、视频传输等。

设置应用场景时,可以指定流量起始节点、传输数据量、传输时间等参数。

5. 运行仿真试验:对设计好的网络拓扑和参数进行仿真试验,观察和记录仿真结果,并进行性能分析。

可以通过监测网络性能指标、观察系统运行状况等方式,评估网络的性能和可靠性。

6. 性能分析和优化:依据试验结果,分析网络的性能问题,并提出相应的性能优化方案。

可以针对网络瓶颈、时延、拥塞等问题进行优化措施的设计和实施。

7. 试验结果和总结:通过对仿真试验的结果进行总结和分析,得出试验结论。

可以依据试验结果来评估网络设计和优化方案的有效性,并提出改进意见。

三、试验设计的特点和意义1. 省时省力:相比于在真实网络环境中进行试验,网络仿真试验具有明显的省时省力的优势。

OMnet++初学者教程第二节运行仿真

OMnet++初学者教程第二节运行仿真

OMnet++初学者教程第⼆节运⾏仿真2.1启动仿真程序完成上述步骤后,可以通过选择%omnetpp.ini⽂档(在编辑器区域或_Project Explorer中_)并按“_运⾏”_按钮来启动仿真。

IDE将⾃动构建您的项⽬。

如果存在编译错误,则需要纠正这些错误,直到获得⽆错误的编译和链接。

您可以通过从菜单中选择_Project-> Build All_或_按Ctrl + B_来⼿动触发构建。

笔记如果你想建⽴在命令⾏中的可执⾏模拟,创建⼀个_Makefile中_使⽤opp_makemake命令,然后输⼊make要⽣成项⽬。

它将产⽣⼀个可执⾏⽂件,可以通过输⼊来运⾏./tictoc。

2.2运⾏模拟成功构建并启动仿真后,您应该会看到⼀个新的GUI窗⼝,类似于下⾯的截图。

该窗⼝属于_Qtenv_,它是OMNeT ++仿真运⾏时GUI。

您还应该可以再主体区域中看到以图形⽅式显⽰的包含_tic_和_toc_的⽹络。

按下⼯具栏上的“_RUN”_按钮开始仿真。

您应该看到的是_tic_和_toc_正在彼此交换消息。

主窗⼝⼯具栏显⽰当前模拟时间。

这是虚拟时间,与程序执⾏的实际(或挂钟)时间⽆关。

实际上,在⼀秒钟内可以仿真多少秒,在很⼤程度上取决于硬件的速度,甚⾄更多地取决于仿真模型本⾝的性质和复杂性。

请注意,节点处理消息所需的模拟时间为零。

在此模型中消耗仿真时间的是连接的传播延迟。

您可以放慢动画的播放速度,也可以使⽤图形窗⼝顶部的滑块来加快动画的播放速度。

您可以通过以下⽅式停⽌仿真:按下F8(相当于⼯具栏上的“停⽌”按钮),单步执⾏(F4),使⽤(F5)动画或不使⽤(F6)动画运⾏它。

F7(快速模式)完全关闭跟踪功能,以实现最⼤速度。

注意主窗⼝状态栏上的事件/秒和⾟秒/秒标尺(仅当模拟以快速或快速模式运⾏时才可见)。

练习通过多次运⾏仿真来探索GUI。

尝试运⾏,运⾏直到,_重建⽹络_以及其他功能。

您可以通过单击其_关闭_图标或选择_File-> Exit退出_模拟程序。

MM1排队系统仿真matlab实验报告材料

MM1排队系统仿真matlab实验报告材料

M/M/1排队系统实验报告一、实验目的本次实验要现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。

二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。

1、 顾客到达模式设到达过程是一个参数为λ的Poisson 过程,则长度为t 的时间到达k 个呼叫的概率 服从Poisson 分布,即e t kk k t t p λλ-=!)()(,⋅⋅⋅⋅⋅⋅⋅⋅⋅=,2,1,0k ,其中λ>0为一常数,表示了平均到达率或Poisson 呼叫流的强度。

2、 服务模式设每个呼叫的持续时间为i τ,服从参数为μ的负指数分布,即其分布函数为{}1,0t P X t e t μ-<=-≥3、 服务规则先进先服务的规则(FIFO )4、 理论分析结果在该M/M/1系统中,设λρμ=,则稳态时的平均等待队长为1Q ρλρ=-,顾客的平均等待时间为T ρμλ=-。

三、实验容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO 方式服务。

四、采用的语言MatLab 语言源代码:clear;clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal='); %仿真顾客总数;Lambda=0.4; %到达率Lambda;Mu=0.9; %服务率Mu;t_Arrive=zeros(1,SimTotal);t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;for i=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;for i=2:SimTotalif t_Leave(i-1)<t_Arrive(i)t_Leave(i)=t_Arrive(i)+Interval_Serve(i);elset_Leave(i)=t_Leave(i-1)+Interval_Serve(i);endLeaveNum(i)=i;endt_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Wait_avg=mean(t_Wait);t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;for i=2:length(Timepoint)if (temp<=length(t_Arrive))&&(Timepoint(i)==t_Arrive(temp)) CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;CusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);for i=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0 CusNum];CusNum_avg=sum(CusNum_fromStart.*[Time_interval 0] )/Timepoint(end);QueLength=zeros(size(CusNum));for i=1:length(CusNum)if CusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0 QueLength].*[Time_interval 0] )/Timepoint(end);%系统平均等待队长%仿真图figure(1);set(1,'position',[0,0,1000,700]);subplot(2,2,1);title('各顾客到达时间和离去时间');stairs([0 ArriveNum],[0 t_Arrive],'b');hold on;stairs([0 LeaveNum],[0 t_Leave],'y');legend('到达时间','离去时间');hold off;subplot(2,2,2);stairs(Timepoint,CusNum,'b')title('系统等待队长分布');xlabel('时间');ylabel('队长');subplot(2,2,3);title('各顾客在系统中的排队时间和等待时间');stairs([0 ArriveNum],[0 t_Queue],'b');stairs([0 LeaveNum],[0 t_Wait],'y');hold off;legend('排队时间','等待时间');%仿真值与理论值比较disp(['理论平均等待时间t_Wait_avg=',num2str(1/(Mu-Lambda))]);disp(['理论平均排队时间t_Wait_avg=',num2str(Lambda/(Mu*(Mu-Lambda)))]);disp(['理论系统中平均顾客数=',num2str(Lambda/(Mu-Lambda))]);disp(['理论系统中平均等待队长=',num2str(Lambda*Lambda/(Mu*(Mu-Lambda)))]);disp(['仿真平均等待时间t_Wait_avg=',num2str(t_Wait_avg)])disp(['仿真平均排队时间t_Queue_avg=',num2str(t_Queue_avg)])disp(['仿真系统中平均顾客数=',num2str(CusNum_avg)]);disp(['仿真系统中平均等待队长=',num2str(QueLength_avg)]);五、数据结构1.仿真设计算法(主要函数)利用负指数分布与泊松过程的关系,产生符合泊松过程的顾客流,产生符合负指数分布的随机变量作为每个顾客的服务时间:Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔,结果与调用exprnd(1/Lambda,m)函数产生的结果相同Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间间隔t_Arrive(1)=Interval_Arrive(1);%顾客到达时间时间计算t_Wait=t_Leave-t_Arrive; %各顾客在系统中的等待时间t_Queue=t_Wait-Interval_Serve; %各顾客在系统中的排队时间由事件来触发仿真时钟的不断推进。

基于OMNeT++的AODV-UU、DSR-UU和DYMOUM路由协议性能仿真与..

基于OMNeT++的AODV-UU、DSR-UU和DYMOUM路由协议性能仿真与..

基于OMNeT++++的AODV-UU、DSR-UU+和DYMOUM路由协议性能仿真与分析32 4Vol.32 No.4第卷第期中南民族大学学报自然科学版2013年12月 Journal of South-Central University fo rNaNta. Sc tiio . Ena diltiio ti n es Dec.2013OMNeT + + AODV-UU 、 DSR-UU DYMOUM基于的和路由协议性能仿真与分析王文涛,王豪,郭峰,郑芳中南民族大学计算机科学学院,武汉430074摘要针对被动式单播路由协议 AODV-UU 、 DSR-UU 和 DYMOUM ,使用OMNeT + + Objective Modular NetworkTestbed in C + + 仿真软件,选取分组投递率、平均端到端时延和路由发现频率3个指标对 AODV-UU 、 DSR-UU 和DYMOUM , 3路由协议进行了性能仿真通过改变节点数目和节点移动速度分析比较了这些参数对个协议性能的, DYMOUM AODV-UU DSR-UU ,影响仿真结果表明协议在平均端到端时延和路由发现频率上优于和但在分组投递率上低于 AODV-UU 和 DSR-UU. 最后提出了对 DYMOUM 协议的改进.关键词移动自组织网路由协议性能仿真TP393 A 1672-4321 2013 04-0091-06中图分类号文献标识码文章编号Pecenrrafom Sntiolauim dna Asislyan fo AODV-UU ,DSR-UUdna DMO Y UM gtniuoR Prclstooo Bedsa no OMNeT + +Wang Waonte ,Wang Hao ,Guo Fnge ,Znghe FangCollege of Compute, rSSo ciuethn-cCeentral University for Nat, io Wnuaha lnit4i3e0s074,ChinaAtcartsb Aiming at passive unicast routing protocol,DASOR-UDUVa -UnUd DYMOUM ,we use the simulation soft toolOMNet + + Objective Modular Network Testbed inaCn+d+choose the packet deliv, earvyerraatigo e end-to-end delayand route discovery frequency to evaluate the performa,nDce SR-Uo U afnd AOD DVYM-UOUUM. We change the speedand numbers of the nodes to analyze and compare the effects of different parameters. The results show that DYMOUM isbetter than AODV-UU and DSR-UU at average end-to-end delay and route discov, erbuyt f isrelquo ewne cyr in packetdelivery ratio. In, thweeepnrdopose the improvements in DYMOUM.Ksdrowye Ad Hoc netwo rrkouting proto pecro fl ormance simulation[1]MANETproacti ve reactive移动无线自组网由一组无线移动为先验式路由协议和反应式路[2],节点组成是一种不需要依靠现有固定通信网络基由协议 . 在文献研究方面,传统的反应式 MANET[3] [4] [5]础设施就能够迅速展开使用的网络体系,所需人工经典路由协议DSDV 、DSR 和AODV 的性能比, 、、较研究已经完成. 文献[6]在 NS2 仿真环境下阐述干预最少是没有任何中心实体自组织自愈的网AODV、 DSR DYMO ,络.MANET 网络是对有线网络的补充和扩展,也是了和协议的工作原理文中采未来一种主要的网络接入方式. 由于其组网灵活、易用平均时延、平均跳数、包传递率和路由负载4个参, . MANET 3 ,于扩展当前发展十分迅猛目前对于网络数比较了这种反应式路由协议实验结果表明的研究主要集中在传输方式、组网方式和应用层上, DYMO 协议在平均时延和平均跳数上优于 AODV, DSR ,其中在组网方式的研究上路由协议的研究是个热和路由协议但在包传递率和路由负载上其性.MANET , AODV DSR . [7]门领域路由协议从拓扑方式来分主要分能低于和路由协议文献比较了2013-06-16收稿日期作者简介王文涛1967 -,男,副教授,博士,研究方向无线传感器网络,***********************.edu92中南民族大学学报自然科学版第32卷DSDV、 AODV DSR 、 Netfilter IP和的数据包分组投递率平均端递到钩子上的数据包会被捕获并可以通, .到端时延和路由负载指出先验式和反应式路由协过添加自定义代码进行修改议分别适用于何种网络环境,文献[8]虽然提出了 1.2 DSR-UU[11]DSR-UU用于嵌入式和多种平台的 AODV-UU 协议,但是并是比较经典的按需路由协议的原DSR-UU ,DSR-UU没有和同样用于嵌入式平台的和型主要由路由寻找和路由维护两种机制DYMOUM 路由协议进行比较分析.目前的研究主要组成.集中在经典反应式路由协议的性能仿真比较分析, 路由寻找当某个源节点S产生一个新分组需AODV- ,S在和硬件结合的嵌入式方面的改进协议如要传输给目的节点时就在该分组的分组头中添UU、 DSR-UU DYMOUM ,和则没有进行相应的仿真加一条源路由从而给出沿着该条源路由转发该分比较分析. 本文的主要贡献是,采用 OMNeT + + 网组至目的节点 D的转发跳序列. 通常情况下,S通过络仿真工具,在不同的节点数目和移动速度情况下, 搜索其路由存储器 out R e Cache 就能够找到一条3 、 ,对这种协议的分组投递率端到端时延和路由发合适的源路由路由存储器用于存储其以前获得的现频率3个指标进行分析比较,为嵌入式 Linux环路由. 如果 S在其路由存储器中没有找到任何可用境下反应式 MANET 路由协议的横向比较提供路由,那么 S初始化路由寻找协议来动态地寻找一. D , S D参考条到达的新路由并把源节点和目的节点分.别称为该路由寻找的发起节点和目标节点路由维护当使用一条源路由产生或者转发一1协议简介个分组的时候,发送该分组的每个节点都要负责证1.1 AODV-UU实该分组能够通过本节点到达该条源路由下一跳节[8]AODV-UU . 1, A B、路由协议是由瑞典乌普萨拉大学点的链如图节点使用一条经过中间节点Uppsala Universi和 ty爱立信公司联合发布的一种 C、 D的源路由为节点 E产生一个分组. 节点 C经过Ad Hoc . AODV-UU D网络路由协议路由协议是若干次确认请求之后仍然没有接收到节点的确AODV Linux , , D ,路由协议在嵌入式系统上的实现同认则认为从其到节点的链已经中断并且给节时又对 AODV 协议草案增加了其他功能. 例如 Hello点 A以及所有中间节点回送一个路由错误自 C接消息增加了单向链路检测和冲突避免. 由于 AODV 收到 D的最后一个确认以来,这些节点可能已经使MAC 802.11DCF , 802.11DCF C D . A ,路由协议层采用标准用从到的链节点接收到错误路由后从其, ,中的广播信息传输速度要低于单播并且传输范围路由存储器中删除中断链如果需要重传分组的重大于单播,因此,当单播信息失败后,节点还可能认传由上层协议如 TCP 执行., .为链路是活动的这样就会引起报文错误率增加[9]AODV-UU F R C3561 ,同样遵循路由协议标准并且在平均端到端时延和路由开销方面的性能要优于图1 DSR-UU 路由维护[10]AODV 和 AOMDV 协议 . AODV-UU 是基于Fig.1 DSR-UU routing maintenanceNetfilter ,AODV-UU ,框架实现的至今仍在更新AODV-UU .主要包括路由发现和路由维护两部分1.3 DYMOUM路由发现当 Netfilt从端口捕获输入或者输出报 er [12]DYMOUM AODV-UU ,并不是协议的扩展而文后,检查报文当中的目的地址是否在当前路由表是将 AODV-UU 的序列号、跳数计数和 E R RR 保留, , , ,中如果在将报文放行否则将报文放到缓存队列DSR-UU ,DYMOUM并加入的源路径积累思想主要中,然后向用户层的守护进程发送路由查找消息,如.也是由路由发现和路由维护两个机制组成果找到有效路由表则通知缓存模块,缓存模块将含路由发现 DYMOUM 的路由发现机制和 DSR-,有目的地址的报文重发在定时器时间内如果没有UU 的路由发现机制类似,当一个节点需要通信时,, . AODV-找到有效路由此报文将被丢弃路由维护.创建一个到目的节点的路由当源节点要和目的节UU 使用内核交互的方式更新内核路由表,AODV-, E RR Q ,点通信时源节点广播包直到目的节点收UU 的内核模块使用 Netfilt钩子来决定包是到来 er到 E RR Q 包,目的节点返回给源节点 E RR P 包建立, ,的还是出去的并且决定它应该被接收还是转发投第4期王文涛,等基于OMNeT + + 的 AODV-UU 、 DSR-UU 和 DYMOUM 路由协议性能仿真与分析 93 . 1 OMNeT + +反向路由一个模型是通过交换信息来通DSR-UU ,DYMO -UM. ,路由维护与相比发现讯的组件模块来构建的模块可以嵌套也就是断路后会通知全网中使用该断裂链路的节点,但没说,几个模块可以组成一个复合模块. 在创建模型有在传输数据的时候采用源路由,而是仅仅在路由时,需要将系统映射到一个相互通讯的模块体系中, , 2 NED .发现过程中使用路由控制包携带更多路由信息没用语言定义模型的结构可以在有沿用 DSR-UU 在数据包中携带源路由的做法. OMNeT + + 提供的 IDE中以文本或图形化方式来编辑 NED文件3C + +模型的活动组件简单模块需要用2 仿真实验,来编程当中要使用仿真内核及类库2.1 仿真场景 4 提供一个拥有配置和参数的 omnetpp. ini实验采用 OMNeT + + 作为仿真工具,OMNeT + 文件给模型,一个配置文件可以用不同的参数来描+ , C是面向对象的离散事件网络仿真工具它使用述若干个仿真过程+ + , OSI , NS-2、 OPNET 5 构建仿真程序并运行. 可以将代码链接到编程支持七层网络结构与等网络仿真软件相比,OMNeT + + 能够运行于多个 OMNeT + + 的仿真内核及其提供的一个用户接口, ,操作系统平台能够把网络拓扑和节点定义模块化命令行和交互式接口或图形化接口. inetmanet-2.0 6大大提高了仿真效率协议采用包里将仿真结果写入输出向量和输出标量文件面的 grid_aodv 协议,仿真场景分别是 AODV-UU 、中,使用 IDE中提供的分析工具来进行可视化. 结DSR-UU 和 DYMOUM. 仿真的运动场景是每个移果文件是普通的文本,所以能用 R 、 MATLAB 或其它2000 ×1000m .动节点在的矩形区域不停地随机运工具来进行绘图MassMobility, 仿真流程图如图2. 得到* . vec矢量文件之后,动运动模型是仿真时间设置为100s.仿真的消息长度是512 Byte,应用层开始发送我们用 MATLAB 软件进行绘图.UDP unifor 1ms, 60s, 1 , 2.3包的时间服从均匀分布延仿真结果及分析20s, . Ad Hoc时限制为目的节点随机生成仿真时采用的业我们选择了以下在网络中评估网络性务场景见表1. 能的指标1 平均端到端时延数据分组从源节点到目1表业务场景, 、的节点所需要的平均时间包括路由发现时延数据Tab.1 Scenario scene、 MAC包在队列中的等待时间传输时延以及层的重参数类型参数值传时延,反映路由有效性.messageLength 512 BytestartTime unifo r1ms, 60s, 1delayLimit 20s平均端到端时延destAddrNR G 1∑接收数据包时间 - 发送数据包时间.接收数据包个数2. 2. 4GHz,仿真的信道参数见表信道频率是最大发送功率2.0mW,路径损耗系数是2,信道数量 2 丢包率应用层收到的丢失分组数与发送是1,Mac层协议选取的是802.11. 的分组数之比,反映路由可靠性.表2 信道参数传输层未收到分组数×100%.丢包率Tab.2 Channel parameters传输层收到分组数参数类型参数值carrierFrequency 2.4GHz3 .路由发现频率每个节点传输数据量反映p 2.0mW路由传输错误率和网络竞争水平.alpha 2numChannels 12.2仿真步骤路由发现次数.路由发现频率仿真时间用 OMNeT + + 进行仿真的流程如下94 中南民族大学学报自然科学版第32卷2图仿真流程图Fig.2 Simulation flow chart仿真共使用 7种不同的节点运动速度 0,50, 果图. AODV-UU 、 DSR-UU 和DYMOUM 在 50个节100, 150, 200, 250, 300 m/s,根据节点运动速度的不点和100个节点的平均端到端时延、丢包率、路由发, . 50 , 3 ~5 .同网络拓扑变化剧烈程度不同我们取个或者现频率分别如图所示100 , MATLAB个节点的平均值用工具绘制仿真结3图平均端到端时延与节点移动速度仿真结果图Fig.3 e R sults figure of average end-to-end delay with the node speed 第4期王文涛,等基于 OMNeT + + 的 AODV-UU 、 DSR-UU 和 DYMOUM 路由协议性能仿真与分析 954图丢包率与节点移动速度仿真结果图Fig.4 e R sults figure of loss rate with the node speed5图路由发现频率与节点移动速度仿真结果图Fig.5 e R sults figure of route discovery frequency with the node speed 平均端到端时延由图 3可知,DYMOUM 协议致,在节点较多时,DYMOUM 的丢包率急剧上升,这的平均端到端时延优于 AODV-UU 和 DSR-UU 协是因为 DYMOUM 只对基本的路由维护作出规定,, DYMOUM , Hello议主要是协议使用了路径积累更能有并没有说明路由维护是采用传统的包维护机效发现路由,此外,DYMOUM 的路由维持效率比制、链路检测反馈机制还是像AOMDV 的多路径维AODV-UU DSR-UU . 3 , .和高从图中还可以看出护机制AODV-UU 100m/s ,DYMOUM的时延在节点移动速度为时到路由发现频率在路由发现频率上达一个峰值,DSR-UU 时延在节点移动速度为50m/ 的表现明显要优于AODVUU 和 DSRUU ,不过 DSRs , DYMOUM , , ,时到达一个峰值而表现比较稳定随由于其源路径累积思想在路径基本建立完成之后,3 .着节点移动速度的增加个协议的时延都出现增路由发现频率趋于稳定长,这是因为节点移动速度越快,拓扑变化越剧烈, 由以上仿真结果及性能分析可知,DYMOUM 的, . AODVUU路由重建次数就越多时延就会升高平均端到端时延和路由发现频率优于和丢包率从图4可以看出,在50个节点的情况 DSRUU 协议. 当节点数目较少时,DYMOUM 协议的下,节点移动速度较低时,DYMOUM 丢包率较低,表丢包率略高于 AODVUU 和DSRUU 协议,三者差别, , ,DYMOUM现较好而且整体表现较为平稳但是当节点速度较并不大当节点数目较多时协议的丢包高时,DYMOUM 和AODVUU 丢包率接近,均大于率明显高于AODVUU 和DSRUU 协议. 因此,DYMOUMDSRUU 的丢包率在 100个节点的情况下, 协议适用于对时延和开销要求较高的网DYMOUM AODVUU DSRUU , AODVUU DSRUU的丢包率比和要高出络而和适合对丢包率要求较高很多,AODVUU 和 DSRUU 的丢包率基本接近. 因的网络. 在节点数目较大时,AODVUU 和 DSRUU 的, , 3 ,DYMOUM此在节点较少的情况下个协议的丢包率基本一丢包率基本一致的丢包率明显不如。

OMNeT++与网络仿真

OMNeT++与网络仿真
5 简单模块
2 OMNeT++的安装与系 统需求
4 NED语言
6 消息
第一部分 OMNeT++指南
A
7仿 真库
D
10 运 行仿真
B
8 构建仿 真程序
E
11 网络 图形和动

C
9 配置 环境
F
12 分析 仿真结果
第一部分 OMNeT++指南
13 事
A
件日志
14 NED
B
文档和消

15 并行
C
分布式仿
第一部分 OMNeT++指南
5 简单模块
5.11 动态模块 创建
第一部分 OMNeT++指南
6 消息
6.1 消息和 包
1
6.2 消息定 义
2
7.1 类 库的使 用惯例
7.2 模 块日志
7.4 产 生随机 数
7.5 容 器类
第一部分 OMNeT++指南
7 仿真库
7.3 仿 真时间 的转换
7.6 路由支持 cTo p o l o g y

29.2 仿真概

29.3 仿 真流程图
29.4 仿 真代码分

29.5 仿真结

29 仿真实例hist
第三部分 网络仿真实验
30.1 实验背

30.2 仿真概

30.3 仿真流

30.4 仿 真代码分

30.5 仿真结

30 Routing
第三部分 网络仿真 实验
31 基于PCE 的多域 路径计算

基于OMNeT的Link 11网络建模仿真研究

基于OMNeT的Link 11网络建模仿真研究

基于OMNeT的Link 11网络建模仿真研究作者:李振郑连泽饶广然来源:《现代电子技术》2012年第03期摘要:在数据链系统的生命周期中,仿真是不可缺少的一个环节。

针对商用软件成本高,教育版无源代码难以二次开发问题。

采用新型开源网络仿真软件OMNeT,利用Mobility Framework组件构架,编写了轮询协议模型,建立了数据链仿真系统模型和Linkll网络模型,通过场景和统计模块的设计,对Linkll进行了性能仿真实验。

仿真结果表明,网络性能良好,基本满足了消息传输的实时性和可靠性。

关键词:数据链;网络仿真;OMNeT;Link 11中图分类号:TN711-34;TP311文献标识码:A文章编号:1004-373X(2012)03-0021-05在战术数据链的全寿命周期过程中,建模和仿真作为一种重要的支撑技术发挥着越来越重要的作用,已经成为战术数据链设计开发和应用研究过程中不可或缺的关键技术之一。

早在20世纪60年代初期,美空军半自动化战场环境(SAGE)系统中就开展了对战斗机和陆军防空导弹系统的数据链仿真,这也是最早开展的战术数据链仿真工作。

国内外学者针对数据链网络在OPNET和Qual—Net环境下建立了若干仿真模型和想定条件下的性能仿真,本文考虑到OPNET、QualNet等商用仿真软件平台开放性不高、成本高昂的问题,以及其教育版本版权受限,不提供源代码等二次开发阻碍,尝试使用一款新型开源的、基于组件的、模块化的网络仿真平台OMNeT”利用其仿真了轮询协议,建立了Link 11网络模型,实践证明了OMNeT”的面向对象特性以及开源特性保证了非常好的可移植性和扩展性,协议仿真时速度快、实时性好、内存消耗小,基于Eclipse友好的IDE界面可以简便定义网络拓扑结构,同时对于标准的支持使其可以进行基于线程的windOWS程序协同开发,具备编程、调试和跟踪支持等功能,能够实现复杂的基础设施间的通信模拟,满足数字化战场网络构架的需求。

MMN排队系统建模与仿真

MMN排队系统建模与仿真

《系统仿真与matlab》综合试题....................... 错误!未定义书签。

M/M/N 排队系统的模拟仿真 (1)摘要 (1)1. 问题分析 (2)2. 模型假设 (2)3. 符号说明 (3)4. 模型准备 (3)4.1 排队系统的组成和特征 (3)4.1.1输入过程 (4)4.1.2排队规则 (4)4.1.3服务过程 (4)4.1.4排队系统的主要指标 (5)4.2输入过程与服务时间的分布 (5)4.2.1负指数分布 (5)4.2.2泊松分布 (5)4.3生灭过程 (6)5. 标准M/M/N模型 (8)5.1多服务台模型准备 (8)5.2多服务台模型建立 (9)5.2.1服务利用率 (9)5.2.2平均排队长 (9)5.2.3平均队长 (10)5.2.4平均等待时间 (10)6. 程序设计 (11)6.1动画流程图 (11)6.2 M/M/N流程图 (12)7. 程序运行实例介绍 (13)7.1动画实例讲解 (13)7.2M/M/N排队系统实例讲解 (14)8. 程序实现难点和模型评价 (17)8.1程序实现难点 (17)8.2模型评价 (17)9. 参考文献 (17)10. 附录 (17)10.1动画实现的核心程序 (17)10.2 M/M/N模型计算主要程序 (22)M/M/N 排队系统的模拟仿真摘要排队是在日常生活中经常遇到的事,由于顾客到达和服务时间的随机性,使得排队不可避免。

因此,本文建立标准的M/M/N模型,并运用Matlab软件,对M/M/N排队系统就行了仿真,从而更好地深入研究排队问题。

问题一,基于顾客到达时间服从泊松分布和服务时间服从负指数分布,建立了标准的M/M/N模型。

运用Matlab软件编程,通过输入服务台数量、泊松分布参数以及负指数分布参数,求解出平均队长、服务利用率、平均等待时间以及平均排队长等重要指标。

然后,分析了输入参数与输出结果之间的关系。

基于OMNET++的tictoc仿真实验报告

基于OMNET++的tictoc仿真实验报告

基于OMNET++的tictoc仿真实验报告一、实验原理简介1.1OMNET++简介OMNET++是面向对象的离散事件仿真工具,它是由布达佩斯大学通信工程系开发的一个开源的、基于组件的、模块化的开放仿真平台,具有强大的图形用户界面接口和嵌入式仿真内核。

OMNeT++可以用来仿真任何离散事件的系统,包括仿真通信协议、计算机网络、并行系统、多处理器系统和分布式系统。

它能够建立目前几乎所有网络对象的基本模型之间的互联,并且使复杂的网信通信和拓扑结构得到容易而正确的仿真。

1.2OMNeT++特性OMNeT++在描述模型、定义网络拓扑、实现模型、跟踪支持、调试、性能等多方面都显示出强大的优势。

与同属于非商业软件的NS-2[61相比,OMNET++具有更加突出的特性。

①编程仿真能力和可移植性。

OMNeT++和NS-2在编程能力方面的功能都很强大。

OMNeT++可以在Windows系统和Linux系统等多种操作系统上运行,它生成的仿真程序是可携带的,可以独立运行于多种操作平台之上。

OMNeT++提供NED(Network Description)和C++两种语言来建模仿真。

其中,OMNeT++用NED来描述仿真模型的拓扑结构,它非常简单,但是具有非常强大的拓扑定义功能,可以定义模块、链路和网络。

NED还可以实现动态加载,便于更新仿真模型的拓扑结构;C++用来实现模型的仿真和消息的处理等功能。

而且NED文件可以编译为C++代码,连接到仿真程序中。

可以说,OMNeT++仿真环境是用C++实现的。

NS-2只能运行在Linux环境中,它使用OTcl和C++两种建模仿真语言,它生成的仿真程序不具备可携带性。

②可仿真模型的范围。

OMNeT++可以支持TCP/IP、SCSI和FDDI等多种协议模型,而NS-2只能支持基于TCP/IP 的协议模型。

③仿真效率。

OMNeT++支持模块化仿真模型,模块可以灵活地组合,还可以多次使用。

28.3 仿真流程_OMNeT 与网络仿真_[共2页]

28.3 仿真流程_OMNeT  与网络仿真_[共2页]

- 354 - 中排队等候。

虽然只有数据速率连接(没有PointToPointIF 类型的模块)就可以实现点到点连接的基本功能,但由于PointToPointIF 模块的可拓展性和灵活性,还是有必要引入PointToPointIF 模块。

这个模型可以很容易地拓展为限制队列长度的模型(例如,若队列太长就丢弃帧),通过一个被称为接口的直接模块可以从另外一个模块查询队列长度,实现优先级排队(例如让“expedited ”帧排在第一位)或者收集链路统计资料(例如利用率等)
在这个模型中,链路流量由一个突发源产生,它将演示有限状态机的使用。

28.3 仿真流程
(1)sink 模块仿真流程图如图28-1所示。

图28-1 sink 模块仿真流程图
(2)ppIF 模块仿真流程图如图28-2所示。

(3)burstySrc 模块仿真流程图如图28-3所示。

基于OMNeT++的MVB网络模型

基于OMNeT++的MVB网络模型

基于OMNeT++的MVB网络模型刘峰;胡黄水;王宏志;王博【摘要】基于OM NeT+ +网络仿真分析软件 ,建立多功能车辆总线M VB网络模型 ,包括主设备节点模型、从设备节点模型和M VB网络信道模型 ,采用网络拓扑结构描述语言( .ned文件)、简单模块源和消息( .m sg文件)等对主从设备节点及信道模型进行描述 ,并通过C+ +语言编程实现模型的具体功能.对主从轮询介质访问控制方式下的过程数据实时性计算进行建模.测试结果表明 ,所建立的M VB网络模型满足ICE标准规范的各项要求 ,能实现M VB网络主、从设备的灵活组网以及过程数据的实时通信.%With OMNeT+ + ,a network model of Multifunction Vehicle Bus (MVB) is established which include master node module , slave node module and MVB network channel module . The modules of both the master-slave node and channel are described with Network Topology Description Language ( .Ned files) and simple module source & message ( .Msg files) .C + + programming language is used .Calculation model is built for process data real-time evaluation under master-slave polling .The test results show MVB network model can meet the requirements of ICE standard ,and can realize flexible networking real-time communication .【期刊名称】《长春工业大学学报(自然科学版)》【年(卷),期】2015(036)004【总页数】8页(P361-368)【关键词】MVB;OMNeT++;网络模型;仿真【作者】刘峰;胡黄水;王宏志;王博【作者单位】长春工业大学计算机科学与工程学院,吉林长春 130012;长春工业大学计算机科学与工程学院,吉林长春 130012;长春工业大学计算机科学与工程学院,吉林长春 130012;长春市轨道交通集团有限公司,吉林长春 130062【正文语种】中文【中图分类】U285.50 引言多功能车辆总线(Multifunction Vehicle Bus,MVB)和绞线式列车总线(Wired Train Bus,WTB)构成了列车通信网络总线(Train Communication Network,TCN),它具有实时性强、可靠性高、冗余和容错性能良好的特点,在高铁、动车等领域中得到了广泛的应用[1]。

31.1 实验背景_OMNeT 与网络仿真_[共2页]

31.1 实验背景_OMNeT  与网络仿真_[共2页]

第31章基于PCE的多域路径计算31.1 实验背景路径计算单元(Path Computation Element,PCE)是网络中专门负责路径计算的功能实体,它基于一致的网络拓扑结构和约束条件,根据路径计算客户的请求,计算出一条满足约束条件的最佳路径。

PCE可以位于网络中的任何地方,可以集成在网络设备内部,如集成在标记交换路由器LSR内部,或者集成在OSS系统内部,也可以是一个独立的设备。

路径计算客户(Path Computation Clients,PCC)和PCE之间,以及PCE之间通过专门的路径计算协议(PCE Communication Protocol,PCECP)通信,提交路径计算请求并获得路径计算结果。

PCC可以是MPLS/GMPLS网络中的标记交换路由器LSR 或者是网络管理系统NMS。

随着MPLS/GMPLS网络的发展,网络拓扑越来越复杂,路由量非常巨大,路由的计算也越来越复杂。

而根据流量工程的部署,设备需要在复杂的约束条件下计算路由。

这种复杂的计算往往需要对全局拓扑结构和约束条件的了解,需要大量的CPU计算资源来完成这种复杂的运算,这就对设备的稳定性产生了极大的冲击。

为了解决这个问题,IETF提出了基于PCE的MPLS/GMPLS的网络结构。

PCE是一个功能实体,它可以基于网络拓扑结构和约束条件,计算出一条路径。

它具有灵活的体系结构,可以和网元设备在一起,也可以在单独的服务器上实现。

基于PCE的域间路由优化算法研究的意义在于,它不仅有利于降低网络的阻塞率,更能提高网络的资源利用率,很好地改善网络的性能。

PCE是一个功能实体,它可以基于网络拓扑结构和约束条件计算出一条路径。

PCE 有下列几种类型。

1.复合PCE复合PCE是指在路由器/标签交换路由器(LSR)中实现PCE功能,通过路由协议交换TE信息构造TED。

PCE根据TED计算路径,以响应连接建立请求。

PCE 节点和其他路由器之间的邻接关系可以直连或通过各种隧道机制形成,如图31-1所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一Omnet++排队模型仿真实验
一.实验目的
1.熟悉omnet++软件使用。

2.对排队模型进行更形象的分析与学习。

二.实验工具
Omnet++软件
三.实验步骤
1.用omnet++软件将排队模型以模块形式构建出来。

2.对网络环境进行设置,内部到达时间设置为0,即所有到达的job立即添
加到排队网络中。

设置不同队列的服务时间(成1、2、3的指数分布),以及排队模型模拟运行时间。

3.运行仿真程序并记录结果。

4.对实验结果进行分析总结。

四.实验结果及分析
1.排队模型搭建如下图所示:
此部分在source页面下也可以用代码进行构造,编写代码如下:
package demo;
import org.omnetpp.queueing.Queue;
import org.omnetpp.queueing.Source;
network Demo
{
@display("bgb=517,314");
submodules:
source: Source {
@display("p=140,146");
}
queue1: Queue {
@display("p=297,146");
}
queue2: Queue {
@display("p=404,78");
}
queue3: Queue {
@display("p=404,214");
}
connections:
source.out --> queue1.in++;
queue1.out --> queue2.in++;
queue3.out --> queue1.in++;
queue2.out --> queue3.in++;
}
2.进行设置内部到达时间及初始job数:
设置完成后规定不同队列的服务时间(按指数分布),以及模拟运行时间
切换到代码显示配置信息如下:
[General]
network = demo.Demo
cmdenv-status-frequency = 500s
sim-time-limit = 20000s
**.source.numJobs = ${jobs=30,60}
**.source.interArrivalTime = 0
**.serviceTime = exponential(${serviceMean=1..3 step 1}s) 3.运行详细情况如下图所示:
4.新建立.anf文件,对结果进行分析。

我们只选择run ID 为3 的仿真看下结果,选择队列长度选项筛选出如下三个结果:
绘制出图像:
更改横纵坐标,绘制出点图如下:
平滑后如下图:
打开一个.elog 文件,来看下序列图sequence chart。

在General-0.elog 文件中我们可以看到最初的60 个信息被推入一个队列中。

如下图所示:。

相关文档
最新文档