无线网络概论_4

news2024/12/23 20:51:44

成帧细节

  • 数据帧:好比802.11中的驮马,负责在工作站直接板运输数据。
  • 控制帧:通常能够与数据帧搭配使用,负责区域的清空,信道的取得以及载波监听的维护并于收到数据时给予肯定确认,借此来增加数据传输的可靠性。
  • 管理帧:负责监督,主要用来加入或者推出无线网络以及处理接入点直接关联的转移事宜

数据帧
会将上层协议的数据置于帧主体(frame body)中加以传递,会用到哪些字段,取决于该数据帧所属的类型。
在这里插入图片描述
下如图,则是数据真的分类方式:
在这里插入图片描述
Frame Control
每个帧控制位都有可能会影响到MAC标头中其他字段的解读方式。最值得注意的是那些地址字段,他们的意义将因ToDS及FromDS位的值的不同而不同。
Duration
用来记载网络分配适量(NAV)的值,访问媒介的时间限制有NAV指定。

  • 无竞争周期所传递的任何帧必须将该字段设定为32768,此规范适用于无竞争周期所传递的任何数据帧。

  • 目的地为广播或组播地址的帧的持续时间为0。此类帧并非原子交换过程的一部分,接收端也不会加以确认,因此给予竞争的媒介访问可以在广播或组播数据帧结束后立即开始。·NAV在帧交换过程中用来保护对传送媒介的访问。之后也没有来自链路层的确认,所以没有必要锁定媒介使用权。

  • Frame Control字段中的More Fragment位为0,最后的帧片段只需为本身的确认预定媒介使用权,之后就可以恢复基于竞争的访问。Duration字段会被设定为传送一个短帧间间隔及片段响应所需要的时间,如下图:
    在这里插入图片描述

  • Frame Control字段中的More Fragment位为1,因此,Duration被设定为传送2个确认加上3个短帧间间隔及下一个帧片段所需要的时间。为最终片段设定NAV的方式本质上于RTS相同,所以也被称为虚拟RTS。
    在这里插入图片描述
    寻址与DS位:
    如下图,列出了地址字段在数据帧中的各种用法:
    在这里插入图片描述

  • Address 1
    字段代表帧的接收端地址。再某些情况下,接收端即为目的地,但不总是这样,目的地是指负责处理帧中网络层封包的工作站,而接收端则是负责将无线电波解码为802.11帧的工作站。

  • Address
    2字段是发送端地址,用来发送确认信息。发送端(transmitter)不见得就是来源地(sender)来源地是指产生帧中网络层协议封包的工作站;而发送端则是负责将顿传送至无线链路。

  • Address 3 字段则是供接入点与分布式系统过滤之用,不过该字段的用法取决于所使用的网络类型

    由于IBSS并未使用接入点,因此不会涉及分布式系统。发送端即为帧的来源,而接收端即为帧的目的地。每个帧都会记载BSSID,因此工作站可以检查广播与组播信息。只有隶属同一个BSS的工作站才会处理该广播或组播信息。在IBSS 中,BSSID 是由随机数产生器随机产生的。
    802.11对来源地与发送端以及目的地与接收端有明确的区别。将送至无线媒介的发送端不见得就是帧的产生者。目的地地址与接收端地址同样有此区别。接收端可能只是中间目的地,而帧只有到达目的地,才会由上层的协议加以处理。

BSSID

