CN118118481A - 远程桌面访问方法、装置和设备 - Google Patents
远程桌面访问方法、装置和设备 Download PDFInfo
- Publication number
- CN118118481A CN118118481A CN202410364645.7A CN202410364645A CN118118481A CN 118118481 A CN118118481 A CN 118118481A CN 202410364645 A CN202410364645 A CN 202410364645A CN 118118481 A CN118118481 A CN 118118481A
- Authority
- CN
- China
- Prior art keywords
- remote desktop
- protocol
- transport layer
- desktop client
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005012 migration Effects 0.000 claims abstract description 23
- 238000013508 migration Methods 0.000 claims abstract description 23
- 235000013599 spices Nutrition 0.000 claims description 47
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 239000000758 substrate Substances 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种远程桌面访问方法、装置和设备,用于解决远程桌面客户端在网络切换或弱网环境下使用效果不佳的技术问题。本发明为应用层的远程桌面协议提供基于数据报的传输层协议支持,在移动终端使用远程桌面客户端的场景下,使用基于数据报的传输层协议建立网络连接,利用基于数据报的传输层协议的连接迁移功能,能够提升移动端在网络变化频繁时访问远程桌面的用户体验。
Description
技术领域
本发明涉及通信及云计算技术领域,尤其涉及一种远程桌面访问方法、装置和设备。
背景技术
随着移动互联网的发展,越来越多的人开始使用移动终端智能设备。除了传统意义上的通讯与娱乐外,移动端设备还承载着远程办公、远程会议等与人们工作密切相关的功能。虽然大部分人仍然习惯于通过个人电脑(台式机、笔记本)访问远程云桌面,但移动端设备的灵活性能为经常出门在外进行远程访问的使用者带来了更大的便利,这也是为何人们逐渐不再满足于仅能通过个人电脑访问远程云桌面,更希望通过移动端平台(例如智能手机、平板电脑等)也能进行远程桌面的访问,从而随时随地都能进行远程办公或参加线上会议。上述这种需求催生并加速了移动云计算服务的发展。在移动云计算领域,除了移动侧计算资源受限、传输安全性等挑战外,最为关键的是云端服务如何能为用户提供如如低时延等优质的服务体验,而这一重任则落在了远程访问协议(remote access protocol,RAP)的设计上。良好的服务质量不仅能够带来良好的用户体验,还能提高用户的工作效率。
SPICE协议(Simple Protocol for Independent Computing Environments,独立计算环境简单协议)是一种专为虚拟化桌面(Virtual Desktop Infrastructure,VDI)设计的通信协议。SPICE协议的最大优势在于,对于有较强虚拟桌面需求的用户其能够为访问远程虚拟桌面的用户提供优质的操作体验,即能够让用户在访问过程中感受到类似于和本地机器交互的体验。SPICE协议不仅支持远程桌面和多种设备(如USB、音频、视频、键盘、鼠标等)的访问,还支持例如GPU加速、图片自适应渲染、图像分辨率动态调整、加密传输等功能,因而具有图像、视频浏览用户体验好、通信安全等特点。在各类数据传输过程中,SPICE协议会通过不同且各自独立的“通道”(Channel)对音频、视频、图像、各类用户输入(如键盘、鼠标)等内容进行传输,同时支持动态添加和删除不同通道以及独立加密,并支持为不同通道设置不同的用户体验质量(Quality of Experience,QoE)级别。目前SPICE协议已被广泛应用于虚拟云桌面访问的各类解决方案中。
然而SPICE协议目前还存着很多不足,这也是导致在某些场景下它无法提供最优远程桌面访问体验的原因。这些问题的原因除了有SPICE协议本身的设计模式(如使用固定的视频压缩比导致低带宽网络场景下无法提供流程视频体验),更重要的原因则在于SPICE协议在传输层仍然使用了传统TCP协议。以在广域网场景为例,由于网络环境往往不太稳定,存在着较大的丢包率和时延,如果要进行观看高清视频、参加视频会议等一些对带宽、时延要求较高的操作,就会因为TCP协议在广域网场景中的劣势最终导致基于SPICE协议的应用层产生较差的观看体验(例如卡顿)。另外,由于移动端设备经常会经历不同网络的切换(如Wi-Fi和蜂窝网络),基于TCP协议的连接在出现这类网络切换时会出现中断,只有在重新创建新的TCP连接后才能继续进行操作,这会极大影响用户的远程访问体验。
为了解决上述传统TCP协议带来的问题,业界又提出了QUIC(Quick UDP InternetConnections,快速用户数据报网络连接)协议,旨在提高网络连接的速度和可靠性,以取代当前互联网基础设施中广泛使用的TCP协议。相比TCP协议,QUIC协议的优势主要有以下四个方面:1)基于UDP,并实现了多路复用、快速建连、精准的链路时延计算等特点,解决了TCP协议中存在的消息队列头部阻塞、时延计算不精确等问题,同时由于使用了UDP又具有较好的弱网性能在网络延迟大、丢包严重的网络环境下仍可提供尚佳的服务;2)在应用层支持灵活调整拥塞控制算法类型或参数,相比于算法内嵌在操作系统和内核中的TCP协议,QUIC具有拥塞控制算法可插拔这一灵活性,在TCP协议优化遇到瓶颈的业务中能够展现更好的性能;3)具备连接迁移功能,一个TCP连接是由一对四元组定义的,而一个QUIC连接则是由对应的连接标识即连接ID定义。因此当底层四元组变化时,TCP必须重新握手建连,而QUIC连接ID并不会改变,因此仍然能让当前连接继续保持,从而避免了再次握手,减少了握手时间的损耗。这一特性在移动端场景中已被证实非常有用;4)具备多路径功能。多路径QUIC是一项基于QUIC路经验证、同时类似于QUIC连接迁移的衍生技术。在保证路径合法性的基础上,它可以让一个QUIC连接同时利用多条链路来进行数据传输,从而最大化可用带宽的利用率,也提高了连接的容错能力(其中一条链路出现故障不会影响传输)。虽然TCP也支持多路径功能,但多路径QUIC能够利用QUIC的自带优势,并且在路径分配上还能无缝使用多路径TCP中许多优秀多路径选择算法。
目前已有基于SPICE协议的移动端远程桌面访问技术,该技术主要涉及到Guest端以及支持SPICE协议的客户端和服务端,然而该技术未考虑移动端远程访问场景下的一些特有问题。目前的SPICE协议主要针对PC端对远程桌面进行访问,这种场景下网络类型往往是稳定的(比如使用WIFI或线网访问)。而移动端场景下则存在两个特有的问题:
1)移动端设备的位置往往是动态变化的,无法保证能一直使用稳定的WIFI或移动网络,换句话说有可能会碰到丢包率、时延均很高的弱网情况,这种情况下SPICE底层使用的TCP协议由于其可靠性传输设计和拥塞控制等机制会严重影响弱网场景下的用户体验;
2)移动设备经常会发生网络切换的现象(例如WIFI与移动通信运营商的4G、5G网络之间来回切换),对于TCP来说网络切换后需要重建TCP连接,这会造成额外的建连开销,影响远程桌面的访问体验。
发明内容
有鉴于此,本发明提供一种远程桌面访问方法、装置和设备,用于解决远程桌面客户端在网络切换或弱网环境下使用效果不佳的技术问题。
基于本发明实施例的一方面,本发明提供了一种远程桌面访问方法,该方法包括:
远程桌面服务端接收到远程桌面客户端发送的远程桌面协议会话建立请求后,在与远程桌面客户端建立应用层远程桌面协议会话时,调用基于数据报的传输层协议建立与远程桌面客户端的网络连接;
当远程桌面服务端检测到来自远程桌面客户端的传输层报文的IP地址和/或端口发生变化时,在传输层进行连接迁移。
进一步地,在所述调用基于数据报的传输层协议建立与远程桌面客户端的网络连接的步骤之前,还包括:
判断两端是否使能基于数据报的传输层协议功能,若使能基于数据报的传输层协议功能,则调用基于数据报的传输层协议建立与远程桌面客户端的网络连接;若未使能基于数据报的传输层协议功能,则调用TCP协议建立与远程桌面客户端的网络连接;
在调用TCP协议建立与远程桌面客户端的网络连接情况下,在检测到远程桌面客户端切换网络时,重建TCP协议会话以恢复连接。
进一步地,所述进行连接迁移的方法为:
当远程桌面服务端检测到远程桌面客户端发送的同一连接标识的数据报报文的源IP地址和/或源端口发生变化时,向远程桌面客户端发送携带第一随机值的路径挑战报文以验证新路径的有效性;
当远程桌面服务端接收到远程桌面客户端发送的路径挑战响应报文后,验证报文中携带的随机值与本地的第一随机值的一致性,在验证一致的情况下,确认连接迁移成功,在新路径上继续进行数据传输。
进一步地,在远程桌面客户端所在移动终端同时开启运营商移动数据网络和本地短距离无线网络的情况下,远程桌面服务端使用两个网络通道同时与远程桌面客户端交互远程桌面数据。
进一步地,所述远程桌面协议为独立计算环境简单协议即SPICE协议,所述基于数据报的传输层协议为QUIC协议。
基于本发明实施例的另一方面,本发明还提供一种远程桌面访问装置,该装置应用于远程桌面服务端所在的设备,该装置包括:
远程桌面协议模块,用于在接收到远程桌面客户端发送的远程桌面协议会话建立请求后,在与远程桌面客户端建立应用层远程桌面协议会话时,调用传输层协议模块建立与远程桌面客户端的网络连接;
传输层协议模块,用于基于数据报的传输层协议建立与远程桌面客户端的网络连接;以及当检测到来自远程桌面客户端的传输层报文的IP地址和/或端口发生变化时,在传输层进行连接迁移。
进一步地,所述装置还包括:
使能判断模块,用于判断两端是否使能基于数据报的传输层协议功能,若使能基于数据报的传输层协议功能,则调用传输层协议模块建立与远程桌面客户端的网络连接;否则调用TCP协议模块建立与远程桌面客户端的网络连接;
TCP协议模块,用于采用TCP协议建立与远程桌面客户端的网络连接;以及当检测到远程桌面客户端切换网络时,重建TCP协议会话以恢复网络连接。
进一步地,所述传输层协议模块还用于当检测到远程桌面客户端发送的同一连接标识的数据报报文的源IP地址和/或源端口发生变化时,向远程桌面客户端发送携带第一随机值的路径挑战报文以验证新路径的有效性;以及当接收到远程桌面客户端发送的路径挑战响应报文后,验证报文中携带的随机值与本地的第一随机值的一致性,在验证一致的情况下,确认连接迁移成功,在新路径上继续进行数据传输。
进一步地,所述传输层协议模块还用于在远程桌面客户端所在移动终端同时开启运营商移动数据网络和本地短距离无线网络的情况下,使用两个网络通道同时与远程桌面客户端交互远程桌面数据。
本发明为应用层的远程桌面协议提供基于数据报的传输层协议支持,在移动终端使用远程桌面客户端的场景下,使用基于数据报的传输层协议建立网络连接,能够解决采用TCP协议作为传输层协议情况下的消息队列头部阻塞、报文往返时间估计不准确、拥塞控制算法无法灵活切换、不同网络切换不得不重新建连等技术问题。此外,利用基于数据报的传输层协议的连接迁移功能,能够提升移动端在网络变化频繁时访问远程桌面的用户体验。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
图1为本发明一实施例提供的实现多协议远程桌面访问的两端框架结构示意图;
图2为本发明一具体实施例提供的远程桌面访问方法的流程示意图;
图3为本发明一实施例提供的用于实现本发明提供的远程桌面访问方法的电子设备结构示意图。
具体实施方式
在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。尽管在本发明实施例可能采用如第一、第二、第三的方式来描述,但这种描述方式仅用于区别类似的信息、实体或步骤,而不是用于描述特定的顺序或先后次序。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。再例如,有些场景下,第一信息可以指一个信息,也可以指同一类的多个信息。此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本发明的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本发明的发明目的旨在提供一种远程桌面访问方案,以改善位于移动终端的远程桌面客户端在网络发生切换或弱网环境下的使用体验。本发明使用基于用户数据报的传输层协议(例如QUIC协议)作为应用层远程桌面协议(例如SPICE协议)的底层传输协议之一,利用基于用户数据报的传输层协议快速连接迁移等特性,改善远程桌面在网络变化频繁或弱网情况下的用户体验。
以下结合附图及具体实施例详细说明本发明的具体实现过程,需要说明的是,在附图和实施例的流程中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明一实施例提供的实现多协议远程桌面访问的两端框架结构示意图。发起远程桌面请求的一端为客户端Client,提供远程桌面的一端为服务端。
图1的示例中,远程桌面连接采用SPIC协议,虽然本发明实施例都以SPIC协议为例进行描述,但本发明提供的技术方案也同样适用于其它可作为应用层远程桌面协议的协议,例如HTTP、RTP(Real-time Transport Protocol,实时传输协议)、RTMP(Real TimeMessaging Protocol,实时传输信息协议)等。同理,传输层的QUIC协议也可等同替换为类似的基于UDP的协议类型。
远程桌面客户端(SPICE Client)运行在用户的移动端设备上,用户可通过客户端看到远程提供的桌面环境。远程桌面服务端(SPIC Server)的一侧与虚拟机进行对接(例如通过libspice.so动态链接库),另一侧基于SPICE协议与客户端进行交互通信。位于虚拟机的Guest端主要由QEMU虚拟显卡驱动程序即QXL驱动、QXL设备、运行其上的操作系统OS组成。QXL驱动部署在提供虚拟桌面服务的虚拟机中,上层应用和操作系统产生的图像更新命令会被发送至QXL驱动中,并进一步被转化为QXL设备绘图命令。QXL设备嵌入在QEMU中用于提高远程桌面的传输性能和图形处理能力,QXL驱动产生的图形设备命令会被放入到QXL设备的命令环中等待处理
采用SPICE协议技术的远程桌面系统中,当某应用程序产生图形更新时,其会向Guest端操作系统中的图像引擎发送图形更新命令,图像引擎会调用QXL驱动将图形更新命令转换为QXL绘图命令,一旦转化完毕后这些命令会被推送到QXL设备的图形命令发送队列(命令环)中,libspice动态链接库会从该队列中获取绘图命令并添加至位于SPICE服务端的命令树中(命令树主要负责对QXL命令进行组织优化,除图形外命令树也会侦测视频流命令);经过命令树优化后的部分QXL绘图命令会被放置到libspice动态链接库所维护的发送队列中,而部分QXL绘图命令则会被选择性地丢弃以优化指令传递。最终需要被发送的QXL绘图命令会被转化为SPICE格式的消息,并发往SPICE客户端,当SPICE客户端收到并进行渲染后,便会向用户呈现出更新后的远程桌面。
SPICE客户端架构主要由两个模块组成,一个是用高级语言(例如C语言)开发的SPICE协议处理模块,一个是Java语言开发的用户交互模块。SPICE协议通常被用于PC平台如Windows和Linux操作系统,移动终端侧可基于Linux内核开发,可对Linux版的SPICE协议进行修改来作为SPICE协议处理模块。在适配过程中需要对原本运行在Linux操作系统中的部分模块(如iconv,glib,openssl等)进行交叉编译,然后基于编译后的目标文件,使用原生开发工具(Native Development Kit,NDK)编译出名为libspice.so的SPICE动态库来供用户交互模块调用。
本发明为远程桌面服务端和客户端提供基于用户数据报的传输层协议(例如QUIC协议)作为远程桌面协议的下层传输层协议,分别针对客户端和服务端进行优化,在应用层远程桌面协议(例如SPICE协议)动态链接库中新增基于用户数据报的传输层协议的支持,例如新增具备连接迁移功能的QUIC协议模块作为与TCP协议平级的传输层协议,通过QUIC协议传输远程桌面数据,从而利用基于用户数据报的传输层协议优势改善在网络切换或弱网情况下的用户体验。
图2为本发明一具体实施例提供的远程桌面访问方法的流程示意图。该方法包括:
步骤201.远程桌面服务端接收到远程桌面客户端发送的远程桌面协议会话建立请求后,在与远程桌面客户端建立应用层远程桌面协议会话时,调用基于数据报的传输层协议建立与远程桌面客户端的网络连接;
本发明一实施例中,将SPICE协议处理模块所使用的TCP协议替换为QUIC协议,使其在传输层依赖QUIC静态库提供的接口进行网络连接的建立和数据收/发。通过编译提供外部接口的QUIC模块使其产生静态库,然后将SPICE协议处理模块的传输层接口替换为QUIC模块提供的接口,使其在传输层可通过QUIC静态库提供的接口进行网络连接的建立和数据收/发。
SPICE客户端向SPICE服务端发起连接会话时,该会话的建立会由SPICE协议中的主通道负责。在SPICE协议层面会话建立完成前,客户端和服务端之间也会首先建立一个QUIC连接,来承载后续主通道中秘钥验证相关报文。若当前是初次建立QUIC连接,则需要1个报文往返时间(1-RTT)。若两个终端之前已经建立过QUIC连接,则此次在建立连接过程的同时可直接发送数据,即建连无需耗时(0-RTT)。当SPICE客户端与SPICE服务端链路及安全检测结果均正常,则说明SPICE协议会话连接建立成功。
在本发明实施例中,考虑到兼容性,可为服务端和客户端同时提供TCP协议和QUIC协议支持,允许用户选择使用QUIC或TCP协议作为远程桌面协议SPIC的传输层协议,可为用户提供QUIC协议使能开关,当远程桌面服务端和客户端都使能QUIC协议功能时,远程桌面协议可采用QUIC协议建立连接,当用户未使能QUIC协议功能时,远程桌面协议可采用TCP协议建立连接。
在移动端所使用的网络类型(假设某一时刻使用的是WIFI)稳定的情况下,应用程序产生的桌面图形更新会经过QXL驱动、QXL设备和SPICE服务端中libspice动态链接库维护的发送队列,已建立的QUIC连接会对SPICE服务端发送队列中的QXL命令进行加密,然后发送至SPICE客户端,SPICE客户端在收到加密后的QUIC报文后,同样会基于QUIC协议对这些报文进行解密,最终呈现出更新后的图像。
步骤202.当远程桌面服务端检测到来自远程桌面客户端的传输层报文的IP地址和/或端口发生变化时,在传输层进行连接迁移;
在远程桌面客户端所在的移动端所使用的网络发生切换时(例如,用户从室内移动到室外,从WIFI网络切换成4G网络等),由于网络的切换,导致终端发送的传输层报文的四元组(源IP地址,源端口,目的IP地址,目的端口)发生变化,这种情况下如果使用的TCP协议,则原来建立的TCP连接无法再被使用,需要再次建立新的TCP连接。如果使用的是QUIC连接,则无需重新建立连接,因为QUIC连接依赖的是连接标识ID,当SPICE服务端检测到来自SPICE客户端的QUIC报文的源IP地址和/或源端口发生变化,即可基于连接ID进行QUIC连接迁移,而无需重建连接。
以下对QUIC连接迁移过程进行详细描述:
步骤2021.当远程桌面服务端检测到远程桌面客户端发送的具有同一连接标识的数据报报文的源IP地址和/或端口发生变化时,向远程桌面客户端发送携带第一随机值的路径挑战报文以验证新路径的有效性;
当远程桌面服务端通过与已接收到的QUIC报文IP地址和/或端口号的比对,检测到远程桌面客户端发送的具有同一连接标识ID的QUIC报文的源IP地址和/或端口号发生变化时,服务端的QUIC模块发送包含PATH_CHALLENGE帧的QUIC路径挑战报文给已经切换过网络的客户端QUIC模块,PATH_CHALLENGE帧包含一个不可预测的随机值。
步骤2022.远程桌面客户端在接收到路径挑战报文后,返回携带所述第一随机值的路径挑战响应报文;
远程桌面客户端QUIC模块收到包含PATH_CHALLENGE帧的QUIC路径挑战报文后,向远程桌面服务端QUIC模块回复包含PATH_RESPONSE帧的QUIC路径挑战响应报文,在PATH_RESPONSE帧中携带QUIC路径挑战报文中PATH_CHALLENGE帧携带的第一随机值。
步骤2023.远程桌面服务端接收远程桌面客户端发送的路径挑战响应报文后,验证报文中携带的随机值与本地的第一随机值的一致性,在验证一致的情况下,确认连接迁移成功,在新路径上继续进行数据传输;
远程桌面服务端QUIC模块收到来自远程桌面客户端QUIC模块发送的携带PATH_RESPONSE帧的响应报文后,如果经验证PATH_RESPONSE帧中携带的随机值与自己发送给客户端的第一随机值一致,则可确认经历网络(地址)变化的客户端QUIC模块至服务端QUIC模块的新路径验证成功,两端便可继续在切换后的新路径上进行数据传输。
在本发明一实施例中,在连接迁移成功后,为了避免在网络切换频繁的场景下两端频繁发送QUIC路径挑战报文和响应报文进行两端验证的过程,还包括执行如下步骤:
步骤2024.远程桌面服务端将客户端变化后的IP地址和/或端口号保存在本地,在远程桌面客户端再次从别的网络切换到所保存的IP地址和/或端口号对应的网络时,针对同一连接标识,无需再次进行连接迁移验证过程,直接在新路径上进行数据传输。
新路径验证成功后,服务端QUIC模块会将客户端QUIC模块的新地址(包括IP地址和/或端口号)保存在本地。若下次远程桌面客户端再次从其它网络切换到当前保存的IP地址和/或端口对应的网络时,服务端QUIC模块便无需再进行前述的连接迁移验证过程,可直接在对应的路径上进行数据传输。
在本发明一实施例中,在远程桌面客户端所在移动终端同时开启运营商移动数据网络和本地短距离无线网络(例如WIFI网络),并且两个网络通道与远程桌面服务端都可达的情况下,QUIC协议模块通过两个网络通道分别建立与远程桌面服务端的网络连接,利用两个网络通道同时利用移动数据网络和本地短距离无线网络传输远程桌面数据,从而增加远程桌面客户端与服务端之间的通信带宽,提高发送效率,通过此方式也可提高在信号不稳定、信号较弱或信号干扰较强等弱网情况下的远程桌面的使用体验。
图3为本发明一实施例提供的用于实现本发明提供的远程桌面访问方法的电子设备结构示意图,该设备300包括:诸如中央处理单元(CPU)的处理器310、通信总线320、通信接口340以及存储器330。其中,处理器310与存储器330可以通过通信总线320相互通信。存储器330内存储有计算机程序,当该计算机程序被处理器310执行时即可实现本发明提供的远程桌面访问方法中的一个或多个步骤的功能。
存储器是指基于某种存储介质用于存储计算机程序和/或数据的装置,它可以是易失性存储器(Volatile Memory,VM,常称为内存),也可以是非易失性存储器(Non-Volatile Memory,NVM)。内存是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作系统和其它运行程序的临时数据的存储介质。内存可以是同步动态随机存取内存(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机存取内存(Dynamic Random Access Memory,DRAM)等。非易失性存储器是指采用持久化存储介质的存储器,具有容量大和可持久保存数据的特性,可以是存储级存储器(StorageClass Memory,SCM)、固态硬盘(Solid State Disk,SSD)、NAND闪存、磁盘等。SCM是业界对介于内存与闪存之间的新存储介质的统称,是一种同时结合持久化存储特性与内存特性的复合型储存技术,存取速度慢于DRAM快于SSD硬盘。
处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性(或称为非持久性)存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种远程桌面访问方法,其特征在于,该方法包括:
远程桌面服务端接收到远程桌面客户端发送的远程桌面协议会话建立请求后,在与远程桌面客户端建立应用层远程桌面协议会话时,调用基于数据报的传输层协议建立与远程桌面客户端的网络连接;
当远程桌面服务端检测到来自远程桌面客户端的传输层报文的IP地址和/或端口发生变化时,在传输层进行连接迁移。
2.根据权利要求1所述的方法,其特征在于,在所述调用基于数据报的传输层协议建立与远程桌面客户端的网络连接的步骤之前,还包括:
判断两端是否使能基于数据报的传输层协议功能,若使能基于数据报的传输层协议功能,则调用基于数据报的传输层协议建立与远程桌面客户端的网络连接;若未使能基于数据报的传输层协议功能,则调用TCP协议建立与远程桌面客户端的网络连接;
在调用TCP协议建立与远程桌面客户端的网络连接情况下,在检测到远程桌面客户端切换网络时,重建TCP协议会话以恢复连接。
3.根据权利要求1所述的方法,其特征在于,所述进行连接迁移的方法为:
当远程桌面服务端检测到远程桌面客户端发送的同一连接标识的数据报报文的源IP地址和/或源端口发生变化时,向远程桌面客户端发送携带第一随机值的路径挑战报文以验证新路径的有效性;
当远程桌面服务端接收到远程桌面客户端发送的路径挑战响应报文后,验证报文中携带的随机值与本地的第一随机值的一致性,在验证一致的情况下,确认连接迁移成功,在新路径上继续进行数据传输。
4.根据权利要求1所述的方法,其特征在于,
在远程桌面客户端所在移动终端同时开启运营商移动数据网络和本地短距离无线网络的情况下,远程桌面服务端使用两个网络通道同时与远程桌面客户端交互远程桌面数据。
5.根据权利要求1所述的方法,其特征在于,
所述远程桌面协议为独立计算环境简单协议即SPICE协议,所述基于数据报的传输层协议为QUIC协议。
6.一种远程桌面访问装置,其特征在于,该装置应用于远程桌面服务端所在的设备,该装置包括:
远程桌面协议模块,用于在接收到远程桌面客户端发送的远程桌面协议会话建立请求后,在与远程桌面客户端建立应用层远程桌面协议会话时,调用传输层协议模块建立与远程桌面客户端的网络连接;
传输层协议模块,用于基于数据报的传输层协议建立与远程桌面客户端的网络连接;以及当检测到来自远程桌面客户端的传输层报文的IP地址和/或端口发生变化时,在传输层进行连接迁移。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
使能判断模块,用于判断两端是否使能基于数据报的传输层协议功能,若使能基于数据报的传输层协议功能,则调用传输层协议模块建立与远程桌面客户端的网络连接;否则调用TCP协议模块建立与远程桌面客户端的网络连接;
TCP协议模块,用于采用TCP协议建立与远程桌面客户端的网络连接;以及当检测到远程桌面客户端切换网络时,重建TCP协议会话以恢复网络连接。
8.根据权利要求6所述的装置,其特征在于,
所述传输层协议模块还用于当检测到远程桌面客户端发送的同一连接标识的数据报报文的源IP地址和/或源端口发生变化时,向远程桌面客户端发送携带第一随机值的路径挑战报文以验证新路径的有效性;以及当接收到远程桌面客户端发送的路径挑战响应报文后,验证报文中携带的随机值与本地的第一随机值的一致性,在验证一致的情况下,确认连接迁移成功,在新路径上继续进行数据传输。
9.根据权利要求6所述的装置,其特征在于,
所述传输层协议模块还用于在远程桌面客户端所在移动终端同时开启运营商移动数据网络和本地短距离无线网络的情况下,使用两个网络通道同时与远程桌面客户端交互远程桌面数据。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
存储介质,用于存放计算机程序;
处理器,用于执行存储介质上所存放的计算机程序时,实施权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410364645.7A CN118118481A (zh) | 2024-03-28 | 2024-03-28 | 远程桌面访问方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410364645.7A CN118118481A (zh) | 2024-03-28 | 2024-03-28 | 远程桌面访问方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118118481A true CN118118481A (zh) | 2024-05-31 |
Family
ID=91217993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410364645.7A Pending CN118118481A (zh) | 2024-03-28 | 2024-03-28 | 远程桌面访问方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118118481A (zh) |
-
2024
- 2024-03-28 CN CN202410364645.7A patent/CN118118481A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915983B2 (en) | System for distributed virtualization of GPUs in desktop cloud | |
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
US20200169621A1 (en) | Adaptive session reliability over multiple transports | |
Simoens et al. | Remote display solutions for mobile cloud computing | |
US10547657B2 (en) | System and method for video gathering and processing | |
KR20210030073A (ko) | 엣지 컴퓨팅 서비스를 위한 방법 및 장치 | |
US10389832B2 (en) | Remote casting of media content | |
JP2010508734A (ja) | リモートインターラクションに応答してビデオコンテンツを配信するためのアーキテクチャー | |
US8504694B2 (en) | Remote content classification and transmission using multiple transport channels | |
US20080267067A1 (en) | Controlling the flow of data updates between a receiving station and a sending station | |
WO2015100681A1 (zh) | Gpu虚拟化的实现方法及相关装置和系统 | |
WO2013034103A1 (zh) | 一种无线网络及其实现方法、终端 | |
US20170346792A1 (en) | System and method for kernel level video operations | |
US8521837B2 (en) | Three-dimensional earth-formation visualization | |
US20240098142A1 (en) | Migration of remote data processing between servers | |
US9875076B1 (en) | Remoting client having GPU off-loader | |
KR101480140B1 (ko) | 멀티 인젝션 서버 및 그 방법 | |
CN118118481A (zh) | 远程桌面访问方法、装置和设备 | |
CN116325688A (zh) | 用于测量和监测上行链路流式传输的度量 | |
CN116888650A (zh) | 将动态5g ar/mr体验流式传输到具有可更新场景的5g设备的方法 | |
US10306021B1 (en) | Streaming content to multiple clients | |
KR20170088232A (ko) | 웹기반 브이디아이의 랜더링 성능 향상을 제공하는 그래픽 처리시스템 | |
US20210154576A1 (en) | Vector graphics-based live streaming of video games | |
Baig et al. | Virtual Network Computing Based Remote Desktop Access | |
KR102570284B1 (ko) | 화면 제공을 위한 서비스 서버 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |