计算机网络之无线局域网

无线局域网

无线局域网和以太网一样,也是一种局域网技术,它和以太网(总线形以太网交换式以太网)的区别在于:以太网采用有线信道传输信号,而无线局域网采用无线信道传输数据

无线数据通信

传输过程

要在无线信道中实现终端间的通信,需要电磁波来携带信号,电磁波有频率、初始相位和功率三个特征,和正弦波信号非常相似,电磁波由无线网卡产生,整个过程就是数据被转换为模拟信号,也就是调制,通过模拟信号产生电磁波在无线信道中传输,让接收端接收到电磁波,接收端接收到以后将电磁波转换为信号,再通过解调将信号转成二进制位流

无线信道

自由空间传播电磁波需要占据一段频段,这段频段就是无线信道。那么什么样的频段适合传播信号呢,如果能越快就越好,这是我们所期望的。在数据通信基础中知道数据传输速率和波特率有关,波特率越高,数据传输速度就越快,而电磁波的波特率和电磁波带宽成正比,因此电磁波的带宽越高,数据传输速率就越高,而电磁波的带宽和电磁波的频段有关:高频段电磁波有高带宽。

高频段电磁波因为一些有害、直线传播特性等都不适合无线局域网,因此选用微波段电磁波进行数据传输。电磁波不但被用于无线局域网,还被其他行业广泛使用,如工业、科学和医疗等,电磁波频率和发射功率被严格控制,每个国家都有权威机构负责,比如我们国家的无线电管理委员会,但是国家会开放一些电磁波频段让公众使用,各国尽量将开放一致的电磁波频段,以便促使相关设备标准化,比如我们的民用对讲机频段为:409-410MHZ。而我们的无线局域网使用的频率范围有三个:

  1. 2.401GHz ~ 2.483GHz
  2. 5.15GHz ~ 5.35GHz
  3. 5.725GHz ~ 5.825GHz

把1频段称为2.4GHz频段,2、3频段统称为5GHz频段。

电磁波传输特点

能量损耗

电磁波在传播过程中,能量的损耗与传播距离的平方成正比,因为我们选用的微波段进行通信,因此电磁波的传输覆盖范围是有限的,而且障碍物也能损耗电磁波的能量

干扰

相同频率的电磁波在传输过程中会相互干扰,由于无线局域网使用的频段是开放的,因此无线局域网的使用的频段特别容易被干扰。在飞机上需要关闭手机,就是为了防止手机的频率影响飞机的通信

多径效应

电磁波在传输的过程当中会出现类似图中的多径效应,电磁波沿着不同的传播路径受到不同的障碍物的反射,最后到接收端信号叠加以后导致电磁波的失真

隐蔽站问题

如图所示,终端A和B在同一个电磁波传播范围内,终端B和C在另外一个电磁波传播范围内,但是终端A和C的电磁波相互不覆盖,这就有可能造成A和C同时向B发送电磁波,在B这里就发送冲突了。这种两个终端是相互隐蔽的,同时向另一个终端发送电磁波导致冲突发生的问题就是隐蔽站问题

暴露站问题

图中蓝色的范围是B终端电磁波能到达的范围,黄色的范围为终端C电磁波能到达的范围,因此对于B和D,C和A是相互隐藏的,终端B应该可以给A发送数据,C可以给D发送数据,但是由于B和C相互之间不隐蔽,就导致不会同时进行B与A和C与D的电磁波发送(B、C共享信道),这就是暴露站问题

无线通信和有线通信的区别

  1. 终端位于不同位置时,接收到的信号的强度和信噪比都会不同,因此位于无线局域网中不同位置的终端,其传输速率可能不同。而有线信道的传输速率是和距离没有关系的
  2. 有线信号可以再生,而无线信号的传播方向无法确定因此不能再生

无线局域网的体系结构

以太网的网络接口层中,网络接口层又被分为了MAC层和物理层,它们在以太网中发挥则各自的作用。在无线局域网的网络接口层,增加了除MAC层和物理层意以外的逻辑链路控制(LLC)子层,它们在无线局域网中各自发挥着不同的作用

MAC子层

  • MAC地址
  • MAC帧封装
  • 争用无线信道

