帧格式
介质访问规则
有线访问规则
CSMA/CD:载波侦听多路访问/冲突检测。
无线访问规则
CSMA/CA:载波侦听多路访问/冲突避免。
当多台设备对同一信源进行访问的时候,信道充斥着相同的电磁波信号,彼此间进行干扰。而无线适配器不易检测信道中是否存在冲突,因此802.11引入了一个新的协议,构成了介质竞争和共享的机制。这是基于DCF——分布式协调功能。
DCF工作过程:为了防止冲突,每个终端会在发送数据前先启动一个backoff随机长度定时器,在定时器计时结束后如果空口依然空闲,就会发送数据,此时空口介质就会变为繁忙状态,从而抑制其余终端发送数据。
DCF存在的问题
DCF介质原理是检测空口介质空闲与否来选择是否发送数据。当两台终端彼此相距较远,且工作在同一信道。当一台终端与与AP通信时,产生的电磁信号未能被另一台感知到(隐藏节点),此时另一台终端会认为信道空闲,发送数据,进而导致冲突。
RTS/CTS
DCF存在的问题其实就是在AP的服务区内,有部分区域无法感知到空口繁忙,即没有收到同信道电磁波,导致该区域终端误以为空口空闲发送数据导致冲突。如果我们将一台终端在连接AP前发送一个控制报文,并在AP上进行广播,这样不就可以增大空口繁忙的区域了吗。基于这一个思想,假使RTA需要向AP发送数据,我们先发送一个较小的RTS控制帧给AP,AP收到后再回复一个CTS控制帧,表示做好了接受的准备。这个过程看起来像是点对点的传输,事实上,对于无线通信,无线信号是天然的广播方式,,AP发送的CTS控制帧可以在AP的辐射范围内被任何人收到。当RTB收到CTS控制帧后,就会保持静默,因为知道AP已经准备好与一个终端进行通信。
RTS/CTS理论上可以很好解决隐藏节点的问题,但是由于发送控制报文会占用空口传输时间及资源,所以并不适合在所有的环境下开启使用。研究表明,隐藏节点产生的空口碰撞在传输大数据帧的时候会更频繁发生,因此,当我们需要传输大数据帧的环境下,可以开启这个功能。H3C默认关闭RTS/CTS。
NAV
网络分配矢量。这是一个计时器,来源于802.11帧头的Duration字段。RTA在发送数据前,将NAV设置为报文需要发送的时间,其他STA根据NAV更新自己的计时器,在计时结束前会认为空口繁忙,从而自动退避。所有单播、RTS/CTS等需要确认的报文都会用到NAV,保证传输过程不被干扰。
802.11帧交换与重传
ACK确认机制
尽管可以通过协议上的优化尽可能地避免冲突,但是空口环境复杂,噪声和干扰不可避免,这个必须视为常规现象予以考虑。
完整的帧交换
发送frame以及收到ACK
适用范围
单播帧,广播和组播帧没有确认机制
帧重传
数据帧的传递必须收到ACK,如果没有收到,不管是对端没有收到frame还是发送的ACK丢在半路,这个都不重要了。因为规则是只要没收到ACK就重传。
这样就带来了一个问题:重复帧。
重传保护
重传帧的retry字段置1,以协助AP判断是否需要剔除。H3C重传上限为7次,一般空口环境丢10%算正常了。
重传带来的问题
代价就是增大了时延,加重空口负荷,提高介质占空比,并且不能百分百保证不丢包。