每个BSS都会被赋予一个BSSID,是一个长度为48位的二进制标识符,用来识别不同的BSS。BSSID 的主要优点是它可作为过滤之用。虽然不同的802.11网络彼此之间可能重叠,但即使如此也不应该让相互重叠的网络收到彼此的链路层广播。
在infrastructure BSS 中,BSSID就是创建该BSS的接入点上无线接口的MAC地址。而IBSS 则必须创建BSSID,才能产生网络。为了让所创建的地址尽量不重复,BSSID有46位是随机产生的。其所产生的 BSSID会将Universal/Local位设定为1,代表这是一个本地地址,至于Individual/Group位则会设定为0。两个不同的IBSS如果要产生相同的BSSID,那么它们所产生的 46位随机数必须完全相同。
有一个BSSID会被保留不用,就是所有位均设定为1的BSSID,又称为广播型BSSID。使用广播型 BSSID 的可以不被MAC中任何的 BSSID filter 所过滤BSSID 的广播只有在移动式工作站送出 probe request 以试图找出有哪些网络可以加入时才会被用到。probe 愤要能够探测现有的网络,就不能被BSSID filter过滤掉。probe 倾是唯一允许使用广播型 BSSID的。

举个例子

图4-4展示了一个网络,无线客户端通过 802.11 网络连接至服务器客户端将帧传送给服务器:
在这里插入图片描述
如果帧的目的地位于分布式系统 (distribution system,简称DS),则客户端既是来源地也是发送端。至于无线帧的接收端则是接入点,不过该接入点只是个中间目的地。当顿送达接入点时,该顿会经分布式系统转送给服务器。因此,分布式是接收端,而服务器才是最后的目的地。在基础结构型网络里,接入点会以其无线接口的地址创建相应的BSS,这就是为什么接收端地址 (Address 1) 会被设定为 BSSID 的原因。
当服务器响应客户端,帧会通过接入点被传送给客户端,如图4-5所示。
在这里插入图片描述
0.
帧产生自服务器,所以服务器的MAC 地址即为该的源地址 (source address,简称 SA)。当帧通过接入点转送出去时,接入点将会以自己的无线接口作为发送端地址(transmitter address,简称TA)。如同前一个例子,接入点的接口地址就是 BSSID。帧最后会被送至客户端,此时客户端既是目的地 (destination)也是接收端 (receiver)。

无线分布式系统 (wireless distribution system,简称WDS)

在这里插入图片描述
无线分布式系统有时也称为无线桥接器 (wireless bridge)。如图4-6所示,两条有线网络通过扮演无线桥接器角色的基站彼此相连。从客户端送至服务器的帧会经过 802.11 WDS。该无线的源地址与目的地地址依然对应到客户端与服务器的地址。不过,这些帧还是会区分无线媒介上帧的发送端与接收端。对于由客户端送至服务器的帧而言,发送端就是客户端这边的接入点,而接收端就是服务器这边的接入点将来源地与传送端分开的好处是,当服务器这边的接入点送出必要的802.11响应给对方的接入点时,不会干扰到有线链路层

数据帧的类型主题:

要使用何种帧,取决于服务是属于基于竞争的还是无竞争的。基于效率上的考虑,无竞争帧中可以纳入其他功能。只要改变帧的subtype,无竞争周期中的数据可用来确认其他,如此便可省去间间隔以及一一确认所带来的负担。以下是常见的数据帧类型:
data
子类型为 Data的顿只有在基于竞争的访问周期才会被传送。这类简单的顿只有一个目的,即在工作站间传送帧主体。
Null
它是由MAC 标头与FCS标尾所组成。在传统的Ethernet中,Null无非就是额外的负担。在802.11网络中,移动式工作站会利用Null顿来通知接入点改变省电状态。当工作站进入休眠状态时,接入点必须开始为之缓存帧。如果该移动式工作站没有数据要经分布式系统传送,也可以使用 Null帧,同时将 Frame Control (控制)字段的 Power Management (电源管理)位设定为1。接入点不可能进入省电模式,因此不会传送 Null。如下图:
在这里插入图片描述
不过在无竞争服务在实现上并不常见。

数据帧的封装

数据帧的形式取决于网络的类型。帧究竟属于何种类型,完全取决于subtype 字段,而与其他字段是否出现在帧中无关。

