90
ToDesk > 资讯 > 详情
远控硬核拆解(终):RTC强在哪儿?底层框架全面升级

2022-07-05

RTC(Real-Time Communication)是一套专用于实时音视频的技术框架,专门用于大规模、低延时、点对点的使用场景,尤其适合远程桌面服务。

在之前的远控硬核拆解系列中,我们介绍了高效编解码如何提升处理速度与画质、SD-WAN如何保障最优网络路线。RTC则聚焦传输协议和弱网对抗,从底层提升传输性能。

什么是RTC?

RTC(Real Time Communication)源自实时高清直播,使用高效的RTP传输协议,并利用RTT采样、Kalmen-Filter、Jitter Buffer、HARQ算法来缓解网络波动,确保数据快速、稳定、准确地传递:

- 整个传输过程中,使用RTP协议提升传输速度和可靠性

- 被控端编码好的数据发出时:RTC会预测路线拥塞状况、控制发包速度,确保数据有序、顺畅地进入网络

- 主控端接收数据前:RTC将数据包正确排列,通过缓冲算法减少抖动丢包,确保数据完整无误地进入解码器

IMG_256

ToDesk RTC,关键技术驱动实时高清

1. RTP协议兼顾高速与可靠

与传统远控软件使用UDP协议或是TCP协议不同,ToDesk 在RTC中采用RTP作为传输协议,兼具高速性和高可靠性。

IMG_258

TCP协议为了可靠性牺牲了速度。TCP协议规定接收方收到数据包时需要发出确认信号,发送方只有在接收到这个信号之后,才能继续发送后续信息。UDP协议为了速度牺牲了可靠性。

UDP的数据包格式更简单,体积更小速度更快,是传统远程软件的主流协议。但它缺少校验机制,易受网络波动影响出现丢包和乱序。

RTP协议在UDP的基础上补充了序列信息、负载说明、质量监控。接收端可以根据序列信息消除数据包乱序,并且能定期向发送端反馈传输质量。

与TCP协议死板的确认方式不同,RTP的难点在于动态调整,算法优化空间大但是难度也高。ToDesk 核心团队超十年网络优化经验,支持过百万级并发直播网络,积累了大量RTP调优技术,才能将RTP在远控中用出优势。

2. 数据发送时:带宽预测和拥塞控制

网络线路都有承载上限,如果线路上的数据超载,传输性能就会急剧下降,出现拥塞和弱网。就像是一条四车道公路,并排开一至四辆车都不拥堵,而一旦塞入第五辆,所有车速都会急剧下降,陷入拥堵。

IMG_259

在实际使用中,每个程序可用的带宽资源是不断变动的。这是因为一根线路上有多台设备,每个设备上又有多个联网程序,这些程序一直在彼此争夺带宽资源。传统远程软件无法探测可用带宽,只能按照固定带宽进行传输,在线路空闲时浪费了带宽资源,在线路繁忙时又容易造成超载拥塞。   

IMG_260

ToDesk RTC 同时采用延迟识别(Delay-based)和丢包识别(Loss-based)两种策略,能够精准测算线路的可用带宽:

- 基于延时的算法(Delay-based):通过RTT采样和Kalman-Filter来监测延时,根据延时变动来预测网络负载变化

- 基于丢包的算法(Loss-based):对随机丢包、拥塞丢包和突发丢包进行智能识别,避免线路因随机丢包被错判为拥塞

在预测出实时可用带宽后,ToDesk RTC再通过拥塞控制算法,“有多宽路开多少车”,综合带宽利用率提升30%~50%,拥塞率下降90%:可用带宽充裕时,安排更多数据进入传输,最大限度地利用带宽资源提高画质;可用带宽紧张时,按照线路承载能力限制数据流量,避免超载和拥塞。

IMG_261

3. 数据接收时:消除网络波动
网络环境复杂多变,尤其是在“最后一公里”的接入线路上,30%的用户都会遇到不同程度的抖动、丢包等弱网情况。如果没有弱网对抗,这些波动就会造成延迟和卡顿,严重影响操作体验。

Jitter Buffer:自适应缓存抗抖动

主控端在收到数据后,先要进行缓存整理:对数据包的丢失、乱序、延迟等情况进行处理。但缓存是一种“以时间换空间”的办法,会带来额外延时。传统远控往往采用固定缓存,即使没有网络波动,也要等待几十毫秒。

而ToDesk RTC 使用基于Kalman-Filter 的自适应Jitter 缓存,能够自动评估网络延迟和弱网程度。再动态调整缓冲延时的长度,将缓存延时降至9~20ms,减少不必要的缓存时间。

HARQ算法:双重保险抗丢包

为了进一步降低丢包影响,ToDesk RTC采用了结合自动重传请求(ARQ)和前向纠错编码(FEC)的HARQ算法。即使遇到丢包率30%也可以通过丢包对抗,将实际解码丢包率降至3‰以下。

- ARQ对丢包进行及时补救:主控端在发现丢包时,会告知被控端哪些数据丢失,请求重传。被控端收到请求后再次发送丢包的数据,最终补全原有信息。

IMG_262

- FEC对丢包进行未雨绸缪:重传虽然可靠,但会带来额外延时。为了尽量避免重传,ToDesk还采用FEC(前向冗余)技术对丢包进行恢复。冗余就像飞鸽传书时一次放好几只,即使有一两只飞丢,其余信鸽也能把信息送达。

当然实际的FEC比放信鸽复杂很多,为了提升可靠性、降低带宽占用,ToDesk采用Reed-Solomon编码对信息进行交织,让一个冗余包承载多个数据包的信息。主控端发现某个数据包丢失后,可以从相应的冗余包中恢复出丢失的数据。


ToDesk对三大核心技术——视频编解码、SD-WAN网络、RTC传输框架的持续投入和前沿拓展,造就了全球领先的远程桌面体验。现产品已支持2k/4k高清、60帧刷新率、端到端延时低至40ms,真正做到高清、流畅、低延时。