当前位置:首页 > 基于opnet的csmacd协议的实现 - 图文
基于OPNET的CSMA/CD协议的实现
帧。等待时间必须是随机的,否则会有接二连三的冲突而导致死锁。多个用户以某种可能导致冲突的方式共享公用信道的系统被称为竞争系统。
分时隙ALOHA系统是把时间分为离散的时间段,每段时间对应一帧。这种方法要求在每段时间的开始像时钟一样发送一个信号。每个数据帧的发送必须等到下一时隙开始时才允许。这样,连续的纯ALOHA就变成了离散的分时隙ALOHA。在这种分时隙ALOHA系统中,冲突的发生只可能在时隙的开始时刻,如在时隙的开始时刻仅有一个站点发送,则它所发送的一帧一定是成功的,因为在它发送的一个帧时内,如果有站点产生了新的帧也必须等到下一个时隙的开始时刻才允许发送。这样冲突危险区减少为原来的一半。
在ALOHA系统中,任何时候,只要两帧试图同时使用信道就会产生冲突,并破坏冲突帧的内容。即使新帧的第一位与前面即将发完的帧的最后一位相重叠,两帧也会受到破坏,都必须事后重发。因为帧的校验和不能(且不应该)区分信息是全部丢失还是部分丢失,所以只要帧的信息遭到一丁点儿破坏就应当做为坏帧处理。
用“帧时(frame time)”来表示发送一个标准长度的帧所需的时间,也就是帧长度除以位传输速率。如图2-2所示,如果在某一帧开始发送的时刻t。起的那一帧时内,没有其它帧发出,该帧就不会冲突。假设发送一帧所需时间为t,如果在t。到t。+t时间内,其它任一用户产生了一帧(阴影帧)并立即发送,阴影帧的头部就会和前一帧的尾部冲突。但是由于纯ALOHA网中所有站点在发送前都不侦听信道,所以它不知道是否已有其它帧正在传输过程中,不可能主动避让。同样t。+t到t。+2t之间产生的任何帧也都将和阴影帧的尾部冲突。
图2-2 分时隙ALOHA系统发送帧冲突图
假定系统中有无限多个用户,平均每帧时产生S个新帧,显然如果S>1,那么用户产生新的帧的速率将会超出信道所能处理的能力,也就是说几乎每帧都会受到冲突。所以,合理的吞吐率要求0
除了产生新的帧之外。各站还要产生受到冲突的重发帧。设每帧时内发送帧的平
8
基于OPNET的CSMA/CD协议的实现
均值为G帧,显然G≥S。在低负载情况下(即S≈0),设每帧时内发送帧几乎没有冲突产生,用不着重发,所以G≈S。在高负载情况下,冲突频繁,所以G>S。
信道利用率S与负载量G之间的关系如图2-3所示。从图中可看出,当G=0.5时,信道利用率最大,其值为S≈0.184。这也就是说,纯ALOHA信道的利用率最高为18.4%。这个结果并不令人鼓舞但是对于这种任何站点都可以随意发送的工作方式,期望得到100%的利用率是不现实的。
图2-3 ALOHA的吞吐量
2.载波监听多路访问控制方法(CSMA)
载波监听多路访问控制方法又称为“先听后说”方法。这种方法的协议是本论文所要仿真并分析的主要内容。它是ALOHA协议的一种改进型。其基本思想是:每个站在发送数据前,先监听信道上有无其它站正在发送信息,如果没有(即信道空闲),则发送数据;否则(信道忙)暂不发送,退避一段时间后再尝试。
根据监听策略的不同,载波监听多路访问有3种协议:
非坚持CSMA 一旦监听到信道忙就不再监听下去,延迟一段随机时间后再重新监听。如果监听到信道空闲就立即发送数据。
坚持CSMA 监听到信道忙时,仍然坚持听下去,直至信道空闲为止。一旦听到信道空闲就立即发送数据,如果有冲突,在规定的时间内未得到应答,则等待一段随机事件后再监听。
P-坚持CSMA 监听到信道忙时,仍然坚持听下去,直至信道空闲为止。当听到信道空闲时,以概率p发送数据,而以概率(1-P)延迟时间(t端到端的传输时延),则等待一段随机时间后再监听。
9
基于OPNET的CSMA/CD协议的实现
非坚持CSMA减少了发送数据的盲目性和冲突出现的概率。但由于一旦监听到信道忙就延迟一段随机时间后再重新监听,很可能在重新监听前信道就已经空闲,所以非坚持CSMA的信道利用率不是很高。对此,可采用1-坚持CSMA。
1-坚持CSMA一直监听,一听到信道空闲就发送信息,这样可以充分利用信道,但冲突的可能性也许会增大。这是因为总线有一定的长度,且信号在信道上以有限的速度传输,所以当一个站发送数据时,另一个站要经过一段传播延迟时间才能检测到载波。这就是说,某站监听到信道空闲时,信道可能并非真正空闲,如果此时发送数据,肯定会产生冲突。如图2-4所示,若站B在站A发送的数据到达前发送帧,则突然产生冲突。另外,如果有2个或2个以上的站同时监听到信道空闲,同时发送数据,发生冲突时不可避免的。为此,可采用p坚持CSMA。
图2-4 传播延迟时间对载波监听的影响
p坚持CSMA根据信道通信量的多少来设定p(0<p≤1)值,从而减少了冲突发生的概率,进一步提高了信道的利用率和吞吐量。但如何确定p值,成了p坚持CSMA的关键。实际上,当p=l时,就是1坚持CSMA,即一听到信道空闲,就以概率1发送数据。
与时隙ALOHA相似的,还有时隙非坚持CSMA、时隙1坚持CSMA及时隙p坚持CSMA。他们都规定:各站只能在每个时隙的起始时刻才能开始发送信息。这样
10
基于OPNET的CSMA/CD协议的实现
全网同步,减少了相互冲突的概率,进一步提高了信道的吞吐量。
在网络轻负载时,时隙和非时隙1-坚持CSMA的信道吞吐量特性最好;在网络重负载时,时隙非坚持CSMA的信道吞吐量特性更好些,但时间延迟增大。
3.载波监听多路访问/冲突检测(CSMA/CD) 1)CSMA/CD工作原理
CSMA/CD载波监听/冲突检测,属于计算机网络以太网的工作类型,即在总线上不断的发出信号去探测线路是否空闲,如果不空闲则随机等待一定时间,在继续探测。直到发出型号为止。CSMA/CD工作原理 :在Ethernet中,传送信息是以“包”为单位的,简称信包。在总线上如果某个工作站有信包要发送,它在向总线上发送信包之前,先检测一下总线是“忙”还是“空闲”,如果检测的结果是“忙”,则发送站会随机延迟一段时间,再次去检测总线,若这时检测总线是“空闲”,这时就可以发送信包了。而且在信包的发送过程中,发送站还要检测其发到总线上的信包是否与其它站点的信包产生了冲突,当发送站一旦检测到产生冲突,它就立即放弃本次发送,并向总线上发出一串干扰串(发出干扰串的目的是让那些可能参与碰撞但尚未感知到冲突的结点,能够明显的感知,也就相当于增强冲突信号),总线上的各站点收到此干扰串后,则放弃发送,并且所有发生冲突的结点都将按一种退避算法等待一段随机的时间,然后重新竞争发送。从以上叙述可以看出,CSMA/CD的工作原理可用四个字来表示:“边听边说”,即一边发送数据,一边检测是否产生冲突。
2)冲突检测方法
冲突检测的基本思想是,工作站一边将信息发送到总线上,一边从总线上接收信息,然后将接收到的信息与原来发送的信息进行比较,根据比较形式的不同,常用的比较方法如下:
①比较信号的大小:在基带传输系统中,若发生冲突,则信道上迭加后的信号值肯定比正常值大一倍。所以只要检测到接收信号的摆动值超过某一门限,就可以断定发生了冲突。不过,2个站相距甚远时,由于信号大幅度衰减,有可能检测不出来。
②判断过零点的位置:当采用曼彻斯特编码时,信号的过零点都在每一比特的正中央;若发生冲突,则迭加后的过零点不能保证每一比特的正中央。所以,可通过检测接收信号的过零点的位置,判断是否发生了冲突。
③逐个比特位比较:将接收到的信息与原来发送的信息逐个比特位进行比较。如
11
共分享92篇相关文档