云游戏 场景下wifi是半双工引发的传输优化思考

1. 起源,想做wifi下云游戏场景的传输优化, 这是wifi到移动终端的lastmile问题。

2. 有线网络的 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

早期以太网为了协调多个设备共享同一个通信介质(如同一根电缆)的传输, 设计了 CSMA/CD协议。 主要工作原理如下:

  • 载波侦听(Carrier Sense)设备在发送数据之前会先监听网络介质(如电缆),以检测是否有其他设备正在发送数据。如果检测到载波存在(即网络介质被占用),则设备等待一段时间再次进行侦听。
  • 多路访问(Multiple Access):如果设备在侦听过程中未检测到其他设备发送数据,则认为网络介质空闲,并开始发送自己的数据帧。
  • 碰撞检测(Collision Detection):如果两个设备同时开始发送数据,在发送数据的过程中会发生碰撞。当设备检测到碰撞时,它会立即停止发送,并发送一个特殊的信号来表示发生了碰撞。
  • 退避与重传(Backoff and Retransmission):发生碰撞后,设备会随机选择一个退避时间,并等待该时间结束后重新进行侦听和发送。这个退避时间是为了避免更多的碰撞,并使不同设备能够在不同的时间重新发送数据。

有线网络的传输介质是那根线, 导线传输速率固定为 2/3 光速。而且线是全双工线缆, 可以一根发送一根接收。

3. wifi时代的 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)

对比有线网络的 CSMA/CD

  • 检测方式不同,CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
  • CSMA/CD:带有冲突检测的载波监听多路访问,可以检测冲突,但无法“避免”。CSMA/CA:带有冲突避免的载波监听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”。

wifi有如下的问题:

  • 独立全双工问题, wifi的传输通道是电磁波,
  • 容量收缩问题, 与有线交换机端口固定不同,AP(Access Point) 的接入终端数可伸缩

4. 思考

Wi-Fi是一种共享介质半双工网络,当AP和多个接入终端同时发送或接收时,只有一个可以成功,这是CSMA/CA的标准规定的。接入多个终端的Wi-Fi网络,显然处在拥塞状态,但该拥塞与有线网络的排队拥塞不同。CSMA/CA靠争抢获得信道,因此Wi-Fi网络拥塞可称作争抢拥塞。

具体看下两种拥塞的不同:
排队拥塞:队列在路由器中有序形成,拥塞体现在RTT的增加,队列拥塞缓解体现在RTT的减少。以RTT的一阶导数识别排队拥塞。
争抢拥塞:无队列,完全依靠无序争抢和退避。拥塞体现在RTT均差变大,拥塞缓解体现在RTT均差变小。以RTT均差的一阶导数识别争抢拥塞。

对android云游戏场景来说, 都是wifi + 有线的传输模式, 所以 既有排队拥塞,又有争抢拥塞。排队拥塞时可以通过降低码率有效改善延迟, 但是争抢拥塞造成的延迟,理论降低码率不能改善。 所以,识别排队拥塞和争抢拥塞是比较大的问题。

对排队拥塞,paceing(平缓)发送可以优化传输通道,底层思路是平缓可以平缓进入拥塞队列。
但对争抢拥塞,burst(突发)发送会缓解争抢拥塞,底层思路是突发可以减少类似wifi下的争抢,不需要重新仲裁。
Wi-Fi场景下burst发送-论文

除此,wifi对ack机制也不友好。因为这个半双工机制, brust对ack机制也不友好。

posted on 2023-09-06 13:57  WillingCPP  阅读(131)  评论(0)    收藏  举报

导航