逻辑链路控制层

  • 指定数据类型

逻辑链路控制层存在意思

这个可以把它变成这样一个问题,为什么在局域网的网络接口层会增加一个专门的指定数据类型的层?我们都知道,在以太网中,MAC层封装MAC帧时就可以指定数据类型,在局域网中有两个标准:

  • DIX( Dec、 Intel和Xerox )定义的以太网标准中MAC帧有数据类型
  • IEEE(电子和电气工程师协会)定义的局域网标准的MAC帧无数据类型

所以我们的无线局域网使用的是IEEE标准,因此在MAC层组装的数据是没有数据类型的,我们需要增加一层专门为数据指定数据类型

物理层

  • 无线信道二进制位流传输功能

在无线局域网中,在物理层有不同的标准,就是不同的局域网,物理层的标准可能是不一样的(MAC层和逻辑链路控制层是一样的),802委员会对无线局域网定义了一系列的标准:

不同标准的频段

如图所示,不同的无线局域网的物理层可能采用不同的频段来传输电磁波,而它们的速率是不同的,其中802.11 802.11b 802.11g和802.11n统称为802.11bgn,它们是互相兼容的。现在的有无线网卡的电脑,比如一些笔记本电脑采用的是802.11ac标准,它工作中在5GHz频段,向下兼容到802.11n,它能达到的理论吞吐量可以高达1.3 Gbps,但是比如你的AP是802.11ac,但是你的电脑还是802.11n的网卡,最大速度还是限制在你电脑网卡频段的最大值上。802家族不止以上标准,其他标准大家可以自主查阅

扩频技术

根据香农定理,RS = BW * log2^(1+S/N),数据的最大传输速率与带宽和信噪比成正比,我们可以在传输速率不变的情况下,可以通过提高信道带宽来降低信号的信噪比,为了提高无线通信的容错性使得无线信道带宽大于实现数据传输速率所要求的带宽的技术称为扩频技术。简单来说就是用一个带宽比电磁波本身的带宽高的频段来传输数据,一般情况下,选择的信道频段和本身的频段不能有重叠

无线局域网的应用

无线局域网的最小构成单位是基本服务集,基本服务集所覆盖的地理范围称为基本服务区(BSA)

独立基本服务集(IBSS)

基本服务集中只包含工作站的称为独立基本服务集。

MAC帧的传输

独立基本服务集中,终端之间通信时,对于每一个MAC帧,接收端都必须回复一个应答帧,这和总线形以太网是不一样的,在无线局域网中采用这种发送确认应答机制的原因是:

  • 无线通信的可靠性较低,MAC帧传输过程中容易出错
  • 隐藏站问题使得发送终端无法检测出所有冲突,任何终端都有可能与其他终端同时发送数据,且检测不到已经发生的冲突

基本服务集(BSS)

基本服务集中包含工作站和AP(WirelessAccessPoint:相当于一个连接有线网和无线网的桥梁)的称为基本服务集(BSS)

MAC帧的传输

基本服务集中,两个终端的通信可能是在同一个基本服务集中,也可能不在同一个基本服务集,而源终端无法确认和目的终端是否在同一个基本服务集,因此,需要由AP来判断源终端和目的终端是否在同一个基本服务集中,所以即便是两个终端在同一个基本服务集中,也需要通过AP转发来通信,而且不管是终端到AP还是AP到终端,都必须准守发送确认应答机制

AP-repeater模式

在AP的电磁波的覆盖范围之内增加另外一个AP,使得AP的电磁波的覆盖范围既包含其它的终端

在AP-repeater模式中的任意两个终端进行通信时,由于是共享信道,必须要争用信道

MAC帧的传输

扩展服务集(ESS)

我们已经知道,在无线局域网和以太网中,MAC帧的格式是不一样的,因此我们AP有一个重要的功能就是实现两种不同网络间MAC帧的转换

MAC帧的传输

上图的过程只有一次MAC帧的转换,同时在以太网中,没有发送确认应答机制

这种情况有两次MAC帧的转换:一次无线MAC帧到以太网MAC帧,一次以太网MAC帧到无线MAC帧

无线分布式系统(WDS)

