当前位置: 首页 > news >正文

了解载波侦听多路访问CSMA(上)

1.CSMA的思想

        CSMA的全称是Carrier Sense Multiple Access,在笔者的理解中,其更趋向于一种理论研究的随机接入协议,或者说,基于其思想诞生了比如CSMA/CD与CSMA/CA这样的具体协议。CSMA可以分成以下三种:

  • 1-persistentes CSMA(1坚持-CSMA)
  • 0-persistentes CSMA(0坚持-CSMA)
  • p-persistentes CSMA(p坚持-CSMA)

        从历史上而言,CSMA实际上是源于aloha协议,为了理清协议的设计思路的脉络关系,我们还是有必要对原始的aloha协议做一个说明。Aloha是为无线工作环境设计的一个协议,其最初的思想很简单:“一个aloha节点只要有数据的话,该节点就可以立即发送。当该节点数据发送完之后,其需要等待接收方反馈的ACK。若成功接收到ACK之后,那么这一次传输成功。如果没有收到ACK的话,那么这一次传输失败。该aloha节点会认为网络中还存在另外一个aloha节点也在发送数据,所以造成接收方发生了冲突。最后这些冲突的节点会随机选择一个时间进行回退(backoff),以避免下一次冲突。若冲突节点回退完成,其才可以重新进行发送"。 

        实际上从初始的aloha协议中,我们就可以看到现在CSMA/CA的影子,网络协议的设计都是符合KISS原则的(Keep It Simple and Stupid),所以实际中我们所应用到的网络协议,其思想都不会是特别复杂。基于aloha协议的思想,CSMA协议对其最大的改进即是引入了LBT机制(Listen Before Talk),在CSMA中的CS(Carrier Sense)即是指Listen监听机制。在LBT机制下CSMA的思想就是:“CSMA节点在每一次发送之前先监听信道是否是空闲的,如果信道不是空闲的话,那么就不发送数据,等待一会再进行尝试。只有确保是空闲的情况下,才可以发送数据,从而避免打断其他节点正在进行的传输过程"。 

 2.CSMA的工作机制

        具体CSMA的工作机制关联着我们之前所叙述的三种CSMA模式,以下我们分别进行叙述:

  • 1-persistentes CSMA:“节点需要持续监听信道,一旦节点发现信道空闲后,则立刻发送数据。”。
  • 0-persistentes CSMA:“节点不连续监听信道,若该时刻节点监听信道为busy,那么等待一段时间后,再次进行监听。若节点该时刻监听信道为空闲,则立刻发送数据。
  • p-persistentes CSMA:“节点需要持续监听信道,一旦发现信道空闲后,节点以p的概率立刻发送数据,以1-p的概率不发送数据。若节点该时刻不发送数据,那么等待一段时间后,再次进行监听,并以p概率再次发送”。(注:这里所述的p概率可以理解成抛骰子赌大小,如果抛大,那么就发送,反之不发送。其中抛大的概率就是p,而抛小的概率就是1-p

        在以上三种CSMA机制中,若节点传输发送冲突,则类似aloha的基本算法,随机等待一个时间之后,再次进行重试。以上,我们分析了CSMA的基本工作模式,或者称之为CSMA的基本思想,接下来,我们具体讨论有线网络所应用到的CSMA/CD协议。

 

http://www.lryc.cn/news/425277.html

相关文章:

  • 开启教育新征程:“集师” 知识付费平台搭建
  • Vue3 + Electron 创建新的子窗口 且子窗口唯一
  • 海康VisionMaster使用学习笔记2-相机取图及参数设置
  • 【网络】【Linux】Linux内核中连接的组织形式与全连接队列
  • 记录一次 npm ERR! cb() never called! 解决过程
  • WEB渗透免杀篇-加载器免杀
  • 什么是反人性设计?
  • 如何进行长截图的两种方法
  • 基于轨迹的汽车跟随系统横向控制方法
  • 2024年8月15日嵌入式学习
  • C++引用和指针的区别还分不清楚?
  • 【Cesium开发实战】相机捕捉功能,获取当前视图,设定分辨率可下载当前视图图片
  • 基于spring boot的疫情信息管理系统
  • 【秋招笔试】8.11大疆秋招(第二套)-测开岗
  • Vitis AI 基本认知(训练过程)
  • 《SQL 约束:保障数据完整性与准确性的关键防线》
  • Temu半托管即将开通日韩站点,Temu半托管怎么上产品?
  • 谷歌、火狐、Edge浏览器使用allWebPlugin中间件加载ActiveX控件
  • Python利用openpyxl复制Excel文件且保留样式—另存为副本(附完整代码)
  • ITL-Internet Technology Letters
  • Mapreduce_wordcount自定义单词计数
  • 安卓开发中的AppCompat框架使用详解
  • docker中挂桶什么意思
  • 鸿蒙开发Location Kit(位置服务)如何设置
  • O2OA开发知识-后端代理/接口脚本编写也能像前端一样用上debugger
  • 树莓集团:引领数字影像技术培训的标杆
  • 为什么老实人普遍难拿高薪?这个答案让我醍醐灌顶!30岁的我决定开始改变
  • react的pdf转图片格式上传到后端
  • 【STM32 FreeRTOS】任务通知
  • 51单片机学习