IBSS帧
在IBSS 中使用的address 字段有三种,如图-8 所示。第一个地址代表 receiver ,同时也是IBSS 网络中的destination地址。第二个地址是source地址。在这些地址之后,伴随而来的是IBSS的 BSSID。当无线 MAC 收到一个帧时,首先会去检查 BSSID,只有 BSSID 与工作站的相同的才会交由上层协议处理。
在这里插入图片描述

IBSS 数据帧的子类型不是 data 就是 Null,后者只是用来告知目前的电源管理状态。

传送来自接入点 (From AP)的帧

4-9显示了从接入点传送给移动式工作站的格式。
在这里插入图片描述
和所有数据一样,第一个地址字段代表无线网络中接收该帧的receiver (接收端),即该帧的目的地。第二个地址字段存放了transmitter(发送端)的地址。在infrastructure(基础结构型)网络中,发送端地址即为接入点(AP)上无线接口的地址,同时也是 BSSID最后,该会记载的来源MAC地址。区分source 与发送端之所以必要是因为802.11 MAC会将确认送给的transmitter,而较上层的协议会将回复送给帧的 source。

在802.11的规范说明书中并未明文禁止接入点传送 Null ,不过这么做并没有任何意义。因为接入点禁止使用省电例程,所以接入点只会确认来自工作站的Nul1顿,而不会在响应中使用Nul1帧。实际上,在基于竞争的访问周期,接入点会使用Data顿,而在无竞争周期,则是使用包含 CF-Pol1 功能的帧。

传送至接入点 (TOAP) 的帧

图4-10显示了在infrastructure网络里,移动式工作站传送给所连接的接人点的帧格式。
在这里插入图片描述

  • 接收端地址 (RA)为BSSID。在基础结构型网络里,BSSID 即为接入点的MAC地址。送至接入点的帧,其来源地/发送端地址
    (SA/TA)是无线工作站的网络接口。接入点并未进行地址过滤的动作,而是使用第三个地址(DA)将数据转送至位于分布式系统的适当位置。
  • 传送至分布式系统(DS)的的TODS位会被设定为1,而FromDS位会被设定为0。在基础结构型网络中,移动式工作站不能扮演点协调者
    (point coordinator)的角色,因此不能传送含有 CF-Poll(无竞争-轮询)功能的。

WDS中的帧

在这里插入图片描述

  • source (来源地)以及destination (目的地)地址,并且将之与无线链路 (wireless link)所使用的地址区分开来。
  • 在无线桥接链路中,通常不会存在移动式工作站,也不会使用无竞争周期。接入点禁止进入省电模式,因此Power Management (电源管理)位必然被设定为0。

经过加密的帧

  • 受到链路层安全协议保护的并不算新的帧类型。当帧经过加密处理后,Frame Control(帧控制)字段的Protected Frame位会被设定为1,至于Frame Body (主体)字段则是以第五章或第七章所描述的加密标头开始,这取决于所使用的是何种协议。

控制帧

控制帧主要用于协助数据帧的传递。它们可用来管理无线媒介的访问 (但非媒介本身)以及提供 MAC 层的可靠性。

一般的帧控制字段
所有控制帧均使用相同的Frame Control (控制)字段,如下图:
在这里插入图片描述

  • Protocol:协议版本的值为0,因为这是目前绝无仅有的版本。
  • Type:控制帧的类型标识符为01。定义时,所有控制均使用此标识符
  • Subtype:此字段代表传送的控制帧的子类型
  • ToDS与FromDS位:控制帧负责仲裁无线媒介的访问,因此只能够由无线工作站产生。分布式系统(DS) 并不会收发控制,因此这两个位必然为 0
  • More Fragments位:控制帧不可能被分段,因此这个位必然为0。
  • Retry位:控制帧不像管理帧或数据帧那样,必须在队列中等候重新发送,因此这个位必然为0.
  • Power Management位:此位用来指示完成当前的帧交换过程后,传送端的电源管理状态
  • More Data位:此位只用于管理帧及数据帧中,在控制帧中此位必然为 0
  • Protected Frame位:控制帧不会经过加密,因此对控制帧而言,此位必然为 0。
  • Order位:控制帧是原子帧交换程序 (atomic frame exchange operation)的组成要件,因此必须依序传送,所以这个位必然为 0。

