802.11中的帧间间隔(SIFS/PIFS/DIFS)

2023-12-31 03:59
文章标签 间隔 802.11 sifs pifs difs

本文主要是介绍802.11中的帧间间隔(SIFS/PIFS/DIFS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、IEEE 802.11标准的MAC子层分为两种工作方式:分布协调功能(DCF)方式和集中协调功能(PCF)方式。

1、分布协调功能(DCF)

DCF 方式:(不使用基站)是 MAC 中最基本的介质接入控制机制。DCF 机制基于 CSMA,并以RTS/CTS 握手机制作为辅助的介质访问方式。这种控制方式利用载波侦听机制,适用于分布式网络

分布式网络:没有中心节点,由分布在不同位置的节点互联而成。网中任一点均至少与两条线路相连,当任意一条线路发生故障时,通信可转经其他链路完成,具有较高的可靠性。同时,网络易于扩充。


2、集中协调功能(PCF)

(使用基站)适用于具有中央控制器的网络中。


二、帧间间隔(IFS: interframe space)

为了尽量避免碰撞,802.11规定,所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔IFS。帧间间隔的长短取决于该站要发送的帧的类型。高优先级的帧需要等待的时间较短,因此可以优先获得发送权,但低优先级帧就必须等待较长的时间。若低优先级帧还没来得及发送而其他高优先级帧已发送到媒体,则媒体变为忙态因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。至于各种帧间间隔的具体长度,这取决于使用的物理层特性。

IFS提供对无线介质访问的不同优先级来进行划分的,不同优先级按照IFS的时间长短来进行划分,时间越短,表示其对应的优先级越高,帧间间隔的时间从小到大列出如下:

1、SIFS:短帧间间隔

SIFS是最短的时间区段,用来间隔需要立即响应的帧,如控制帧(RTS/CTS/ACK)等。在帧交换顺序地两次传输之间使用最短间隔,可以防止其它正在等待介质的站点试图使用介质。

2、PIFS:集中协调功能帧间间隔,只能够由工作于PCF模式的站点来使用。

3、DIFS:分布协调功能帧间间隔,只能够由工作于DCF模式的站点来使用。

4、EIFS: 在前一帧出错的情况下,发送节点 不得不延迟 EIFS 而不是DIFS时间段,再发送下一帧。


                         (IEEE 802.11标准)CSMA/CA协议工作原理图


为什么信道空闲,还要再等待一段时间DIFS呢?

就是考虑到可能有其他的站有高优先级的帧要发送。如果有,就要让高优先级帧先发送。


802.11无线局域网采用的是停止等待协议(stop-and-wait:每发送完一个分组就停止发送,等待对方的确认;在收到确认后,再发送下一个分组),是一种可靠传输协议。发送方必须等待对方的确认帧。但802.3有线局域网的传输是不可靠的,发送方把数据发送出去就不管了(当然若检测到碰撞是必须重传的),如果需要可靠传输则由高层负责。

这篇关于802.11中的帧间间隔(SIFS/PIFS/DIFS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

如何根据相同分隔符提取间隔数据?

最近遇到很多提问怎么提取字符的,而这些问题都有一个相同的特征,就是要提取的内容与内容之间,都有着相同的分隔符。当然,这种问题直接用“数据” →  “分列”功能就可以一步到位实现的,但有人喜欢折腾,而更多的人又非得指定函数公式的方法,或者更多的是要保持数据的同步性。   下面,我们就来讲讲用函数公式应该怎么实现这个提取,首先来个数据和要求,如下图,将 - 号间隔的内容依次提取到右边单元格内:

Java中计算两个日期间隔多少天

String dbtime1 = "2017-02-23";  //第二个日期 String dbtime2 = "2017-02-22";  //第一个日期 //算两个日期间隔多少天 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = format.parse(dbtime1); Date dat

Matlab)实现HSV非等间隔量化--相似判断:欧式距离--输出图片-

%************************************************************************** %                                 图像检索——提取颜色特征 %HSV空间颜色直方图(将RGB空间转化为HS

802.11报文类型在wireshark的过滤条件

– Common Filters for wireshark sniffer: #地址过滤 wlan.addr == wlan.sa eq 00:09:5b:e8:c4:03 and wlan.bssid ne ff:ff:ff:ff:ff:ff wlan.bssid eq 00:11:92:6e:cf:00 wlan.sa eq 00:09:5b:e8:c4:03 #802.11报文类型过滤

<Rust>egui学习之小部件(三):如何为窗口UI元件设置布局(间隔、水平、垂直排列)?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第三篇博文,主要说明如何对窗口的部件进行布局。 事实上,类似于iced,egui都提供了示例程序,本专栏的博文都是建立在官方示例程序以及

时间间隔计算工具类

记录下来,留着备用。 /*** @author abc 计算时间间隔*/public class IntervalUtil {public static String getInterval(String createtime) throws ParseException { // 传入的时间格式必须类似于2017-6-23// 11:53:20这样的格式String interval =

1177C语言实验——时间间隔

题目描述 从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。 如:3点5分25秒应表示为--03:05:25.假设两个时间在同一天内,时间先后顺序与输入无关。 输入 输入包括两行。 第一行为时间点1。 第二行为时间点2。 输出 以“小时:分钟:秒”的格式输出时间间隔。 格式参看输入输出。 示例输入 12:01:1

Java8学习笔记:计算两个时间的间隔及相隔天数、秒数等

环境 Java11 IDEA:2020.1 前言 如果大家用过Java7的时间,应该都知道,要计算startTime和endTime时间间隔是要写很多代码的; Java8开始对时间类进行过重构优化,并且提供了很多工具类; 代码 ChronoUnit类 现在假设有如下代码: // 常量private static final int ONE = 1;public static vo

ActiveMQ中的消息重发时间间隔和重发次数吗?

首先,我们得大概了解下,在哪些情况下,ActiveMQ服务器会将消息重发给消费者,这里为简单起见,假定采用的消息发送模式为队列(即消息发送者和消息接收者)。       1.如果消息接收者在处理完一条消息的处理过程后没有对MOM进行应答,则该消息将由MOM重发.       2.如果我们队某个队列设置了预读参数(consumer.prefetchSize),如果消息接收者在处理第一条消息

数字间隔排列

今有7对数字:两个1,两个2,两个3,…两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列: 17126425374635 当然,如果把它倒过来,也是符合要求的。 请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。 注意:只填写这个14位的整数,不能填写任何多余的内容,比如说明注释等。