为何要收藏这篇干货?——番茄憨憨的自我独白
我是番茄憨憨,我要坦白。
802.11协议中,station端和ap端的通信,可离不开CSMA/CA+ACK机制,这是从802.11b就有的绝对核心机制,只要你从事和wifi相关工作,不管是上层框架移植、还是底层驱动、协议开发,都必须掌握此知识点,是基础,也是核心,跟着下面三步走,直接搞定802.11中的CSMA/CA+ACK机制:- 1. 什么叫CSMA/CA协议
- 2. CSMA/CA协议工作原理
- 3. CSMA/CA协议解决了什么问题?
一、什么叫CSMA/CA协议
1、 全称 : Carrier Sense Multiple Access With Collision Avoidance,载波监听多点接入/碰撞避免协议 ;
2、CS : Carrier Sense,载波监听,每个站点发送数据前,和发送数据过程中,先检测总线上是否有其它 站点 在发送数据 ;
3、MA : Multiple Access , 多点接入 , 多个主机连接在同一条总线上该协议 应用于总线型网络中
4、CA : Collision Avoidance , 碰撞避免 ;
二、CSMA/CA协议工作原理
1、检测信道: 发送数据前 , 检测信道是否空闲 ;
2、信道空闲: 发出 RTS ( Request To Send ) , RTS 包括 发射端地址 , 接收端地址,发送持续时间等信息 ;
3、信道忙: 进入竞争窗口期(Contention Window),进行等待,等待时间为一段随机Backoff时间,该时间按照如下确定:
等待DIFS之后,计数器从Backoff值(取[0,CW]之间随机整数值)开始倒数减一(触发间隔为固定的时隙slot_time),当Backoff值减为0,如再次检测到信道空闲,进行传输。总等待时间:TDIFS+CWn*slot_time。
4、接收端收到RTS: 发送 CTS ( Clear To Send ) 响应 ;
5、发送端收到CTS: 同时执行以下两个操作 ;
发送数据: 开始发送数据帧 ;
预约信道: 告知其它站点,自己要传输数据,并给出传输时间 ;
6、接收方接收到数据后,使用CRC 循环冗余校验码校验数据是否正确,如果数据正确,返回ACK确认帧;
7、发送方接收到ACK确认帧后,才进行下一帧的发送 , 如果没有收到,则一直重传,直到161616 次失败为止; ( 二进制指数退避算法 );
CSMA/CA协议工作原理机制总结:
1、RTS/CTS收发响应机制
2、预约信道机制
3、ACK回复机制
三、CSMA/CA协议解决了什么问题?
隐藏节点问题:
1、A , C站点,要给B站点发送数据,发送前检测信道,如果A , C都检测不到信号,认为信道空闲,同时向B发送数据,此时就会导致冲突 ;
2、如果A要给B发送数据 , C没有检测到信号,此时强行给B发送数据,就会导致冲突;
四、憨憨总结
至此,是基础,也是核心,3步搞定802.11中的CSMA/CA+ACK机制核心内容就已经搞定,作为一名从事wfi相关开发的工作者,务必将它拿下,欢迎大家关注、收藏,转发,最后再评论,我是番茄憨憨,哈哈哈哈哈!!!