RTS(请求发送)

RTS 可用来取得媒介的控制权,以便传送“大型”帧。至于多大可称为“大型”,则是由网卡驱动程序中的 RTS threshold来定义。媒介访问权只能保留给单播(unicast)帧使用,而广播(broadcast) 与组播(multicast)顿只是被简单地传送。

就和所有控制顿一样,RTS只包含头。顿主体中并未包含任何数据,帧头之后即为 FCS (校验码)。
在这里插入图片描述

RTS的MAC 标头由4个字段构成:

  • Frame Control:Frame Control字段并没有任何特殊之处。帧的subtype字段被设定为1011,代表RTS 顿。除此之外,它与其他的控制帧有相同的字段。
  • Duration:RTS 顿会试图预约媒介使用权,供交换过程使用,因此RTS 传送者必须计算RTS 顿结束后还需要多少时间用于顿交换。图 4-14说明了整个交换过程,总共需要3个SIFS 周期、1个CTS 持续时间、最后的ACK 加上传送第一个或片段所需要的时间。
  • Receiver Address :接收大型帧的工作站地址。
  • Transmitter Address :RTS 帧的发送端地址。
    如图:
    在这里插入图片描述
    CTS(清除发送)
    在这里插入图片描述

CTS 顿有两种目的,其格式如 4-15 所示。起初,CTS 仅用于回复 RTS ,如果之前没有RTS出现,就不会产生CTS。后来,CTS被 802.11g保护机制用来避免干扰较旧的工作站。

CTS帧的 MAC标头由3个字段构成

  • Frame Control:帧的 subtype (子类型) 字段被设定为 1100,代表 CTS 帧。
  • Duration:用来响应RTS时,CTS 的发送端会以 RTS 的duration 值作为持续时间的计算基准。RTS帧会为整个RTS-CTS-frame-ACK 交换过程预留媒介使用时间。

图4-16显示了CTS duration 与RTSduration的关系:
在这里插入图片描述

  • Receiver Address:CTS帧接收端即为之前 RTS 的发送端,因此MAC会将RTS 的发送端地址复制到CTS 帧的接收端地址。

ACK (确认)
在这里插入图片描述

ACK 就是MAC以及任何数据的传送 (包括一般传送、RTS/CTS 交换之前的帧、帧片段)所需要的肯定确认 (positive acknowledgment)。服务质量扩展功能放宽了对于数据帧的单一确认要求。要评估响应机制对净吞吐量 (net throughput)所造成的影响。

ACK帧的MAC标头由3个字段构成:

  • Frame Control:帧的subtype (子类型)字段被设定为 1101,代表ACK 帧。
  • Duration:根据ACK信号在整个帧交换过程中所处的位置,duration 的值可以有两种设定方式。
    在完整的数据帧及一连串顿片段的最后一个片段中,duration会被设定为0。数据发送端会将Frame Control(控制)字段中的More Fragments位设定为0,表示数据传送已经结束。如果 More Fragments 位为0,表示整个传送已经完成,没有必要再延长对无线信道的控制权,因此会将duration设定为0。
    如果More Fragments 位为1,表示尚有片段在传送中。此时 Duration 字段的用法和CTS 帧中的 Duration 字段相同。传送 ACK以及其短间间隔所需要的时间,将从最近的帧片段所记载的duration)中减去。如果不是最后一个ACK帧,duration的计算方式就类似CTS duration的计算方式。事实上,802.11的规范说明书将 ACK顺中的 duration 设定称为虚拟CTS

在这里插入图片描述

  • Receiver Address:接收端地址是由所要确认的发送端帧复制而来。就技术而言,它是从所要确认的顿的 Address 2字段复制而来。确认主要是针对数据、管理以及 PS-PoIl 顿。

PS-POLL(省电-轮询):

