美斯达的颚破机简述csmacd的工作原理理及过程是怎么样的

Contiki由几个独立的模块组成是一个開放源码、多任务事件驱动的嵌入式网络专用操作系统,微轻量级的控制器无线传感网络协议栈Rime。整个应用包括kernel、libraries、user code对于一些周期性嘚操作或者网络协议很有帮助。

Contiki系统为了支持多种硬件平台和软件协议设计了如图1.1所示的层次框架通过contiki-conf.h的宏定义用户可以灵活地选择协議类型,如:

图2.1显示了接收Radio Packet的调用逻辑与时序当射频硬件接收到数据包时ISR通知rf_process,rf_process自底向顶调用:RDC-》MAC-》NETWORK协议栈的接收函数最后将数据包提交给应用程序绑定的进程。

CSMA协议提供相对可靠的MAC层传输每次调用RDC层发送数据包后,它根据反馈信息判断是否需要缓存并重传该数据包

CSMA根据RDC层发送数据包的反馈信息选择相应逻辑动作:

MAC_TX_OK:发送成功,回收缓存数据结构和善后工作;

一个CSMA的典型时序如图3.2所示当RDC层发送完數据包后,CSMA的回调函数packet_sent()根据发送结果选择动作(见上面逻辑描述)如果需要重传则根据重传次数选择一个随机时间设置ctimer,当ctimer定时器超时后再次发送该缓存的数据包

}

一个动画看懂网络原理之CSMA/CD的简述csmacd嘚工作原理理

在计算机网络技术课程讲授过程中讲解至传统共享型即总线型网络数据传输时,会涉及到CSMA/CD协议(Carrier Sense Multiple Access with Collision Detection)即带冲突检测的载波监聽多路访问技术(载波监听多点接入/碰撞检测)本节就CSMA/CD的简述csmacd的工作原理理,做详细介绍

原理简单,易实现各工作站地位相同,无需集Φ控制无优先级控制。当网络负载增大时数据发送时间增长,数据发送及传输效率下降

各工作站在发送数据前,需先侦听信道是否涳闲若空闲,则立即发送数据;若信道忙碌则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同時有两个或两个以上的节点都提出发送请求则判定为冲突;若侦听到冲突,则所有节点立即停止发送数据等待一段随机时间,再重新嘗试发送如下图所示:

其原理可总结为:先听后发,边发边听冲突停发,随机延迟后重发

提供寻址和媒体存取的控制方式,使得不哃设备或网络上的节点可以在多点的网络上通信而不相互冲突

实际上该控制方式并没有完全解决数据冲突问题,这也是CSMA/CA出现的原因CSMA/CA也昰CSMA/CD的升级版。

CSMA/CD对工作站个数不是很敏感对实际的输入负载比较敏感,对传播时延比较敏感且冲突不可避免。其介质利用率随a的上升下降较快适合通信量不大,交互频繁的场合CSMA/CD帧越长,吞吐量越大要求帧具有最小长度,当有许多短消息时带宽浪费严重。在轻负载時提供最短延迟但对重负载敏感。

“等待一段随机时间”实际上是退避算法的另一种解释其算法特点如下:

非坚持的CSMA:线路忙,则等待一段时间再监听;不忙时,立即发送;减少冲突信道利用率降低。

1坚持的CSMA:线路忙继续侦听;不忙时,立即发送;信道利用率提高冲突增大。

p坚持的CSMA:线路忙继续侦听;不忙时,根据p概率进行发送另外的1-p概率为继续侦听(p是一个指定概率值)。

未经允许不得轉载: ?

}

    在CSMA中由于信道传播时延的存在,即使总线上两个站点没有监听到载波信号而发送帧时仍可能会发生冲突。由于CSMA算法没有冲突检测功能即使冲突已发生,仍然将已破壞的帧发送完使数据的有效传输率降低。
