IEEE 802.11: 分布式协调功能(Distributed Coordination Function, DCF)

本文主要是介绍IEEE 802.11: 分布式协调功能(Distributed Coordination Function, DCF),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Distributed Coordination Function (DCF) (tutorialspoint.com)

1. 分布式协调功能

Distributed Coordination Function (DCF)是一种在基于IEEE 802.11标准(Wi-Fi)的无线局域网中用于防止冲突的强制性技术。它是在采用载波侦听多路访问与冲突避免(CSMA/CA)的区域中使用的介质访问控制(MAC)子层技术。

技术流程

DCF的基本技术流程如下:

  1. 当一个站点有数据帧要发送时,它会等待一个随机的退避时间。随机退避时间由一个具有随机时隙数的争用窗口定义。退避时间由以下公式给出:


    Time_{backoff} = random() * Time_{slots}

    这里,random 函数生成一个随机数,Time_{slots}是一个时隙的时间周期。

  2. 如果站点在争用期间(等待随机后退时间的期间)感知到信道忙碌,它会暂停计时器,直到信道变为空闲状态。

  3. 退避期结束时,如果信道仍然空闲,站点将等待一个等于DIFS(Distributed Inter-Frame Space,分布式帧间间隔,DIFS是在进行信道访问之前必须等待的时间间隔,用于确保在发送数据之前信道确实处于空闲状态)的时间,并再次检测信道。

  4. 如果信道仍然空闲,站点发送一个RTS(Request to Send,请求发送)帧,RTS帧是用于协调数据传输的一种控制帧。通过发送RTS帧,站点向目标设备表达其意图发送数据,并请求目标设备在一定时间内保持信道空闲,以便它能够顺利发送数据帧。

  5. 如果目标站点可用,它将使用CTS(Clear to Send,允许发送)帧作出回应,目标设备收到RTS帧后,如果它也空闲并且愿意接收数据,则会发送一个CTS(Clear to Send,允许发送)帧作为回应,以确认信道的可用性。这种基于RTS/CTS的机制可以减少数据冲突和碰撞,提高数据传输的可靠性和效率。。

  6. 然后,发送站点发送数据帧

  7. 在发送完帧后,发送站点等待一个等于SIFS(Short Inter-Frame Space,短帧间间隔)的时间来接收确认帧

  8. 传输过程结束后,站点再次等待退避时间,以准备下一次传输。

2.  概念解释

2.1  DIFS

DIFS(Distributed Inter-Frame Space,分布式帧间间隔)是在IEEE 802.11标准中定义的一段时间,用于确认信道的空闲状态。在进行数据传输之前,发送站点需要等待一个DIFS的时间,以确保信道在传输开始之前是空闲的。这样做的目的是为了避免与其他设备同时发送数据,从而减少碰撞和冲突。

如果不使用DIFS而直接发送数据帧,就可能发生以下情况:

1. 站点在检测到信道空闲之后立即发送数据帧,但其他设备也在同时发送数据,导致碰撞和数据丢失。

2. 站点在检测到信道空闲后稍微等待一段时间发送数据帧,但由于没有明确的间隔时间,可能会与其他设备同时发送数据,仍然导致碰撞和数据丢失。

DIFS的作用是引入一个固定的时间间隔,使得发送站点在发送数据之前能够等待足够长的时间,以确保信道的空闲持续一段时间。这样可以降低碰撞的概率,提高数据传输的成功率。

总之,使用DIFS来确认信道的空闲状态是为了提供一种协调机制,避免数据冲突和碰撞。它充当了一种保护期,确保信道在数据传输之前足够长的时间内保持空闲。这有助于提高无线网络的性能和可靠性。

2.2  NAV

NAV(Network Allocation Vector)是一种在无线网络中使用的计数器,用于协调帧的传输。它是一个16位的字段,用于指示信道的保持时间。

在无线网络中,多个设备共享同一个无线信道进行通信。为了避免碰撞和冲突,设备需要对信道的使用进行协调。NAV的作用就是提供这种协调机制。

当一个设备成功接收到一个帧时,它会读取帧中的NAV字段,并设置自己的NAV值为当前时间加上NAV字段中指示的时间。设备会根据自己的NAV值来判断在何时可以传输帧。

当设备要发送帧时,它会先检查当前的NAV值。如果NAV值大于当前时间,表示还有其他设备在使用信道,设备会等待直到NAV值归零。这样可以避免与其他设备同时传输帧,减少碰撞和冲突。

在接收到帧时,设备会读取帧的NAV字段,并根据其中的值更新自己的NAV计数器。这样,设备就知道在接下来的一段时间内,其他设备将占用信道,需要等待。

通过使用NAV,无线网络中的设备可以在信道上互不干扰地传输帧,提高了网络的性能和可靠性。它帮助协调设备之间的传输,减少了碰撞和冲突,提高了整体的吞吐量和效率。

