当前课程知识点:网络技术与应用 > 第4讲 无线局域网 > 4.3 无线局域网MAC层 > 4.3-2 DCF和CSMA/CA
在总线形以太网当中
为了连接在总线行以太网中的终端能够公平地竞争总线
设计了一种CSMA/CA算法
在无线局域网当中 也为了解决多点接入问题
也设计了DCF和CSMA/CA算法
下面 我们来详细学习
分布协调功能(DCF) CSMA/CA算法操作过程
还有RTS和CTS解决隐蔽站问题的过程
在无线局域网当中
MCA帧的功能主要是解决多点解决的问题
解决多点接入问题有两种办法
一个是分布协调功能 简称为DCF
还有一种是点协调功能 简称PCF
分布协调功能的核心是基于终端自由平等竞争无线信道
而点协调功能使用AP询问的方式分配相应的信道
在DCF当中主要是解决IBSS和BSS中的信道问题
那么这个功能对于系统来说是必须要提供的
而点协调功能(PCF)当中
因为是由AP来询问方式分配信道的
而IBSS当中没有AP
因此是解决BSS当中终端占用信道的问题
这种功能对于系统来说 是可选的
也就是可以提供这个功能 也可以没有提供这个功能
下面 我们主要学习DCF的功能
对于DCF来说
它主要是建立终端自由平等竞争总线信道的机制
那么它主要采用的是载波侦听多点接入/冲突避免机制
简称(CSMA/CA)机制
在总线形以太网当中为了终端公平竞争总线
也提供了一种竞争机制
叫载波侦听多点接入/冲突检测机制 简称CSMA/CD算法
那么在这两种机制当中
就有一个词不一样 一个是冲突避免 一个是冲突检测
因为在无线局域网当中
终端很难检测到发生的冲突
因此只能尽量避免冲突的发生
另外一个是 这里都有一个载波侦听
那么在无线局域网中的载波指的是
经过调制以后的电磁波信号
而在总线形以太网当中载波往往指的是
像曼彻斯特编码这种有跳变的信号 称为载波信号
那么DCF要完成的另外一个功能是解决隐蔽站的问题
它的方法主要是采用RTS和CTS
下面 我们看一下CSMA/CA的操作过程
比如说 对于这样一个独立基本服务集也好
还是基本服务集也好
所有的终端共享同一个信道
因此在发送数据之前 必须要检测信道是否空闲
如果信道忙的话 就不能发送数据
那怎么样才算信道是忙的呢
信道当中存在电磁波并且电磁波的能量超过一定的阈值
那么终端在发送数据之前 信道要空闲
信道空闲的先决条件是有两个
一个就是不忙
还有一个是 网络分配向量NAV值为0
在无线局域网的MAC帧当中 曾经说过
有一个字段叫持续时间的字段
那么持续时间字段就是为了预留无线信道而设置的字段
那么这个NAV向量也是为了预留信道时间而设置的参数
我们可以把它看做是一个计数器
初始的时候值为0
后面根据数据传输过程当中的需要
把这个值由持续时间字段赋值
详细的过程 我们配合后面的讲解来说明
那么终端检测到信道是空闲的是不是马上就可发送数据了
不一定 还要等待一段时间
等待一个叫帧间间隔的时间
为什么要设置一个等待帧间间隔时间呢
这个主要有三个方面
一个就是为了帧对界
就是让终端检测到从信道上没有电磁波到有电磁波的
这样一个过程
就是进行帧对界
第二个 对于那些连续接收MAC帧的接收端 清空缓存
第三个 天线发送状态和接收状态之间的切换
所以要设计这样一个帧间间隔
那么帧间间隔到底多长呢
就是这个时间要设计多长呢
帧间间隔长度根据发送的MAC帧的类型来定
前面说过MAC帧有三种类型
一种是控制类型 还有管理类型和数据类型
这样三种类型
不同的MAC帧的帧间间隔还不一样
那么 帧间间隔长度决定MAC帧的发送优先级
帧间间隔越短 对应类型的MAC帧的发送优先级就越高
帧间间隔类型不同 它的时间长度也不同
无线局域网为了对不同类型的MAC帧分配不同的优先级
它确定了4种不同的帧间间隔
下面我们来看其中两种比较重要的
一种叫短帧间间隔
短帧间间隔是无线局域网要求的最短帧间间隔
这段时间主要用于让终端完成发送方式和接收方式的转换
这种帧间间隔所对应的MAC帧
通常已经取得了信道控制权
这些终端发送MAC帧等待的帧间间隔
另外就是 分布协调功能帧间间隔
这个帧间间隔的时间是短帧间间隔(SIFS)+2个时隙
那么当一个终端用DCF传输数据的时候
必须侦听到信道持续空闲DIFS时间以后
才能传输数据或者进入退避时间
那么就是我们刚才前面说的 当侦听到信道是空闲的
并且等待持续时间以后还不一定能发送数据
这是为什么呢
我们来看一下
当终端发送第一帧MAC帧的时候检测信道有两种结果
一种是信道空闲
那么这个时候有多个终端同时发送数据的概率是比较低的
比如说 终端A检测信道
这个时候发现信道空闲了
那么它持续帧间间隔(DIFS)以后 终端A马上发送数据
跟其它终端相冲突的概率是比较小的
因为如果冲突 也就是同一个时间多个终端检测信道是空的
还有一种情况是 当终端检测信道的时候 信道是忙的
但是 这个时候多个终端同时发送数据的概率就比较高了
比如说 在信道忙的这段时间内
可能有好几个终端 如终端C 终端D 终端B
这么几个终端都来检测信道
那么这些终端都发现信道是忙的情况下
它都等待信道是空闲的状态
那么也就是说 当信道一空闲下来
可能这4个终端同时检测到信道是空的
如果终端A持续DIFS时间以后 马上就发送数据的话
那么B C D都可能持续DIFS时间后也发送数据了
那么这4个终端也就有可能发送冲突了
但是终端是很难检测冲突发生的
那么这应该怎么办呢
我们就要用一个退避机制
什么叫退避机制呢
就是说
终端在初始检测信道忙的情况下
每一个终端不继续检测终端是否忙
而是通过某种退避算法独立产生一个退避的延迟时间
那么我们把这种信道持续空闲DIFS时间以后
只有在退避时间内一直检测到信道空闲的终端
才能发送数据的这样一种机制 称为退避机制
那么退避多长时间呢
我们下面来详细看一下CSMA/CA的操作过程
首先 终端准备发送数据
发送数据的时候先去检测信道是不是忙的
只有信道不忙并且NAV是不是等于0
如果是信道不忙并且NAV=0的情况下
它要持续检测DIFS 这个时间内信道一直空闲
如果是一直空闲
那么就发送数据了
这是刚开始检测到信道是马上是空闲的情况
如果在帧间间隔时间内检测到信道忙了
那么跟一开始检测到信道是忙的时候一样
生成一个随机的退避时间
然后设置一个退避时间定时器
每隔一个时隙 定时器减1
生成退避时间以后
继续检测信道是否空闲
如果检测到信道不空闲 那么继续检测
如果检测到信道是空闲了
那么在持续DIFS内 信道是不是一直空闲
如果是在某一个时间又不空闲了
那么继续检测信道是不是忙
如果在持续的DIFS时间间隔里 信道一直是空闲的话
那么马上看一下退避时间是不是到了
如果退避时间到了 马上发送数据
如果退避时间没有到的话 那么继续检测信道是不是忙的
如果这个时候信道不忙 那么继续看退避时间是不是到了
如果这个期间检测到信道突然忙了
那怎么办呢
这个时候马上暂停退避时间定时器
然后 继续检测信道是不是空闲
然后持续地检测信道是空闲了
并且DIFS时间内信道也是空闲的情况下
重新启动定时器
然后重复刚才的工作
这就是CSMA/CA的详细操作过程
但是刚才一个环节里有随机生成退避时间
到底退避时间怎么生成呢
退避时间生成方法是这样
首先 设置一个变量CW
称为争用窗口
然后为每个终端设置一个最大和最小争用窗口
我们把它记为CWmin 和CWmax
那么初始的状态下 CW=CWmin
然后终端检测到信道忙的时候
在0-CW中随机选择一个整数R
并且使退避时间T=R×ST ST是一个固定时隙
它取决于无线局域网的物理层协议标准和数据传输速率
那么在发送端在发送MAC帧以后 直到重传定时器溢出
如果都没有接收到确认应答的话 就认定冲突发生
这个时候 发送端通过CSMA/CA算法重新发送该MAC帧
但是在计算退避时间的时候 增大CW的值
怎么来增大呢
如果i是重传次数 那么CW就等于2的3+i次方
然后再减1
直到CW=CWmax为止
那么一旦发送端接收到了确认应答以后
就把CW设置成初始的CWmin
在802.11标准当中 最大最小争用窗口都有相应的值规定
最小争用窗口是7 最大争用窗口是255
那么在无线局域网当中 它采用的是确认重传机制
那么这个确认应答信号怎么来传输呢
这个应答过程怎么来传输呢
比如说终端A向AP发送数据
那么AP接收到正确数据以后 它要发送一个应答帧
那么确保接收到数据以后 马上发送应答帧ACK
那么要采取这样几个措施
发送ACK的帧间间隔SIFS要远远小于DIFS
然后 发送端发送MAC帧的时候
把持续时间字段的值置为
接收端发送ACK所需要的时间+SIFS
比如终端A这个时候检测信道 信道是忙的
那么终端A算出一个退避时间
然后在持续的帧间间隔之内 如果信道一直是空闲的
然后在它的退避时间之内 信道也一直是空闲的
那么终端A就发送数据帧
在这个数据帧当中 把它的持续时间置成
AP要发送应答帧的时间和AP等待的最短帧间间隔时间(SIFS)
然后 在其它终端都能接收到终端A发送的MAC帧
那么其它终端把自己的NAV和持续时间进行比较
如果它的NAV的值比终端A发送的MAC帧持续时间小的话
那么用这个持续时间值更新它自己的NAV值
这样确保了AP的ACK的发送成功
最后 我们来看一下
怎么样解决DCF另外一个功能呢
怎么样解决隐蔽站的问题
左边这个是终端A的电磁波的有效传播范围
右边是终端C的电磁波的有效传播范围
那么这两个传播范围里都包含AP
但是终端A和终端C是互相隐蔽的
这是我们前面讲的
那么这个时候
怎么样来解决它们有可能同时向AP发送数据
而造成冲突的情况呢
终端A先向AP发送一个请求帧RTS
然后在请求帧当中
把它的持续时间置成回复它的请求帧的时间
比如说CTS的时间 和终端A发送数据的时间
以及AP回复应答帧的时间
再加上3个SITS
那么在终端A的电磁波覆盖范围里面的终端
它在接收到RTS MAC帧以后
把自己的NAV的时间跟这个RT当中的持续时间相比较
如果它的NAV的值小于持续时间
那么把持续时间更新为NAV
而在AP发送CTS应答帧的时候
在AP的电磁波覆盖范围里面 比如说终端C
它就接收到了CTS MAC帧
CTS当中的持续时间是终端A发送数据的时间
以及AP发送应答帧的时间
加上两个SIFS
终端C就把AP发送的CTS持续时间
来跟它自己的NAV值进行比较
如果说是NAV值小 就更新自己的NAV值
这样就确保解决了隐蔽站的问题
那么从这个传输过程当中
RTS和CTS在这样一个传输过程当中
这种方式在终端A在发送RTS的时候
事实上和终端C发送还是有可能发送冲突的
因此在规定的时间之内
如果终端A没有接收到AP的回复 就是CTS帧的话
它会重新发送RTS
那么终端A和AP之间发送数据的代价
就是RTS和CTS的时间
如果终端A向AP发送的数据是很长的话
那么这种方式是可取的
但是如果它本身发送的数据很短
这样的代价还是挺大的
因此802.11标准 给MAC帧的长度设置了阈值
如果MAC帧的长度超过了这个阈值的话
那么它可以采取这种方法
如果小于这个阈值 那么通常就不采用这种方法
我们把刚才的内容进行一下简单的小结
第一个 解决终端自由争用信道
是通过增加退避时间来避免发生冲突的方法
另外 不同长度的帧间间隔为不同类型的MAC帧
分配不同的优先级
就是通过这样两个方法
第二个 隐蔽站问题的解决
是通过NAV实现信道预留
然后通过交换RTS和CTS解决隐蔽站问题
-课程先导语
--先导语
-1.1 网络内涵
--网络内涵
-1.2 互联网发展过程
--互联网发展过程
-1.2 互联网发展过程--作业
-1.3 交换方式
--电路交换
-- 虚电路交换
--数据报交换
--三种交换方式比较
--html
-1.3 交换方式--作业
-1.4 计算机网络体系结构和协议
--分层结构
--OSI体系结构
-1.4 计算机网络体系结构和协议--作业
-第一讲内容的启示
--html
-例题分析
--例题分析
-测验--作业
-本讲内容简介
-2.1 数据传输系统
-2.1 数据传输系统--作业
-2.2 信号
--2.2 信号
-2.2 信号--作业
-2.3 编码和调制
--2.3-1 编码
--2.3-2 调制
-2.3 编码和调制--作业
-2.4 差错控制
-2.4 差错控制--作业
-2.5 传输媒体
--2.5 传输媒体
-2.5 传输媒体--作业
-2.6 Packet Tracer6.2使用说明
-第二讲内容的启示
--html
-例题分析
--例题分析
-测验--作业
-以太网发展过程与内容简介
-以太网发展过程与内容简介--作业
-3.1 总线形以太网
-3.1 总线形以太网--作业
-3.2 网桥与冲突域分割
-3.2 网桥与冲突域分割--作业
-3.3 交换式以太网与VLAN
-3.3 交换式以太网与VLAN--作业
-3.4 以太网标准
-3.4 以太网标准--作业
-第三讲内容的启示
--html
-例题分析
--例题分析
-案例设计
--案例设计
-测验--作业
-本讲内容简介
--无线局域网
-4.1 无线局域网概述
-4.1 无线局域网概述--作业
-4.2 无线局域网应用方式
-4.2 无线局域网应用方式--作业
-4.3 无线局域网MAC层
-4.3 无线局域网MAC层--作业
-4.4 终端接入无线局域网过程
-4.4 终端接入无线局域网过程--作业
-4.5 无线局域网设计和分析
-第四讲内容的启示
--html
-例题分析
--例题分析
-测验--作业
-本讲内容简介
-- IP与网络互连
-5.1 网络互连机制
-5.1 网络互连机制--作业
-5.2 网际协议
-5.2 网际协议--作业
-5.3 IP分组传输过程
-5.3 IP分组传输过程--作业
-5.4 路由表建立过程
-5.4 路由表建立过程--作业
-5.5 IP over以太网
-5.5 IP over以太网--作业
-5.6 三层交换机与VLAN间通信过程
-5.7 Internet控制报文协议
-5.7 Internet控制报文协议--作业
-第五讲内容启示
--html
-案例设计
--案例设计
-例题分析
-测验--作业
-本讲内容简介
--本讲内容简介
-6.1 Internet接入控制机制
-6.1 Internet接入控制机制--作业
-6.2 以太网和ADSL接入技术
-6.2 以太网和ADSL接入技术--作业
-6.3 家庭局域网接入方式与无线路由器
-6.3 家庭局域网接入方式与无线路由器--作业
-6.4 接入综合演示实验
-6.4 接入综合演示实验--作业
-第六讲内容的启示
--html
-例题分析
--第六讲 例题分析
-测验--作业
-本讲内容简介
--传输层
-7.1 传输层服务特性
--传输层服务特性
-7.1 传输层服务特性--作业
-7.2 端口号
--端口号
-7.3 用户数据报协议UDP
-7.3 用户数据报协议UDP--作业
-7.4 传输控制协议TCP
--TCP特点和格式
-- TCP的几点说明
-7.4 传输控制协议TCP--作业
-第七讲内容启示
--html
-例题分析
--例题分析
-测验--作业
-本讲内容简介
-- 应用层
-8.1 应用结构
--应用结构
-8.1 应用结构--作业
-8.2 域名解析
-8.2 域名解析--作业
-8.3 动态主机配置协议
-8.3 动态主机配置协议--作业
-8.4 万维网
-- 万维网
-8.4 万维网--作业
-8.5 电子邮件
--html
-8.6 文件传输协议
--html
-例题分析
--例题分析
-案例设计
--CH8 案例设计
-应用层启示
--html
-测验--作业
-本讲内容简介
-9.1 网络安全概述
-9.1 网络安全概述--作业
-9.2 网络安全基础
-9.2 网络安全基础--作业
-9.3 病毒检测与防御技术
-9.3 病毒检测与防御技术--作业
-9.4 以太网安全技术
-9.4 以太网安全技术--作业
-9.5 无线局域网安全技术
-9.5 无线局域网安全技术--作业
-9.6 防火墙
-9.6 防火墙--作业
-9.7 安全协议
--9.7 安全协议
-9.7 安全协议--作业
-例题分析
--例题分析
-防火墙演示实验
-- 防火墙演示实验
-案例设计
--案例设计
-网络安全的启示
--html
-测验--作业
-附录1:综合应用分析
--综合应用分析
-附录2:Cisco实际设备网络构建与配置
-期末考试--考试试题