1.CSMA(载波侦听多路访问协议)

  CSMA 当其他节点检测到信道被占用时不发送数据。但是当数据发送完后其他节点同时检测到信道为空闲,之后又在同一时刻发送数据,可能再次产生冲突。

2.CSMA/CD(带冲突检测的载波侦听多路访问协议)

  由于以太网(Ethernet)成为现存局域网络结构的绝大多形式,CSMA/CD(Carrier Sense Multiple ACcess/Collision Detection)载波监测多址接人协议也成为局域网采用最多的MAC协议。CSMA/CD适宜于总线型局域网拓扑结构的随机竞争型媒体访问控制。总线型网络允许同一时刻只有一个节点(Node)发送数据,一旦两个或以上节点同时发送数据,则会发生数据碰撞,数据不能正常发送和接收。CSMA/CD协议就是尽可能保证网络上同时只有一个节点发送数据,减小数据“碰撞”概率。

  CSMA/CD工作过程

  当MAC收到LLG发来的数据以后,首先监测网络电缆上是否具有数据,即载波传送。

  发送数据前 先侦听信道是否空闲 ,若空闲 则立即发送数据.在发送数据时,边发送边继续侦听.若侦听到冲突,则立即停止发送数据。等待一段随机时间(通过二进制指数回退算法),再重新尝试。

  先听后发,边发边听,冲突停发,随即延迟后重发

  CSMA/CD使用条件

  L/R >= 2*T(L为发送数据包的大小,R为带宽,T为从发送端到接收端的传播时延)。

3.CSMA/CA协议(带冲突避免的载波侦听多路访问协议)

  CSMA作为随机竞争类MAC协议,算法简单而且性能丰富,所以在实际局域网的使用中得到了广泛的应用。但是在无线局域网中,由于无线传输媒体固有的特性及移动性的影响,无线局域网的MAC在差错控制、解决隐藏终端等方面存在应有别于有线局域网。因此WLAN与有线局域网所采用的CSMA备一定的差异。WLAN采用CSMA/CA(CSMA/Collision Avoidance)协议,其与CSMA/CD最大的不同点在于其采取避免冲突工作方式。

  与CSMA/CD不同,WLAN媒体访问控制(MAC)层采用的CSMA/CA(CSMA/Collision Avoidance)协议,由于在RF传输网络中冲突检测比较困难,所以该协议用避免冲突检测代替802.3协议使用的冲突检测,采用冲突避免机制尽量减小冲突碰撞发生的概率,以提高网络吞吐性能与迟延性能。协议使用信道空闲评估(CCA)算法来决定信道是否空闲,通过测试天线能量和决定接收信号强度RSSI来完成,并且使用RTS、CTS和ACK帧减少冲突。数据加密与普通局域网的等同加密(WEP)算法一样,使用64位密钥和RC4加密算法。

  CSMA/CA工作过程

  当发射端希望发送数据时,首先检测介质是否空闲,若是介质为空闲时,送出RTS(Request To Send请求发送),RTS信号包括发射端的地址、接收端的地址、下一笔数据将持续发送的时间等信息,接收端收到RTS信号后,将响应短信号CTS(Clear To Send),CTS信号上也RTS内记录的持续发送的时间,当发射端收到CTS包后,随即开始发送数据包。接收端收到数据包后,将以包内的CRC(CyClic Redundancy Check,循环冗余校验)的数值来检验包数据是否正确,若是检验结果正确时,接收端将响应ACK包,告知发射端数据己经被成功地接收。当发射端没有收到接收端的ACK包时,将认为包在传输过程中丢失,而一直重新发送包。

4.CSMA/CA与CSMA/CD的区别

  (1)载波检测方式:因传输介质不同,CSMA/CD与CSMA/CA的检测方式也不同。CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。

  (2)信道利用率比较CSMA/CA协议信道利用率低于CSMA/CD协议信道利用率。但是由于无线传输的特性,在无线局域网不能采用有线局域网的CSMA/CD协议。信道利用率受传输距离和空旷程度的影响,当距离远或者有障碍物影响时会存在隐藏终端问题,降低信道利用率。

  具体最高的信道利用率与传输速率有关。在IEEE802.11b无线局域网中,在1Mb/s速率时最高信道利用率可到90%,而在11Mb/s时最高信道利用率只有65%左右。

最新文章

  1. Kotlin类:功能更强、而更简洁(KAD 03)
  2. C++小项目:directx11图形程序(五):shadersclass
  3. Express安装过程
  4. Number()数据类型转换
  5. SQL 2008无法连接的解决办法
  6. Android onMeasure方法介绍
  7. 别说你会用 Google 搜索
  8. Hadoop集群错误
  9. Android 你应该知道的学习资源 进阶之路贵在坚持
  10. leetcode第一刷_Validate Binary Search Tree
  11. 读书笔记_Effective_C++_条款十五:在资源类管理类中提供对原始资源的访问
  12. Spring配置扫描mybatis的mapper文件注意:
  13. MySQL临时表与派生表(简略版)
  14. RxJava 笔记
  15. std::forward_list
  16. 201621123043 《Java程序设计》第11周学习总结
  17. 小程序自定义pick(日期加时间组合)
  18. JAVA之Mybatis基础入门二 -- 新增、更新、删除
  19. 分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
  20. 今天重装系统后,Windows更新提示“windows update当前无法检查更新,因为未运行服务。您可能需要重新启动计算机”

热门文章

  1. 纪中OJ 2019.02.15【NOIP提高组】模拟 B 组 梦回三国 比赛题解(第一个)
  2. texterea 水平居中
  3. [2016北京集训测试赛3]masodik-[凸包]
  4. [转]关于PreparedStatement.addBatch()方法
  5. Oracle dba权限下修改用户密码 授予用户权限 解锁用户
  6. Spring学习(六)-----Spring使用@Autowired注解自动装配
  7. 用Micro:bit做剪刀、石头、布游戏
  8. Git生成SSH密钥
  9. MySQL☞大结局
  10. Spring学习(3):IOC基础(转载)