CSMA协议仿真实验

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

实验二CSMA协议仿真实验

1、实验目的

(1)对Aloha和CSMA这两种信道访问协议建模;

(2)通过在总线型信道上建立Aloha的随即信道访问模型和CSMA模型,来分析CSMA 协议的共享信道访问机制,并对两个模型进行比较;

(3)仿真时以信道吞吐量作为网络中评价使用不同协议的网络性能的典型参数。2、实验要求

利用OPNET仿真软件来模拟分别使用纯Aloha和CSMA协议的网络,通过仿真观察协议性能随信道模型的变化情况,通过2种协议信道吞吐量随信道流量的变化图来比较 2种信道访问协议性能。

在进行仿真前,先熟悉该模型的层次结构;理解cct_net网络模型及其收发机制。3、实验环境

(1)Windows XP系统

(2)OPNET Modeler 10.0仿真软件

4.实验原理

在多个竞争用户之间分配单个广播信道的传统做法是利用静态信道分配方法,如频分多路复用(FDM)和时分多路复用(TDM)。但是使用这些方法普遍存在的基本问题在于:当某些用户停止通信时,他们所分配到的带宽实际上就浪费了,即当他们自己不使用这些带宽时,其他的用户也不允许使用。而且大多数计算机系统中,数据流量往往是突发性的。因此,大多数数据信道在大多数时间是空闲的。由于传统的静态信道分配方法不能适应突发性流量,所以提出了多种动态信道分配方法,例如:Aloha协议、CSMA协议。

Aloha协议的基本思想:当用户有数据要发送时,可以直接发至信道;然后监听信道看是否产生冲突,若产生冲突,则等待一段随机的时间重发。

CSMA协议的基本思想:该协议是在Aloha随机信道访问的基础上增加了载波监听的功能。当站点有数据发送,先监听信道;若站点发现信道空闲,则发送数据;若信道忙,则继续监听直至发现信道空闲,然后完成发送;若产生冲突,该站等待一段随机的时间,然后重新开始发送过程。在本协议中,当一个站发现信道空闲时,它传输数据成功的概率为1。

5、实验设计、实验内容与步骤

5.1 Aloha协议网络模型

在工作区中,OPNET自动创建出的总线网络拓扑,这个网络总共有20个cct_tx发信机节点和1个cct_rx收信机节点。如图1所示的网络模型中包括20个发信机节点模型,用来发送数据包;包含1个收信机节点模型,用来接收数据包和进行网络监控。图1中node-0,node_1,…,node_19为发信机节点模型;node_20为收信机节点模型。其中,链路模型支持总线链路和总线分接链路,不支持点到点双工链路和点到点单工链路,如图2

所示。

图1 Aloha和CSMA协议的总线网络模型

图2 链路模型属性

Aloha发信机节点模型如图3所示,右击统计线打开其属性窗口,设置rising edge trigger和falling edge trig-ger都为disable。发信机的数据处理机bus_tx进程从信源采集数据,并将数据发送到网络上。数据处理机tx_proc进程模块如图4所示,当非强制状态idle收到事件PKT_ARVL后,就将其状态转移到tx_pkt。

图3 Aloha发信机节点模型

图4 数据处理机tx_proc进程模块

以上代码中,IN_STRM和OUT_STRM代表发包和收包的流索引,接着定义了宏PKT_ARVL,当进程收到的中断类型是流中断时,触发PKT__ARVL事件。最后使用extern关键字定义一个全局变量subm_pkts,代表发包数量的全局统计。

运行本次仿真,并利用Analysis Configuration 编辑器来分析查看仿真结果。绘制出的结果分析图形如图5所示。

图5 Aloha协议信道吞吐量随信道流量的变化

从图5中可以看出,在信道流量较低的时候,信道吞吐量也较低,数据包冲突少;随着流量增加。吞吐量逐渐增加,并在G=0.5左右出现峰值约为0.18.此后,随着冲突加剧,吞吐量反而不断下降。

5.2 CSMA的协议网络模型

在Aloha协议网络模型的基础上,可以利用OPNET复制一个新的网络模型(见图1),通过改进其中的发信机节点模型作为分析CSMA协议的网络模型。当总线收信机的busy统计量从1.0(信道忙)变为0.0(信道空闲)时,该模块将向数据处理机模块发送一个下降沿统计中断,即右击统计线打开其属性窗口,设置rising edge trigger为disable,falling edge trigger为enable。数据处理机tx_proc进程模块如图6所示,其中添加了wt_free非强制状态。

图6 改进aloha_tx进程模型

以上代码的作用是,应用核心函数op_stat_local_read(CH_BUSY_STAT)==0.0判断信道是否空闲,如果空闲则发送数据;否则进入wt_free状态,直到收到信道空闲的中断。

Aloha协议和CSMA协议的网络模型都采用相同的收信机模型,如图7所示。其中数据处理机rx_proc进程模型的用途是进行数据包计数和记录统计信息。

图7 通用收信机节点模型

运行本次仿真,并利用Analysis Configuration 编辑器来分析查看仿真结果。绘制出的结果分析图形如图8所示。

图8 CSMA协议信道吞吐量随信道流量的变化

利用CSMA协议时,发现随着信道流量的增加,吞吐量也逐渐增加,并在信道流量G=1.0时出现的最大值约为0.5。

6、实验结果分析与讨论

(1)为了比较Aloha和CSMA协议,将两个协议的仿真结果分析图形绘制在一起,对比分析在任意信道流量复合下,CSMA协议和Aloha协议的性能。

(2)对比分析两个协议的信道流量对信道吞吐量的影响。

(3)改变拓扑图中接入节点的数量,分析节点数量对信道吞吐量的影响。

(4)试想要想发送数据达到100%的成功率,需要对动态信道分配协议做怎样的改进,使之能够更加有效地提高网络的性能?

7、实验总结

通过本次实验了解了Aloha和CSMA这两种信道访问协议建模的方法,为以后进一步的学习奠定了一个很好的基础,希望能有更深刻的理解。

相关文档
最新文档