2.1、CSMA/CD概述 在以太网中,所有的节点共享传输介质。如何保证传输介质有序、高效地为许多节点提供传输服务,就是以太网的介质访问控制协议要解决的问题。CSMA/CD(Carrier Sense Multiple Access/Collision Detect)即载波监听、多路访问/冲突检测方法。 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(Carrier Sense Multiple Access with Collision Detection)的协议来完成调节,这个协议解决了在Ethernet上的各个工作站如何在线缆上进行传输的问题,利用它检测和避免当两个或两个以上的网络设备需要进行数据传送时网络上的冲突。在802.11无线局域网协议中,冲突的检测存在一定的问题,这个问题称为"Near/Far"现象,这是由于要检测冲突,设备必须能够一边接受数据信号一边传送数据信号,而这在无线系统中是无法办到的。 鉴于这个差异,在802.11中对CSMA/CD进行了一些调整,采用了新的协议CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)或者DCF(Distributed Coordination Function)。 CSMA/CA利用ACK信号来避免冲突的发生,也就是说,只有当客户端收到网络上返回的ACK信号后才确认送出的数据已经正确到达目的地址。 3.2、CSMA/CA工作原理及控制规程 载波侦听多路访问/冲突避免(Carrier Sense Multiple Access with Collision Avoidance,CSMA/CA)。此种方案采用主动避免碰撞而非被动侦测的方式来解决冲突问题。可以满足那些不易准确侦测是否有冲突发生的需求,如无线局域网。 CSMA/CA协议主要使用两种方法来避免碰撞: a、设备欲发送帧,且侦听到信道空闲时,维持一段时间后,再等待一段随机的时间依然空闲时,才送出资料。由于各个设备的等待时间是分别随机产生的,因此很大可能有所区别,由此可以减少冲突的可能性。 b、RTS-CTS握手(handshake):设备欲发送帧前,先发送一个很小的RTS(Request to Send)帧给目标端,等待目标端回应CTS(Clear to Send)帧后,才开始传送。此方式可以确保接下来传送资料时,不会发生冲突。同时由于RTS帧与CTS帧都很小,让传送的无效开销变小。此方案应用于,无线局域网的IEEE 802.11标准。 CSMA/CA通过这两种方式来提供无线的共享访问,这种显式的ACK机制在处理无线问题时非常有效。然而不管是对于802.11还是802.3来说,这种方式都增加了额外的负担,所以802.11网络和类似的Ethernet网比较总是在性能上稍逊一筹。 RTS-CTS握手(handshake)实际上就是在发送数据帧之前先对信道进行预约。下面为了方便解释这种技术的主要原理请大家先看图1-1。 坩埚炉图2-1 CSMA/CA协议中的RTS和CTS帧 ①在图2-1中: ● 站B、站C、站E在站A 的无线信号覆盖的范围内。而站D不在其内。 ● 站A、站E、站D在站B 的无线信号覆盖的范围内,但站C不在其内。 ②如果站A要向站B发送数据,那么,站A在发送数据帧之前,要先向站B发送一个请求发送帧RTS(Request To Send)。在RTS帧中已说明将要发送的数据帧的长度。站B收到RTS帧后就向站A回应一个允许发送帧CTS(Clear To Send)。在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帧; ● 当数据帧的长度超过某一数值时才使用RTS和CTS帧; ● 不使用RTS和CTS帧。 ④尽管协议经过了精心设计,但冲突仍然会发生。 勤奋学习全面发展例如:站B和站C同时向站A发送BTS帧。这两个RTS帧发生冲突后,使得站A收不到正确的RTS帧因而站A就不会发送后续的CTS帧。这时,站B和站C像以太网发生冲突那样,各自随机地推迟一段时间后重新发送其RTS帧。推迟时间的算法也是使用二进制指数退避。 ⑤为了尽量减少冲突,802.11标准设计了独特的MAC子层,这里不具体说明。 3.3、CSMA/CD的退避算法 在IEEE 802.15.4 CSMA/CA机制中,网络协调器在网络中,会发出信标给所有的可感应节点,而对于有数据需传送的设备来说,它们会向网络协调器要求进行传送,由于在一个时间内只能有一个设备进行传输,因此所有想要传输的节点设备就会通过CSMA/CA机制来竞争传输媒体的使用权。所有准备传输数据的设备,会监测目前的无线传输媒体是否有其他设备在使用中,如果为宅闲,此时,这些设备会产生一个倒退延迟时间,来错开这些设备同时送出数据从而造成碰撞的可能。若目前的无线传输媒体是忙碌中的,则这些设备将会在监测到媒体为空闲后,再进行CSMA/CA的竞争。 在IEEE 802.15.4 CSMA/CA算法中,CSMA/CA算法是用于节点问数据传输时的信道争用机制,此算法中有三个重要的参数由每个要传送数据的设备去维护:Nb、CW和BE。 1、Nb(后退次数,Number Of Back): Nb的初始值为0,当设备有数据要传送时,经过一段后退时间后,发送CCA检测,若检测到信道忙,则会再一次产生倒退时间,此时Nb值会加1,在IEEE802.15.4中,Nb值最大定义为4,当信道在经过4次的后退延迟时间后仍为忙,刚放弃此次的传送,以避免过大开销。 2、 CW (碰撞窗口的长度,content window length): 也就是后退延迟时间的长度,单位是Backoff,一个后退周期的定义在MAC PIB中由参数aUnitBackofPeriod给出,为20symbol的时间。CW的初始值为2,最大值为31。 3、BE(后退指数,Backoff exponent): 取值范围为0~5,15.4推荐的默认值为3,最大值为5。当BE设为0时,则只进行一次碰撞检测。在IEEE 802.15.4中,失败的次数(重传)最多3次。图2.19是CSMA/CA算法流程;其中在步骤(3)是完成CCA的部分。 3.1 CSMA/CA协议工作流程图 3.4、无线网络MAC层的特点 在无线局域网中,由于无线信道的共享性和数据传输的组播性,发送方在发送数的过程中进行冲突检测比较困难。且对某个节点来说,其刚刚发出的信号强度要远高于来自其他节点的信号强度,也就是说它自己的信号会把其他的信号给覆盖掉。WLAN媒体访问控制(MAC)层采用的CSMA/CA协议,该协议用避免冲突检测代替802.3协议使用的冲突检测,采用冲突避免机制尽量减小冲突碰撞发生的概率,以提高网络吞吐性能与迟延性能。此外无线局域网中还存在一下几个问题: 3.4.1 Near-far effect 由于接收用户的随机移动性,移动用户与间的距离也是随机变化的,若各移动用户发射功率一样,那么到达的信号强弱不同,离近信号强反之则弱,通信系统的非线性则进一步加重,出现强者更强的现象,这就是远近效应。 远近效应存在于点到多点环境,一个对应多个移动终端,假设终端发射功率相同,但距离距离不同,接收到的信号大小不同,大信号可能将小信号当做干扰信号覆盖(当前的通行系统存在不同的解决办法,保证收到的信号大小差不多)。 3.4.2 隐藏站问题(Hidden station Problem) 拓扑:AP1---AP2---AP3 图3.2无线网络拓扑图1 假设由于信号覆盖的范围问题,中间的AP2能接收到AP1和AP3的信号,而AP1与AP3无法感觉对方的存在。AP1与AP3由于传输范围无法互相覆盖或者遇到其他障碍物阻碍的情况下,无法检测到碰撞的发生,不能使用cd机制,必须由接收端AP2来控管确认取得传输的权利。 3.4.3 暴露站问题(exposed station problem) 拓扑:AP1---AP2---AP3---AP4abs223 图3.3无线网络拓扑图2 假设信号传输距离只能到达相邻的站,即1-2-3,2-3-4组成两个传输范围,若这时ap2向ap1发送信号,ap3也想和ap4通信,但是由于ap3检测到媒体上有信号,于是,为了避免冲突,就不像ap4发送数据。其实ap2像ap1发送数据并不影响ap3像ap4发送数据,这种能检测到媒体上已存在信号,但又不影响发送数据的问题叫做暴露站问题。 |
本文发布于:2024-09-22 03:57:36,感谢您对本站的认可!
本文链接:https://www.17tex.com/xueshu/134588.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |