CNATDA 第七章学习笔记

Computer Networking: A Top-Down Approach (8th Edition)第七章 Wireless and Mobile Networks 的学习笔记

Introduction

wirelessmobile 往往是密不可分的但它们实际上面临着不同的挑战需要不同的解决方案

wireless network 一般包含 wireless hostwireless link 和 base station但不是所有 wireless network 都有 base station

根据 wireless hop 的次数是否有 base station (infrastructure)wireless network 可以大致分为四种

  • single-hop, infrastructure-based: 大部分 wireless network例如 802.11 和 4G LTE
  • single-hop, infrastructure-less: 例如 Bluetooth
  • multi-hop, infrastructure-based: 例如 wireless mesh network
  • multi-hop, infrastructure-less: 例如 mobile ad hoc network (MANET)vehicular ad hoc network (VANET)

wireless network 面临着几个主要问题

  • 信号衰减长距离传输穿越障碍
  • 信号干扰其他同频段信号环境噪音
  • multipath propagation同一信号的多个部分从 sender 到 receiver 可能会走不同的路径

总之wireless network 通常有更多 bit error所以往往除了 wired network 也会使用的 CRC error detection codes还会使用 link-layer reliable-data-transfer protocol

signal-to-noise ratio (SNR) 是接收到的信号强度与噪音之比bit error rate (BER) 是 bit error 发生的概率

wireless network 通过 modulation scheme 来决定如何 encoding 和 transmission对于同一个 modulation schemeSNR 越高 BER 越低对于同样的 SNRtransmission rate 越高的 modulation scheme BER 越高所以往往会根据实际的 channel condition 动态选用 modulation scheme例如在 BER 满足一定限制的情况下尽可能提高 transmission rate

wireless network 中的 multiple access 也更加复杂例如A 和 C 分别能传输信号到 B但因为障碍物或距离等原因A 和 C 接收不到彼此发送的信号这可能导致 undetectable collision

CDMA

CDMA (code division multiple access) 是一种常用于 wireless network 的 multiple access protocol属于 channel partitioning protocol

在 CDMA 中每个装有 1 bit 的 time slot 会被再分为多个 mini-slotsender 将每个 slot 内的 datamini-slot 全 0 / 全 1异或上一个 code理想状态下receiver 再异或上这个 code 就可以得到 data实际上会有其他信号产生干扰而合适地选取 code 可以在有干扰的情况下依然能够读取出 data这相当于是在 code space 而非 time / frequency 上进行 channel partitioning

书中没有说明具体细节例如如何选取 code如何处理不同 sender 的信号强度不同

Wi-Fi: 802.11 Wireless LANs

Wi-Fi 的全称为 IEEE 802.11 wireless LAN有 802.11b/g/n/ac/ax/af/ah 等版本不同版本有不同的最大传输速率传输距离以及使用的频段

The 802.11 Wireless LAN Architecture

802.11 architecture 的 building block 是 basic service set (BSS)每个 BSS 包含一个被称作 access point (AP) 的 base station 以及连接到 AP 的若干 wireless station即 host

802.11 可以通过 AP 连接为 infrastructure wireless LAN也可以没有 AP 而只由几个 host 互相连接成 ad hoc network不对外连接到 Internet本书只讨论 infrastructure wireless LAN

每个 AP 有一个 service set identifier (SSID)即 Wi-Fi 的名称可以为 AP 设置 channel number2.4GHz 频段共有 11 个 channel number但相差不到 5 的 channel 会相交彼此不相交的 channel 最多只能有 3 个1611

AP 会周期性地广播 beacon frame 来告诉 wireless device 自己的存在wireless device 可以监听 beacon frame 来进行 passive scanning除此之外也可以主动发送 probe frame 来进行 active scanning

找到 AP 后wireless device 需要在可用的 AP 中选择一个802.11 standard 中没有规定选择 AP 的算法发送 association requestAP 返回 association response就建立了连接

The 802.11 MAC Protocol

CSMA/CA

802.11 使用的 MAC protocol 是称作 CSMA with collision avoidance (CSMA/CA) 的 random access protocol和 Ethernet 使用的 CSMA/CD 类似但又有很大不同

  • CSMA/CA 是 collision avoidance 而非 CSMA/CD 的 collision detection这意味着它不是在检测 collision 时中断传输而是不进行检测通过其他机制尽量避免 collision这是因为 wireless network 中很难进行 collision detection
    • 前文中提到过wireless network 中可能存在 undetectable collision
    • collision detection 需要在发送的同时接收信号而无线信号在发送端的强度会远高于接收端的强度这也加大了 collision detection 的难度
  • 802.11 引入了 link-layer reliable-data-transfer

其完整流程为

  1. 等待一小段时间distributed inter-frame space, DIFS) 来看 channel 是否 idle
  2. 如果 channel buzy进入 binary exponential backoff只在 channel idle 时 countdownchannel buzy 则不计入等待时间
  3. 经历了足够长的 channel idle 后发送整个 frame不检测 collision
  4. AP 接收到 frame 后等待一小段时间short inter-frame space, SIFS然后发送 ACK
  5. 如果 sender 接收到了 ACK则结束或继续发送下一个 frame否则进入 binary exponential backoff进行 retransmission

其中检测到 channel buzy 时直接进入 backoff是为了避免 channel 变为 idle 时多个 sender 同时发送而产生 collision这与 CSMA/CD 不同因为如果有 collision detection 的话即使发生了这样的 collision 也代价不大就无需通过 backoff 来避免

RTS/CTS

wireless network 中不仅 collision detection 非常困难carrier sense 也比较困难光靠上面这些机制还是很可能出现 collision所以 802.11 还提供了另一种可选的机制使用 request to send (RTS) frame 和 clear to send (CTS) frame 来显式地预留出通信权

  1. sender 发送 RTS告诉 AP 需要预留出的时长传输 data 和 ACK 的用时
  2. AP 发送 CTS告诉 sender 可以发送以及告诉其他 station 一段时间内不要发送
  3. sender 发送 data
  4. AP 发送 ACK除了普通的 ACK也是告诉其他 station 可以发送了

使用 RTS/CTS 可以保证 data 和 ACK 的传输不会出现 collision而 RTS/CTS frame 自身非常短如果产生 collision 代价是较小的然而RTS/CTS 自身会消耗资源产生延时所以一般只有在 data 较大时才会使用wireless station 一般会设置一个发送 RTS 的 frame length threshold很多时候这个 threshold 比 maximum frame length 还大实际上就是禁用了 RTS

上面说的是常见的 802.11 对 multiple access 的处理除此之外802.11 也可以通过 directional antenna 作为 point-to-point link 使用

The IEEE 802.11 Frame

802.11 frame 的结构如下图所示1

  • typesubtype这决定了 associationRTSCTSACKdata 等 frame 类型

  • duration: 这是 RTS/CTS预留一段时长所需的

  • address: 由于 AP 起到中介的作用在 infrastructure wireless LAN 中 frame 需要包含三个 address在 ad hoc mode 中需要四个此处不讨论

    • 前两个是 802.11 收发双方station 和 AP的 MAC address这是 802.11 通信所需的
    • 第三个是 AP 连接到的 router interface 的 MAC addressAP 工作在 link layerrouter 感知不到 AP 的存在在 AP 向 station 发送时station 可以从 address 3 得到 router 的 MAC address在 station 向 AP 发送时AP 可以从 address 3 知道 Ethernet frame 需要发给谁总之address 3 是 Ethernet 通信所需的

    不同场合下每个 address 分别代表什么是不同的这由 frame control 中的 to APfrom AP 决定

  • sequence number: 这是 link-layer reliable-data-transfer 所需的

  • payload: 802.11 允许 2312 bytes 的 payload但由于 Ethernet 的限制一般不会超过 1500