当一个移动式工作站从省电模式中苏醒后,便会传送一个 PS-POIl 给接入点以取得任何缓存顿。

PS-Poll帧的格式如图 4-19 :
在这里插入图片描述

  • Frame Control:字段被设定为 1010,代表PS-Pol1 帧。
  • AID(关联标识符):PS-Poll帧会以MAC标头的第三位与第四位来代表关联标识符 (association ID)关联标识符是接入点指定的一个数值,用来识别关联。将此标识符放入帧中,可让接入点找出为其缓存的帧。
  • BSSID:此字段包含发送端当前所在 BSS 的 BSSID,此BSS 由当前所关联的接入点创建
  • Transmitter Address:此为PS-Pol1 顿发送端的 MAC 地址。

在PS-Poll 帧中并未包含 duration 信息,因此无法更新 NAV。不过,所有收到PS-Poll的工作站都会以短帧间间隔加上传送ACK信号所需要的时间来更新NAV。

关联标识符(AID)
在PS-Poll帧中,Duration/ID宇段是关联标识符,而非虚拟载波监听功能所使用的数值。当移动式工作站与接入点关联时,接入点会从1~2007这个范围内指派一个值来作为关联标识符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

垃圾收集器必问系列—CMS

本文已收录至Github,推荐阅读 👉 Java随想录 应该相信,自己是生活的战胜者。——雨果 文章目录CMS简介运作过程CMS的缺陷处理器资源敏感无法处理“浮动垃圾”内存碎片纵观全书《深入理解JVM虚拟机》第三版,在垃圾回收器这一篇章&a…

CMakelists.txt简单介绍

先祝大家开工大吉,这篇策划一下CMakelists.txt,它依托在Cmake里,在大型工程、平台兼容方面非常好用的C项目编译工具,再此先对它做一个简短的介绍。 目录 一、CMakelists.txt简介 二、使用示例 三、总结 一、CMakelists.txt简介…

Eclipse swt环境搭建

通过Eclipse Marketplace安装打开eclipse,点击help,在弹出的框中,选择Eclipse Marketplace。如下所示。。。搜索windows 安装插件一、创建一个SWT项目点击左上角的File - > New -> Other...进入后搜索SWT ,选中在WindowBuilder下的SWT …

CnOpenData中国彩票销售数据

一、数据简介 彩票是一种编有号码的证券,按票面价格出售。开奖后,持有中奖号码奖券的,可按规定领奖。它是一种建立在机会均等基础上的、具有公平竞争特征的娱乐游戏。国家发行彩票的目的是筹集社会公众资金,资助福利、体育等社会公…

springboot中整合mybatis及简单使用

springboot中整合mybatis及简单使用1.引入依赖2.在applicaiton.yaml中配置数据源以及mybatis3.创建sql测试表4.编写mapper接口和mapper.xml文件4.1 mapper接口4.2 mapper.xml4.3 mybatisX快速开发插件5.创建service层和controller层5.1 创建service层5.2 创建controller层6.项目…

[网鼎杯 2018]Fakebook

目录 信息收集 代码审计 思路 解法一(非预期解) 解法二(预期解) 信息收集 目录扫描代码泄露扫描 robots.txt;flag.php;login.php;user.php;view.php;join.php; 直接打开flag.php后没有回显,应该需要通过ssrf来访…

Qt音视频开发12-easyplayer内核

一、前言 在视频监控行业经常看到两个厂家广告打得比较厉害,一个是青犀视频对应easyplayer,一个是大牛直播,两个最初都是sdk免费,并提供调用示例源码,后面大牛直播的sdk以及示例都无法运行,目前就剩下免费…

Word处理控件Aspose.Words功能演示:如何在 C# .NET 中将 PNG、JPG 转换为 Word

Aspose.Words 是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外, Aspose API支持流行文件格式处…

git push clone 参数具体解析

