减少无线链接切换导致数据体验变差的技术简介

一 、问题背景

现在的智能终端普遍存在多种无线资源,比如比较常见的Wifi链接和蜂窝(Celluar)链接,目前的智能终端设备,普遍的做法是在同一时间,终端只使用其中一种无线资源作为通信传输。随着用户的移动,受限于无线资源存在的覆盖区域限制,势必会发生在多种无线资源之间的链路切换,而这个切换就会带来断开和重建链路的时间开销,反映在用户感知上就会出现卡顿或者断流,严重影响用户的数据体验。下图是Zoom应用在Wifi链路切换到Celluar链路的时延情况,从图中可以看出,断链时间达到15s以上。

图二 Wifi切换到蜂窝过程模型

用户开始移动后,到了B点的位置,由于Wifi信 变弱,此时Wifi数据传输的质量开始变差,但由于还没有差到无法传输的地步,所以终端还是会继续以Wifi作为数据传输链路,直至到了C点,终端发现Wifi已经无法维持传输,则开始启用Celluar作为新的传输链路,但如前所述,此时终端和基站之间用于数据传输的无线资源尚未建立,所以必然有一个建链的过程,直至到了D,终端和基站之间的无线链路建立成功,但问题又来了,如果应用是基于TCP的连接方式,应用原本的TCP连接是基于Wifi链路的,此时基于Celluar链路的TCP连接是一个全新的连接,所以需要花一定的时间进行Socket的重建,直至E点在新的链路上恢复。所以从A点移动到E点的过程中,可以认为从B点到E点的用户数据体验都可能是不太好的。

我们定义:

B->C点的时间为T1: 从Wifi信 变差到终端检测到需要采用行动的时间。

C->D点的时间为T2: 重新建立Celluar的无线链路的时间。

D->E点的时间为T3: 应用从Wifi TCP连接切换到Celluar TCP连接所需要的时间。

所以问题的核心变成了如何让T1/T2/T3的时间变最短,同时也要兼顾功耗和成本(包括终端流量开销和 络改造成本),针对这一问题,比较直观能想到的一种方式就是模仿Celluar不同Cell之间的切换策略,由UE对测量到的Wifi和Celluar信 上 给 络侧,由 络侧进行统一的资源调度(如专利CN104754661所描述的),但直到现在,Wifi和Celluar之间无线资源统一调度策略都未打通,所以这种方式目前还只停留在理论可行的阶段,并没有被应用到实际的用户使用场景。

随着系统的演进以及应用的更加智能化,目前如果不考虑少许的功耗和 络资源的消耗,基本上T2已经可以认为趋紧于0,相对粗暴的做法就是让Celluar无线资源一直存在,无论终端是否使用,永远作为备用链路存在着。所以这个问题就可以简化为对T1/T3的处理。

三、关键技术

1.链路指标动态评估

在平常使用导航软件的时候,到了分叉路口,导航软件根据拥堵情况,红绿灯数量,路程长度等综合的计算和评估,从而给出更快道路提示,引导用户进行提前的道路切换和拥堵规避,主动选择更快的一条路径通过。

图四 链路切换抽象模型

基于链路动态评估是完全的终端行为,不会引入额外的流量和功耗消耗,但其解决不了如下的几个问题:

不同的应用对Qos的要求不一致,很难精确评估切换的时机,换句话说,就是无法使T1等于0。

链路的状况随着用户的移动随时随地发生着变化,容易引起Wifi和Celluar的乒乓切换。

目标链路的状况比较难精确评估,导致切换的目标链路未必是最佳的选择。

2. QUIC(Quick UDP Internet Connection)

对于所有基于HTTP协议的应用来说,由于HTTP是建立在TCP协议之上的,所有 HTTP 协议的瓶颈及其优化技巧都是基于 TCP 协议本身的特性。由于一条 TCP 连接是由五元组标识的(源 IP,源端口,目的 IP,目的端口,协议 ),当终端在 WIFI 和 Celluar 络切换时,客户端的 IP 肯定会发生变化,需要重新建立和服务端的 TCP 连接,所以必然会产生T3的额外消耗,而QUIC的连接迁移特性正好可以弥补这一问题。

QUIC是谷歌制定的一种基于UDP的低时延的互联 传输层协议。与TCP协议相比,UDP更为轻量,但是错误校验也要少得多。这意味着UDP往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上TCP。QUIC很好地解决了当今传输层和应用层面临的各种需求,包括处理更多的连接,安全性,和低延迟。QUIC融合了包括TCP,TLS,HTTP/2等协议的特性,但基于UDP传输。

图六 基于TCP和QUIC的链路切换模型

3. MPTCP(Multipath TCP)

顾名思义,MPTCP是对TCP的扩展演进,允许通信双方同时建立多条TCP连接进行数据传输,充分利用多条路径从而提高吞吐(聚合)或者提高可靠性(冗余)。

图八 基于MPTCP数据传输 络模型

当然,使用这种模式,终端的代价也是显然易见的:会有额外的流量开销和功耗开销。再加上需要服务器侧的紧密配合,所以使用场景也相对会受限。

四、小结

综上所述,针对上述几种方案,从以下几个问题比较来看,各有优缺点。实际使用过程中,可以结合实际需求选择最为适合的方法。

长按关注

内核工匠微信
Linux 内核黑科技 | 技术文章 | 精选教程

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92471 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月6日
下一篇 2022年8月6日

相关推荐