CSMACA和CSMACD协议整理Word文档格式.docx
《CSMACA和CSMACD协议整理Word文档格式.docx》由会员分享,可在线阅读,更多相关《CSMACA和CSMACD协议整理Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
它并不持续侦听信道,而是在冲突时,等待随机的一段时间。
它有更好的信道利用率,但导致更长延迟.
3、p-持续CSMA:
它应用于分槽信道,按照P概率发送帧。
即信道空闲时,这个时槽,欲发送的站P概率发送,Q=1-P概率不发送,若不发送,下一时间槽仍空闲,同理进行发送,若信道忙,则等待下一时槽,若冲动,则等待随机的一段时间,重新开始。
以上都是对ALOHA的改进。
当信道忙时,所有站都不传输帧。
IEEE802.3以太网CSMA/CD所采用的是1-坚持退避CSMA/CD。
在无线局域网IEEE802.ll标准中MAC层采用CSMA/CA。
2、CSMA/CD协议简介
2.1、CSMA/CD概述
在以太网中,所有的节点共享传输介质。
如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。
CSMA/CD(CarrierSenseMultipleAccess/CollisionDetect)即载波监听、多路访问/冲突检测方法。
CSMA/CD是一种争用型的介质访问控制协议。
它起源于美国夏威夷大学开发的ALOHA网所采用的争用型协议,并进行了改进,使之具有比ALOHA协议更高的介质利用率。
另一个改进是,对于每一个站而言,一旦它检测到有冲突,它就放弃它当前的传送任务。
换句话说,如果两个站都检测到信道是空闲的,并且同时开始传送数据,则它们几乎立刻就会检测到有冲突发生。
它们不应该再继续传送它们的帧,因为这样只会产生垃圾而已;
相反一旦检测到冲突之后,它们应该立即停止传送数据。
快速地终止被损坏的帧可以节省时间和带宽。
CSMA/CD控制方式的优点是:
原理比较简单,技术上易实现,网络中各工作站处于平等地位,不需集中控制,不提供优先级控制。
但在网络负载增大时,发送时间增长,发送效率急剧下降。
2.2、CSMA/CD的原理以及控制规程
CSMA/CD应用在OSI参考模型的数据链路层
它的工作原理是:
发送数据前先监听信道是否空闲,若空闲则立即发送数据.在发送数据时,边发送边继续监听.若监听到冲突,则立即停止发送数据.等待一段随即时间,再重新尝试.
CSMA/CD控制规程:
规程控制规程的核心问题:
解决在公共通道上以广播方式传送数据中可能出现的问题(主要是数据碰撞问题)
控制过程包含四个处理内容:
侦听、发送、检测、冲突处理
(1)侦听:
通过专门的检测机构,在站点准备发送前先侦听一下总线上是否有数据正在传送(线路是否忙)?
若“忙”则进入后述的“退避”处理程序,进而进一步反复进行侦听工作。
若“闲”,则按照一定算法原则(“X坚持”算法)决定如何发送。
(2)发送:
当确定要发送后,通过发送机构,向总线发送数据。
(3)检测:
数据发送后,也可能发生数据碰撞。
因此,要对数据边发送,边接收,以判断是否冲突了。
(4)冲突处理:
当确认发生冲突后,进入冲突处理程序。
有两种冲突情况:
1侦听中发现线路忙
若在侦听中发现线路忙,则等待一个延时后再次侦听,若仍然忙,则继续延迟等待,一直到可以发送为止。
每次延时的时间不一致,由退避算法确定延时值。
2发送过程中发现数据碰撞
若发送过程中发现数据碰撞,先发送阻塞信息,强化冲突,再进行侦听工作,以待下次重新发送(方法同①)。
(5)控制流程图(如下)
(6)CSMA控制规程的特征
①简单
②具有广播功能
③平均带宽:
f=F/n
④绝对平等,无优先级
⑤低负荷高效,高负荷低效
⑥延时时间不可预测
⑦传输速率与传输距离为一定值
2.3、CSMA/CD的退避算法
上述两种冲突情况都会涉及一个共同算法——退避算法。
退避算法:
当出现线路冲突时,如果冲突的各站点都采用同样的退避间隔时间,则很容易产生二次、三次的碰撞。
因此,要求各个站点的退避间隔时间具有差异性。
这要求通过退避算法来实现。
截断的二进制指数退避算法(退避算法之一):
截断二进制指数退避算法并不复杂。
这种算法让发生碰撞的站在停止发送数据后,不是等待信道变为空闲后就立即再发生数据,而是推迟一个随机的时间。
这样做是为了使重传时再次发生冲突的概率减少。
具体的退避算法如下:
、确定基本退避时间,它就是争用期2t。
以太网取值为征用期51.2us。
对于10Mb/s的以太网,在争用期内可以发送512bit,即64个字节。
也可以说争用期是512比特时间。
1比特时间就是发送1比特所需要的时间。
所以这种时间单位与数据率密切相关。
、从离散的整数集合[0,1…,()]中随机取一个数,记为r。
重传应该推后的时间是r倍的争用期。
上面的参数k按下面的公式计算:
k=Min[重传次数,10]
可见当重传的次数不超过10时,参数k等于重传的次数;
但是当重传的次数超过10时,k就不再增大而一直等于10。
c、当重传达16次仍然不能够成功时(这表明同时打算发送数据的站太多,以致连续发生冲突),则丢弃该帧,并向高层报告。
例如:
在第一次重传时,k=1,随机数r从整数[0,1]中选一个数。
因此重传的站可选择的重传推迟时间是0或者2t在这两个时间中随机选择一个。
若再次发生碰撞,则在第二次重传时,k=2,随机数r就从整数{0,1,2,3}中选一个数。
因此,重传推迟时间是在0,2t,4t和6t这4个时间中随机地选取一个。
若连续多次发生冲突,就表明可能有较多的站参与争用信道。
但使用上述退避算法可使重传需要推迟到平均时间随重传的次数而增大(也称为动态退避),因而减少发生碰撞的概率,有利于整个系统的稳定。
3、CSMA/CD协议简介
3.1、CSMA/CA概述
无线局域网标准802.11的MAC和802.3协议的MAC非常相似,都是在一个共享媒体之上支持多个用户共享资源,由发送者在发送数据前先进行网络的可用性检测。
在802.3协议中,是由一种称为CSMA/CD(CarrierSenseMultipleAccesswithCollisionDetection)的协议来完成调节,这个协议解决了在Ethernet上的各个工作站如何在线缆上进行传输的问题,利用它检测和避免当两个或两个以上的网络设备需要进行数据传送时网络上的冲突。
在802.11无线局域网协议中,冲突的检测存在一定的问题,这个问题称为"
Near/Far"
现象,这是由于要检测冲突,设备必须能够一边接受数据信号一边传送数据信号,而这在无线系统中是无法办到的。
鉴于这个差异,在802.11中对CSMA/CD进行了一些调整,采用了新的协议CSMA/CA(CarrierSenseMultipleAccesswithCollisionAvoidance)或者DCF(DistributedCoordinationFunction)。
CSMA/CA利用ACK信号来避免冲突的发生,也就是说,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地址。
3.2、CSMA/CA工作原理及控制规程
载波侦听多路访问/冲突避免(CarrierSenseMultipleAccess
with
CollisionAvoidance,CSMA/CA)。
此种方案采用主动避免碰撞而非被动侦测的方式来解决冲突问题。
可以满足那些不易准确侦测是否有冲突发生的需求,如无线局域网。
CSMA/CA协议主要使用两种方法来避免碰撞:
a、设备欲发送帧,且侦听到信道空闲时,维持一段时间后,再等待一段随机的时间依然空闲时,才送出资料。
由于各个设备的等待时间是分别随机产生的,因此很大可能有所区别,由此可以减少冲突的可能性。
b、RTS-CTS握手(handshake):
设备欲发送帧前,先发送一个很小的RTS(RequesttoSend)帧给目标端,等待目标端回应CTS(CleartoSend)帧后,才开始传送。
此方式可以确保接下来传送资料时,不会发生冲突。
同时由于RTS帧与CTS帧都很小,让传送的无效开销变小。
此方案应用于,无线局域网的IEEE802.11标准。
CSMA/CA通过这两种方式来提供无线的共享访问,这种显式的ACK机制在处理无线问题时非常有效。
然而不管是对于802.11还是802.3来说,这种方式都增加了额外的负担,所以802.11网络和类似的Ethernet网比较总是在性能上稍逊一筹。
RTS-CTS握手(handshake)实际上就是在发送数据帧之前先对信道进行预约。
下面为了方便解释这种技术的主要原理请大家先看图1-1。
图2-1CSMA/CA协议中的RTS和CTS帧
①在图2-1中:
●站B、站C、站E在站A的无线信号覆盖的范围内。
而站D不在其内。
●站A、站E、站D在站B的无线信号覆盖的范围内,但站C不在其内。
②如果站A要向站B发送数据,那么,站A在发送数据帧之前,要先向站B发送一个请求发送帧RTS(RequestToSend)。
在RTS帧中已说明将要发送的数据帧的长度。
站B收到RTS帧后就向站A回应一个允许发送帧CTS(ClearToSend)。
在CTS帧中也附上A欲发送的数据帧的长度(从RTS帧中将此数据复制到CTS帧中)。
站A收到CTS帧后就可发送其数据帧了。
现在讨论在A和B两个站附近的一些站将做出什么反应。
●对于站C,站C处于站A的无线传输范围内,但不在站B的无线传输范围内。
因此站C能够收听到站A发送的RTS帧,但经过一小段时间后,站C收听不到站B发送的CTS帧。
这样,在站A向站B发送数据的同时,站C也可以发送自己的数据而不会干扰站B接收数据(注意:
站C收听不到站B的信号表明,站B也收不听到站C的信号)。
●对于站D,站D收听不到站A发送的RTS帧,但能收听到站B发送的CTS帧。
因此,站D在收到站B发送的CTS帧后,应在站B随后接收数据帧的时间内关闭数据发送操作,以避免干扰站B接收自A站发来的数据。
●对于站E,它能收到RTS帧和CTS帧,因此,站E在站A发送数据帧的整个过程中不能发送数据。
③虽然使用RTS和CTS帧会使整个网络的效率有所下降。
但这两种控制帧都很短,它们的长度分别为20和14字节。
而数据帧则最长可达2346字节,相比之下的开销并不算大。
相反,若不使用这种控制帧,则一旦发生冲突而导致数据帧重发,则浪费的时间就更大。
虽然如此,但协议还是设有三种情况供用户选择:
●使用RTS和CTS帧;
●当数