3.  增强型分布式协调函数(Enhanced Distributed Coordination Function,EDCF)

EDCF(Enhanced Distributed Coordination Function,增强型分布式协调函数)是一种用于无线局域网(WLAN)中的媒体访问控制(MAC)协议,它是基于IEEE 802.11标准的分布式协调函数(DCF)的改进版本。EDCF旨在提供更好的服务质量(QoS)支持,使不同类型的数据流能够以不同的优先级进行传输。

EDCF引入了四个不同的访问类别(Access Category,AC),分别是AC_BK、AC_BE、AC_VI和AC_VO。每个访问类别具有不同的传输优先级,以满足不同应用对延迟和带宽需求的要求。

在EDCF中,每个访问类别都有一个相关的传输参数集,包括AIFSN(Arbitration Inter-Frame Space Number,仲裁帧间间隔数)、CWmin(Contention Window Minimum,争用窗口最小值)和CWmax(Contention Window Maximum,争用窗口最大值)。这些参数决定了每个访问类别在竞争访问信道时的退避行为。

EDCF(Enhanced Distributed Coordination Function,增强型分布式协调函数)中的传输参数集是用来控制不同访问类别(Access Category, AC)的传输行为和优先级。每个访问类别都有一个相关的传输参数集,包括AIFSN(Arbitration Inter-Frame Space Number,仲裁帧间间隔数)、CWmin(Contention Window Minimum,争用窗口最小值)和CWmax(Contention Window Maximum,争用窗口最大值)。

  1. AIFSN(Arbitration Inter-Frame Space Number): AIFSN是一个非负整数,表示在一个访问类别中发送帧之间的时间间隔。具体而言,AIFSN定义了在一个访问类别的帧发送之前等待的时间槽数。较小的AIFSN值表示更高的优先级,因为它允许更快的传输机会。

  2. CWmin(Contention Window Minimum): CWmin是一个非负整数,表示在退避过程中争用窗口的最小大小。争用窗口定义了一个随机退避的范围,当信道被认为是空闲时,站点选择退避时间的随机数将在0到CWmin之间。较小的CWmin值表示更高的优先级,因为退避时间将更短。

  3. CWmax(Contention Window Maximum): CWmax是一个非负整数,表示在退避过程中争用窗口的最大大小。争用窗口的最大值决定了退避时间的上限。当信道被认为是空闲时,站点选择退避时间的随机数将在0到CWmax之间。较小的CWmax值表示更高的优先级,因为退避时间将更短。

通过调整这些传输参数集的值,可以控制不同访问类别在竞争访问信道时的退避行为和传输优先级。较小的AIFSN、CWmin和CWmax值将使访问类别具有更高的优先级,从而获得更快的传输机会,提供更好的服务质量。不同访问类别之间的传输参数集可以根据应用需求和网络条件进行配置和调整,以实现适当的资源分配和优化网络性能。

具体来说, EDCF中的退避过程如下:

  1. 当一个站点准备发送数据帧时,它会选择一个合适的访问类别。

  2. 站点等待一个随机的退避时间,该时间由访问类别的CWmin和CWmax决定。退避时间是以时间槽(time slot)为单位的,每个时间槽的长度由DCF/EDCF参数配置决定。

  3. 如果在退避期间,站点感知到信道忙碌(即有其他站点正在传输数据),它将暂停退避计时器,直到信道空闲。

  4. 当退避时间结束且信道空闲时,站点等待一个时间间隔,称为DIFS(Distributed Inter-Frame Space,分布式帧间间隔)。

  5. 如果DIFS后信道仍然空闲,站点发送一个RTS(Request to Send,请求发送)帧来请求传输权限。

  6. 目标站点收到RTS帧后,如果它空闲并且准备接收数据,它将回复一个CTS(Clear to Send,允许发送)帧。

  7. 发送站点在收到CTS帧后,开始发送数据帧。

  8. 在数据帧发送完毕后,发送站点等待一个时间间隔,称为SIFS(Short Inter-Frame Space,短帧间间隔),以接收来自目标站点的确认帧(ACK)。

  9. 在整个传输过程完成后,站点再次进行退避,选择下一个合适的访问类别,并重复上述步骤。

通过引入多个访问类别和优先级,EDCF允许不同类型的流量在竞争访问信道时具有不同的传输优先级。这样,高优先级的数据流可以更快地获得传输机会,从而提供更好的服务质量。

总之,EDCF是对DCF的增强,通过引入多个访问类别和相关的传输参数,以及优先级控制机制,实现了在无线局域网中更灵活、更具有服务质量支持的媒体访问控制。

这篇关于IEEE 802.11: 分布式协调功能(Distributed Coordination Function, DCF)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/196811

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