一种云游戏终端的加速方法及其装置与流程

文档序号:31712374发布日期:2022-10-04 20:02阅读:120来源:国知局
1.本技术涉及计算机
技术领域
:,尤其涉及一种云游戏终端的加速方法及其装置。
背景技术
::2.云游戏是指游戏基于云端运行,并将渲染完毕后的游戏画面压缩编码后,通过网络以音视频流方式传输到终端;终端侧通过对音视频进行解码播放,并通过将操控指令上传到云端形成游戏互动的过程。3.针对云游戏应用的场景,如何对数据进行加速,为用户提供质量较好和低延时的视听体验和交互体验是亟需解决的问题。技术实现要素:4.本技术提供了一种云游戏终端的加速方法及其装置,其技术目的是加速客户端自动选择最快的代理服务器作为当前的转发节点,保障云游戏体验过程中的视频和音频数据能够快速、稳定地传输至终端,提高用户云游戏的视听体验。5.本技术的上述技术目的是通过以下技术方案得以实现的:6.一种云游戏终端的加速方法,包括:7.在云游戏客户端安装lsp加速客户端;8.所述云游戏客户端试图连接云游戏服务器时,所述lsp加速客户端将所述云游戏客户端重定向至代理服务器;9.所述lsp加速客户端通过socks5协议与所述代理服务器进行数据协商,通过所述代理服务器连接云游戏服务器;10.其中,所述lsp加速客户端将所述云游戏客户端重定向至代理服务器,包括:通过所述lsp加速客户端选择一个速度最快的代理服务器,然后将所述云游戏客户端重定向至代理服务器。11.进一步地,所述lsp加速客户端通过socks5协议与所述代理服务器进行数据协商,通过所述代理服务器连接云游戏服务器,包括:12.所述lsp加速客户端通过socks5协议将鉴权信息通知给所述代理服务器,并通知所述代理服务器所述云游戏客户端需要连接的云游戏服务器的地址;13.所述lsp加速客户端与所述代理服务器协商完毕后,所述云游戏客户端通过所述代理服务器与所述云游戏服务器进行交互。14.进一步地,所述云游戏客户端通过connect函数或wsaconnect函数试图连接所述云游戏服务器。15.一种云游戏终端的加速装置,包括云游戏客户端、代理服务器和云游戏服务器,所述代理服务器与所述云游戏客户端和所述云游戏服务器均连接;16.所述云游戏客户端包括lsp加速客户端,所述lsp加速客户端包括互相连接的socks5数据协商模块和lsp协议动态库模块,所述socks5数据协商模块与所述代理服务器连接,所述lsp协议动态库模块与所述云游戏客户端连接。17.进一步地,所述lsp协议动态库模块包括socket函数,所述socket函数包括connect函数、wsaconnect函数、send函数和recv函数。18.本技术的有益效果在于:本技术所述的云游戏终端的加速方法及其装置,通过安装在云游戏客户端的lsp加速客户端自动选择速度最快的代理服务器进行数据转发,以达到数据加速作用。同时能够有效减少网络丢包和网络延迟,特别是针对云游戏场景,能够为用户提供几乎最好的质量和最低延时的视听体验和交互体验。附图说明19.图1为本技术所述加速装置的结构示意图;20.图2为本技术具体实施例中通过lsp进行加速的流程图;21.图3为socks5数据协商流程图;22.图4为lsp协议劫持注入dll的安装流程图。具体实施方式23.下面将结合附图对本技术技术方案进行详细说明。24.如图1所示,本技术所述加速装置包括云游戏客户端、代理服务器和云游戏服务器,所述代理服务器与所述云游戏客户端和所述云游戏服务器均连接。25.所述云游戏客户端包括lsp加速客户端,所述lsp加速客户端包括互相连接的socks5数据协商模块和lsp协议动态库模块,所述socks5数据协商模块与所述代理服务器连接,所述lsp协议动态库模块与所述云游戏客户端连接。26.作为具体实施例地,通过lsp进行加速的流程如图2所示,首先在lsp协议动态库模块中导出wspstartup函数,并调用getprovider在winsock目录中查找原协议服务提供者,遍历所有协议,找到下层提供者协议,取得下层提供者的dll路,调用getprocaddress取出下层提供者的wspstartup函数,复制下层提供者(基础协议)的整个函数表,将基础协议的lpwspconnect函数指针,指向自定义的wspconnect函数,用于应用程序调用connect或wspconnect函数试图进行tcp连接时,将会先进入lspdll中定义的wspconnect函数,然后判断应用程序试图连接的服务器ip和端口是不是待加速的服务器,若是则执行到socks5proxy函数与代理服务器连接,并进行代理协商,否则执行g_nextproctable中原有的连接函数,流程与未安装lsp协议前一致。27.lsp协议动态库模块用于:编写lsp协议并安装到现有协议之上,并导出wspstartup函数,当有应用程序创建套接字时,会自动执行到该函数。在wspstartup函数中,参数信息指明了应用程序期望采用哪种协议来创建套接字(所有的协议存在于一个协议链中,该协议链也包括安装的lsp协议),在该函数中加载下层协议,并调用下层协议提供者的wspstartup函数初始化,同时修改传递给上层的函数表,将需要hook的winsock2函数指针的地址指向自定义的函数。28.lsp协议的生效,首先需要将lsp协议安装到云游戏客户端,只有安装了自定义的lsp协议,应用程序在调用ws2_32.dll中的函数时就会执行到我们的lsp的dll中,如图4所示。安装lsp协议首先需要安装协议链,通过将下层协议的信息拷贝过来,修改成本技术需要的协议,并进行安装;然后对协议链进行排序,将自定义的协议放在协议链的最上层,以保证ws2_32.dll调用到的第一个协议是自定义的协议。29.socks5数据协商模块用于:通过lsp技术hook到相应的套接字函数进行数据转发之前,需要进行socks5代理协商,即将鉴权信息通知给代理服务器,并告知代理服务器云游戏客户端需要连接的实际云游戏服务器的地址,代理协商完成后才能进行数据的收发。本技术在hook到connect函数后直接在内部进行阻塞式的代理协商,直到协商完毕后才将connect函数返回给用户,此时云游戏客户端拿到的socket实际上是连接到代理服务器的socket,当云游戏客户端应用程序通过这个socket收发数据时,实际上是在和代理服务器交互,而这一过程对应用程序来说是透明的,应用程序以为是直接在和云游戏服务器进行通信。30.本技术所述的云游戏终端的加速方法,包括:31.s1:在云游戏客户端安装lsp加速客户端。32.具体地,编写自定义的lsp协议动态库,重新实现需要的相关socket函数,主要包括connect、send、recv等函数。在用户的主机安装自定义的lsp协议,这一操作可在部署云游戏客户端程序时完成。33.s2:所述云游戏客户端试图连接云游戏服务器时,所述lsp加速客户端将所述云游戏客户端重定向至代理服务器。通过所述lsp加速客户端选择一个速度最快的代理服务器,然后将所述云游戏客户端重定向至代理服务器。34.具体地,当云游戏客户端调用connect函数(或wsaconnect函数)试图连接云游戏服务器时,通过lsp将连接重定向到代理服务器,并采用socks5协议规范与代理服务器进行数据协商,由代理服务器来连接真正的云游戏服务器。代理服务器将云游戏服务器的数据原封不动转发给用户、同时将用户的数据原封不动转发给云游戏服务器。35.s3:所述lsp加速客户端通过socks5协议与所述代理服务器进行数据协商,如图3所示,通过所述代理服务器连接云游戏服务器,包括:36.所述lsp加速客户端通过socks5协议将鉴权信息通知给所述代理服务器,并通知所述代理服务器所述云游戏客户端需要连接的云游戏服务器的地址;37.所述lsp加速客户端与所述代理服务器协商完毕后,所述云游戏客户端通过所述代理服务器与所述云游戏服务器进行交互。38.具体地,支持socks5协议的客户端开发,实现与代理服务器的数据协商。经过认证与命令过程后,云游戏客户端与代理服务器进入正常通信,云游戏客户端发送需要请求到云游戏服务器的数据给代理服务器,代理服务器转发这些数据,并把云游戏服务器的响应转发给云游戏客户端。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1