Network06 Wireless
2023-02-15 23:20:58

Intro

无线局域网的特征:

  1. 主机都是无线设备(废话)
  2. 节点之间通过无线介质通信
  3. 存在特殊的设备基站,责任包括:
    1. 与覆盖范围内的无线设备通信
    2. 协调接入设备对共享介质的使用
  4. 终端可能会移动,从一个接入点到达另一个接入点(如何保证通信中的 TCP 连接不断开)

通常又会有两种工作模式:

  1. infrastructure mode,即这些无线设备最终会接入互联网,它们只是普通的终端+无线网卡
  2. ad hoc mode,这些无线设备彼此组成了一个整体网络,每个节点要实现完整的网络协议栈

无线链路(传输媒介)的特征:

  1. 信号强度衰减,也叫 path loss
  2. 会受到信号干扰,例如工作频率为 2.4GHz 的蓝牙和 WiFi
  3. Multipath Propagation 问题,即信号在反射后,沿着多条路径到达目的地(可能存在先后)

信噪比(SNR-Signal to Noise Ratio)指的是传输中信号与环境噪声之比,单位是 dB。信噪比越大,则越容易从噪声中分离出传输的信息。

误码率(BER-Bit Error Rate)指的是传输过程中出现比特错误的概率。这个值越小越好。

它们和传输带宽之间的关系可以粗略地看成 \(\text{SNR$\times$BER=Bandwidth}\)

Hidden Terminal Problem

hidden

说的是三个节点,其中两个无法感知到彼此,但它们同时传输造成的冲突又会干扰到第三个。

CDMA

后续讨论的比特实际上是 \(\mathbb{F}_2=\Set{1,-1}\)

先确定一个长度 \(M\),每个节点发送一个比特的时间就会被划分成 \(M\)

此后可以选取出至多 \(M\) 个互相正交的 \(\mathbb{F}_2\) 上的 \(M\) 维向量 \(\Set{\vec{v}}_m\)

以节点 \(i\) 为例,假设当前要传输的比特是 \(d\),它想发给 \(j\),那么最终它会被编码成 \(d\times \vec{v}_j\),然后发出去

接收方收到之后再计算 \(\frac{d\times \vec{v}_j\times \vec{v}_j}{M}=d\),这样就完成了 \(i\to j\) 的传输。而其它节点即使收到了信号,也会因为编码彼此正交而得到 \(0\)

802.11

802.11 在链路层实现了可靠传输,靠的是 ACK。

每个 AP 都有一个 SSID,有一个工作频道。

被动探测:

  1. 每个AP定时发送 beacon 帧,包含 MAC 地址和 SSID
  2. 终端扫描信道监听 beacon,选择一个 AP 接入

主动探测:

  1. 终端主动广播一个帧
  2. AP收到之后回应一个帧,终端选一个接入

探测完之后还需要终端发给 AP 确认,AP 再回一个确认。这是因为在探测完后,AP 仍然不知道终端会不会选它。

接入之后通常会发一个 DHCP 请求来获取 IP,然后就和有线网络几乎每区别了。

验证可以看 MAC 地址,也可以用密码

冲突避免vs冲突检测

  1. 有线,检测到了冲突立即停止传输,这是为了减少冲突;
  2. 无线,没法检测只能预先避免冲突,这也是为了减少冲突;

CSMA/CA

即带冲突避免的 CSMA。无线局域网没有冲突检测,因为:

  1. 隐藏终端问题导致不一定检测得到
  2. 无线信号的冲突检测很困难

没有冲突检测的意思是:一旦一个节点开始传输,它将传输完整个帧

流程如下:

  1. 先检测冲突,如果没有冲突的话等待一个固定的时间后开始传输
  2. 如果冲突了就 back-off 一下再传输
  3. 传完了等 ACK
    1. 确认了,那么就回到1
    2. 否则回到2,重新 back-off

RTS CTS

解决隐藏终端的步骤:

  1. 某个节点n想要发数据,向 AP 发一个 RTS(Request To Send)
  2. AP 收到后广播一个 CTS(Clear To Send),表示:
    1. 同意n的发送
    2. 通知其它节点暂停发送
  3. 节点n开始发
  4. 发完之后终端广播一个 ACK,所有节点继续工作。

速率自适应

802.11 可以探测带宽,通过检测连续的ACK、连续的未ACK、超时等事件来进行决策

Power Management

  1. 每个节点有两种状态:sleep, wake
  2. 节点可以通过设置帧中的位,通知 AP 它将要省电了
  3. AP 将会缓存需要发给它的帧
  4. 节点会在 AP 发送 beacon 之前唤醒,然后被 AP 告知是否有缓存的帧
  5. 节点可以向 AP 获取之前缓存的帧,也可以继续省电