一种CSMA的改进方案是使发送站点传输过程中仍继续监听媒体以检测是否存在冲突。如果发生冲突信道上可以检测到超过发送站点本身发送的载波信号的幅度,由此判断出冲突的存在一旦检测到冲突,就立即停止发送并向总线仩发一串阻塞信号,用以通知总线上其他各有关站点这样,通道容量就不致因白白传送已受损的帧而浪费可以提高总线的利用率。这種方案称为“载波监听多路访问/冲突检测协议”(Carrier CSMA/CD要解决的另一主要问题是如何检测冲突当网络处于空闲的某一瞬间,有两个或两个以仩工作站要同时发送信息时同步发送的信号就会引起冲突。
(1)当一个站点想要发送数据的时候它检测网络查看是否有其他站点正在傳输,即监听信道是否空闲
(2)如果信道忙,则等待直到信道空闲;如果信道闲,站点就传输数据
(3)在发送数据的同时,站点继續监听网络确信没有其他站点在同时传输数据因为有可能两个或多个站点都同时检测到网络空闲然后几乎在同一时刻开始传输数据。如果两个或多个站点同时发送数据就会产生冲突。
(4)当一个传输节点识别出一个冲突它就发送一个拥塞信号,这个信号使得冲突的时間足够长让其他的节点都能发现。
(5)其他节点收到拥塞信号后都停止传输,等待一个随机产生的时间间隙(回退时间Backoff Time)后重发。
洳图6-25所示现假定A、B两个站点位于总线两端,两站点之间的最大传播时延为tp
当A站点发送数据后,经过接近于最大传播时延tp时B站点正好吔发送数据,此时冲突便发生发生冲突后,B 站点立即可检测到该冲突而A站点需再经过一份最大传播时延tp后,才能检测出冲突也即最壞情况下,对于基带CSMA/CD来说检测出一个冲突的时间等于任意两个站之间最大传播时延的两倍(2tp)。

 数据帧从一个站点开始发送到该数据幀发送完毕所需的时间和为“数据传输时延”;同理,数据传输时延也表示一个接收站点开始接收数据帧到该数据帧接收完毕所需的时間。数据传输时延(s)=数据帧长度(bit)/数据传输速率(bps)若不考虑中继器引入的延迟,数据帧从一个站点开始发送到该数据帧被另一個站点全部接收所需的总时间,等于数据传输时延与信号传播时延之和

由上述分析可知,为了确保发送数据站点在传输时能检测到可能存在的冲突数据帧的传输时延至少要两倍于传播时延。换句话说要求分组的长度不短于某个值,否则在检测出冲突之前传输已经结束但实际上分组已被冲突所破坏。由此引出了CSMA/CD总线网络中最短帧长的计算关系式如下所示:


由于单向传输的原因对于宽带总线而言,冲突检测时间等于任意两个站之间最大传播时延的4倍所以对于宽带CSMA/CD来说,要求数据帧的传输时延至少4倍于传播时延在CSMA/CD算法中,一旦检测箌冲突并发完阻塞信号后为了降低再次冲突的概率,需要等待一个随机时间然后再使用CSMA方法试图传输。为了保证这种退避操作维持稳萣采用了一种称为“二进制数指数退避”算法

二进制数指数退避算法是按“后进先出”(List In First Out,LIFO)的次序控制的即未发生冲突或很少发生沖突的数据帧,具有优先发送的概率;而发生过多次冲突的数据帧发送成功的概率就更少。IEEE 802.3就是采用“二进制数指数退避”和“1-坚持”算法的CSMA/CD媒体访问控制方法这种方法在低负荷时,如媒体空闲时要发送数据帧的站点能立即发送;在重负荷时,仍能保证系统的稳定性由于在媒体上传播的信号会衰减,为确保能检测出冲突信号CSMA/CD总线网限制一段无分支电缆的最大长度为500米。

“二进制数指数退避算法”嘚规则如下:

? 对每个帧当第一次发生冲突时,设置参数L=2退避重发时间在1~L个时隙中随机抽取;

? 当帧再次冲突时,L加倍即L=2L。退避重发时间仍在1~L个时隙中随机抽取;

? 当冲突n次L=2n。设置一个最大重传次数超过此值,不再重发并报告出错。

此算法的效果是鈈冲突或少冲突的帧重发的机会大冲突多的帧重发的机会小。

3.CSMA/CD的优点CSMA/CD控制方式的优点是:原理比较简单技术上也容易实现,网络中各工作站处于平等地位不需集中控制,不提供优先级控制但在网络负载增大时,发送时间增长发送效率急剧下降。它的代价是用于檢测冲突所花费的时间对于基带总线而言,最坏情况下用于检测一个冲突的时间等于任意两个站之间传播时延的两倍从一个站点开始發送数据到另一个站点开始接收数据,也即载波信号从一端传播到另一端所需的时间称为“信号传播时延”。信号传播时延(μs)=两站點的距离(m)/信号传播速度(200m/μs)


}

我要回帖

更多关于 简述csmacd的工作原理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信