The 802.11 frame

Mobility in the Same IP Subnet

当 host 从一个 BSS 移动到另一个 BSS 时如果两个 BSS 处于同一个 IP subnet 中mobility issue 就比较容易解决直接保持 IP address 不变即可而如果两个 AP 由 switch 连接还需要处理 switch interface 改变的问题由于 switch 的 self-learning一个处理方式是在和新的 AP 建立 association 后立刻发送一个 broadcast Ethernet frame 来告诉 switch 换了一个 interface

如果使用 VLAN可以将很多地理位置不同的AP 放在同一个 IP subnet 中从而较为轻松地解决 mobility issue

Advanced Features in 802.11

802.11 Rate Adaptation

上文所述不同环境下 SNR 不同会导致最佳的 transmission rate 不同在 802.11 中ACK 可以用作 rate adaptation 的 hint在没收到 ACK 时降低 transmission rate在连续收到很多 ACK 时提高 transmission rate这与 TCP 的 congestion control 类似

802.11 Power Management

一个 802.11 node 往往不需要一直通信在不进行通信的时候可以 sleep 来 save power

  1. node 可以在 header 中设置 power management flag 来告诉 AP 自己即将 sleep
  2. 如果 AP 接收到一个发送给正在 sleep 的 node 的 frame会将其存在 buffer 中
  3. AP 发送的 beacon frame 中包含一个有 buffered frame 的 node listnode 会在 AP 发送 beacon frame 前 wake up根据自己是否有 buffered frame 来请求 AP 发送这些 buffered frame 或继续 sleep

一般来说AP 会周期性地每 100ms 发送一次 beacon frame而一次 wakeup 只需 250μs所以不进行通信的 station 可以在 99% 的时间内 sleep

Personal Area Networks: Bluetooth

Bluetooth 使用 TDM 进行 channel partitioning同时在 79 个 frequency channel 中进行 pseudo-random 的 channel hopping (frequency-hopping spread spectrum, FHSS) 来降低外界干扰的影响

Bluetooth network 是 ad hoc (infrastructure-less) 的一个 Bluetooth network 包含最多 8 个 active device其中一个是 master device它决定传输的 clockfrequency-hopping patternpower邀请 client 进入 Bluetooth network通过 polling 来控制 client 何时通信network 中还可以有最多 255 个 parked device会长期处于 sleep mode周期性地接收 beacon message只有切换为 active 才能进行通信

Bluetooth network 的建立过程为

  1. neighbor discovery:
    1. master 广播 inquiry message在 32 个不同的 frequency 发送至多 128 遍因为此时还没有协商好 frequency-hopping pattern
    2. client 收到 inquiry message 后随机等待 0~300ms 来避免 collision然后发送 response包含 client 的 device ID
  2. Bluetooth paging:
    1. master 向特定的 client 发送 paging invitation依然是在 32 个不同的 frequency
    2. client 收到 paging invitation 后返回 acknowledgment
    3. master 向 client 发送 frequency-hopping patternclock synchronization information 以及 active member address
    4. 使用 frequency-hopping pattern 来 poll client以确认 client 连上了

Mobility Management: Principles

mobility 指的是 mobile device 到网络的接入点发生变化而从 network layer 的角度来看只有 access network 发生了变化且需要保持连接例如 TCP connection不中断才会带来 mobility issue如果设备在每个 session 只连到同一个接入点则不需要特殊处理

在 cellular network 中有两方面的 mobility issue:

  • handover: cellular network 中有很多 base station每个 base station 覆盖一个 cell 提供服务从一个 base station 移动到另一个 base station 时需要进行 handover 来改变 mobile device 连接到的 base station
  • roaming on visited networks: 每个 cellular subscriber 会有一个 home network提供了 subscriber 信息的集中管理home network 提供服务的范围是有限的如果 mobile device 移动到了 home network 之外可能就需要连接到由其他 cellular provider 提供的 visited network此时需要特别的机制来处理 routing

