图4 ALOHA与CSMA协议模型图
4.2ALOHA模型仿真
4.2.1建立ALOHA进程模型与节点模型
理论上, ALOHA系统仅需要一个的信源产生机模块和一个总线发信机模块。为方便仿真CSMA的时候重复利用,我们建立一个通用节点模型,该模型拥有信源产生机、处理机、总线发信机三种模块各一个。
对于发信机节点的要求是产生数据包和进行数据处理,然后将数据包发送至总线上。该节点可以分解为三部分,首先信源产生机生成数据包,然后处理机对数据包进行必要的操作,最后由总线发信机将数据包送到总线上。总线发信机内部应该有队列功能,其按先进先出算法(FIFO)将所有提交的数据包发送到总线上。ALOHA的发信机进程仅为从信源产生机接受数据包,然后将其发送至总线发信机上就可以了,其中并不需要对数据包进行其它的操作和处理。
ALOHA的发信机进程只有一个非强制状态,即等待信源数据包到来。由于不需要从发信机节点收集状态值,所以ALOHA发信机模型进程对全局状态变量不需要进行初始化。因此设定进程在仿真一开始的时候就在一个非强制的闲置状态下等待数据包的到来。
有限状态机于一个非强制的状态开始,其需要仿真开始中断触发。在仿真的开始,FSM可以处于闲置状态以准备接收第一个即将到达的数据包。ALOHA发信机的进程模块状态机中唯一的事件是对信源生成机生成的数据包的接收。在非强制的闲置状态下,数据包的到来会产生相应的中断。该中断触发FSM,使其从闲置状态进入数据包发送状态,获取数据包并发送到总线。在数据包发送完毕后,FSM转回闲置状态。
收信机节点的作用是监测在总线中广播的数据包,下面来设计收信机节点的模型。该节点模型只需要总线收信机和处理机各一个,并不需要信源产生机等其它的模块。
通用收信机节点的进程的作用是收集统计数据并对接收的数据包进行相应的处理。该进程是为了统计数据并接收数据包,则其进程模型需要一个非强制的状态,在该状态下等待和接收无冲突、碰撞状态下的数据包。仿真的最后记录供分析所用的信道的吞吐量和通信量。由于收信机节点进程涉及状态变量,所以该进程需要在仿真开始的时候初始化一个变量。
首先来创建ALOHA进程模型和节点模型,这些模型在后面将成为CSMA协议模型的基础。
(1)发信机节点的进程模型
发信机节点的进程模型需要两个状态:一个闲置状态和一个数据包发送状态。在闲置状态和数据包传送状态之间添加一条状态线,其事件属性值设置为宏PTK_ARVL(数据包到达事件的发生)。该宏由接收到数据包这个中断所决定。本模型中,中断仅可能来自于信源产生机的输入信息流,因此该宏并不需要对数据包的来源进行判断。发信机节点的进程模型如图5所示:
图5 发信机节点进程模型
(2)建立发信机的节点模块
1)通用发信机的节点模型
创建通用的发信机的节点模块。通用发信机的节点模型由数据包发生、发送处理、总线发送三种模块组成,如图6所示:
图6 通用发信机节点模型
2)增强的通用发信机的节点模型
上面建立的通用发信机节点模型可以满足ALOHA协议的要求。但由于后面最终会将其转换为CSMA协议的模型,所以预先作进一步的工作。
增强模型增加了总线收信机和收信处理机两种模块各一个。总线收信机模块的增加完全可以满足CSMA协议全双工的要求。增加收信处理机模块是用来接收和销毁接收到的数据包。该增强型的模型同时含有一不活动的状态线(虚线),以供在CSMA模式下向发送处理模块通知信道的忙闲状态,同时也能在信道状态改变的时候中断进程,其节点模型如图7所示:
- 上一篇:高速铁路牵引供电综合系统设计+盘面设计图
- 下一篇:基于MATLAB语音信号处理(语音信号处理的综合仿真)
-
-
-
-
-
-
-
十二层带中心支撑钢结构...
杂拟谷盗体内共生菌沃尔...
酸性水汽提装置总汽提塔设计+CAD图纸
中考体育项目与体育教学合理结合的研究
大众媒体对公共政策制定的影响
当代大学生慈善意识研究+文献综述
电站锅炉暖风器设计任务书
乳业同业并购式全产业链...
河岸冲刷和泥沙淤积的监测国内外研究现状
java+mysql车辆管理系统的设计+源代码