CN112039824A - 通信方法、系统、设备及计算机可读存储介质 - Google Patents
通信方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112039824A CN112039824A CN201910475977.1A CN201910475977A CN112039824A CN 112039824 A CN112039824 A CN 112039824A CN 201910475977 A CN201910475977 A CN 201910475977A CN 112039824 A CN112039824 A CN 112039824A
- Authority
- CN
- China
- Prior art keywords
- quic
- tcp
- data
- protocol
- data packet
- 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.)
- Granted
Links
Images
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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供了一种基于QUIC协议的通信方法,所述通信方法包括:通过TCP协议栈将应用层数据封装为TCP数据包;将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中;通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包;及通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。本实施例提供的技术方案,可以将新传输协议取代并兼容现有传输协议,从而提升通信效率和安全性。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种通信方法、系统、设备及计算机可读存储介质。
背景技术
建立在TCP基础之上的HTTP协议是互联网上应用最为广泛的一种网络协议,用于将超文本标记语言(HTML)文档从服务器传送到计算机设备。然而,随着图像,视频和其他多媒体内容的增加,增加的多媒体内容意味着HTML页面变得越来越复杂,使得页面加载时间比以往任何时候都要长。在上述背景下,QUIC(QUIC UDP Internet Connections)传输协议被提出来,其是一种基于UDP的低时延的互联网传输层协议,具有很多的优点,比如减少连接延迟、避免队头阻塞、多路复用等。
然而,现有协议(如TCP协议)已经被广泛应用,如何取代并兼容这些现有协议,成为了当下要解决的问题之一。
需要说明的是,上述内容并不用于限制申请保护范围。
发明内容
本申请实施例的目的是提供一种通信方法、系统、计算机设备及计算机可读存储介质,用于将新协议取代并兼容这些现有协议,从而提升通信效率和安全性。
本申请实施例的一个方面提供了一种基于QUIC协议的通信方法,所述通信方法包括:通过TCP协议栈将应用层数据封装为TCP数据包;将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中;通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包;及通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。
优选地,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
优选地,将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中,包括:在所述TCP协议栈与TCP服务端程序之间建立基于所述TCP协议的TCP连接,其中,所述TCP服务端程序为一种本地程序,该本地程序用于对应所述目标设备中的目标TCP协议栈;通过所述TCP连接将所述TCP数据包传输至所述TCP服务端程序中;通过所述TCP服务端程序从所述TCP数据包中提取所述TCP有效载荷数据;及通过所述TCP服务端程序将所述TCP有效载荷数据传输至所述QUIC协议栈中。
优选地,所述TCP连接对应于所述QUIC连接中的目标数据流;通过QUIC连接将所述QUIC数据包传输至目标设备,包括:通过所述目标数据流传输所述QUIC数据包以及与所述TCP连接关联的后续QUIC数据包。
优选地,通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包,包括:将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;及将携带有所述配置参数的应用层协议头部数据封装为所述QUIC数据包。
优选地,所述交互协议参数包括目标IP地址和目标端口号。
优选地,所述应用层数据为应用层协议头部数据;通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包,包括:将配置参数添加到所述TCP有效载荷数据中;其中,所述配置参数包括交互协议参数;将携带有所述配置参数的TCP有效载荷数据封装为所述QUIC数据包;其中,所述QUIC数据包用于请求将后续应用层数据发送至所述目标设备,所述后续应用层数据为应用层协议主体数据。
优选地,还包括:接收所述目标设备基于所述QUIC数据包返回的响应消息;基于所述响应消息,将所述后续应用层数据封装为后续TCP数据包;将所述后续TCP数据包的后续TCP有效载荷数据传输至所述QUIC协议栈中;将所述后续TCP有效载荷数据封装为后续QUIC数据包;通过所述QUIC连接将所述后续QUIC数据包传输至所述目标设备。
优选地,所述应用层数据为应用层协议主体数据。
本申请实施例的一个方面又提供了一种通信系统,所述通信系统包括:第一封装模块,用于通过TCP协议栈将应用层数据封装为TCP数据包;第一传输模块,用于将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中;第二封装模块,用于通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包;第二传输模块,用于通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。
本申请实施例的一个方面又提供了一种通信方法,所述通信方法包括:通过第一传输协议栈将应用层数据封装为第一数据包;通过传输协议服务端解析所述第一数据包以得到解析数据,其中,所述传输协议服务端为对应于所述目标设备中的目标传输协议栈的本地程序;通过所述第二传输协议栈将至少部分解析数据封装为第二数据包;通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
优选地,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
优选地,通过第一传输协议栈将应用层数据封装为第一数据包,包括:基于所述第一传输协议栈中的第一传输层协议封装所述应用层数据,获得所述第一数据包;其中,所述第一传输层协议包括TCP协议。
优选地,还包括将所述第一数据包传输所述传输协议服务端:在所述第一传输协议栈与所述传输协议服务端之间建立基于第一传输层协议的本地连接;及通过所述本地连接将所述第一数据包传输至所述传输协议服务端中。
优选地,所述本地连接对应于所述目标连接中的目标数据流;通过目标连接将所述第二数据包传输至目标设备,包括:通过所述目标数据流传输所述第二数据包以及与所述本地连接关联的后续数据包。
优选地,所述第二传输协议栈包括QUIC协议栈。
优选地,所述解析数据包括应用层协议头部数据;通过所述第二传输协议栈将至少部分解析数据封装为第二数据包,包括:将配置参数添加到所述应用层协议头部数据中;其中,所述配置参数包括所述待发送数据的交互协议参数;及将携带有所述配置参数的应用层协议头部数据封装为所述第二数据包。
优选地,所述交互协议参数包括目标IP地址和目标端口号。
优选地,所述解析数据包括应用层协议主体数据;通过所述第二传输协议栈将至少部分解析数据封装为第二数据包,包括:将所述应用层协议主体数据封装为所述第二数据包。
本申请实施例的一个方面又提供了一种通信系统,所述通信系统包括:第一封装模块,用于通过第一传输协议栈将应用层数据封装为第一数据包;解析模块,用于通过传输协议服务端解析所述第一数据包以得到解析数据,其中,所述传输协议服务端为对应于所述目标设备中的目标传输协议栈的本地程序;第二封装模块,用于通过所述第二传输协议栈将至少部分解析数据封装为第二数据包;传输模块,用于通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
本申请实施例的一个方面又提供了一种基于QUIC协议的通信方法,所述通信方法包括:通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数;基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接;基于所述逻辑连接的建立状态,定义QUIC响应数据包;通过所述QUIC隧道将所述QUIC响应数据包传输至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
优选地,所述交互协议参数包括目标IP地址和目标端口号。
优选地,在所述QUIC隧道和目标程序之间建立逻辑连接,包括:解析所述QUIC请求数据包,得到携带有所述交互协议参数的TCP有效载荷数据;将所述TCP有效载荷数据发送至TCP客户端程序中,所述TCP客户端程序为对应于所述对端的TCP协议栈的本地程序;及基于所述交互协议参数,在所述TCP客户端程序与TCP协议栈之间建立TCP连接,以在所述QUIC隧道和所述目标程序之间建立所述逻辑连接。
优选地,还包括:通过所述QUIC隧道接收对端传输的后续QUIC数据包;及通过所述逻辑连接将所述后续QUIC数据包中的后续应用层数据传输至目标程序。
本申请实施例的一个方面又提供了一种基于QUIC协议的通信系统,所述通信系统包括:接收模块,用于通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数;建立模块,用于基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接;定义模块,用于基于所述逻辑连接的建立状态,定义QUIC响应数据包;发送模块,用于通过所述QUIC隧道将所述QUIC响应数据包发送至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现上述通信方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述通信方法的步骤。
本申请实施例的一个方面又提供了一种通信系统,所述通信系统包括客户端和服务端,其中,所述客户端配置有第一TCP协议栈、TCP服务端程序和第一QUIC协议栈,所述服务端配置有第二TCP协议栈、TCP客户端程序和第二QUIC协议栈;
通过所述第一QUIC协议栈和所述第二QUIC协议栈,在所述客户端和所述服务端之间建立QUIC隧道;当所述客户端中的源程序产生应用层数据,且该应用层数据关联于所述服务端中的目标程序时:在第一TCP协议栈和所述TCP服务端程序之间建立第一TCP连接;在第二TCP协议栈和所述TCP客户端程序之间建立第二TCP连接;通过所述第一TCP连接、所述QUIC隧道和所述第二TCP连接,将所述应用层数据传输至所述目标程序。
优选地,在第二TCP协议栈和所述TCP客户端程序之间建立第二TCP连接,包括:通过所述TCP服务端程序接收所述第一TCP连接关联的TCP数据包;通过所述TCP服务端程序提取所述TCP数据包中的TCP有效载荷数据,所述TCP有效载荷数据包括应用层协议头部数据;通过所述第一QUIC协议栈将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;通过所述第一QUIC协议栈将所述携带有配置参数的应用层协议头部数据封装为QUIC数据包;通过所述QUIC隧道将所述QUIC数据包传输到所述第二QUIC协议栈;通过所述第二QUIC协议栈解析所述QUIC数据包,得到携带所述交互协议参数的TCP有效载荷数据;基于所述交互协议参数,在所述TCP客户端程序和所述第二传输协议栈之间建立所述第二TCP连接。
优选地,还包括:将所述第一TCP连接、所述第二TCP连接与所述QUIC隧道中的目标数据流建立对应关系。
本申请实施例提供的通信方法、系统、设备及计算机可读存储介质,将应用层数据通过TCP协议封装为TCP数据包之后,再进入QUIC协议栈,提取TCP数据包中的TCP有效载荷数据,并将提取的TCP有效载荷数据封装QUIC数据包,从而确保QUIC协议可以兼容基于TCP协议之上的各类应用层协议,从而提升了通信效率和安全性。
附图说明
图1示意性示出了根据本申请实施例一的通信系统的架构示意图;
图2示意性示出了根据本申请实施例一的通信系统的操作流程示意图;
图3示意性示出了根据本申请实施例一的通信系统的数据路径示意图;
图4示意性示出了根据本申请实施例一的通信系统的另一个操作流程示意图;
图5示意性示出了根据本申请实施例一的通信系统的另一个操作流程示意图;
图6示意性示出了根据本申请实施例二的通信方法的应用环境图;
图7示意性示出了根据本申请实施例二的通信方法的流程图;
图8为图7中步骤S702的具体流程图;
图9为图7中步骤S706的具体流程图;
图10示意性示出了根据本申请实施例二的通信方法的另一个流程图;
图11示意性示出了根据本申请实施例二的通信方法的另一个流程图;
图12示意性示出了根据本申请实施例二的通信方法在某个使用场景下的流程图;
图13示意性示出了根据本申请实施例三的通信方法的流程图;
图14示意性示出了根据本申请实施例三的通信方法的另一环境应用示意图;
图15示意性示出了根据本申请实施例三的通信方法在某个使用场景下的流程图;
图16示意性示出了根据本申请实施例四的通信方法的流程图;
图17示意性示出了根据本申请实施例四的通信方法的另一流程图;
图18示意性示出了根据本申请实施例四的通信方法的另一流程图;
图19示意性示出了根据本申请实施例五的通信方法的应用环境图;
图20示意性示出了根据本申请实施例五的通信方法的流程图;
图21为图20中步骤S2002的具体流程图;
图22示意性示出了根据本申请实施例五的通信方法的另一个流程图;
图23示意性示出了根据本申请实施例六的通信系统的框图;
图24示意性示出了根据本申请实施例七的通信系统的框图;
图25示意性示出了根据本申请实施例八的通信系统的框图;以及
图26示意性示出了根据本申请实施例九的适于实现通信方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请实施例,并不用于限定本申请实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
图1示意性示出了根据本申请实施例一的通信系统的架构示意图。
在示例性的实施例中,所述通信系统包括至少一个客户端2和至少一个服务端4,所述客户端2可以通过网络6与所述服务端4建立网络连接。其中,所述客户端2和所述服务端4是可以是服务器、移动电话、平板个人计算机(tablet personal computer)、膝上型计算机(laptop computer)等电子设备。所述网络6可以是因特网。
在示例性的实施例中,所述客户端2被配置有源程序2A、第一TCP(传输控制协议,Transmission Control Protocol)协议栈2B、TCP服务端程序2C和第一QUIC(快速UDP网络连接,Quick UDP Internet Connections)协议栈2D。所述服务端4被配置有目标程序4A、第二TCP协议栈4B、TCP客户端程序4C和第二QUIC协议栈4D。
在示例性的实施例中,所述通信系统在于实现所述源程序2A和所述目标程序4A之间的数据传输任务。如图2和图3所示,所述通信系统的操作步骤可以如下:
步骤S100,通过所述第一QUIC协议栈2D和所述第二QUIC协议栈4D,在所述客户端2和所述服务端4之间建立QUIC隧道C1。
步骤S102,当所述客户端2中的源程序2A产生应用层数据,且该应用层数据关联于所述服务端4中的目标程序4A时:
步骤S102A,在第一TCP协议栈2B和所述TCP服务端程序2C之间建立第一TCP连接C2。
步骤S102B,在第二TCP协议栈4B和所述TCP客户端程序4C之间建立第二TCP连接C3。
步骤S102C,通过所述第一TCP连接C2、所述QUIC隧道C1和所述第二TCP连接C3,将所述应用层数据传输至所述目标程序4A。
在示例性的实施例中,如图4所示,所述步骤S102B可以包括步骤S102B1~S102B8:
步骤S102B1,通过所述TCP服务端程序2C接收所述第一TCP连接C2关联的TCP数据包;步骤S102B2,通过所述TCP服务端程序2C提取所述TCP数据包中的TCP有效载荷数据,所述TCP有效载荷数据包括应用层协议头部数据;步骤S102B3,通过所述第一QUIC协议栈2D将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;步骤S102B4,通过所述第一QUIC协议栈2D将所述携带有配置参数的应用层协议头部数据封装为QUIC数据包;步骤S102B5,通过所述QUIC隧道C1将所述QUIC数据包传输到所述第二QUIC协议栈4D;步骤S102B6,通过所述第二QUIC协议栈4D解析所述QUIC数据包,得到携带所述交互协议参数的TCP有效载荷数据;步骤S102B7,基于所述交互协议参数,在所述TCP客户端程序4C和所述第二传输协议栈4B之间建立所述第二TCP连接C3。
在示例性的实施例中,如图5所示,还包括步骤S102D:
步骤S102D,将所述第一TCP连接C2、所述第二TCP连接C3与所述QUIC隧道C1中的目标数据流建立对应关系。
即,源程序2A产生的应用层数据可以经由所述第一TCP连接C2、QUIC隧道C1中的目标数据流和所述第二TCP连接C3传输至所述目标程序4A。
实施例二
图6示意性示出了根据本申请实施例二的通信方法的环境应用示意图。在示例性的实施例中,计算机设备8可以通过网络12和目标设备10建立网络连接。其中,所述计算机设备8和所述目标设备10是可以是服务器、移动电话、平板个人计算机(tablet personalcomputer)、膝上型计算机(laptop computer)等电子设备。所述网络12可以是因特网。
在示例性的实施例中,所述计算机设备8被配置有应用程序(如,浏览器8A)、TCP协议栈8B、TCP服务端程序8C和QUIC协议栈8D。所述目标设备10被配置有应用程序(如,Web服务程序10A)、目标TCP协议栈10B、TCP客户端程序10C和目标QUIC协议栈10D。
图7示意性示出了根据本申请实施例二的通信方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备8为执行主体进行示例性描述。
如图7所示,该通信方法可以包括步骤S700~S706,其中:
步骤S700,通过TCP协议栈8B将应用层数据封装为TCP数据包。
所述TCP数据包包括TCP头部数据(TCP header)和TCP有效载荷数据(TCPpayload),其中,TCP有效载荷数据为所述应用层数据。
示例性的,所述应用层数据可以是应用程序8A产生的待发送数据,所述待发送数据可以是用于携带传输信息的应用层协议头部数据,也可以是实体内容,如浏览器、多媒体播放器等产生的内容数据,所述内容数据可以是视频、音频、文字、图片等。
示例性的,所述应用层数据可以基于以下应用层协议封装得到:HTTP、HTTPS、RTMP(实时消息协议,Real-Time Messaging Protocol)、FTP(文件传输协议,File TransferProtocol)、SFTP(安全文件传输协议,SHH File Transfer Protocol)、SMTP(简单邮件传输协议,Simple Mail Transfer Protocol)、TELNET等。
步骤S702,将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈8D中。
在示例性的实施例中,如图8所示,所述步骤S702可以包括步骤S702A~S702D:步骤S102A,在所述TCP协议栈8B与TCP服务端程序8C之间建立基于所述TCP协议的TCP连接;步骤S102B,通过所述TCP连接将所述TCP数据包传输至所述TCP服务端程序8C中;步骤S702C,通过所述TCP服务端程序8C从所述TCP数据包中提取所述TCP有效载荷数据;步骤S702D,通过所述TCP服务端程序8C将所述TCP有效载荷数据传输至所述QUIC协议栈8D中。
即,基于三次握手操作,在所述计算机设备8内部建立所述TCP连接,基于所述TCP连接将TCP协议栈8B中的TCP数据包发送到TCP服务端程序8C中,通过TCP服务端程序8C提取TCP数据包中的TCP有效载荷数据,并将该TCP有效载荷数据发送到QUIC协议栈8D中;
所述TCP服务端程序8C为一种被配置在所述计算机设备8中的本地程序,该本地程序用于代表/代替/模拟所述目标设备10中的目标TCP协议栈10B。所述本地程序具有与目标设备10相同的部分参数信息,如端口参数和IP地址参数。
步骤S704,通过所述QUIC协议栈8D将所述TCP有效载荷数据封装为QUIC数据包。
在示例性的实施例中,如图9所示,所述步骤S704可以包括步骤S704A~S704C:步骤S704A,将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;步骤S704B,将携带所述配置参数的应用层协议头部数据封装为QUIC数据包。其中,所述配置参数包括交互协议参数,如:目标IP地址和目标端口号。
在示例性的实施例中,所述应用层数据为应用层协议头部数据;所述步骤S706可以包括步骤:将配置参数添加到所述TCP有效载荷数据中;其中,所述配置参数包括交互协议参数;将携带有所述配置参数的TCP有效载荷数据封装为QUIC数据包;其中,所述QUIC数据包用于请求将后续应用层数据发送至所述目标设备10,所述后续应用层数据为应用层协议主体数据。
步骤S706,通过QUIC连接将所述QUIC数据包传输至目标设备10。
所述QUIC连接为所述计算机设备8与所述目标设备10基于QUIC协议建立的通信连接。
在示例性的实施例中,所述TCP连接对应于所述QUIC连接中的目标数据流。如图10所示,所述步骤S706可以包括:通过所述目标数据流传输所述QUIC数据包以及与所述TCP连接关联的后续QUIC数据包。
在示例性的实施例中,如图11所示,所述通信方法还步骤S1100~S1108:
步骤S1100,接收所述目标设备10基于所述QUIC数据包返回的响应消息。
步骤S1102,基于所述响应消息,将所述后续应用层数据封装为后续TCP数据包。
所述响应消息包括第一响应消息和第二响应消息。第一响应消息用于指示所述计算机设备8可以传输后续应用层数据;所述第二响应消息用于拒绝所述计算机设备8传输后续应用层数据。
步骤S1104,将所述后续TCP数据包的后续TCP有效载荷数据传输至所述QUIC协议栈8D中。
步骤S1106,将所述后续TCP有效载荷数据封装为后续QUIC数据包。
步骤S1108,通过所述QUIC连接将所述后续QUIC数据包传输至所述目标设备10。
图12提供了本实施例在某个使用场景下的使用流程图,该使用场景中,计算机设备8为配置有浏览器的智能手机,目标设备10为配置有Web服务程序的服务器。其中,智能手机8中配置有浏览器程序,服务器10中配置有Web服务程序。
所述浏览器程序和所述Web服务程序之间处于传输参数配置阶段,通信步骤如下:
步骤S1200,通过浏览器程序生成基于HTTP协议的HTTP请求报文。
在示例性的实施例中,所述HTTP请求报文可以为HTTP header,也可以包括HTTPheader和HTTP BODY。
步骤S1202,通过所述浏览器程序将所述HTTP请求报文发送至TCP协议栈。
步骤S1204,通过所述TCP协议栈将所述HTTP请求报文封装为TCP数据包。即,将HTTP请求报文作为TCP数据包的TCP payload。
步骤S1206,在所述TCP协议栈与TCP服务端程序之间建立基于所述TCP协议的TCP连接。
即,基于三次握手操作,在所述计算机设备8内部建立所述TCP连接。
所述TCP服务端程序为一种本地程序,被配置在所述计算机设备8中,该本地程序用于代表/代替/模拟所述目标设备10中的目标TCP协议栈。所述本地程序具有与目标设备10相同的部分参数信息,如端口参数和IP地址参数。
步骤S1208,通过所述TCP连接将所述TCP数据包传输至所述TCP服务端程序中。
步骤S1210,通过所述TCP服务端程序从所述TCP数据包中提取所述TCP有效载荷数据;
步骤S1212,通过所述TCP服务端程序将所述TCP有效载荷数据传输至QUIC协议栈中。
步骤S1214,通过所述QUIC协议栈将配置参数添加到所述TCP有效载荷数据中的HTTP header中。
其中,所述配置参数包括交互协议参数,如:目标IP地址和目标端口号。
示例性的,所述TCP有效载荷数据的HTTP header可以被添加HTTP协议中的已有字段,如:
header_block[“:method”]=“POST”;
header_block[“:scheme”]=“https”。
还可以根据使用场景被添加自定义字段,例如在RTMP直播推流场景下,可以被添加如下自定义字段:
header_block[“x-bvc-quic-tunnel-forward-ip”]=forward_ip_;
header_block[“x-bvc-quic-tunnel-forward-port”]=forward_port_。
上述自定义字段用于写入交互协议参数,如目标IP地址和目标端口号。
步骤S1216,通过所述QUIC协议栈将携带有所述配置参数的HTTP header作为HTTPBODY,并将该HTTP BODY封装为QUIC数据包。
步骤S1218,通过QUIC连接将所述QUIC数据包传输至目标设备10。
其中,所述QUIC连接为在计算机设备8和目标设备10之间基于QUIC协议建立的通信连接。
所述目标设备10接收到所述QUIC数据包,会基于QUIC数据包中的交互协议参数在QUIC连接和所述Web服务程序之间建立逻辑连接,将连接结果的状态码添加到HTTPResponse body,并通过所述QUIC连接发回至所述计算机设备8。状态码“200”表示所述逻辑连接建立成功,状态码“500”表示所述逻辑连接建立失败。
步骤S1220,接收所述目标设备10返回的连接结果,确定所述浏览器程序和所述Web服务程序是否建立连接。
如果所述浏览器程序和所述Web服务程序之间的连接建立成功,则所述浏览器程序参数的后续应用层数据可以通过所建立的连接传输至所述Web服务程序中。
如果所述浏览器程序和所述Web服务程序之间的连接建立失败,则所述浏览器程序参数的后续应用层数据不可以通过所建立的连接传输至所述Web服务程序中。
实施例三
图13示意性示出了根据本申请实施例三的通信方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备8为执行主体进行示例性描述。
如图13所示,该通信方法可以包括步骤S1300~S1308,其中:
步骤S1300,通过TCP协议栈将应用层数据封装为TCP数据包,所述应用层数据为应用层协议主体数据。
所述TCP数据包包括TCP头部数据(TCP header)和TCP有效载荷数据(TCPpayload),其中,TCP有效载荷数据为所述应用层数据。
示例性的,所述应用层数据可以是应用程序产生的待发送数据,如浏览器、多媒体播放器等产生的待发送数据,所述待发送数据可以用于携带视频、音频、文字、图片等数据内容。
示例性的,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP(实时消息协议,Real-Time Messaging Protocol)、FTP(文件传输协议,File TransferProtocol)、SFTP(安全文件传输协议,SHH File Transfer Protocol)、SMTP(简单邮件传输协议,Simple Mail Transfer Protocol)、TELNET等。
步骤S1302,将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中。
在示例性的实施例中,通过在TCP协议栈和TCP服务端程序之间预先建立的TCP连接,将TCP协议栈中的TCP数据包发送到TCP服务端程序中,通过TCP服务端程序提取TCP数据包中的TCP有效载荷数据,并将该TCP有效载荷数据发送到QUIC协议栈。
所述TCP服务端程序为一种本地程序,被配置在所述计算机设备8中,该本地程序用于代表/代替/模拟所述目标设备10中的目标TCP协议栈。所述本地程序具有与目标设备相同的部分参数信息,如端口参数和IP地址参数。
步骤S1304,通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包。
步骤S1306,通过QUIC连接将所述QUIC数据包传输至目标设备10,
所述QUIC连接为所述计算机设备8和目标设备10之间基于QUIC协议建立的通信连接。
图14示意性示出了根据本申请实施例的通信方法的另一环境应用示意图。在示例性的实施例中,计算机设备8可以通过网络12和目标设备10建立网络连接。其中,所述计算机设备8和所述目标设备10是可以是服务器、移动电话、平板个人计算机(tablet personalcomputer)、膝上型计算机(laptop computer)等电子设备。所述网络12可以是因特网。
在示例性的实施例中,所述计算机设备8被配置有应用程序(如,直播程序8A’)、TCP协议栈8B、TCP服务端程序8C和QUIC协议栈8D。所述目标设备10被配置有应用程序(如,NGX服务程序10A)、目标TCP协议栈10B、TCP客户端程序10C和目标QUIC协议栈10D。
图15提供了本实施例在某个使用场景下的使用流程图,该使用场景中,计算机设备8为配置有直播程序的智能手机,目标设备10为配置有NGX服务程序的服务器。
所述直播程序和所述NGX服务程序之间处于数据传输阶段,步骤如下:
步骤S1500,通过直播程序生成基于RTMP协议的RTMP数据。
在示例性的实施例中,该RTMP数据可以为RTMP主体数据,不包括RTMP头部数据。
步骤S1502,通过所述直播程序将所述RTMP数据发送至TCP协议栈。
步骤S1504,通过所述TCP协议栈将所述RTMP数据封装为TCP数据包。即,将RTMP数据作为TCP数据包的TCP payload。
步骤S1506,通过所述TCP协议栈将所述TCP数据包传输至TCP服务端程序中。
所述TCP服务端程序为一种本地程序,被配置在所述计算机设备8中,该本地程序用于代表/代替/模拟所述目标设备10中的目标TCP协议栈。所述本地程序具有与目标设备相同的部分参数信息,如端口参数和IP地址参数。
步骤S1508,通过所述TCP服务端程序从所述TCP数据包中提取所述TCP有效载荷数据。
步骤S1510,通过所述TCP服务端程序将所述TCP有效载荷数据传输至所述QUIC协议栈中。
步骤S1512,通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包。
步骤S1514,通过QUIC连接将所述QUIC数据包传输至目标设备10。
所述目标设备10接收到所述QUIC数据包,解析所述QUIC数据包,并将解析后的应用层数据传输至NGX服务程序中。
不难理解,NGX服务程序产生的应用层数据同样可以传输至直播程序中。
实施例四
图16示意性示出了根据本申请实施例四的通信方法的流程图。该通信方法可以包括步骤S1600~S1610,其中:
步骤S1600,通过第一传输协议栈将应用层数据封装为第一数据包。
所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
在示例性的实施例中,如图17所示,所述步骤S1600可以包括:基于所述第一传输协议栈中的第一传输层协议封装所述应用层数据,获得所述第一数据包。其中,所述第一传输层协议包括TCP协议。
步骤S1602,通过传输协议服务端解析所述第一数据包以得到解析数据。
其中,所述传输协议服务端为对应于目标设备中的目标传输协议栈的本地程序,如TCP server。
步骤S1604,通过所述第二传输协议栈将至少部分所述解析数据封装为第二数据包。
在示例性的实施例中,所述第二传输协议栈包括QUIC协议栈。
在示例性的实施例中,所述解析数据可以包括应用层协议头部数据。如图17所示,所述步骤S1604可以包括:步骤S1604A,将配置参数添加到所述应用层协议头部数据中;其中,所述配置参数包括所述待发送数据的交互协议参数;步骤S1604B,将携带有所述配置参数的应用层协议头部数据封装为所述第二数据包。所述交互协议参数包括目标IP地址和目标端口号。
在示例性的实施例中,所述解析数据可以包括应用层协议主体数据。如图18所示,所述步骤S1604可以包括:将所述应用层协议主体数据封装为所述第二数据包。
步骤S1606,通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
在示例性的实施例中,所述解析数据为应用层协议头部数据时,第二数据包在于传输配置参数,以协助所述目标连接与目标IP:端口之间建立逻辑连接。
在示例性的实施例中,所述解析数据为应用层协议头部数据时,第二数据包在于传输应用层数据,如图片、文字等。
在示例性的实施例中,如图17所示,所述通信方法还包括步骤S1601,将所述第一数据包传输所述传输协议服务端。其中,所述步骤S1601包括:
步骤S1601A,在所述第一传输协议栈与所述传输协议服务端之间建立基于第一传输层协议的本地连接;步骤S1601B,通过所述本地连接将所述第一数据包传输至所述传输协议服务端中。
在示例性的实施例中,所述通信方法还包括步骤S1603,所述本地连接对应于所述目标连接中的目标数据流;通过目标连接将所述第二数据包传输至目标设备的步骤,包括:通过所述目标数据流传输所述第二数据包以及与所述本地连接关联的后续数据包。
实施例五
图19示意性示出了根据本申请实施例五的通信方法的环境应用示意图。在示例性的实施例中,计算机设备14可以通过网络18和对端16建立网络连接。其中,所述计算机设备14和所述对端16是可以是服务器、移动电话、平板个人计算机(tablet personalcomputer)、膝上型计算机(laptop computer)等电子设备。所述网络18可以是因特网。
在示例性的实施例中,所述计算机设备14被配置有应用程序(如,NGX服务程序14A)、TCP协议栈14B、TCP客户端程序14C和QUIC协议栈14D。
图20示意性示出了根据本申请实施例五的通信方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备14为执行主体进行示例性描述。
该通信方法可以包括步骤S2000~S2006,其中:
步骤S2000,通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数。
QUIC隧道为与所述对端16预先建立的通信连接。
所述交互协议参数位于所述QUIC请求数据包的应用层协议头部数据中,所述交互协议参数包括目标IP地址和目标端口号。
步骤S2002,基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接。
在示例性的实施例中,如图21所示,所述步骤S2002可以包括:步骤S2002A,解析所述QUIC请求数据包,得到携带有所述交互协议参数的TCP有效载荷数据;步骤S2002B,将所述TCP有效载荷数据发送至TCP客户端程序中,所述TCP客户端程序(TCP client)为对应于(代表/代替/模拟)所述对端的TCP协议栈的本地程序;步骤S2002C,基于所述交互协议参数,在所述TCP客户端程序与TCP协议栈之间建立TCP连接,以在所述QUIC隧道和所述目标程序之间建立所述逻辑连接。
步骤S2004,基于所述逻辑连接的建立状态,定义QUIC响应数据包。
如,将状态码添加到所述QUIC响应数据包,“200”表示连接成功,“500”表示连接失败。
步骤S2006,通过所述QUIC隧道将所述QUIC响应数据包传输至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
在示例性的实施例中,如图22所示,所述通信方法还包括步骤S2008~S2010:
步骤S2008,通过所述QUIC隧道接收对端传输的后续QUIC数据包;及
步骤S2010,通过所述逻辑连接将所述后续QUIC数据包中的后续应用层数据传输至目标程序。
在示例性的实施例中,步骤S2008~S2010如下:
(1)通过QUIC隧道接收对端传输的后续QUIC数据包,所述后续QUIC数据包中包括应用层协议主体数据;
(2)解析所述后续QUIC数据包,得到后续TCP数据包;
(3)通过所述TCP连接将所述后续TCP数据包传输至TCP协议栈中;
(4)通过所述TCP协议栈解析所述后续TCP数据包,将解析得到的应用层数据提供至目标程序。
实施例六
图23示意性示出了根据本申请实施例六的通信系统的框图,该通信系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图23所示,该通信系统400可以包括第一封装模块410、第一传输模块420、第二封装模块430和第二传输模块440,其中:
第一封装模块410,用于通过TCP协议栈将应用层数据封装为TCP数据包。
第一传输模块420,用于将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中。
第二封装模块430,用于通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包。
第二传输模块440,用于通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。。
在示例性的实施例中,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
在示例性的实施例中,第一传输模块420,用于:在所述TCP协议栈与TCP服务端程序之间建立基于所述TCP协议的TCP连接,其中,所述TCP服务端程序为一种本地程序,该本地程序用于对应所述目标设备中的目标TCP协议栈;通过所述TCP连接将所述TCP数据包传输至所述TCP服务端程序中;通过所述TCP服务端程序从所述TCP数据包中提取所述TCP有效载荷数据;及通过所述TCP服务端程序将所述TCP有效载荷数据传输至所述QUIC协议栈中。
在示例性的实施例中,第二传输模块450还用于:通过所述目标数据流传输所述QUIC数据包以及与所述TCP连接关联的后续QUIC数据包。
在示例性的实施例中,第二封装模块440还用于:通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包,包括:将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;及将携带有所述配置参数的应用层协议头部数据封装为所述QUIC数据包。
在示例性的实施例中,所述交互协议参数包括目标IP地址和目标端口号。
在示例性的实施例中,所述应用层数据为应用层协议头部数据;第二封装模块440还用于:将配置参数添加到所述TCP有效载荷数据中;其中,所述配置参数包括交互协议参数;将携带有所述配置参数的TCP有效载荷数据封装为所述QUIC数据包;其中,所述QUIC数据包用于请求将后续应用层数据发送至所述目标设备,所述后续应用层数据为应用层协议主体数据。
在示例性的实施例中,第二传输模块450还用于:接收所述目标设备基于所述QUIC数据包返回的响应消息;基于所述响应消息,将所述后续应用层数据封装为后续TCP数据包;将所述后续TCP数据包的后续TCP有效载荷数据传输至所述QUIC协议栈中;将所述后续TCP有效载荷数据封装为后续QUIC数据包;通过所述QUIC连接将所述后续QUIC数据包传输至所述目标设备。
实施例七
图24示意性示出了根据本申请实施例七的通信系统的框图,该通信系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图24所示,该通信系统500可以包括第一封装模块510、解析模块520、第二封装模块530和传输模块540,其中:
第一封装模块510,用于通过第一传输协议栈将应用层数据封装为第一数据包。解析模块520,用于通过传输协议服务端解析所述第一数据包以得到解析数据,其中,所述传输协议服务端为对应于所述目标设备中的目标传输协议栈的本地程序。第二封装模块530,用于通过所述第二传输协议栈将至少部分解析数据封装为第二数据包。传输模块540,用于通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
在示例性的实施例中,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
在示例性的实施例中,第一封装模块510,还用于:基于所述第一传输协议栈中的第一传输层协议封装所述应用层数据,获得所述第一数据包;其中,所述第一传输层协议包括TCP协议。
在示例性的实施例中,传输模块540,还用于:在所述第一传输协议栈与所述传输协议服务端之间建立基于第一传输层协议的本地连接;及通过所述本地连接将所述第一数据包传输至所述传输协议服务端中。
在示例性的实施例中,所述本地连接对应于所述目标连接中的目标数据流;传输模块540,还用于:通过所述目标数据流传输所述第二数据包以及与所述本地连接关联的后续数据包。
在示例性的实施例中,所述第二传输协议栈包括QUIC协议栈。
在示例性的实施例中,所述解析数据包括应用层协议头部数据;第二封装模块530,还用于:将配置参数添加到所述应用层协议头部数据中;其中,所述配置参数包括所述待发送数据的交互协议参数;及将携带有所述配置参数的应用层协议头部数据封装为所述第二数据包。
在示例性的实施例中,所述交互协议参数包括目标IP地址和目标端口号。
在示例性的实施例中,所述解析数据包括应用层协议主体数据;第二封装模块530,还用于:将所述应用层协议主体数据封装为所述第二数据包。
实施例八
图25示意性示出了根据本申请实施例八的通信系统的框图,该通信系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合描述视频处理系统在存储介质中的执行过程,以下描述将具体介绍本实施例各程序模块的功能。
如图25所示,该通信系统600可以包括接收模块610、建立模块620、定义模块630和发送模块640,其中:
接收模块610,用于通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数。建立模块620,用于基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接。定义模块630,用于基于所述逻辑连接的建立状态,定义QUIC响应数据包。发送模块640,用于通过所述QUIC隧道将所述QUIC响应数据包发送至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
在示例性的实施例中,所述交互协议参数包括目标IP地址和目标端口号。
在示例性的实施例中,建立模块620,还用于:解析所述QUIC请求数据包,得到携带有所述交互协议参数的TCP有效载荷数据;将所述TCP有效载荷数据发送至TCP客户端程序中,所述TCP客户端程序为对应于所述对端的TCP协议栈的本地程序;及基于所述交互协议参数,在所述TCP客户端程序与TCP协议栈之间建立TCP连接,以在所述QUIC隧道和所述目标程序之间建立所述逻辑连接。
在示例性的实施例中,接收模块610,还用于:通过所述QUIC隧道接收对端传输的后续QUIC数据包;及通过所述逻辑连接将所述后续QUIC数据包中的后续应用层数据传输至目标程序。
实施例九
图26示意性示出了根据本申请实施例九的适于实现通信方法的计算机设备的硬件架构示意图。计算机设备2、8和14的硬件架构相同,因此申请以计算机设备2为例介绍硬件架构。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图26所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器710、处理器720、网络接口730。其中:
存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(SmartMedia Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器710还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如通信方法或基于QUIC协议栈的通信方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口730用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图26仅示出了具有部件710-730的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器710中的通信方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本发明。
实施例十
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的通信方法或基于QUIC协议栈的通信方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的通信方法或基于QUIC协议的通信方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (30)
1.一种基于QUIC协议的通信方法,其特征在于,所述通信方法包括:
通过TCP协议栈将应用层数据封装为TCP数据包;
将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中;
通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包;及
通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。
2.根据权利要求1所述的通信方法,其特征在于,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
3.根据权利要求1所述的通信方法,其特征在于,将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中,包括:
在所述TCP协议栈与TCP服务端程序之间建立基于所述TCP协议的TCP连接,其中,所述TCP服务端程序为一种本地程序,该本地程序用于对应所述目标设备中的目标TCP协议栈;
通过所述TCP连接将所述TCP数据包传输至所述TCP服务端程序中;
通过所述TCP服务端程序从所述TCP数据包中提取所述TCP有效载荷数据;及
通过所述TCP服务端程序将所述TCP有效载荷数据传输至所述QUIC协议栈中。
4.根据权利要求3所述的通信方法,其特征在于,所述TCP连接对应于所述QUIC连接中的目标数据流;通过QUIC连接将所述QUIC数据包传输至目标设备,包括:
通过所述目标数据流传输所述QUIC数据包以及与所述TCP连接关联的后续QUIC数据包。
5.根据权利要求1所述的通信方法,其特征在于,通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包,包括:
将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;及
将携带有所述配置参数的应用层协议头部数据封装为所述QUIC数据包。
6.根据权利要求5所述的通信方法,其特征在于,所述交互协议参数包括目标IP地址和目标端口号。
7.根据权利要求1所述的通信方法,其特征在于,所述应用层数据为应用层协议头部数据;通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包,包括:
将配置参数添加到所述TCP有效载荷数据中;其中,所述配置参数包括交互协议参数;
将携带有所述配置参数的TCP有效载荷数据封装为所述QUIC数据包;
其中,所述QUIC数据包用于请求将后续应用层数据发送至所述目标设备,所述后续应用层数据为应用层协议主体数据。
8.根据权利要求7所述的通信方法,其特征在于,还包括:
接收所述目标设备基于所述QUIC数据包返回的响应消息;
基于所述响应消息,将所述后续应用层数据封装为后续TCP数据包;
将所述后续TCP数据包的后续TCP有效载荷数据传输至所述QUIC协议栈中;
将所述后续TCP有效载荷数据封装为后续QUIC数据包;
通过所述QUIC连接将所述后续QUIC数据包传输至所述目标设备。
9.根据权利要求1所述的通信方法,其特征在于,所述应用层数据为应用层协议主体数据。
10.一种基于QUIC协议的通信系统,其特征在于,所述通信系统包括:
第一封装模块,用于通过TCP协议栈将应用层数据封装为TCP数据包;
第一传输模块,用于将所述TCP数据包中的TCP有效载荷数据传输至QUIC协议栈中;
第二封装模块,用于通过所述QUIC协议栈将所述TCP有效载荷数据封装为QUIC数据包;
第二传输模块,用于通过QUIC连接将所述QUIC数据包传输至目标设备,其中,所述QUIC连接为基于QUIC协议与所述目标设备建立的通信连接。
11.一种通信方法,其特征在于,所述通信方法包括:
通过第一传输协议栈将应用层数据封装为第一数据包;
通过传输协议服务端解析所述第一数据包以得到解析数据,其中,所述传输协议服务端为对应于所述目标设备中的目标传输协议栈的本地程序;
通过所述第二传输协议栈将至少部分解析数据封装为第二数据包;
通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
12.根据权利要求11所述的通信方法,其特征在于,所述应用层数据基于以下应用层协议封装得到:HTTP、HTTPS、RTMP、FTP、SFTP、SMTP或TELNET。
13.根据权利要求12所述的通信方法,其特征在于,通过第一传输协议栈将应用层数据封装为第一数据包,包括:
基于所述第一传输协议栈中的第一传输层协议封装所述应用层数据,获得所述第一数据包;
其中,所述第一传输层协议包括TCP协议。
14.根据权利要求11所述的通信方法,其特征在于,还包括将所述第一数据包传输所述传输协议服务端:
在所述第一传输协议栈与所述传输协议服务端之间建立基于第一传输层协议的本地连接;及
通过所述本地连接将所述第一数据包传输至所述传输协议服务端中。
15.根据权利要求14所述的通信方法,其特征在于,所述本地连接对应于所述目标连接中的目标数据流;通过目标连接将所述第二数据包传输至目标设备,包括:
通过所述目标数据流传输所述第二数据包以及与所述本地连接关联的后续数据包。
16.根据权利要求11所述的通信方法,其特征在于,所述第二传输协议栈包括QUIC协议栈。
17.根据权利要求11所述的通信方法,其特征在于,所述解析数据包括应用层协议头部数据;通过所述第二传输协议栈将至少部分解析数据封装为第二数据包,包括:
将配置参数添加到所述应用层协议头部数据中;其中,所述配置参数包括所述待发送数据的交互协议参数;及
将携带有所述配置参数的应用层协议头部数据封装为所述第二数据包。
18.根据权利要求17所述的通信方法,其特征在于,所述交互协议参数包括目标IP地址和目标端口号。
19.根据权利要求11所述的通信方法,其特征在于,所述解析数据包括应用层协议主体数据;通过所述第二传输协议栈将至少部分解析数据封装为第二数据包,包括:
将所述应用层协议主体数据封装为所述第二数据包。
20.一种通信系统,其特征在于,所述通信系统包括:
第一封装模块,用于通过第一传输协议栈将应用层数据封装为第一数据包;
解析模块,用于通过传输协议服务端解析所述第一数据包以得到解析数据,其中,所述传输协议服务端为对应于所述目标设备中的目标传输协议栈的本地程序;
第二封装模块,用于通过所述第二传输协议栈将至少部分解析数据封装为第二数据包;
传输模块,用于通过目标连接将所述第二数据包传输至目标设备,其中,所述目标连接为通过所述第二传输协议栈建立的通信连接。
21.一种基于QUIC协议的通信方法,其特征在于,所述通信方法包括:
通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数;
基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接;
基于所述逻辑连接的建立状态,定义QUIC响应数据包;
通过所述QUIC隧道将所述QUIC响应数据包传输至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
22.根据权利要求21所述的通信方法,其特征在于,所述交互协议参数包括目标IP地址和目标端口号。
23.根据权利要求21所述的通信方法,其特征在于,在所述QUIC隧道和目标程序之间建立逻辑连接,包括:
解析所述QUIC请求数据包,得到携带有所述交互协议参数的TCP有效载荷数据;
将所述TCP有效载荷数据发送至TCP客户端程序中,所述TCP客户端程序为对应于所述对端的TCP协议栈的本地程序;及
基于所述交互协议参数,在所述TCP客户端程序与TCP协议栈之间建立TCP连接,以在所述QUIC隧道和所述目标程序之间建立所述逻辑连接。
24.根据权利要求21所述的通信方法,其特征在于,还包括:
通过所述QUIC隧道接收对端传输的后续QUIC数据包;及
通过所述逻辑连接将所述后续QUIC数据包中的后续应用层数据传输至目标程序。
25.一种基于QUIC协议的通信系统,其特征在于,所述通信系统包括:
接收模块,用于通过QUIC隧道接收对端传输的QUIC请求数据包,所述QUIC请求数据包携带有交互协议参数;
建立模块,用于基于所述交互协议参数,在所述QUIC隧道和目标程序之间建立逻辑连接;
定义模块,用于基于所述逻辑连接的建立状态,定义QUIC响应数据包;
发送模块,用于通过所述QUIC隧道将所述QUIC响应数据包发送至所述对端,所述QUIC响应数据包用于通知所述对端是否传输待发送数据。
26.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1~9、11~19及21~24中任一项所述通信方法的步骤。
27.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1~9、11~19及21~24中任一项所述的通信方法的步骤。
28.一种通信系统,其特征在于,所述通信系统包括客户端和服务端,其中,所述客户端配置有第一TCP协议栈、TCP服务端程序和第一QUIC协议栈,所述服务端配置有第二TCP协议栈、TCP客户端程序和第二QUIC协议栈;
通过所述第一QUIC协议栈和所述第二QUIC协议栈,在所述客户端和所述服务端之间建立QUIC隧道;
当所述客户端中的源程序产生应用层数据,且该应用层数据关联于所述服务端中的目标程序时:
在第一TCP协议栈和所述TCP服务端程序之间建立第一TCP连接;
在第二TCP协议栈和所述TCP客户端程序之间建立第二TCP连接;
通过所述第一TCP连接、所述QUIC隧道和所述第二TCP连接,将所述应用层数据传输至所述目标程序。
29.根据权利要求27所述的通信系统,其特征在于,在第二TCP协议栈和所述TCP客户端程序之间建立第二TCP连接,包括:
通过所述TCP服务端程序接收所述第一TCP连接关联的TCP数据包;
通过所述TCP服务端程序提取所述TCP数据包中的TCP有效载荷数据,所述TCP有效载荷数据包括应用层协议头部数据;
通过所述第一QUIC协议栈将配置参数添加到所述TCP有效载荷数据的应用层协议头部数据中;其中,所述配置参数包括交互协议参数;
通过所述第一QUIC协议栈将所述携带有配置参数的应用层协议头部数据封装为QUIC数据包;
通过所述QUIC隧道将所述QUIC数据包传输到所述第二QUIC协议栈;
通过所述第二QUIC协议栈解析所述QUIC数据包,得到携带所述交互协议参数的TCP有效载荷数据;
基于所述交互协议参数,在所述TCP客户端程序和所述第二传输协议栈之间建立所述第二TCP连接。
30.根据权利要求27所述的通信系统,其特征在于,还包括:
将所述第一TCP连接、所述第二TCP连接与所述QUIC隧道中的目标数据流建立对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475977.1A CN112039824B (zh) | 2019-06-03 | 2019-06-03 | 通信方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475977.1A CN112039824B (zh) | 2019-06-03 | 2019-06-03 | 通信方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039824A true CN112039824A (zh) | 2020-12-04 |
CN112039824B CN112039824B (zh) | 2022-08-26 |
Family
ID=73575938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910475977.1A Active CN112039824B (zh) | 2019-06-03 | 2019-06-03 | 通信方法、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112039824B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113676741A (zh) * | 2021-07-19 | 2021-11-19 | Oppo广东移动通信有限公司 | 数据传输方法、装置、存储介质及电子设备 |
CN113746755A (zh) * | 2021-07-30 | 2021-12-03 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN114095587A (zh) * | 2021-11-24 | 2022-02-25 | 恒安嘉新(北京)科技股份公司 | 一种客户端、报文发送、接收方法、设备及存储介质 |
CN114172948A (zh) * | 2022-02-09 | 2022-03-11 | 北京数码视讯技术有限公司 | 基于udp的ip透传网关传输系统和方法 |
CN115174159A (zh) * | 2022-06-14 | 2022-10-11 | 通号城市轨道交通技术有限公司 | 通信模型、数据传输方法及装置、通信模型配置方法 |
CN115297194A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市信润富联数字科技有限公司 | 风电监控设备的数据处理方法、装置、设备及存储介质 |
WO2023103318A1 (zh) * | 2021-12-06 | 2023-06-15 | 上海哔哩哔哩科技有限公司 | 媒体流传输方法和系统 |
WO2023160649A1 (zh) * | 2022-02-24 | 2023-08-31 | 北京字节跳动网络技术有限公司 | 交互方法、系统、装置和非易失性计算机可读存储介质 |
WO2024027674A1 (zh) * | 2022-08-04 | 2024-02-08 | 华为技术有限公司 | 通信方法、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474553A (zh) * | 2009-07-31 | 2012-05-23 | 雷比特公司 | 利用智能协议交换的电话通信 |
US20170118314A1 (en) * | 2015-10-21 | 2017-04-27 | Realtek Semiconductor Corp. | Transmission apparatus and transmission method thereof |
CN108287723A (zh) * | 2016-12-30 | 2018-07-17 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
CN109218186A (zh) * | 2017-07-05 | 2019-01-15 | 华为技术有限公司 | 一种多路径数据传输处理方法及网络设备 |
CN109525661A (zh) * | 2018-11-14 | 2019-03-26 | 北京奇艺世纪科技有限公司 | 数据传输方法及装置 |
US20190116123A1 (en) * | 2017-10-16 | 2019-04-18 | Verizon Digital Media Services Inc. | Load Balancing of Connectionless Traffic |
CN109818905A (zh) * | 2017-11-21 | 2019-05-28 | 中国移动通信有限公司研究院 | 一种传输层协议适配的方法、网元设备及系统 |
-
2019
- 2019-06-03 CN CN201910475977.1A patent/CN112039824B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102474553A (zh) * | 2009-07-31 | 2012-05-23 | 雷比特公司 | 利用智能协议交换的电话通信 |
US20170118314A1 (en) * | 2015-10-21 | 2017-04-27 | Realtek Semiconductor Corp. | Transmission apparatus and transmission method thereof |
CN108287723A (zh) * | 2016-12-30 | 2018-07-17 | 华为技术有限公司 | 一种应用交互方法、装置、物理机及系统 |
CN109218186A (zh) * | 2017-07-05 | 2019-01-15 | 华为技术有限公司 | 一种多路径数据传输处理方法及网络设备 |
US20190116123A1 (en) * | 2017-10-16 | 2019-04-18 | Verizon Digital Media Services Inc. | Load Balancing of Connectionless Traffic |
CN109818905A (zh) * | 2017-11-21 | 2019-05-28 | 中国移动通信有限公司研究院 | 一种传输层协议适配的方法、网元设备及系统 |
CN109525661A (zh) * | 2018-11-14 | 2019-03-26 | 北京奇艺世纪科技有限公司 | 数据传输方法及装置 |
Non-Patent Citations (3)
Title |
---|
余雅君等: "数据中心网络TCP Incast问题研究", 《计算机科学与探索》 * |
吴桦,程光,胡劲松,徐健: "《新一代互联网流媒体服务及路由关键技术》", 30 November 2017 * |
陈振波: "QUIC协议研究", 《电子测试》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113676741A (zh) * | 2021-07-19 | 2021-11-19 | Oppo广东移动通信有限公司 | 数据传输方法、装置、存储介质及电子设备 |
CN113676741B (zh) * | 2021-07-19 | 2024-04-12 | Oppo广东移动通信有限公司 | 数据传输方法、装置、存储介质及电子设备 |
CN113746755A (zh) * | 2021-07-30 | 2021-12-03 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN113746755B (zh) * | 2021-07-30 | 2023-10-20 | 咪咕文化科技有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
CN114095587A (zh) * | 2021-11-24 | 2022-02-25 | 恒安嘉新(北京)科技股份公司 | 一种客户端、报文发送、接收方法、设备及存储介质 |
WO2023103318A1 (zh) * | 2021-12-06 | 2023-06-15 | 上海哔哩哔哩科技有限公司 | 媒体流传输方法和系统 |
CN114172948A (zh) * | 2022-02-09 | 2022-03-11 | 北京数码视讯技术有限公司 | 基于udp的ip透传网关传输系统和方法 |
WO2023160649A1 (zh) * | 2022-02-24 | 2023-08-31 | 北京字节跳动网络技术有限公司 | 交互方法、系统、装置和非易失性计算机可读存储介质 |
CN115174159A (zh) * | 2022-06-14 | 2022-10-11 | 通号城市轨道交通技术有限公司 | 通信模型、数据传输方法及装置、通信模型配置方法 |
CN115174159B (zh) * | 2022-06-14 | 2023-10-20 | 通号城市轨道交通技术有限公司 | 通信模型、数据传输方法及装置、通信模型配置方法 |
WO2024027674A1 (zh) * | 2022-08-04 | 2024-02-08 | 华为技术有限公司 | 通信方法、设备及存储介质 |
CN115297194A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市信润富联数字科技有限公司 | 风电监控设备的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112039824B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039824B (zh) | 通信方法、系统、设备及计算机可读存储介质 | |
US11025724B2 (en) | Transport of control data in proxy-based network communications | |
CN110417766A (zh) | 一种协议解析的方法和装置 | |
WO2021083083A1 (zh) | 一种升级方法、系统、服务器及终端设备 | |
US9860301B2 (en) | File transfer using XML | |
EP3782061B1 (en) | System and method to securely execute datacenter management operations remotely | |
CN114124929B (zh) | 跨网络的数据处理方法和装置 | |
CN110769009B (zh) | 用户身份认证方法及系统 | |
CN112751898B (zh) | 负载均衡方法、装置、介质及设备 | |
CN112653656B (zh) | 一种基于应用层协议的数据通信方法及其装置 | |
US20170171289A1 (en) | Gateway that enables a browser-based application to communicate with a server-side application using a non-browser-compatable protocol | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
CN112738004A (zh) | 基于quic传输协议的通信方法和系统 | |
JP4896532B2 (ja) | 通信チャネルモデル | |
CN105190530A (zh) | 传输硬件渲染的图形数据 | |
CN114157607A (zh) | 媒体流传输方法和系统 | |
CN112073465A (zh) | 一种基于sftp传输的动态脱敏方法与设备 | |
US10333769B2 (en) | Deployable linear bitwise protocol transformation | |
CN110187986B (zh) | 一种命令管理方法、系统、装置及计算机可读存储介质 | |
CN107800552A (zh) | 一种数据交互方法及装置 | |
JP2006190263A (ja) | 構造化データプロトコルをバイトストリームを供するプロトコルにバインドするための機構 | |
CN115085953A (zh) | 一种内网访问方法、装置、设备及计算机可读存储介质 | |
US10491654B2 (en) | Communicating with a remote service through a hypertext transfer protocol (HTTP) session | |
CN115913824B (zh) | 跨vpc的虚拟服务器通信方法及系统 | |
CN106209954B (zh) | 一种rdp明文数据解析方法及装置 |
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 |