计网学习笔记五 wireless && mobile networks
老师把无线网络用一节课一遍过了…感觉没能学透,便课后自己总结,看书,找资料补充,把无线网络大概摸了个七七八八。虽然不算精细,但还能看!内容包括WLAN总概,WiFi—WLAN的实现,802.11规定的帧结构,以及蜂窝网络。
强烈推荐一本书:《802.11 Wireless Networks: The Definitive Guide》, 2nd Edition by Matthew S. Gast;这本书有效地帮助了这节课的复盘。
还有推荐一个知乎的博主徐工徐方鑫,在这方面的知识能学到很多!
无线局域网的组成
无线网络在近些年来一直是个非常流行的东西。现在的移动用户数量已经大大超过了有线用户数量,比例大于5:1。
实现无线网络的挑战性
从有线到无线是网络构建上一个伟大的设想,挑战性主要集中在wireless
和mobility
两个点上。
这两个是不同的概念!不要混为一谈!两个概念不等价,虽然很紧密。
-
wireless无线:如何使用无线链路进行通信
-
mobility移动性:如何处理改变网络连接点的移动用户,即用户可以随时改变接入节点(mobile的节点链路不一定是无线的,有线网络也有着随时拔线插线的问题,这也是一个移动性问题)
组成无线网络的元素
根据无线网络中所处位置的不同,我们可以将组成元素分为三类:
-
wireless hosts
无线终端:- 包括笔记本电脑、手机
- 负责运行应用程序
- 可以是固定的,亦可以是移动的
-
base station
基站:- 例子有cell towers, 802.11 AP
- 一头连到有线网络,一头负责无线终端的中继
- 家里的AP就相当于一个小基站
- 中国有铁塔公司,专门负责基站铁塔建造
-
wireless link
无线链路:- 用来连接移动终端和基站
- 有很多区别,局域网(WLAN)和广域网(4、5G)
- 可以通过多跳来中继,不用拉电缆
各种无线标准
因为无线通信受距离影响极大,所以根据距离的不同有不同的无线协议标准。(距离很长很长就进行长波通信,如渔船潜艇;再长就到卫星通信)
两种应用模式
-
传统的
infrastructure mode
:- 使用基站做无线通信
- 可以随时handoff(快速切换)
-
新兴的
ad-hoc mode
:- 无线自组织网络,不用AP,就直接互联;(p2p连接,无基站)
- 军用,如舰队,因为使用infrastructure mode要有舰船做通信舰,被打掉通信就无了;还有军用无人机队协同作战也是采用ad-hoc mode。
下图展示了两种模式在通信中所处单跳和多跳环境时的不同之处:
无线链路特点(Link)
无线链路因为其无线信号传播的性质,和有线链路有几个不同之处:信号易衰减,多路传播自干扰,以及不同源干扰。
信号衰减
信号在传输过程中受到的损伤可以分为衰减、噪声和失真几种。在课上主要学习了信号的衰减的量化指标 和 噪声指标相应的的量化关系。
无线信号在路径上通过介质传播时,强度会因为反射,衍射,吸收,地形轮廓(城市,农村,植被),湿度等因素不断减弱。这也被称为路径损耗(Path loss
)。这个损耗的指标用一个叫自由空间损耗(FSPL
)的值来衡量,它是一个“增益负值”,可以表示信号总发送功率和接收功率之间的比值关系,单位为分贝。
$$
FSPL = P_L = 10\lg(\frac{P_{recv}}{P_{tran}})=10\lg(\frac{4\pi{d2}}{\lambda{2}}) = 20\lg{d} + 20\lg{f} + 32.44
$$
可以看看这篇文章,写了有关FSPL的推导:802.11协议精读15:链路模型(基于Free-Space Path Loss)。上图即为自由空间损耗模型。
除了衰减,信号在传输过程中也会受到一定的噪声干扰,噪声是指 在传送和接收之间的某处插入的不希望有的信号。在计网课上并没有详细阐述噪声的类型,但给出了信噪比(SNR
)和误码率(BER
)之间的量化关系。
信噪比是表征信号质量的重要指标之一。绝对信号功率是影响信号质量的重要因素,但并不代表信号质量——也就是说并不是绝对信号功率越强,信号质量越好。而 SNR 作为信号功率和噪声功率的比值表示,可以有效预测通信系统中信号的质量,可以说SNR是越高信号质量越好的;同时,噪声叠加会导致解码器解码错误,错误衡量的指标就是 BER 。总的来说,SNR越高,BER则越低。
下图展示了SNR和BER在不同调制编码方式(物理层)下的关系:
可以看到:
- 在同一调解方式下,SNR越高,则BER越低;
- 即使在同一SNR下,随着调解深度增加,BER也会跟着升高。
所以我们要对SNR和BER做出一定的权衡。
-
同一调解方式下可以通过升高SNR来获取比较好的BER,但是,SNR是不能无限升高的,尽管可以通过增强信号来增加SNR,但过高会导致放出的能量过大,对人体有害。
-
给定了SNR,可以选择一个调制编码方式(物理层)来选取相对的BER(越先进即越深的调制编码越容易受干扰,因为一个信号中带的bit较多)
-
SNR会根据移动性来变换,动态切换调制编码方式(可以看看拿着手机的时候,自己的网速会跟着自己的移动而变化)
这里有一篇文章值得看一看:无线通信中的SNR、SINAD和SINR
自干扰
无线信号不是按照一个确定的直线方向进行传播的,就像上面所给出的自由空间损耗模型;信号在传播时会接触到不同的表面而产生反射,这些反射会导致信号传播的时差,从而到达目的地时会产生叠加,形成自干扰。如下图:
其它发射源干扰
如果在同一时间有其他设备与你一起共享无线网络频段(如2.4 GHz的信道叠加),就会产生一定的干扰;除此之外,一些无线设备(如蓝牙鼠标、键盘,甚至USB3.0等)也会干扰你的信号。
这篇文章讲了对WIFI网络信号的影响因素:What affects Wi-Fi networks?里面提到了各种各样的发射源干扰。
无线网络特点(Network)
把目光从无线链路放到无线网络上,无线网络也有一些总体的特点:
-
传播媒介是
broadcast
的:任何在邻近的接收端都能收到信号,以及对发送端造成干扰; -
半双工:即不能同时收发信号;尽管在近些年来研究发现全双工是可以实现的,但是在商业成本上过高。可以看看这篇回答:为什么有线网络可以全双工,而无线网络只能半双工呢?
-
发送端发送的信号并不总是以接收端接收到为结束;
-
产生的问题:多址接入问题,隐藏终端问题(
Hidden terminal problem
)
WiFi--IEEE 802.11 WLAN
WiFi我们平时常常挂在嘴边,但它和802.11协议簇有什么关系呢?简单来说,IEEE 802.11是无线局域网的实现标准,Wi-Fi是对IEEE 802.11标准的产品实现,IEEE 802.11的标准并不等同于Wi-Fi。
Wi-Fi是Wi-Fi联盟的商标。Wi-Fi联盟是一个为了推动IEEE 802.11标准的商业组织,其主要目的是在全球范围内发展基于IEEE 802.11标准的无线局域网技术。IEEE 802.11提出的标准较为理论化,在实际生产中,各个厂家对于Wi-Fi产品的实现不尽相同,Wi-Fi联盟很好地解决了符合IEEE 802.11标准的各Wi-Fi产品生产和设备兼容问题。
也就是说,IEEE 802.11侧重无线局域网理论层面,包括物理层、MAC层相关技术标准制定;Wi-Fi联盟侧重产品层面,对符合IEEE 802.11标准要求的产品制定规范以达到设备兼容的目的。
IEEE802.11 WLAN的组成结构
组成元素对应的术语如下:
Station
(STA): device with IEEE 802.11 conformant MAC and physical layerAccess Point
(AP): Provides access to the distribution system via the wireless mediumBasic Service Set
(BSS):A single cell coordinated by one access point (base station)Extended Service Set
(ESS):Multiple BSSs interconnected by Distribution System (DS)- DS can be a switch, wired network, or wireless network
- An ESS appears as a single logical LAN
- Portals (routers) provide access to Internet
Distribution System
(DS): A system used to interconnect a set of BSSs and integrated LANs to create an ESS
PS:
IBSS
为 Independent Basic Service Set,可以说是在ad-hoc mode下的BSS。WDS
为wireless distribution system。
Host连接到WLAN的过程
我们以802.11b协议为标准来做一个简单的举例。
- 802.11b的频段在2.4GHz-2.485GHz 之间,共划分为了11个信道,AP管理员可以选择一个干扰比较少的信道来提升通信效率;
- 需要进行无线通信的host必须与AP进行连接,在连接前host会扫描信道,侦听包含AP名称(SSID)和 MAC的信标帧(
beacon frame
)(即扫描有啥WIFI可以连接); - host选择一个AP进行连接,连接可能需要经过认证(
authentication
); - host将通常使用 DHCP 来获取 AP 子网中的 IP 地址。
来看看其中的一些过程以及产生的问题:
Host侦听SSID和建立连接
Host的侦听过程发生在host将无线信号接入到已经扫描到的channels的过程中,过程可以分为passive和active两类:
Passive Scanning(左图):AP们会不断地往周围发出信标帧,间隔为100ms;Host扫描(本地网卡在每一个信道上进行轮换扫描)接收到后,发出一个选择AP的request帧,AP们收到request帧后,被选择的对应AP返回一个response帧给Host,连接建立;
Active Scanning(右图):首先Host会在不同的channel上周期性广播一个probe-request帧(这个帧有两种格式,见链接),然后等待AP们收到该帧后返回的probe-response帧(带着各个的SSID);Host接收到后,发出一个选择AP的request帧,AP们收到request帧后,被选择的对应AP返回一个response帧给Host,连接建立;
这两篇blog给出了详细的阐述:802.11中的主动扫描与被动扫描,wifi的主动扫描和被动扫描
还有一个好回答!能学到东西:有关WIFI中的扫描SSID的问题?
多址接入产生的问题
如图,多址接入会产生隐藏终端、信号衰减、暴露终端等问题。其中比较重要的是隐藏终端hidden terminal
问题。
什么是 hidden terminal problem?这里有太长不看的锻炼英语能力的阐释:The Hidden Terminal Problem;用我们的话来说,就是存在两个或以上的STA,这些STA在距离上离得非常远(超出彼此传输范围),谁也不知道谁的存在,但他们却要同时向接收端(AP)发送数据,就像上图A和C被一座大山挡着了一样。
这个问题会让A和C在发送的时候都会认为当前信道空闲,导致数据在B处产生了collision。
那么该如何解决呢?采用了 IEEE 802.11 RTS/CTS 协议!
- A要发送数据了!先往B发送一个RTS(Request to Send )帧;
- RTS帧在传播出去的过程中,起到了通知A附近的STA“我在发送,勿扰”的作用;
- B接收到了RTS,给A返回一个CTS(Clear to Send)帧;
- CTS帧在传播出去的过程中,起到了通知B附近的STA“我要接收数据了,勿扰”的作用(尤其是C,让它不要再往B发送数据,表示信道繁忙);
- A发送数据,B接收到后返回ACK,传输完成。
PS:RTS/CTS exchange is a required function, but can be disabled.
隐藏终端是由于监听到的信道空闲而不是真的空闲,故引发冲突。而暴露终端是由于监听到的信道忙而不是真的忙,故其可以传输而不传输。
还是继续来一篇好文章,深入解释:802.11协议精读5:隐藏终端和暴露终端
802.11协议结构
PS:最下面一层是物理层即编码方式的选择。
帧间间隙
在详细阐述两种802.11MAC类型以及对应的协议机制前,我们先来引入关于帧间间隙的概念:
在802.11使用的CSMA/CA协议中,发一个帧之前,都需要 "等待" 一个相应的帧间间隔,比如发送数据之前至少要等待DIFS时间,发送ACK之前需要等待SIFS时间。这种机制可以有效地避免传输冲突。而不同类型的traffic需要不同的优先级,我们可以根据优先级来分配帧间间隙,那么有哪些帧间间隙?对应各类优先级?
SIFS
(Short Inter_Frame_Space):短帧间间隙,发送ACK,、LLC(链路层控制)的控制信息数据包、轮询回应、CTS……时使用,基本都为控制信号;PIFS
(point coordination function IFS):点协调帧间间隙,被中心控制器使用(中心节点),发送轮询信息时使用;DIFS
(Distributed coordination function IFS):分布式帧间间隙,用于所有普通异步通信信息(就是最普通的发信息啦)
两种MAC类型
无线的MAC主要有两类:PCF和DCF(也就是两个MAC子层)。其中DCF是指分布式协调功能,分布式控制,用于传输异步数据;PCF是指点协调功能,集中式控制,用于发送实时数据,优先级仅次于控制帧。
下面是IEEE给出的DCF和PCF定义:
IEEE 802.11 defines two MAC sub-layers:
- Distributed Coordination Function (DCF) – DCF uses CSMA/CA as access method as wireless LAN can't implement CSMA/CD. It only offers asynchronous service.
- Point Coordination Function (PCF) – PCF is implemented on top of DCF and mostly used for time-service transmission. It uses a centralized, contention-free polling access method. It offers both asynchronous and time-bounded service.
Both DCF and PCF are 802.11 medium access types that are the mechanisms for the implementation of CSMA/CA in WLAN.
在当前的802.11协议中,除了初始定义的DCF和PCF工作模式外,在802.11e中还定义了EDCA,HCCA(DCF被扩展为EDCA模式,PCF模式被扩展为HCCA模式)。
PCF和DCF和两种无线应用模式的关系(DCF and PCF in Wifi-networks):PCF只在infrastructure module中使用,因为PCF需要一个站点作为point coordinator.
DCF 分布式协调MAC
DCF使用CSMA/CA机制进行数据传输。在DCF模式下存在两种子模式:Basic模式与RTS/CTS模式。其中Basic模式就是CSMA/CA机制的使用模式,而RTS/CTS模式在前文我们以有所讲解。
CSMA/CA机制
由于无线信道只有一个冲突域的特性,所以需要设置一种随机接入机制,以避免多个节点同时访问网络所带来的冲突问题,在WiFi协议中,该随机接入机制即是CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance
)。
CSMA/CA和以太网中使用的CSMA/CD都是基于CSMA机制,但在细节方面有着许多的不同。CSMA/CA主要是要“避免”冲突的出现。来看一个时序图:
可以看到两个STA的竞争信道的步骤为:
- 如果当前信道idle,先等待DIFS;
- 然后进行backoff过程,backoff采用的是BEB机制;
- backoff数值减至0而expired后,STA2发送数据帧;
- STA2成功发完数据,AP校验完确定接收后,等待SIFS向STA2发送ACK;
- STA2接收到ACK,传输完成,开始下一次DIFS;这时STA1的backoff值是继承上次没减完的值,这是为了保证公平性。
如果没有收到ACK,则如图:总共等待EIFS时间后重新开始信道竞争。(EIFS=SIFS+ACK+DIFS时间)
PS:当一个站要发送数据帧时,仅在下面的情况下才不使用退避算法:检测到信道是空闲的,并且这个数据帧是它想发送的第一个数据帧。除此以外的所有情况,都必须使用退避算法。
PCF 点协调MAC
在PCF中,必须要有一个coordinator来保证无竞争媒介接入。在802.11中,coordinators须为AP,所以PCF只能在infrastructure mode中使用(但不是全程使用,由于PCF是以DCF作为基础扩展的,所以 infrastructure mode中往往是PCF和DCF交替提供服务);当PCF使用起来的时候,媒介上的时间段被划分为contention-free周期(PCF控制访问)和contention周期(DCF控制访问)。
PCF的过程如下:
- 无线网络配置好由coordinator控制的具有time-sensitive的多个STA;
- coordinator“抓住”媒介,“锁住”全部的异步通信量,以轮询方式对STAs进行轮询;
- 收到轮询时,STA可以等待SIFS后进行data响应;
- 如果coordinator收到响应,就再等待PIFS后发出下一个轮询;
- 如果在预期的周转时间内没有收到响应,coordinator将发出下一个轮询;
- 重复步骤直到当前周期结束,开始下一周期;
PS:新的标准中PCF已经被废弃。
802.11MAC的逻辑图如下:
结合文章802.11协议精读2:DCF与CSMA/CA和802.11协议精读4:PCF工作模式来看,还有一个问题的回答802.11协议中为什么DCF比PCF应用更广泛?,能很好地理解。
802.11帧结构的特别地方
PS:对802.11帧各个字段的详细阐述:IEEE 802.11 Mac Frame
看到这个帧结构时是不是会觉得莫名奇怪?先撇开其它不谈,为什么802.11帧会有四个地址?
课上给出了一定的解释:
课上说,前三个地址使得无线帧可以“转换”成有线帧,即从802.11转换到802.3。
那dest的地址字段不用填了?明明在802.3的LAN中就只有两个地址字段(src和dest)……而802.3中的bridge和switch对host来说是透明的,也不见得要填它们的MAC啊……虽然第三讲中有“当主机想要向外网通信时,需要用寻找的MAC是第一跳路由器的MAC”,但对于WLAN来说,还是讲得不清不楚啊!自己动手,丰衣足食!
在stackexchange上找到了同样有疑惑的老哥:Four layer-2 addresses in 802.11 frame header,回答里面提到,当802.11设备向接收设备发送数据时,这些设备中的一个(或两个)可能不是流量的实际源或目的地。面对这种情景我们可以构建四个地址,这是一点准备工作;
- Transmitter Address (TA)
- Receiver Address (RA)
- Source Address (SA)
- Destination Address (DA)
查阅帧结构发现:
四个地址字段和frame control字段中的DS位有关:
- Address 1 to 4 – These are 6 bytes long fields which contain standard IEEE 802 MAC addresses (48 bit each). The meaning of each address depends on the DS bits in the frame control field.
DS位又和分布式系统有关……
- To DS: It is a 1 bit long field which when set indicates that destination frame is for DS(distribution system).
- From DS: It is a 1 bit long field which when set indicates frame coming from DS.
蝙蝠书给出了一个对应不同功能填写地址字段的表:
Function | ToDS | FromDS | Address 1 (receiver) | Address 2 (transmitter) | Address 3 | Address 4 |
---|---|---|---|---|---|---|
IBSS | 0 | 0 | DA | SA | BSSID | Not used |
To AP (infra.) | 1 | 0 | BSSID | SA | DA | Not used |
From AP (infra.) | 0 | 1 | DA | BSSID | SA | Not used |
WDS (bridge) | 1 | 1 | RA | TA | DA | SA |
可以说,在802.11中,transmitter并不一定就是帧的creator,同样,receiver并不一定就是最终解包的processor。根据功能的不同,地址字段的填写也不同。课上的情况其实就是二和三行的情况,Address3填写的是路由器的MAC地址,这一点和“当主机想要向外网通信时,需要用寻找的MAC是第一跳路由器的MAC”是相同的。(下图为二三行分别对应情形)
保持移动性
host可以保持在不同的BSS之间移动过程中IP不变;这个过程需要网络层的 Mobile IP 协议(RFC3344)来实现,在这里先不展开阐述(因为这课是自底向上……);
而在链路层中,移动性的实现需要交换机来协助完成:交换机需要记住host是在哪个AP!记忆行为就通过交换机的自学习机制来实现。
802.11中的高级功能
802.11中有一些为适应无线网络的特点而做出来的功能,如rate adaptation
和power management
Rate adaptation
Rate adaptation允许在无线网络中以不同的速率进行传输,传输的速率取决于所处的网络条件。在无线网络中,信号强度是有强有弱的,rate adaptation技术的出现可以让传输速率根据信号强度而跟随变动。信号强时采用高速调制方式,弱时则相反。
在IEEE上的有关 rate adaptation 的算法论文综述:Rate adaptation algorithms for IEEE 802.11 networks: A survey and comparison
Power management
power management 指在不工作时关闭电源或将系统切换到低电源状态的功能。在WLAN中(infrastructure mode),基本思想是AP缓存下行数据,并周期性向对应的节点其广播缓存区情况,从而节点可以知道自己是否被数据缓存了。在休眠结束后,被缓存数据的节点就会进行数据请求,反之就继续休眠。广播缓存区情况内容包含在信标帧中,AP的周期性广播也是广播信标帧。
蜂窝网络
在前面我们知道了一台host是如何接入WiFi的,但大多数WiFi的覆盖范围只有10~100m左右,当我们在户外的时候无法访问WiFi时,该如何接入无线Internet呢?
我们可以将蜂窝电话扩展到蜂窝网络,使它既支持语音电话,又能支持无线Internet接入。下面我们简要介绍一下。
蜂窝网络的组成
接入方式
多个移动设备接入基站时,无线射频的划分有两种方式:组合FDMA/TDMA, 以及CDMA。2G就是采用了组合FDMA/TDMA的对空接口,下面是自顶向上的阐述:
2G(voice)网络结构
3G (voice+data)网络结构
4G和5G就不是一张两张图能够概括的了...还有很长的路要走!
最后来一个移动通信的演化图^^