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

相关文章

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

Golang如何用gorm实现分页的功能

《Golang如何用gorm实现分页的功能》:本文主要介绍Golang如何用gorm实现分页的功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景go库下载初始化数据【1】建表【2】插入数据【3】查看数据4、代码示例【1】gorm结构体定义【2】分页结构体

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.