其中无线网桥和以太网中的网桥功能相似:

  • 无线网桥是类似于交换机,同时存在连接无线链路和有线链路的端口
  • 连接无线链路的端口是虚拟的逻辑端口V2,V3
  • 转发MAC帧时逻辑端口等同于连接有线链路的端口
  • 无线网桥在两种不同类型端口(逻辑端口和虚拟逻辑端口)之间MAC帧转发要进行MAC帧格式转换

它主要功能是连接两个网络,这两个网络之间可能是不好通过物理链路的方式布线的而采用的。无线网桥间的无线链路由两个无线网桥的MAC地址唯一标识

MAC帧的传输

无线家庭网络

无线局域网与移动互联网

MAC层详解

MAC帧详解

以太网MAC帧和无线局域网中的MAC帧大致是相同的,但是有几个最主要的区别

  1. 地址:无线局域网中的MAC帧有4个地址
  2. 控制信息:无线局域网中的MAC帧的控制信息比以太网MAC帧的控制信息多得多(黄色区域)

无线局域网MAC帧分为控制、管理和数据三种类型。到DS和从DS主要标识到达的是AP、无线网桥还是普通的工作终端,如果是AP或者无线网桥,这位就为1,否则为0。同理,从DS标识数据从AP、无线网桥还是普通的工作终端发送出来的,如果是AP或者无线网桥发出来的,这位就为1,否则为0。四个地址的目的主要是为了逐段确认,后面会详细介绍。持续时间字段用于预留无线信道,顺序控制字段用于解决接收端MAC帧重复接收问题

IBSS中的MAC帧

BSSID称为基本服务集标识符(Basic Service Set IDentification,简称BSSID),是创建IBSS时产生的48位随机数,用于唯一标识该IBSS

BSS中的MAC帧

ESS中的MAC帧

WDS中的MAC帧

AP-repeater模式中的MAC帧

汇总

其中BSSID可以唯一标识一个BSS,其实也就是该BSS中的AP的MAC地址

DCF和CSMA/CA

多点接入使用信道

以太网中,终端通过CSMA/CD来竞争总线,而在无线局域网中同样面临信道的使用问题,而无线局域网中提供两个方式来解决这个问题

  1. 分布协调功能(DCF):终端自由平等竞争无线信道,在无线局域网的物理层必须提供该功能,因为它是通过终端自己来实现的
  2. 点协调功能(PCF):AP用询问的方式分配信道

DCF

它解决的主要问题就是建立立终端自由平等竞争无线信道机制,它是通过载波侦听多点接入/冲突避免(CSMA/CA)机制(Carrier Sense Multiple Access/ Collision Avoidance )来实现的,它和CSMA/CD的区别就在于A和D的区别,以太网中,终端可以监听到冲突,而无线局域网中,只能避免冲突,而无法检测到冲突。以太网和无线局域网的载波侦听,一个是对曼切斯特编码后的载波信号监听,一个是对电磁波的监听。DCF还要解决一个问题就是隐蔽站的问题

载波侦听

在同一个独立基本服务集和基本服务集中,信道的是被共享的,其中的任意一个设备要传输数据,必须争用信道,首先要判断信道是否空闲,信道是否空闲的先决条件有:

  • 信道不忙:如果信道存在电磁波且电磁波能量并且超过设定阈值,那么信道忙
  • 网络分配向量NAV值为0:上面介绍过MAC帧中的持续时间标识,终端中NAV的值就是根据持续时间赋值的

信道处于忙状态就表示:或者是由于物理层的载波监听检测到信道忙,或者是由于MAC层的虚拟载波监听机制指出了信道忙(NAV的值不为0)

帧间间隔

在终端确认信道可以使用后,不是立即就发送数据,必须等待一个帧间间隔时间后再发生,这个和以太网中的帧间最小间隔作用是类似的:

  1. 帧对界
  2. 接收端清空缓存
  3. 天线发送状态和接收状态之间切换