mobile device 的接入点随时可能发生变化而 home network 会跟踪 device 当前接入的 visited network所以外界可以通过 home network 来找到 mobile device 当前的位置从而进行通信

具体的 routing 有两种方式

  • indirect: mobile device 有一个固定的 IP外界向这个 IP 发送消息会发到 home network 的 gateway而 home network 与 visited network 的 gateway 之间建立了 tunnel最后由 visited network 的 gateway 与 mobile device 通信也就是说外界与 mobile device 通信需要经过 home network 中转
  • direct: 向 mobile device 发送消息时一开始先查询 mobile device 所在的 visited network后续则直接与 visited network 通信

indirect routing 的缺点在于 triangle routing problem即通过 home network 中转可能带来很大的浪费direct routing 的问题在于需要特殊的机制来完成一开始的 visited network 查询以及后续 visited network 变更时的通知也就是说需要通信另一方的配合

Mobility Management in 4G/5G Networks

Attach to Visited Network

连接到 base station 时mobile device 会提供自己的 IMSI (international mobile subscriber identity)visited network 的 MME (mobility management entity) 会从 local cache 或 home network 的 HSS (home subscriber server) 获取到 mobile device 的 authenticationencryptionquality of service 等信息并通知 home network 的 HSSmobile device 现在位于这个 visited network

然后会建立两个 tunnel从 mobile device 到 visited network 的 serving gateway再从 serving gateway 到 home network 的 PDN (packet data network) gateway这两个 tunnel 使用 GPRS tunneling protocol (GTP)原理类似于 IPv6 tunneling

Handover Management

handover 是 mobile device 从一个 base station 转移到邻近的另一个 base station 的过程这可能是从信号差的 base station 转到信号好的或者是从拥挤的转到畅通的mobile device 会周期性地向当前连接到的 base station (称作 source base station) 报告它接收到的各个 base station 的信号强度等信息而 source base station 可以根据它掌握的信息来做出 handover 的决定

在同一个 network 中handover 的过程如下

  1. source base station 选择一个 target base station发送 handover request
  2. 如果 target base station 同意会提前分配好连接所需的资源从而让 handover 能够尽快完成然后发送 handover request acknowledge包含连接所需的各项信息
  3. source base station 告诉 mobile device 连接到 target base station 所需的信息此时在 mobile device 看来 handover 已经结束了可以和 target base station 进行通信
  4. source base station 停止向 mobile device 转发而是转发给 target base station
  5. target base station 告诉 MME 自己是这个 mobile device 新连接到的 base stationMME 会更新 serving gateway 到 base station 的 tunnel 的 end point
  6. target base station 告诉 source base station新的 tunnel 已经配置好了source base station 可以释放为这个 mobile device 提供的资源了
  7. target base station 向 mobile device 发送之前由 source base station 转发来的 datagram之后就可以正常通信了

Wireless and Mobility: Impact on Higher-Layer Protocols

Impact on TCP

TCP 以 retransmission 作为 congestion 的标志进行 congestion control但在 wireless network 中bit error 更加常见而 handover 时也会带来 delay 或丢包所以 retransmission 不一定意味着 network congestion如果在 wireless network 中沿用一般的 TCP congestion control 可能会有性能问题

目前的解决途径有

  • local recovery在 link layer 提供 reliable data transfer减少 bit error 的影响
  • split-connection在 sender 到 base stationbase station 到 receiver 分别建立连接base station 到 mobile host 的连接可以是标准的 TCP 连接也可以是其他连接
  • 让通信双方意识到 wireless link 的存在并区分出 retransmission 是否由 congestion 引起

Impact on Applications

  • wireless network 的 bandwidth 通常较小所以为 mobile device 提供服务时更需要减少传输的数据量
  • mobility 使得 location-aware / context-aware application 成为可能

Footnotes

  1. p554, Figure 7.13: The 802.11 frame