[OSI 层协议]来自MAC的CSMA 和它的两个小弟 CSMA/CD、CSMA/CA

CSMA

波侦听多路访问(英语:Carrier Sense Multiple Access,缩写:CSMA)是一种介质访问控制(MAC)的协议。载波侦听(Carrier Sense) 指任何连接到介质的设备在欲发送帧前,必须对介质进行侦听,当确认其空闲时,才可以发送。 多路访问(Multiple Access) 指多个设备可以同时访问介质,一个设备发送的帧也可以被多个设备接收。

在架构中的定位

CSMA上级是 MAC 介质访问控制层 ,它作为MAC的一种实现方式而存在。

CSMA的下级是对其的两种强化方案:

  • CSMA/CD(Carrier Sense Multiple Access with Collision Detection),载波侦听多路访问/碰撞检测。
  • CSMA/CA(Carrier Sense Multiple Access with Collision Avoid),即载波监听多路访问/冲突避免。

CSMA/CD

工作流程

  • 1.监听信道是否在被其他节点使用,空闲时则传输自己的数据。
  • 2.如果两个节点同时在空闲的信道上启动信息传输,则会发生碰撞。因此要求传输过程中也保持对信道的监听操作,防止碰撞的发生;若发生碰撞则立刻停止传输并发出“拥挤”信号以确保其他所有节点发现碰撞,同时转入流程1。

详细流程

  • 第一步:载波监听,想发送信息包的节点要确保没有其他节点在使用共享介质(即先听后说)。
  • 第二步:如果信道在一定时段内寂静无声(称为帧间缝隙IFG),则该节点就开始传输(无声则讲)。
  • 第三步:如果信道一直很忙碌,就一直监视信道,直到出现最小的IFG时段时,该节点才开始发送它的数据(有空就说)。
  • 第四步:冲突检测,如果两个节点或更多的节点都在监听和等待发送,然后在信道空时同时决定立即(几乎同时)开始发送数据,此时就发生碰撞。这一事件会导致冲突,并使双方信息包都受到损坏。以太网在传输过程中不断地监听信道,以检测碰撞冲突(边听边说)。
  • 第五步:如果一个节点在传输期间检测出碰撞冲突,则立即停止该次传输,并向信道发出一个“拥挤”信号,以确保其他所有节点也发现该冲突,从而摒弃可能一直在接收的受损的信息包(冲突停止,即一次只能一人讲)。
  • 第六步:多路存取,在等待一段时间(称为后退)后,想发送的节点试图进行新的发送。

这时采用一种叫二进制指数退避策略(Binary Exponential Back off Policy)的算法来决定不同的节点在试图再次发送数据前要等待一段时间(随机延迟)。

  • 第七步:返回到第一步。

主要用于

有线连接的局域网

CSMA/CA

工作流程

  • 1.监听信道,当持续监测到信道空闲达一段时间后,发送数据
  • 2.接收端如果正确收到数据,并不立即发出确认消息,而是等待一小段时间后再发送确认消息(称之为ACK)。
  • 3.发送端收到ACK后,完成本次传输。

要点

  • 监听信道时,检测到一段持续空闲再发送数据,而不要监听到空闲就发送数据。
  • 发送数据时,先不要发送实际的数据,而是发送一个请求消息(RTS),当收到接收端的响应信号(CTS)后,再发送实际的数据包。

与CSMA/CD的不同

  1. CD在发送时也要保持对信道的监听,这种功能不适用于无线局域网,因此CA主要用于无线局域网
  2. CD通过持续的检测避免冲突,CA通过检测持续的空闲在动作来避免冲突。

你可能感兴趣的:(V2X,研究生)