• 802.11网络协议细节(二)


     

    1.3   利用DCF进行竞争式访问

    大部分的传输均采用 DCF(分布式协调功能),DCF提供了类似以太网的标准竞争式服务。DCF允许多部独立的工作站彼此互动,无须通过中央管控,因此可以运用于 IBSS 网络或基础型网络。

    试图传送任何数据之前,工作站必须检查介质是否处于闲置状态。若处于忙碌状态,工作站必须延迟访问,并利用指数型退避(orderly exponential backoff )算法来避免碰撞发生。

    我们可从802.11 MAC 的规则中归纳出一组常使用的基本规则,其他额外规则的应用则视状况而定。在所有使用 DCF的传输当中,将会运用到两项基本原则:

    1. 如果介质闲置时间长于 DIFS,便可立即进行传输。载波监听同时可通过物理与虚拟(NAV)方式进行。

    a. 如果之前的帧接收无误,介质至少必须空出一段 DIFS 时间。

    b. 如果之前的传输出现错误,介质至少必须空出一段 EIFS 时间。

    2.如果介质处于忙碌状态,工作站必须等候至频道再度闲置。802.11 称之为访问延期。一旦访问延期,工作站会等候介质闲置一段 DIFS时间,同时准备指数型退避访问程序。

    在特定状况下,会应用到一些额外的规则。其中有一些规则取决于“线上”的特殊状况,与之前传送的结果有关。

    1. 错误复原(error recovery)属于传送端的责任。 传送端预期每个帧均应收到应答信息,而且必须负责重传,直到传送成功为止。

    a. 只有收到正面应答讯息,才表示传送成功。基本交换操作必须完成才算成功。如果某个预期的应答迟迟未到,传送端即会认定其已丢掉,必须加以重送。

    b. 所有单点传播数据必须得到应答。(因此,即使无线电波链路本质上属于广播介质,相较于广播数据,单点传播数据基本上还是具备较高的服务质量。)

    c. 只要传送失败,重传计数器就会累计,然后重新加以传送。传送失败有可能是因为访问介质失败,也可能是因为得不到应答。不论如何,重传时会等待一段较长时间。

    2 .涉及多个帧的传送,可以在传输过程的每个步骤更新 NAV。当所收到的介质预定时间比目前的NAV还长时,工作站即会更新 NAV。设定NAV的方式是以个别的帧为基准。

    3 .以下的帧类型可在SIFS 之后传输,因此优先程度较高:应答(acknowledgment)、RTS/CTS交换程序中的 CTS ,以及分段程序中的帧片段。

    a .一旦传送出第一个帧,工作站就会取得频道的控制权。以后帧及其回应均可使用SIFS进行传送,以锁定频道不被其他工作站使用。

    b .传送中,后续帧会将 NAV更新成该介质预计使用的时间。

    4 .如果较高层的封包长度超过所设定的门限,必须使用扩展帧格式。

    a .长度超过 RTS门限的封包,必须使用 RTS/CTS交换程序。

    b .长度超过分段门限的封包,必须加以分段。

    1.3.1   DCF 与错误复原

    错误监听与更正是由起始基本帧交换过程的工作站来决定。一旦监听到错误,该工作站必须负责重传。错误监听必须由传送端负责。有时候传送端可根据应答的有无,推论帧是否已经漏失。只要帧被重传,重传器就会累计。

    每个帧或帧片段就会分别对应到一个重传计数器。工作站本身具有两个重传计数器:短帧重传计数器与长帧重传计数器。长度小于 RTS门槛值的帧视为短帧;长度超过该门槛值的数据则为长帧。根据帧的长度,将会分别对应到长短帧重传计数器。帧重传计数由 0 算起,只要帧传送失败即加以累计。

    短帧重传计数器会在下列情况发生时归零:

    l  之前传送的 RTS 得到CTS的应答时

    l  之前传送的未分段帧得到 MAC层的应答时

    l  收到广播或组播的帧时

    长帧重传计数器会在下列情况发生时归零:

    l  之前传送的帧大于 RTS门限值,并且得到 MAC层的应答时

    l  收到广播或组播的帧时

    除了响应的重传计数器,MAC会赋予每个帧片段最长的『存活期』。传送出第一个帧片段之后,存活计数器随即启动。一旦超过存活时间,该帧便会被丢弃,因此不会重传其余的帧片段。当然,上层协议也可能监听到数据漏失予以重传。不过当上层协议(如 TCP)重传数据,实际上传给802.11MAC的乃是新的帧,所有重传计数器也会归零重新计算。

    1.3.2   使用重传计数器

    和大部分其他的网络协议一样,802.11是通过重传机制来提供可靠性。数据传送是通过基本次序,整个过程必须完成才算传送成功。当工作站传送帧时,必须得到接收端的应答,否则便认为传送失败。若传送失败则与该帧或帧片段响应的重传计数器累加。如果达到重传限制,该帧随即被丢弃,并将此状况告知上层协议。

    之所以要有短帧和长帧,其中一个原因是为了让网络管理人员利用不同长度的帧来调整网络的稳定性。长帧需要较多的缓存空间,所以两种不同重传限制的一个潜在应用,就是放宽长帧的重传限制,以减少所需要的缓存空间。

    1.3.3   DCF 与延迟

    当帧传送完成并且经过一段 DIFS时间,工作站便会试图传送之前拥塞的数据。DIFS之后所紧接的一段时间,称为竞争期间或退避期间。此期间可进一步分割为时槽(slot)。时槽长度因介质而异。速度较高的物理层会使用较短的时槽。工作站会随机挑选某个时槽,等候该时槽到来以便访问介质。所有时槽的选择机会均等。当多部工作站同时试图传送数据,挑到第一个时槽(亦即取得最小随机号码)的工作站可以优先传送。根据 802.11标准,所有这些时槽号码不应有所差异。唯一值得注意的例外,详见本章稍后有关『spectralink 语音优先性』的相关说明。

     1.1.4   Spectralink 语音优先性

    要在无线网络上支持语音应用必须面临的挑战之一,就是语音对于网络服务品质的敏感性,远高于数据方面的应用。假设某图形有 1500个bit组的数据迟延了十分之一秒,那就令人无法忍受了。

    要在IP 网络上提供高质量的服务已经相当困难。换成无线局域网络,那更是难上加难。以无线局域网络设计语音网络时,工程师遇到的主要问题在于,无线局域网络对所有数据均一视同仁。假设有一个短语音帧和一个长数据帧,此时无线局域网络并不会特别偏爱哪个帧。Spectralink是一家802.11手持电话制造商,该公司制定了一组特殊的协议延伸功能,称为Spectralink 语音优先性(Spectralink Voice Priority,简称 SVP ),该网络更适合用来传输语音。基站与手机当中均包含SVP 元件,让语音享有高于数据的优先性,同时在基站中管理语音通话过程。不论是从基站下行或者自手机上行的语音通话,均由 SVP 协助管理。

    要支持SVP ,基站必须以零延后机制传递语音帧。选取延后时槽的时候,支持SVP 的基站并未依循 802.11标准,而是选择编号为零的时槽。竞争无线介质的时候,取得零延后时槽的语音帧将具备实质的优先性,因为数据帧所取得的时槽编号必定大于零。严格来讲,采用零延后机制的工作站已经不算相容于 802.11,因为它以固定的方式强迫取得特定的延后时槽。(不过,为了维持高度负载时的网络稳定性,重传的语音帧必须依循延后规则。)通过零延后机制,支持SVP 的基站可以确保语音帧能够优先访问介质。同时,这类基站也必须能够追踪语音帧,以及提供优先队列的处置。SVP 要求语音帧必须被置于传送队列的最前面。基站可以用不同的方式来提供传输队列,重要的是其所提供的功能,必须将语音帧移置传送队列的最前面。有些基站可能只有一个传送队列,此时语音帧会被置于队列的最前面。有些基站会使用多个传送队列,其中将会由一个队列专门用来传送高优先的语音帧。

    如同以太网,每当传输失败时,便会从一个范围中挑选出退避时间。图1.7 以DSSS(直接序列展频)物理层为列,显示当传送次数增加,竞争期间随之增长的情况。不同物理层会使用不同大小的延后时间,不过原则是相同的。竞争期间的大小通常是 2 的指数倍数减 1 (例如11, 61,127 ,255 )。每当重传计数器累增,竞争期间即以移至下一个 2 的指数倍数。竞争期间的大小受到物理层的限制。例如,DS物理层限制竞争期间最多 1021个传输时槽。

    当竞争期间达到最大极限时,就会维持在该数字,直到被重新设定。允许使用较长的竞争期间,可以在多部工作站同时试图访问介质时,保持 MAC验算法的稳定,就算负载极大。当帧传送成功,竞争期间即被重设为最小值,如果到达重传计数器上限,该帧则随即被丢弃。

     

              图 1-7:DSSS(直接序列展频)的竞争期间

    1.3.5   帧的分段与重组

    来自较上层的封包,以及某些较大的管理帧,可能必须经过分段,无线频道才有办法加以传输。当干扰存在时,分段封包同时有助于提升可靠性。利用帧的分段,无线局域网络的工作站可将干扰局限于较小的帧片段,而非较大的帧。由此降低可能受干扰的数据量,帧分段可以提高整体的有效传输量。干扰可能有不同来源。虽然并非全部,还是有些微波炉会对2.4GHZ 网络造成干扰。从交流电振幅升起到下降这段时间,电磁管会产生电磁辐射,因此会有一半时间受到微波的干扰。

    注 1:在美国,家电产品使用 60HZ 交流电,因此在每 16 毫秒的周期中,微波炉所造成的干扰有 8 毫秒。其他国家使用 50HZ 交流电,因此在每 20 毫秒周期中大约有 10 毫秒会受到干扰。

    当上层封包超过网络管理人员所设定的分割门限,就会进行帧的分割。帧控制信息用来指示是否还有其他帧片段待接收。构成整个帧的所有帧片段通常会在所谓的片段宣泄期传输,如图1-8 所示,其中包含了一个 RTS/CTS交换过程,因为 fragementation 与RTS/CTS门限通常会设定为相同的数值。此图同时显示了如何以 NAV与SIFS的组合来控制介质的访问。

     

              图 1-8:片段宣泄期(fragmentation burst)

    帧片段与其应答之间以 SIFS区隔,因此工作站在分段宣泄期(fragmentation burst )会一直持有频道的掌控权。NAV可确保其他工作站在此 fragmentation burst 期间不致使用该频道。正如任何的RTS/CTS交换,RTS与CTS 会将NAV设定成从预定时间到第一个帧片段结束。其后的帧片段会彼此串通。每个帧片段都会设定 NAV,继续掌握介质的使用权,直到下一个帧的应答结束。图中,fragment0 设定了 NAV,并继续掌握介质直到 ACK 1 ,而 Fragment 1也设定了NAV,并继续掌控介质直到 ACK 2 ,依此类推。当最后一个帧片段及其应答送出时,NAV即会设定为 0,代表介质即将在“片段宣泄期”完成之后释放。

    1.3.6   帧格式

    因为无线数据链路所带来的挑战,MAC被迫采用了许多特殊的功能,其中包括使用四个地址位。并非每个帧都会用到所有的地址位,这些地址位的值,也会因为MAC帧种类的不同而有所差异。图1-9 展示了一般的 802.11 MAC帧。本节所有图示均依循 IEEE 802.11 的格式。位的传送顺序由左至右,最高效 bit将会最后出现。

     

                图 1-9:一般的 802.11 MAC 帧

    802.11 MAC 帧并未包含以太网帧的某些典型功能,其中最显著的是type/length  位以及preamble(同步信号)。Preamble属于物理层,而封装细节(如 type 与length )则出现在 802.11帧所携带的标头(header)中。

  • 相关阅读:
    常用编码格式算法
    js显示当前时间
    客户端和服务器端乱码问题
    常用的小技巧
    开发jsp中常用标签
    java中的反射
    java中的单例设计模式
    java中的枚举类
    关于继承时构造方法的问题
    TCP三次握手和四次握手全过程 为什么要三次握手而不是二次握手?
  • 原文地址:https://www.cnblogs.com/aixin0813/p/3243523.html
Copyright © 2020-2023  润新知