帧间间隔是终端在完成当前MAC帧发送后,进行下一个MAC帧发送前必须等待的一段时间,这段时间的长短取决于终端将要发送的MAC帧的类型,有控制、管理和数据三种类型。帧间间隔长度决定MAC帧的发送优先级:帧间间隔越短,对应类型的MAC帧的发送优先级越高。帧间间隔类型不同时间长度不同:无线局域网为了对不同类型的MAC帧分配不同的优先级,确定了4种不同的帧间间隔:

短帧间间隔(Short InterFrame Space,SIFS)

无线局域网要求的最短帧间间隔,这段时间用于让终端完成发送方式和接收方式之间的转换。这种帧间间隔所对应的MAC帧通常是已经取得信道控制权的终端将要发送的MAC帧

分布协调功能帧间间隔(DCF InterFrame Space, DIFS)

时间长度=SIFS+2个时隙。当终端用DCF方式传输数据时,必须侦听到信道持续空闲DIFS后,才能传输数据或进入退避时间。

退避时间

终端在初始检测到信道忙的情况下,每个终端需要通过退避算法独立产生随机的延迟时间。信道持续空闲DIFS后,只有在退避时间内一直检测到信道空闲的终端才能发送数据的机制。以下是CSMA/CA的工作过程:

终端发送第一帧检测信道的两种结果:

  • 信道空闲:多个终端同时传发送数据概率低
  • 信道不空闲:多个终端同时发送数据概率高

基于这两种情况,我们检测到信道忙或者不忙的时候处理不同,如果是忙的状态还需要生成一个退避时间,这就是退避的精髓所在。然后循环的检测信道是否空闲(不是定时器为零了才检测),如果空闲了,继续监测DIFS时间是否空闲,如果空闲了,并且定时器也到了,就发送数据。如果定时器没到,但是信道也不忙,就持续检测信道,直到定时器到了发送数据。如果如定时器到了,但是信道又忙碌了,就暂停计时器,继续按照信道是忙碌以后的步骤去执行。

退避时间的生成

  • 设变量CW,称为争用窗口
  • 为终端设置最大和最小争用窗口(CWMIN和CWMAX),初始时CW=CWMIN终端检测到信道忙时,在0~CW中随机选择整数R,并使退避时间T=R×ST(ST是固定时隙,取决于无线局域网的物理层协议标准和数据传输速率)
  • 发送端在发送MAC帧后,直到重传定时器溢出,都没有接收到确认应答,就认定冲突发生,发送端将通过CSMA/CA算法重新发送该MAC帧,但在计算退避时间时,增大CW值
  • 如果i是重传次数,则CW=2^(3+i)-1,直到CW=CWMAX
  • 一旦发送端接收到确认应答,则将CW设置成初值CWMIN
  • 802.11标准中,CWMIN=7,CWMAX=255

这个退避时间主要和重传次数有关,而是否重传取决于发送端是否接收到ACK(应答帧),因此为了让发送端尽快送到ACK,分别需要从发送端和接收端做一些处理

  • 发送端:发送端发送MAC帧时,持续时间字段的值=接收端发送ACK所需要的时间+SIFS。也就是设置信道占用持续时间尽量能过收到ACK
  • 接收端:发送ACK的帧间间隔SIFS远小于DIFS,等待尽量少的时间发送,但是必须等待,因为帧间间隔时间是有必不可少的作用的

DCF解决隐蔽站问题

由于终端A和C相互隐蔽,为了防止A发送数据的时候C也发送数据,当A发送数据前,先发送一个请求帧RTS,这个请求帧占用信道的时间也就是持续时间为AP回复它的时间、它发送数据的时间,回复它数据应答帧的时间和三个短帧间间隔,如果成功,AP会给他一个应答帧CTS,这个应答帧CTS种的持续时间为A发送数据的时间和AP回复数据应答帧的时间以及两个短帧间间隔,而这个CTS是A、B、C都能接收到,B和C接收到以后就会根据持续时间更新它们的NAV值,因为C的NAV值不为零,因此它认为信道是忙的,就不会发送数据。这种方法有一个代价,就是每一帧都需要RTS和CTS,在无线局域网中,给MAC帧的长度设置了阈值,如果MAC帧的长度超过了这个阈值,才采用这种RTS和CTS方式传输数据,如果没有超过就不采用这种高代价方式

坚持原创分享,您的支持将鼓励我不断前行!