CN114143387B - 基于quic的应用层通讯方法、装置、存储介质 - Google Patents
基于quic的应用层通讯方法、装置、存储介质 Download PDFInfo
- Publication number
- CN114143387B CN114143387B CN202111358512.1A CN202111358512A CN114143387B CN 114143387 B CN114143387 B CN 114143387B CN 202111358512 A CN202111358512 A CN 202111358512A CN 114143387 B CN114143387 B CN 114143387B
- Authority
- CN
- China
- Prior art keywords
- mode
- session
- request
- data
- transmission
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims abstract description 171
- 230000004044 response Effects 0.000 claims abstract description 72
- 230000006835 compression Effects 0.000 claims description 70
- 238000007906 compression Methods 0.000 claims description 70
- 230000006837 decompression Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 description 16
- 230000000694 effects Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000002955 isolation Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本申请涉及通信的技术领域,尤其是涉及基于QUIC的应用层通讯方法、装置、存储介质。该方法包括:请求端发送会话建立请求,与响应端建立通讯连接对象;请求端通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;请求端通过会话对象调用对应的会话模式进行数据帧传输;根据请求端的不同请求,由会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式。本申请解决现有应用层协议不能满足游戏服务架构中关于数据传输速率以及可靠性并存的技术问题。
Description
技术领域
本申请涉及通信的技术领域,尤其是涉及基于QUIC的应用层通讯方法、装置、存储介质。
背景技术
现如今的网络环境越来越复杂,TCP在设计之初没有考虑到现今复杂的网络环境。因TCP自身特性原因,在弱网条件下网络传输效率很差,谷歌推出一种基于UDP传输的协议QUIC。QUIC(Quick UDP Internet Connection)是一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。
在游戏服务架构内包括有设备以及路由集群,设备可以为客户端、服务器等,设备之间通过路由集群进行通讯。在游戏服务架构中,进行信息交互时,对于数据传输的效率以及数据传输的可靠性均有要求,现在游戏服务架构主流的应用层协议大部分是基于TCP作为底层传输协议开发,而采用TCP作为底层传输协议的应用层协议在进行信息交互时容易发生阻塞现象,不能满足游戏服务架构对于数据传输效率以及可靠性并存的要求。
发明内容
为此,本申请的实施例提供了一种基于QUIC的应用层通讯方法、装置、存储介质,能够解决现有应用层协议不能满足游戏服务架构中关于数据传输速率以及可靠性并存的技术问题,具体技术方案内容如下:
第一方面,本申请的实施例提供一种基于QUIC的应用层通讯方法,所述方法包括:
请求端发送会话建立请求,与响应端建立通讯连接对象;
请求端通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
请求端通过会话对象调用对应的会话模式进行数据帧传输;
根据请求端的不同请求,由会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式。
通过采用上述技术方案,由建立通讯连接对象以形成稳定的通讯通道,实现可靠性传输;在请求端与响应端建立会话对象,并由会话对象切换会话模式,实现多流传输模式以及单流传输模式并存的传输方式,多流传输模式可以实现并行传输的效果,单流模式可实现数据传输的有序性,本方案实现大数据流传输效率以可靠性传输均衡的效果。
优选的,请求端与响应端之间通过会话对象构建对应会话对象的自定义协议。
提高采用上述技术方案,请求端与响应端之间通过会话对象构建当前会话对象的自定义协议,使该会话对象有其独特的指令集,以实现会话隔离的效果。
优选的,自定义协议包括压缩算法协议,所述数据帧设有压缩标识位;在接收到数据帧时,校验数据帧的压缩标识位,若数据帧的压缩标识位表明该数据帧已被压缩,根据压缩算法协议执行解压逻辑。
通过采用上述技术方案,请求端以及响应端可以根据请求的资源来自定义压缩算法协议,提高数据的传输效率的同时,使会话对象中传输的数据不易被截获,因此在提高传输效率的同时也提高会话对象传输数据的可靠性,进而满足游戏服务架构对于大数据流传输效率以及可靠性传输的需求,且实现会话隔离;而数据帧头部设置压缩标识位,用以标识数据帧是否被压缩,便于请求端或响应端校验数据是否被压缩以及是否需要执行解压缩的操作。
优选的,压缩算法协议支持压缩数据的策略配置。
在通讯开发做压缩节约带宽,和即时性、低负载的需求是互斥的。常规通讯开发是预判需要压缩,直接在编码阶段进行。本方案中允许压缩作为配置特性,在实际使用中,可以在由负载监控数据后,再调整配置是否进行压缩,从而实现可根据负载特性进行策略配置的效果。
优选的,压缩数据的策略包括:配置数据帧大小的阈值,当数据帧的数据达到阈值后,执行压缩和/或配置指定的指令,对于指定的指令的数据进行压缩。
通过采用上述技术方案,设置数据帧大小的阈值,简化了在设备端进行判断是否进行压缩的逻辑,便于游戏开发与维护。
优选的,多流传输模式包括发后不管模式、请求响应模式、请求流模式。
通过采用上述技术方案,设置多组多流传输模式,以适配游戏服务架构中不同的业务请求,实现可靠传输与不可靠传输并存。
优选的,所述单流传输模式具体为子会话模式,子会话模式基于多流传输模式的基础上限制单流传输。
通过采用上述技术方案,设置单流传输模式的交互方式与多流传输模式,仅由底层的传输方式区分单流传输模式以及多流传输模式,在应用层进行多流传输模式的交互指令也适用于单流传输模式,只需调用不同的API即可区分两种模式。
第二方面,本申请的实施例提供一种基于QUIC的应用层通讯装置,所述装置包括:
连接建立模块,用于响应会话建立请求,于请求端与响应端之间建立通讯连接对象;
会话对象建立模块,用于通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
传输模块,用于通过会话对象调用对应的会话模式进行数据帧传输;
会话模式切换模块,用于根据不同请求,会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式。
第三方面,本申请的实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任意一项所述的基于QUIC的应用层通讯方法的步骤。
第四方面,本申请的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项所述的基于QUIC的应用层通讯方法的步骤。
综上所述,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
1、通过建立通讯连接对象以形成稳定的通讯通道,实现可靠性传输;在请求端与响应端建立会话对象,并由会话对象切换会话模式,实现多流传输模式以及单流传输模式并存的传输方式,多流传输模式可以实现并行传输的效果,单流模式可实现数据传输的有序性的效果,本方案实现大数据流传输效率以可靠性传输均衡的效果;
2、请求端以及响应端可以根据请求的资源来自定义压缩算法协议,提高数据的传输效率的同时,使会话对象中传输的数据不易被截获,因此在提高传输效率的同时也提高会话对象传输数据的可靠性,进而满足游戏服务架构对于大数据流传输效率以及可靠性传输的需求,且实现会话隔离;而数据帧头部设置压缩标识位,用以标识数据帧是否被压缩,便于请求端或响应端校验数据是否被压缩以及是否需要执行解压缩的操作;
3、设置单流传输模式的交互方式与多流传输模式,仅由底层的传输方式区分单流传输模式以及多流传输模式,在应用层进行多流传输模式的交互指令也适用于单流传输模式,只需调用不同的API即可区分两种模式。
附图说明
图1是本申请其中一实施例提供的基于QUIC的应用层通讯方法的流程示意图。
图2是本申请其中一实施例提供的基于QUIC的应用层通讯方法的请求端与响应端进行交互方式示意图。
图3是本申请其中一实施例提供的基于QUIC的应用层通讯装置的结构示意图。
图4是本申请其中一实施例提供的电子设备的结构示意图。
具体实施方式
本具体实施例仅仅是对本申请的解释,其并不是对本申请的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
参照图1,在本申请的一个实施例中,提供一种基于QUIC的应用层通讯方法,所述方法的主要步骤描述如下:
S1:请求端发送会话建立请求,与响应端建立通讯连接对象;
S2:请求端通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
S3:请求端通过会话对象调用对应的会话模式进行数据帧传输;
S4:根据请求端的不同请求,由会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式。
具体的,本申请是基于QUIC传输层协议的应用层通讯方法,为适用于游戏服务架构中以简单的交互逻辑解决大数据流传输效率以及可靠性传输并存的问题的方案。
在本实施例中,请求端与响应端请求进行通讯或进行通讯,请求端表示此次发起通讯请求的节点,响应端为此次响应通讯请求的节点。并不视为限制请求端只能发起通讯请求,响应端只能响应通讯请求,且在同一通讯连接对象上的节点可同时发送请求以及响应请求。
请求端发送一次会话建立请求,基于QUIC传输层协议具备TCP、TLS、HTTPS/2等协议的安全、可靠性的特点,通过提供安全功能,如身份验证和加密,来实现加密传输,在请求端发送会话建立请求时,响应端同时对请求端进行身份验证。
在游戏服务架构中,请求端通常是请求与游戏服务架构中的固有资源进行连接,而固有资源接入游戏服务架构中时,通常已经经过安全校验,比如说将服务器接入游戏服务架构,服务器由游戏的运营方进行安全校验,成为游戏服务架构的本地固有资源;若需要与玩家端等外侧接入设备请求连接,在游戏服务架构中,也需要玩家端通过身份验证并接入游戏服务架构,通过与游戏服务架构内的设备进行连接,成为虚拟的固有资源,方可请求与玩家端建立连接。因此在游戏服务架构中只需对请求连接一方进行验证,即可快速完成校验,查看请求端是否具有获取当前请求的资源的权限等。
比如,玩家端请求与服务器建立连接,玩家端向服务器发送身份校验信息,如账号密码等,服务器根据校验结果,判断账号与密码是否匹配,是则与玩家端建立连接,玩家端接入游戏服务架构,成为游戏服务架构的虚拟的固有资源。
通过基于QUIC传输层协议,请求端与响应端之间只需通过一次会话建立请求即可与响应端建立连接,减少建立连接双方进行身份验证的过程,且满足游戏服务架构对安全性的要求。
请求端通过通讯连接对象可与响应端之间建立至少一个会话对象,即请求端与响应端之间依附于通讯连接对象可建立多个并行的会话对象,从而满足请求端与响应端之间并行实现不同的业务请求。
进一步的,在本实施例的其他实施方式中,请求端以及响应端已经建立通讯连接对象而没有通讯请求的时候,通讯连接对象可以不建立会话对象,但是不断开通讯连接对象,便于以后持续通讯,而无需重复鉴权。
请求端通过会话对象调用对应的会话模式,且可根据请求端的不同请求而切换会话模式,以更换会话模式,通过灵活切换通讯模式,适配不同的业务请求。
本申请中,基于QUIC通讯协议的流传输通道(Channel)进行了池化处理。会话模式包括多流传输模式以及单流传输模式,单流传输模式指的是发送数据包时,绑定唯一确定的流传输通道发送数据包,当发送多个数据包都保证使用同一个流传输通道传输,保证数据包到达的有序性。而多流传输模式指的是发送数据包时,使用多个流传输通道发送数据包,当发送多个数据包时随机选择空闲的流传输通道传输,提高的数据传输的并行度;多流传输模式为对于一个会话对象,并行有多个流同步传输数据,每个流之间都是独立的,单个流丢包不会影响到其他流的接收和处理,从而避免发生队头阻塞;单流传输模式只有一个流传输数据,为保证了指令顺序的有序性,请求端指令按严格顺序发送,响应端按严格顺序处理。
通过多流传输方式以及单流传输方式并存,且会话模式可直接由会话对象切换:
1.对传输可靠性要求高时,由建立通讯连接对象的身份验证确定连接的安全性并建立通讯通道,提高了数据传输的可靠性,会话对象在进行数据传输时,进行单流传输,确保数据的有序性传输,进一步提高游戏服务架构传输的可靠性。
2.需要进行大数据流的传输时,由建立通讯连接对象的身份验证确定连接的安全性并建立通讯通道,提高了数据传输的可靠性,然后在该通讯通道上建立多会话对象且会话对象根据请求采用多流传输模式,实现在大数据流的传输,通过建立通讯连接对象、多会话对象减少数据传输中多次握手以建立连接的过程,多流传输使同一段数据可划分成多个数据帧在不同的流并行传输,从而降低传输需要的时间,提高传输速率,且使用多流传输的模式避免对头堵塞的问题,即减少大数据流传输因为某一数据帧传输错误而发生拥堵的情况;满足游戏服务架构中对传输可靠性以及大数据流传输效率的需求。
通过本申请的设置,由建立通讯连接对象以形成稳定的通讯通道,以建立会话对象,并由会话对象切换会话模式,实现多流传输模式以及单流传输模式,进而实现大数据流传输效率与可靠性传输均衡的效果。
进一步的,在本实施例中,还支持会话保持,会话持久化,比如请求端与响应端进行通讯交互时,将相关的用户信息绑定在会话对象上,下次请求连接时,即可根据用户信息恢复会话。比如玩家端与设备端之间进行通讯交互,会话持久化即玩家端登录设备端,登录成功之后,设备端会把玩家端记录在会话对象的用户信息,比如身份信息以及通信连接的状态信息等,保存在设备端,并生成唯一的标识,下次玩家端登录时根据其唯一标识,登录设备端,设备端根据唯一标识可恢复玩家端会话;设备端在业务流量异常的情况下,将保存的用户信息迁移至其他设备端,玩家端登录时根据其唯一标识,也可登录其他设备端,其他设备端根据唯一标识可恢复玩家端会话,从而不必重复鉴权。
可选的,在另一实施方式中,请求端与响应端之间通过会话对象构建对应会话对象的自定义协议,实现会话隔离。
不同的会话对象进行不同的业务请求,请求端与响应端之间通过会话对象构建当前会话对象的自定义协议,使该会话对象有其独特的指令集,从而实现会话隔离。
可选的,在另一实施方式中,自定义协议包括压缩算法协议,所述数据帧设有压缩标识位;在接收到数据帧时,校验数据帧的压缩标识位,若数据帧的压缩标识位表明该数据帧已被压缩,根据压缩算法协议执行解压逻辑。
请求端与响应端之间进行通讯连接时在自定义压缩算法协议,即可在会话对象内部协定对应的压缩以及解压的逻辑。
请求端与响应端之间进行通讯连接时在自定义压缩算法协议的优点包括:请求端以及响应端可以根据请求的资源来自定义压缩算法协议,提高数据的传输效率的同时,使会话对象中传输的数据不易被截获,在提高传输效率的同时也提高会话对象传输数据的可靠性,进而满足游戏服务架构对于大数据流传输效率以及可靠性传输的需求。
请求端与响应端之间自定义压缩算法协议,使该压缩算法协议仅适用于当前会话对象,请求端与响应端可根据请求的类型选择合适的压缩算法协议,具体的实现方式可以为:根据请求的资源对数据损失的限制,预先设置多种压缩算法协议,请求端与响应端根据请求的类型选择其对应的压缩算法协议。在其他实施方式中,也可以有其他自定义压缩算法协议的方法,在此不一一赘述。
数据帧头部设置压缩标识位,用以标识数据帧是否被压缩,在实际数据传输中,并非在所有状态下都需要对数据进行压缩,对数据帧设置压缩标识位则是便于请求端或响应端校验数据是否被压缩以及是否需要执行解压缩的操作。
比如数据帧的头部标识位中,指定了其中一位为压缩标识位,如果一个数据帧的数据是被压缩过的,则指定的标识位为1,否则为0。请求端或响应端收到数据帧后,会先根据压缩标识位判断数据是否为压缩数据,若是则执行解压逻辑。
进一步的,在其他实施方式中,同一会话对象上可自定义多种压缩算法协议,对于在一个会话对象上传输的数据,可由不同的压缩算法协议压缩。即对数据帧采用压缩算法协议进行压缩,压缩标识位标识压缩或解压所采用的压缩算法,解决在同一会话对象上存在多种压缩算法协议时,如何快速识别数据帧的压缩算法协议。对数据帧是否被压缩以及压缩算法协议的判定由压缩标识位进行判别,可简化会话对象上数据交互的逻辑,由一组数据判别即可实现两种情况的判别,节省数据处理内存。
优选的,在另一实施方式中,压缩算法协议支持压缩数据的策略配置。
现有在通讯开发做压缩节约带宽,需要积累一定数据才进行压缩,且压缩本身也消耗负载,因此压缩会对通讯即时性以及负载带来不良影响。常规通讯开发是预判需要压缩,直接在编码阶段进行。而本实施方式采用的方式,是允许压缩作为配置特性,在实际实施中可以在由负载监控数据后,再调整配置进行压缩,以消除压缩对通讯即时性以及负载带来不良影响。
优选的,在另一实施方式中,压缩数据的策略包括方式一:配置数据帧大小的阈值,当数据帧的数据达到阈值后,执行压缩。
在会话对象进行数据传输时,压缩数据的策略为根据数据帧大小的阈值,即进行传输的数据帧大小达到阈值的时候,即对数据帧进行压缩,简化了是否对数据帧进行压缩判断逻辑。
在其他实施方式中,压缩数据的策略包括方式二:配置指定的指令,对于指定的指令的数据进行压缩。
即预设对某部分指令进行压缩,在会话对象传输数据时,在请求端或响应端识别传输的数据类型,若为指定的指令,则对该数据进行压缩。
在实际应用时,压缩数据的策略中方式一与方式二可同时使用也可仅使用其中一种方式。
可选的,在另一实施方式中,多流传输模式包括发后不管模式、请求响应模式、请求流模式。
发后不管模式(Fire And Forget,简称FNF模式):即发完即忘,指发送完数据无需等待响应端返回结果,响应端收到此类请求,也不会返回任何结果。在游戏服务架构中的应用场景比如上传日志,发送游戏指令等,发完不需要等待响应端处理结果;发后不管模式包括可靠性发后不管模式以及不可靠性发后不管模式,实现方案是,响应端启动时,启动QUIC监听后再额外开启一个UDP的监听。当请求端建立连接QUIC后,响应端会通过QUIC传输通道把响应端开启监听的UDP通道端口发给请求端,请求端拿到响应端发来的UDP端口后会与响应端UDP传输通道,也就是说请求端维护着两种传输通道,即QUIC和纯UDP传输通道。不可靠性发后不管模式底层传输是直接使用纯UDP传输通道,可靠性发后不管模式底层传输使用QUIC传输通道。本申请同时支持可靠性发后不管模式和不可靠性发后不管模式,都在会话对象下操作,允许开发者按需选择。
不可靠性发后不管模式这个特性对游戏开发非常友好,例如,游戏内的心跳同步信息,需要尽快到达且允许丢弃(计算丢包率),则可以选择不可靠性发后不管模式。其它操作相关的指令就可以走可靠性发后不管模式。
请求响应模式(Request Response,简称RESPONSE模式):发送一个请求,响应端返回一条结果。在游戏服务架构中的应用场景比如获取用户信息,发送一个获取用户信息请求后,响应端需要返回数据,类似http请求;请求响应模式底层传输基于QUIC传输通道传输,具有传输可靠性。
请求流模式(Request Stream,简称STREAM模式):发送一个请求,响应端返回一个数据流。流即数据流,是指发送一个请求后会建立一个“虚拟数据通道”,响应端会往这个虚拟数据通道源源不断的传输数据给请求端。在游戏服务架构中的应用场景比如传输一批量比较大的数据,无法一次传输,此时响应端可以将数据以分块的形式,由流进行传输,请求流模式底层传输基于QUIC传输通道传输,具有传输可靠性。
可选的,在另一实施方式中,所述单流传输模式具体为子会话模式,子会话模式基于多流传输模式的基础上限制单流传输。
子会话模式(Child Session,简称CHIlD-SESSION模式):保证了指令顺序的有序性,指令按严格顺序发送,响应端按严格顺序处理。在子会话模式上可实现如上述发后不管模式、请求响应模式、请求流模式所实现的交互方式,只是限制了底层数据传输时由单流传输实现。
会话模式分为应用层交互指令以及底层传输逻辑,单流传输模式在应用层的交互方式与多流传输模式的交互指令相同,区别在于底层的传输方式不同,单流传输模式由单流传输,多流模式由多流传输,简化了请求端与响应端在应用层的交互指令,使在应用层进行多流传输模式的交互指令也适用于单流传输模式。
在建立会话对象后,可以在会话对象上混用各种会话模式,各种会话模式的在请求端(Client)与响应端(Server)之间的交互方式参照图2,其中,通讯连接对象(Connect对象)、会话对象(Session对象)、会话模式(API)。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
参照图3,在本申请的一个实施例中,提供一种基于QUIC的应用层通讯装置,该基于QUIC的应用层通讯装置与上述实施例中的基于QUIC的应用层通讯方法一一对应。该基于QUIC的应用层通讯装置包括:
连接建立模块,用于响应会话建立请求,于请求端与响应端之间建立通讯连接对象;
会话对象建立模块,用于通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
传输模块,用于通过会话对象调用对应的会话模式进行数据帧传输;
会话模式切换模块,用于根据不同请求,会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式。
进一步的,在另一实施方式中,基于QUIC的应用层通讯装置还包括协议建立模块。
协议建立模块,用于通过会话对象与请求端与响应端之间构建对应会话对象的自定义协议。
进一步的,在另一实施方式中,自定义协议包括压缩算法协议,所述数据帧设有压缩标识位,基于QUIC的应用层通讯装置还包括数据校验模块。
数据校验模块,用于在接收到数据帧时,校验数据帧的压缩标识位,若数据帧的压缩标识位表明该数据帧已被压缩,根据压缩算法协议执行解压逻辑。
进一步的,在另一实施方式中,压缩算法协议支持压缩数据的策略配置。
进一步的,在另一实施方式中,压缩数据的策略包括:配置数据帧大小的阈值,当数据帧的数据达到阈值后,执行压缩和/或配置指定的指令,对于指定的指令的数据进行压缩。进一步的,在另一实施方式中,多流传输模式包括发后不管模式、请求响应模式、请求流模式。
进一步的,在另一实施方式中,所述单流传输模式具体为子会话模式,子会话模式基于多流传输模式的基础上限制单流传输。
上述的基于QUIC的应用层通讯装置各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
参见图4,在本申请实施例的一个实施例中,提供一种电子设备,该电子设备可以是服务器。该电子设备包括通过装置总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘,光盘,EEPROM(Electrically-Erasable Programmable Read Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器),SRAM(Static Random Access Memory,静态随时存取存储器),ROM(Read-OnlyMemory,只读存储器),磁存储器,快闪存储器,PROM(Programmable Read-Only Memory,可编程只读存储器)。该电子设备的存储器为存储于其内部的操作装置和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通讯。该计算机程序被处理器执行时实现上述实施例所述的基于QUIC的应用层通讯方法步骤。
在本申请的一个实施例中,提供了一种计算机可读存储介质,即本申请标题中的存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的基于QUIC的应用层通讯方法步骤。所述计算机可读存储介质包括ROM(Read-Only Memory,只读存储器)、RAM(Random-Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁盘、软盘等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将本申请所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
Claims (8)
1.一种基于QUIC的应用层通讯方法,其特征在于,所述方法包括:
请求端发送会话建立请求,与响应端建立通讯连接对象;
请求端通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
请求端通过会话对象调用对应的会话模式进行数据帧传输;
根据请求端的不同请求,由会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式;所述多流传输模式包括发后不管模式、请求响应模式、请求流模式,所述发后不管模式包括可靠性发后不管模式以及不可靠性发后不管模式,所述不可靠性发后不管模式底层传输是直接使用UDP传输通道,所述可靠性发后不管模式底层传输使用QUIC传输通道,所述单流传输模式具体为子会话模式,子会话模式基于多流传输模式的基础上限制单流传输。
2.根据权利要求1所述的基于QUIC的应用层通讯方法,其特征在于,请求端与响应端之间通过会话对象构建对应会话对象的自定义协议。
3.根据权利要求2所述的基于QUIC的应用层通讯方法,其特征在于,自定义协议包括压缩算法协议,所述数据帧设有压缩标识位;在接收到数据帧时,校验数据帧的压缩标识位,若数据帧的压缩标识位表明该数据帧已被压缩,根据压缩算法协议执行解压逻辑。
4.根据权利要求3所述的基于QUIC的应用层通讯方法,其特征在于,压缩算法协议支持压缩数据的策略配置。
5.根据权利要求4所述的基于QUIC的应用层通讯方法,其特征在于,压缩数据的策略包括:配置数据帧大小的阈值,当数据帧的数据达到阈值后,执行压缩和/或配置指定的指令,对于指定的指令的数据进行压缩。
6.一种基于QUIC的应用层通讯装置,其特征在于,所述装置包括:
连接建立模块,用于响应会话建立请求,于请求端与响应端之间建立通讯连接对象;
会话对象建立模块,用于通过通讯连接对象创建与响应端之间的会话对象,会话对象至少为一个;
传输模块,用于通过会话对象调用对应的会话模式进行数据帧传输;
会话模式切换模块,用于根据不同请求,会话对象切换会话模式,所述会话模式包括多流传输模式以及单流传输模式;所述多流传输模式包括发后不管模式、请求响应模式、请求流模式,所述发后不管模式包括可靠性发后不管模式以及不可靠性发后不管模式,所述不可靠性发后不管模式底层传输是直接使用UDP传输通道,所述可靠性发后不管模式底层传输使用QUIC传输通道,所述单流传输模式具体为子会话模式,子会话模式基于多流传输模式的基础上限制单流传输。
7.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-5任意一项所述的基于QUIC的应用层通讯方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任意一项所述的基于QUIC的应用层通讯方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111358512.1A CN114143387B (zh) | 2021-11-16 | 2021-11-16 | 基于quic的应用层通讯方法、装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111358512.1A CN114143387B (zh) | 2021-11-16 | 2021-11-16 | 基于quic的应用层通讯方法、装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143387A CN114143387A (zh) | 2022-03-04 |
CN114143387B true CN114143387B (zh) | 2023-11-14 |
Family
ID=80390331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111358512.1A Active CN114143387B (zh) | 2021-11-16 | 2021-11-16 | 基于quic的应用层通讯方法、装置、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143387B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074392B (zh) * | 2023-03-31 | 2023-06-16 | 成都四方伟业软件股份有限公司 | 一种数据流传输模式智能化匹配方法与装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067523A (zh) * | 2013-01-17 | 2014-09-24 | 华为技术有限公司 | 一种数据包处理方法和装置 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
CN111937364A (zh) * | 2018-04-13 | 2020-11-13 | 三星电子株式会社 | 无线网络系统中处理数据路径创建的方法和系统 |
CN112243300A (zh) * | 2019-07-19 | 2021-01-19 | 中国移动通信有限公司研究院 | 连接建立方法及装置 |
CN113543219A (zh) * | 2020-04-13 | 2021-10-22 | 华为技术有限公司 | 通信方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2907624B1 (fr) * | 2006-10-24 | 2009-02-20 | Alcatel Sa | Dispositif de compression a adaptation de compression en fonction du medium de transport, et dispositif de decompression associe, pour des equipements de communication |
CN112997460B (zh) * | 2018-08-27 | 2023-06-20 | 瑞典爱立信有限公司 | 在电信网络中检测用户设备ue与内容提供者cp之间的快速用户数据报协议互联网连接quic业务的方法 |
-
2021
- 2021-11-16 CN CN202111358512.1A patent/CN114143387B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104067523A (zh) * | 2013-01-17 | 2014-09-24 | 华为技术有限公司 | 一种数据包处理方法和装置 |
CN111937364A (zh) * | 2018-04-13 | 2020-11-13 | 三星电子株式会社 | 无线网络系统中处理数据路径创建的方法和系统 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
CN112243300A (zh) * | 2019-07-19 | 2021-01-19 | 中国移动通信有限公司研究院 | 连接建立方法及装置 |
CN113543219A (zh) * | 2020-04-13 | 2021-10-22 | 华为技术有限公司 | 通信方法和装置 |
Non-Patent Citations (1)
Title |
---|
A QUIC UPDATE FOR NODE.JS;James Snell;《NearForm》;1-7 * |
Also Published As
Publication number | Publication date |
---|---|
CN114143387A (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10097645B2 (en) | Method and apparatus of performing peer-to-peer communication establishment and connection change-over | |
US8908503B2 (en) | Method and apparatus of performing a multi-channel data transmission | |
US9426767B2 (en) | Method, gateway, proxy and system for implementing mobile internet services | |
US20080175383A1 (en) | Method and communication unit for communicating between communication apparatus | |
US10367893B1 (en) | Method and apparatus of performing peer-to-peer communication establishment | |
CN111372323B (zh) | 连接建立方法、相关设备及介质 | |
CN114143387B (zh) | 基于quic的应用层通讯方法、装置、存储介质 | |
CN114363351B (zh) | 一种代理连接抑制方法、网络架构及代理服务器 | |
CN115664989A (zh) | 一种云桌面的监控系统及方法 | |
CN111211933A (zh) | 一种确定传输链路的质量的方法及装置 | |
CN112838983B (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
CN110830419B (zh) | 一种网际协议摄像机的访问控制方法及装置 | |
CN113645283B (zh) | 一种多链路通信方法、装置、存储介质及电子设备 | |
CN115297058A (zh) | 一种网络拥塞的处理方法、装置、终端、存储介质 | |
US9003241B2 (en) | Reporting errors on serial interfaces to application layers for flexible error handling approach selection | |
JP2005011267A (ja) | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 | |
CN114338479B (zh) | 通讯方法、装置和系统 | |
CN118101782A (zh) | 一种数据传输的方法、装置、电子设备及存储介质 | |
CN114205405B (zh) | 一种bfd报文发送方法、装置、电子设备及存储介质 | |
US20230319148A1 (en) | Minimizing connection delay for a data session | |
WO2024045857A1 (zh) | 数据传输的方法和装置 | |
US20120271956A1 (en) | Transmission apparatus, transmission control method, and transmission control program | |
US20240022610A1 (en) | Method and apparatus to improve ims registration failures over wlan | |
CN116743834A (zh) | 支持多协议的连接管理方法、装置、介质及设备 | |
CN117098240A (zh) | 一种基于quic协议的多路径传输方法及5g工业网关 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |