网络通信 频道

锐捷云桌面EST协议之RUTP传输技术

  作者:锐捷云桌面产品事业部EST技术组

  前言

  摘要

  锐捷云桌面EST协议,最早只适用于局域网。为了能满足远程办公,即跨广域网的办公需求,就要支持上更符合弱网络实时传输要求的UDP传输协议(原来版本只支持TCP协议)。

  结合云桌面场景分析,我们提出了一个新的传输协议,叫做RUTP协议,即基于UDP的可靠用户层传输协议。该协议能一定程度上解决网络丢包引发的使用卡顿问题。

  关键字

  UDP、RUTP、用户空间、EST、TCP。

  术语清单 

缩略语/术语

说明

UDP

User Datagram Protocol,一种无需建立连接就可以发送封装的 IP 数据包的协议

RUTP

Reliable User Transportation Protocol,基于UDP可靠用户层传输协议

用户空间

用户程序的运行空间,用户的程序崩溃了,内核也不受影响

EST

Enhanced Stream Transmission,增强的桌面流传输协议

TCP

Transmission Control Protocol,是一种面向连接的、可靠的、基于字节流的传输层通信协议

弱网络

网络存在一定的丢包、延迟、抖动的网络,称为弱网络。这里把弱网络定义为:丢包率>0.1% 延迟>20ms 抖动>5ms的网络称为弱网络

    1 概述

  随着网络的发展,广域网带宽越来越大,云桌面在广域网中使用成为可能,但是相比局域网,广域网存在更高延时、更高丢包的特点,导致云桌面体验不佳。为了改善云桌面在广域网中体验不佳的问题,我们需要优化云桌面协议中的可靠传输协议特性,使其能尽可能地适应高延时、高丢包的广域网远程实时传输要求。

  传统的可靠传输协议一般都使用TCP,TCP实现在内核层,如果要优化它,需要根据不同的操作系统去优化TCP内核模块。优化TCP内核模块,从技术上来说难度大且容易出问题,或者说出了问题可能直接导致整个系统崩溃,但理论上是可行的。那么,我们再从部署情况来考虑,云桌面协议的传输子模块,包括传输客户端子模块和传输服务端子模块,前者一般作为上层应用软件部署在不同的终端设备上,后者一般部署在服务端上。假设即使后者的服务端操作系统可控可改,前者对于不同终端设备操作系统来说,基本也是不允许去改动的,或者说一大部分是闭源的。综上所述,要基于现有的TCP技术去做优化,可行性低。

  在实时数据传输这块,UDP除了在传输特性上相比TCP更具有优势外,也能改造成满足云桌面协议部署要求——应用层上的传输优化,以达到便捷部署的目的。

  综合以上因素, 我们基于UDP提出了适配云桌面的可靠的应用层传输协议,称为RUTP协议。

  2 技术介绍

  2.1 广域网实时传输重要概念

  这里介绍在广域网下要实现桌面协议实时传输的几个概念。

  2.1.1 广域网网络特性

  广域网(Wide Area Network,缩写为 WAN),又称外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几公里到几十公里甚至到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。广域网有如下特点:

  1) 广域网相对局域网来说,带宽相对较小,传输速率低很多,如局域网内端到端的带宽基本可以保障在百兆甚至更高的速率;另外,一般工作单位的出口带宽容量有限,考虑多并发要求,所以分摊到个人的带宽容量也相对较小。

  2) 广域网延时大,从几毫秒到几百毫秒不等且会存在延迟抖动,而局域网延时大部分情况都小于1ms;

  3) 广域网根据链路情况一般会有不同程度的丢包(如0.5%~5%,5%~30%都有可能,且存在丢包抖动),而局域网大部分情况不会出现丢包。

  2.1.2 可靠传输

  可靠传输,就是采用一系列技术来保障信息在发送方和接收方准确、精确的传输。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK)。如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

  2.1.3 UDP协议特性

  UDP 是User Datagram Protocol的简称,提供面向事务的简单不可靠信息传送服务,IETF RFC 768 是UDP的正式规范。UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。UDP具有如下特性:

  1) UDP包头只有8个字节,相对于TCP的20个字节信息包的额外开销很小,数据传输效率高;

  2) 吞吐量不受拥塞控制算法的调节,只受应用软件生成数据的速率、传输带宽、 源端和终端主机性能的限制;

  3) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上,从而延时较TCP小。

  UDP的这些特性,使得我们要在应用层去控制和改造它以更加适配远程桌面传输场景提供了可能。

  大部分应用厂商想要去适配广域网实时传输场景的,也基本是基于UDP来进行改造。

  2.1.4 拥塞控制算法

  拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。拥塞控制算法,即采用不错的策略(或者方式)减少或者避免拥塞现象的发生,如CUBIC、BBR拥塞算法等。

  2.1.5 安全传输

  为了保护敏感数据在传送过程中的安全,发送端对敏感数据进行加密,加密后再进行传输,接收端接收到数据后要进行解密后才能获取到数据。目前主要使用SSL(Security Socket Layer)加密机制来保证数据安全。这也基本是业界的一个做法。

  2.2 EST-RUTP协议介绍

  RUTP(Reliable User Transportation Protocol)基于UDP底层网络传输协议为基础,实现类似TCP协议数据重传,实现可靠传输,结合桌面业务特性,引入较为先进的拥塞控制算法,实现高效传输,具体实现如下图所示:

  

  RUTP传输协议对拥塞控制算法做了改进,使得数据重传更快,延时更小,提高了传输效率。该算法不再基于丢包判断并且也不再使用线性增乘性减策略来维护拥塞窗口,而是分别采样估计极大带宽和极小延时,并用二者乘积作为发送窗口,而且引入一些机制限制数据发送速率来降低冲击。

  简单来说可将网络链路比喻成水管,如果我们希望尽可能地使用网络传输数据,方法就是给水管注水,水管的容积 = 水管粗细 × 水管长度。以前的拥塞算法是一直往水管中充水,水管爆了,充水量立马下降到原来一半,而RUTP拥塞算法是周期性探测水管容量,按照水管容量平稳发送数据,尽量不导致水管爆了。

  

  同时,RUTP协议也支持SSL加密传输,可由管理层自动配置是否启用。

  3 锐捷RUTP技术特点

  3.1 RUTP技术特点

  RUTP协议具有如下技术特点:

  1) 引入基于桌面业务特点的拥塞控制算法,相同场景下延时较原先TCP更小,传输效率更高;

  2) 支持连接迁移,移动端使用时经常会有网络切换,对于TCP,切换网络时桌面连接会断开,影响用户体验,对于RUTP,网络切换时桌面连接不会断,不影响用户体验;

  3) 协议支持“丢包率<=1%,延时<=50ms,抖动<=10ms”的场景,原来的TCP只能支持“丢包率<=0.1%,延时<=20ms,抖动<=5ms”的场景。当然,当丢包率更大时,部分体验会有所降低;

  4) RUTP协议是用户空间协议,出问题可快速定位且不会影响其他用户。

  4 限制信息

  4.1 RUTP协议限制信息

  对于RUTP协议目前只支持“丢包率<=1%,延时<=50ms,抖动<=10ms”的场景。当用户网络在“丢包率为1%,延时为50ms左右,抖动为10ms”时,桌面基本可用,但流畅度上较“丢包率为0.5%,延时为30ms”时会差一些。因此需要明确客户所使用的具体业务对桌面要求进行评估。

  5 结束语

  锐捷云桌面EST协议之RUTP传输技术优化使云桌面适配更多的场景,保证桌面显示质量和显示流畅度。

0
相关文章