1 问题背景 git远程仓库有很多命令,但是教程里面讲解的都是特别模糊的。 2 命令实例解析 2.1 git branch -vv -a命令具体解析 在开始下面的命令解析之前,我们一定要学会git branch -vv -a这个命令,这个是查询本地仓库远程仓库跟踪关系最全…

《从0开始学大数据》之ZooKeeper是如何保证数据一致性的

背景 在分布式集群系统中,比如两个应用程序都需要对一个文件路径进行写操作,但是如果两个应用程序对于哪台服务器是主服务器的判断不同,就会分别连接到两个不同的 NameNode 上,并都得到了对同一个文件路径的写操作权限&#xff0…

振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线

振弦采集模块配置工具VMTool 扩展功能指令生成器与实时曲线 指令生成器 ( 1) 指令生成 指令生成器可根据需要生成符合 MODBUS 和 AABB 通讯协议的读取和控制指令。 通过点击串口调试工具内的【 指令生成器】 按钮,可打开指令生成器窗口&#…

【SpringBoot高级篇】SpringBoot集成XXL-JOB分布式任务调度平台

【SpringBoot高级篇】SpringBoot集成XXL-JOB分布式任务调度平台简介下载源码部署任务调度平台执行SQL脚本部署任务平台简单使用初始化测试项目pom依赖SampleXxlJob修改配置调度平台配置执行器任务管理添加任务简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标…

连续函数的运算与初等函数的连续性——“高等数学”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是连续函数的运算与初等函数的连续性,上篇博客我们学到了函数的连续性和间断点,这篇博客相当于是上篇博客的一个补充,好吧,现在就让我们进入高等数学的世界吧 一、…

【刷题】不用加减乘除做加法

这是一道简单的数学题。但是比较繁琐,需要有耐心。 目录 前言 一、找规律 二、怎么实现加法? 总结 前言 这道题不让用四则运算符做加法,于是我第一反应是用位运算。 难道转成二进制再使用位运算吗,显然不需要,列草稿可…

Java 开发环境配置 “JDK”(超详细整理,适合新手入门)

前言 📜 “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等,IT技术干货、学习经验、面试资料、刷题记录,以及遇到的问题和解决方案,记录自己成长的点滴 目录 前言 一、什么是JDK? 1、大概介绍 2、详细介绍 …

MySQL进阶——触发器

1.触发器定义 同存储过程和函数类似,MySQL中的触发器也是存储在系统内部的一段程序代码,可以把它看作是一个特殊的存储过程。所不同的是,触发器无需人工调用,当程序满足定义条件时就会被MySQL自动调用。这些条件可以称为触发事件…

Weapp影视评分项目开发(04):三方组件的使用

知识点 三方组件库的安装与使用 computed 的安装与使用 新建代码分支 我们以 master 为基准,在 gitee 上新建代码分支 component,并在该分支上进行代码开发。命令如下: git pull // 拉取 component 分支 git checkout component // 切换到…

哪款无线耳机音质好?发烧友推荐四大音质超好的蓝牙耳机

蓝牙耳机因为摆脱了线的束缚,使用起来会更方便,近几年在人们的日常生活中也越来越常见。哪款无线耳机音质好?在此,我来给整理了几款发烧友都在推荐的好音质蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 售价&…

推荐系统之ABTest实验中心

5.3 ABTest实验中心 学习目标 目标 无应用 无 个性化推荐系统、搜索引擎、广告系统,这些系统都需要在线上不断上线,不断优化,优化之后怎么确定是好是坏。这时就需要ABTest来确定,最近想的办法、优化的算法、优化的逻辑数据是正向…

Linux | 人生苦短,我用Vim【最受欢迎的编辑器】

一探顶级编辑器——Vim一、初次见面,你好vim1、vim的基本概念2、IDE与编辑器的区别3、vim中的五种常见模式介绍二、初出茅庐,vim基本操作1、安装vim,进入vim2、vim中的模式切换📺三、初露锋芒,vim指令集1、&#x1f52…