CN112653656B - 一种基于应用层协议的数据通信方法及其装置 - Google Patents
一种基于应用层协议的数据通信方法及其装置 Download PDFInfo
- Publication number
- CN112653656B CN112653656B CN201911039001.6A CN201911039001A CN112653656B CN 112653656 B CN112653656 B CN 112653656B CN 201911039001 A CN201911039001 A CN 201911039001A CN 112653656 B CN112653656 B CN 112653656B
- Authority
- CN
- China
- Prior art keywords
- channel
- layer protocol
- application layer
- data
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000004891 communication Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 149
- 238000012545 processing Methods 0.000 claims description 42
- 238000004590 computer program Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 60
- 230000005540 biological transmission Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种基于应用层协议的数据通信方法。在客户端和服务端之间建立两个不同的应用层协议通道,客户端通过其中一个应用层协议通道发送应用程序生成的请求数据至服务端的网络服务,服务端通过另一个应用层协议通道将网络服务生成的响应数据返回至应用程序。通过两个独立的应用层协议通道分别传输请求数据和响应数据,提升了应用程序对网络服务的访问效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于应用层协议的数据通信方法,以及执行该方法的客户端、服务端以及服务提供系统。
背景技术
大数据时代,随着网络服务的种类急速增长,每种网络服务的处理量也快递扩张。因此,传统的通过单个服务端来部署网络服务已经难以满足海量业务的需求。目前,主流的网络服务处理架构都是分布式的,由多个部署了网络服务的服务端来协同处理海量业务。在这种架构下,超文本传输协议(hypertest transfer protocol,HTTP)和超文本传输安全协议(hypertext transfer protocol secure,HTTPS)被设计用于不同服务端上运行的网络服务之间以及客户端和服务端之间的通信。
以HTTP为例,常见的基于HTTP的通信流程中,在HTTP客户端与HTTP服务端之间建立传输控制协议(transmission control protocol,TCP)连接后,HTTP客户端向HTTP服务端发送网络请求,HTTP服务端接收网络请求后,根据网络请求向HTTP客户端发送响应信息。随后,该次请求结束,断开为该次请求建立的TCP连接,该场景也称之为短连接。虽然HTTP协议也支持长连接,也即在一次TCP连接中完成多轮网络请求和相应的响应信息,但客户端和服务端之间的通信效率仍然不足。
发明内容
本申请提供了一种基于应用层协议的数据通信方法,该方法提升了应用程序和网络服务之间的通信效率。
本申请的第一方面提供了一种基于应用层协议的数据通信方法,包括:客户端的通道管理模块和服务端的通道管理模块在客户端上运行的应用程序和服务端上运行的网络服务之间建立第一应用层协议通道和第二应用层协议通道;客户端的协议栈通过该第一应用层协议通道发送该应用程序生成的请求数据至该网络服务;获取该请求数据后,该网络服务根据该请求数据生成响应数据;该服务端的协议栈通过该第二应用层协议通道将该响应数据发送至该应用程序;其中,该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接。该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接,也即第一应用层协议通道和该第二应用层协议通道的建立过程中,需要建立两个不同的传输层协议连接。
通过两个不同的应用层协议通道,使得应用程序对网络服务的数据传输不必受限于在先数据的处理进度,提升了应用程序对网络服务的访问效率,提升了应用程序和网络服务之间的通信效率。
在一种可能的实现方式中,该应用层协议为HTTP或HTTPS。
在一种可能的实现方式中,客户端的协议栈通过该第一应用层协议通道发送该应用程序生成的后续请求数据至该网络服务,该后续请求数据的生成时间在该请求数据的生成时间之后。客户端的协议栈发送该后续请求数据时,无须等待接收该请求数据对应的响应数据。
在一种可能的实现方式中,该请求数据由该应用程序内运行的执行者生成,该方法还包括:该客户端为该请求数据生成请求数据标识ID,在第一应用层协议通道内传输的每个请求数据的请求数据ID不同;该客户端的协议栈通过该第一应用层协议通道发送该请求数据和该请求数据ID至该网络服务,其中,该请求数据和该请求数据ID携带于同一报文。
该网络服务根据该请求数据生成响应数据后,该方法还包括:该服务端的协议栈通过该第二应用层协议通道将该响应数据和该请求数据ID通过同一报文发送至该客户端;该客户端根据从该第二应用层协议通道接收的该请求数据ID,确定该执行者;该客户端将该响应数据发送至该执行者。
为每个请求数据分配请求数据ID,并将该请求数据ID和响应数据一同返回至客户端,使得客户端能够根据请求数据ID识别响应数据的目标执行者(生成请求数据的执行者)。使得网络服务对请求数据的处理顺序可以更灵活,无论以各种顺序处理请求数据,网络服务生成的响应数据都可以被准确的返回给目标执行者。
在一种可能的实现方式中,接收到建立第一应用层协议通道的通道建立请求报文和建立第二应用层协议通道的通道建立请求报文后,该服务端的数据处理池分别为该第一应用层协议通道分配第一空间,为该第二应用层协议通道分配第二空间;该服务端的数据处理池记录该第一空间和该第二空间的对应关系;该服务端将从该第一应用层协议通道接收的该请求数据存入该第一空间;在网络服务生成响应数据后,根据该记录的对应关系,该数据处理池将该响应数据存入该第二空间。
服务端为每个应用层协议通道分配了独立的空间,第一空间用于存储第一应用层协议通道发送来的请求数据,第二空间用于存储网络服务根据第一空间内的请求数据生成的响应数据,第二空间内的响应数据通过第二应用层协议通道发送至客户端。为两个应用层协议通道分配独立的空间,提升了服务端对应用层协议通道内传输的数据的管理精度。
本申请的第二方面,提供了一种服务提供系统,该系统包括至少一个客户端以及至少一个服务端。至少一个客户端和至少一个服务端通过通信网络建立连接。每个客户端上运行有应用程序,应用程序访问服务端上运行的网络服务。该服务提供系统中的客户端执行第一方面提供的方法中客户端执行的方法,该服务提供系统中的客户端执行第一方面提供的方法中服务端执行的方法。
本申请的第三方面提供了一种客户端执行的基于应用层协议的数据通信方法。该方法包括:客户端的通道管理模块生成第一通道建立请求报文,该第一通道建立请求报文包括第一通道类型字段,该第一通道类型字段指示基于该第一通道建立请求报文建立的第一应用层协议通道为请求类型,发送该第一通道建立请求报文至服务端;客户端的通道管理模块生成第二通道建立请求报文,该第二通道建立请求报文包括第二通道类型字段,该第二通道类型字段指示基于该第二通道建立请求报文建立的第二应用层协议通道为响应类型,发送该第二通道建立请求报文至该服务端;其中,该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接;客户端的应用程序生成请求数据,客户端的协议栈接收该请求数据后,通过该第一应用层协议通道发送该请求数据至该服务端上运行的网络服务,客户端的协议栈通过该第二应用层协议通道接收该请求数据对应的响应数据。
在一种可能的实现方式中,该方法还包括:客户端的数据匹配池为该请求数据生成请求数据ID;客户端的协议栈通过该第一应用层协议通道发送该请求数据和该请求数据ID至该网络服务;客户端的协议栈通过该第二应用层协议通道接收该请求数据对应的响应数据和该请求数据ID;客户端的数据匹配池根据从该第二应用层协议通道接收的该请求数据ID,确定生成该请求数据的执行者,将该响应数据发送至该执行者。
本申请的第四方面,提供了一种客户端,该客户端运行时执行第三方面提供的任一方法。该客户端包括:通道管理模块,用于生成第一通道建立请求,该第一通道建立请求包括第一通道类型字段,该第一通道类型字段指示基于该第一通道建立请求建立的第一应用层协议通道为请求类型;生成第二通道建立请求,该第二通道建立请求包括第二通道类型字段,该第二通道类型字段指示基于该第二通道建立请求建立的第二应用层协议通道为响应类型;其中,该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接。可选的,该客户端还包括应用程序,用于生成请求数据,将该请求数据发送至协议栈。该客户端还包括协议栈,用于发送该第一通道建立请求至该服务端;发送该第二通道建立请求至该服务端;通过该第一应用层协议通道发送该请求数据至该服务端上运行的网络服务;通过该第二应用层协议通道接收该请求数据对应的响应数据。
在一种可能的实现方式中,该客户端还包括:数据匹配池,用于为该请求数据生成请求数据ID,记录生成该请求数据的执行者和该请求数据ID的对应关系;将该请求数据ID发送至该协议栈。该协议栈,用于通过该第一应用层协议通道发送该请求数据和该请求数据ID至该网络服务;通过该第二应用层协议通道接收该请求数据对应的响应数据和该请求数据ID;将该响应数据和该请求数据ID发送至该数据匹配池。该数据匹配池,还用于根据该记录的对应关系和该请求数据ID,确定生成该请求数据的执行者;将该响应数据发送至该执行者。
本申请的第五方面提供了一种客户端,也即一种计算机,包括处理器和存储器。该处理器,用于访问该存储器中的指令执行第三方面提供的任一方法。
本申请的第六方面提供了一种非瞬态的可读存储介质,该非瞬态的可读存储介质中存储的指令被客户端执行时,该客户端执行前述第三方面提供的任一方法。该存储介质中存储了程序指令。该存储介质包括但不限于易失性存储器,例如随机访问存储器,和非易失性存储器,例如快闪存储器、硬盘(hard disk drive,HDD)、固态硬盘(solid statedrive,SSD)。
本申请的第七方面提供了一种计算机程序产品,该计算机程序产品包含的指令被客户端执行时,该客户端执行前述第三方面提供的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第三方面提供的任一方法的情况下,可以下载该计算机程序产品并在客户端上执行该计算机程序产品包含的指令。
本申请的第八方面提供了一种服务端执行的基于应用层协议的数据通信方法。该方法包括:服务端的协议栈接收第一通道建立请求报文,该第一通道建立请求报文包括第一通道类型字段,该第一通道类型字段指示基于该第一通道建立请求报文建立的第一应用层协议通道为请求类型。服务端的协议栈接收第二通道建立请求报文,该第二通道建立请求报文包括第二通道类型字段,该第二通道类型字段指示基于该第二通道建立请求报文建立的第二应用层协议通道为响应类型;其中,该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接。随后,服务端的协议栈通过该第一应用层协议通道接收请求数据。服务端的网络服务根据该请求数据,生成响应数据。服务端的协议栈通过该第二应用层协议通道发送该响应数据至生成该请求数据的应用程序。
在一种可能的实现方式中,该方法还包括:服务端的协议栈通过该第一应用层协议通道接收该请求数据对应的请求数据ID。生成该响应数据后,服务端的数据处理池建立该响应数据和该请求数据ID的对应关系。服务端的协议栈通过该第二应用层协议通道发送该响应数据和该请求数据ID至生成该请求数据的客户端。
在一种可能的实现方式中,服务端的数据处理池为该第一应用层协议通道分配第一空间;为该第二应用层协议通道分配第二空间。服务端的通道管理模块记录该第一空间和该第二空间的对应关系。服务端的协议栈将从该第一应用层协议通道接收的该请求数据存入该第一空间。根据该记录的对应关系,服务端的协议栈将该响应数据存入该第二空间。
本申请的第九方面,提供了一种服务端,该服务端运行时执行第八方面提供的任一方法。该服务端包括:通道管理模块,用于接收第一通道建立请求,该第一通道建立请求包括第一通道类型字段,该第一通道类型字段指示基于该第一通道建立请求建立的第一应用层协议通道为请求类型;接收第二通道建立请求,该第二通道建立请求包括第二通道类型字段,该第二通道类型字段指示基于该第二通道建立请求建立的第二应用层协议通道为响应类型;其中,该第一应用层协议通道和该第二应用层协议通道基于不同的传输层协议连接。该服务端还包括协议栈,用于通过该第一应用层协议通道接收请求数据。可选的,该服务端还包括网络服务,用于根据该请求数据,生成响应数据,发送该响应数据至该协议栈。该协议栈,还用于通过该第二应用层协议通道发送该响应数据至生成该请求数据的应用程序。
在一种可能的实现方式中,该协议栈,还用于通过该第一应用层协议通道接收该请求数据对应的请求数据ID;通过该第二应用层协议通道发送该响应数据和该请求数据ID至生成该请求数据的客户端。
在一种可能的实现方式中,该服务端还包括数据处理池,用于为该第一应用层协议通道分配第一空间,为该第二应用层协议通道分配第二空间。该通道管理模块,用于记录该第一空间和该第二空间的对应关系。该协议栈,用于将从该第一应用层协议通道接收的该请求数据存入该第一空间。该通道管理模块,用于根据该记录的对应关系,将该响应数据存入该第二空间。
本申请的第十方面提供了一种服务端,也即一种计算机,包括处理器和存储器。该处理器,用于访问该存储器中的指令执行第八方面提供的任一方法。
本申请的第十一方面提供了一种非瞬态的可读存储介质,该非瞬态的可读存储介质中存储的指令被服务端执行时,该服务端执行前述第八方面提供的任一方法。该存储介质中存储了程序指令。该存储介质包括但不限于易失性存储器,例如随机访问存储器,和非易失性存储器,例如快闪存储器、HDD、SSD。
本申请的第十二方面提供了一种计算机程序产品,该计算机程序产品包含的指令被服务端执行时,该服务端执行前述第八方面提供的任一方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第八方面提供的任一方法的情况下,可以下载该计算机程序产品并在服务端上执行该计算机程序产品包含的指令。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需要使用的附图作以简单地介绍。
图1为本申请提供的服务提供系统的架构图;
图2为本申请提供的服务提供系统的另一架构图;
图3为本申请提供的客户端和服务端使用的协议栈的示意图;
图4为本申请提供的通道建立请求报文的示意图;
图5为本申请提供的数据传输报文的示意图;
图6为本申请提供的通道建立请求报文的另一示意图;
图7为本申请提供的数据传输报文的另一示意图;
图8为本申请提供的数据通信方法的流程示意图;
图9为本申请提供的本申请提供的通道建立请求报文包括的应用层协议头的示意图;
图10为本申请提供的在通道建立过程中的服务提供系统的示意图;
图11为本申请提供的在数据传输过程中的服务提供系统的示意图;
图12为本申请提供的在数据传输过程中的服务提供系统的示意图;
图13为本申请提供的在数据传输过程中的服务提供系统的示意图;
图13为本申请提供的在数据传输过程中的服务提供系统的示意图;
图14为本申请提供的在数据传输过程中的服务提供系统的示意图;
图15为本申请提供的应用程序视角的应用层协议请求/响应的示意图;
图16为本申请提供的客户端的结构示意图;
图17为本申请提供的服务端的结构示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方法进行描述。本申请中各个“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系。
本申请中,参考图1,服务提供系统包括至少一个客户端和至少一个服务端,客户端和服务端之间通过通信网络互连,服务端向客户端提供网络服务(web service)。其中,其中,客户端可以是例如,智能电话(smart phone)、个人数字助理(personal digitalassistant,PDA)、平板型电脑、膝上型电脑(laptop computer)、个人电脑(personalcomputer,PC)、服务器等设备。常见的服务端包括个人电脑或服务器。客户端和服务端之间的通信网络可以是有线的通信网络,也可以是无线的通信网络,例如:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long term evolution,LTE)系统、无线保真(wireless fidelity,WiFi)。
本申请中,每秒事务量(transaction per second,TPS),指代服务提供系统每秒能够处理的请求的数量,可以用于衡量服务提供系统的吞吐量。
基于图2,进一步介绍服务提供系统中的客户端200和服务端400。客户端200上运行有至少一个应用程序(应用程序204至应用程序20N),N为大于或等于4的整数。每个应用程序内运行有至少一个执行者(actor),执行者可以是线程或者回调(callback)函数。应用程序在运行的过程中,应用程序的执行者向服务端400上运行的至少一个网络服务(网络服务404至网络服务40M)发出应用层协议请求,N为大于或等于4的整数,以请求网络服务根据请求进行对应的处理。以HTTP请求为例,常见的处理类型(请求方法)包括POST、GET、PUT等。
客户端200上运行的通道管理模块203和服务端400上运行的通道管理模块403配合建立客户端200和服务端400之间的请求通道和响应通道。请求通道和响应通道为独立的两个应用层协议通道。其中,请求通道用于传输客户端200生成的应用层协议请求至服务端400,响应通道用于传输服务端400根据应用层协议请求生成的应用层协议响应至客户端200。本申请提供的方案中,协议栈201、数据匹配池202和通道管理模块203可以封装成一个软件开发工具(software development kit,SDK),应用程序20N对协议栈201、数据匹配池202或者通道管理模块203的访问通过调用该SDK的应用程序接口(application programinterface,API)来实现。
服务端400上运行的数据处理池402用于存储应用层协议请求中携带的多个请求数据以及每个请求数据的标识ID,并为网络服务处理应用层协议请求后生成的应用层协议响应内的每个响应数据配置ID。一个请求数据的ID和基于该请求数据生成的响应数据的ID相同,即应用层协议请求中携带的某一请求数据对应的ID,也被数据处理池402配置给在应用层协议响应中携带的该请求数据对应的响应数据。客户端200上运行的数据匹配池202用于分配并记录应用层协议请求内携带的每个请求数据的ID,以此识别每个请求数据对应的响应数据。
以下,通过图3介绍客户端200上运行的协议栈201和服务端400上运行的协议栈401。协议栈201和协议栈401内包括多层协议相关的处理机制。图3中,链路层协议包括链路层协议的处理机制,网络层协议包括网络层协议的处理机制,传输层协议包括传输层协议的处理机制,应用层协议包括应用层协议的处理机制。应用程序期望访问网络服务的情况下,应用程序生成多个请求数据,这多个请求数据在协议栈201中按照本申请提供的双工通道协议封装入应用层协议体后,进一步被依次添加传输层协议头、网络层协议头、链路层协议头,然后通过通信网络传输至协议栈401。图5示出了封装完毕的数据传输报文,每个数据传输报文携带了至少一个数据(请求数据或响应数据)和请求数据ID。
与之类似的,如图4,在创建请求通道和响应通道的过程中使用的通道建立请求报文也通过协议栈201逐层封装生成。每个应用层协议请求或每个应用层协议响应由通道建立请求报文和多个数据传输报文构成。报文发送至服务端400后,协议栈401按照链路层协议、网络层协议、传输层协议、应用层协议的顺序解析报文,以获得双工通道协议头和体内携带的双工通道控制字段。
常见的链路层协议包括以太网协议(ethernet protocol),常见的网络层协议包括互联网协议(internet protocol),常见的传输层协议包括TCP,常见的应用层协议包括HTTP、HTTPS。图6和图7示出了基于常见协议的通道建立请求报文和数据传输报文。
图8介绍了本申请提供的数据通信方法600,该方法包括3个部分,即通道建立部分、数据传输部分和通道关闭部分。
首先,通道建立部分包括S600、S601和S602,其中,S601和S602可以以任意顺序执行。
S600,通道管理模块203发送通道建立请求至协议栈201。该通道建立请求携带用于建立请求通道的双工通道控制字段和响应通道的双工通道控制字段,用于建立请求通道的双工通道控制字段的具体内容和响应通道的双工通道控制字段的具体内容见后续。
通道管理模块203也可以通过两个通道建立请求,分别发送用于建立请求通道的双工通道控制字段和响应通道的双工通道控制字段至协议栈201。
S601,协议栈201发送用于建立请求通道的通道建立请求报文至协议栈401。
S601后,协议栈401解析S601中接收的通道建立请求报文,将解析出的双工通道控制字段发送至通道管理模块403。通道管理模块203和通道管理模块403根据双工通道控制字段在客户端200的应用程序204和服务端400的网络服务404间建立请求通道,该请求通道为应用层协议通道。
通道建立请求报文参考图4和图6。具体的,如图9所示,应用层协议头内包括应用层协议的原始字段,还包括通道建立请求内携带的双工通道控制字段。通道建立请求报文中双工通道控制字段之外的内容为协议栈201封装的。双工通道控制字段包括双工通道ID和通道类型。以应用层协议为HTTP协议为例,原始字段包括请求行和请求头,请求行包括请求方法,统一资源定位器(uniform resource locator,URL),协议版本等信息。该请求方法常见为POST,该URL指向网络服务404。请求头包括Connection字段和Content-Type字段,例如:
Connection:keep-alive
Content-Type:text/event-stream
双工通道控制字段包括Duplex-Channel-ID(双工通道ID)字段和Duplex-Channel-Type(通道类型)字段,例如:
Duplex-Channel-ID:1
Duplex-Channel-Type:request
通道管理模块203和通道管理模块403还为请求通道分配了通道ID(channel-ID)为0,并记录双工通道ID和通道ID的对应关系。以记为<1,<0,>>为例,表达双工通道ID为1,该双工通道的请求通道的ID为0。
S602,协议栈201发送用于建立另一请求通道的通道建立请求报文至协议栈401。
S601后,协议栈401解析S602中接收的通道建立请求报文,将解析出的双工通道控制字段发送至通道管理模块403。通道管理模块203和通道管理模块403根据双工通道控制字段在客户端200的应用程序204和服务端400的网络服务404间建立响应通道,该响应通道为应用层协议通道。
S601中建立的请求通道和S602中建立的响应通道为两个独立的应用层协议通道,独立体现在两个应用层协议通道基于不同的传输层协议连接。以应用层协议采用HTTP且传输层采用TCP为例,S601中建立的HTTP通道和S602中建立的HTTP通道基于不同的TCP连接。
一个应用层协议通道基于一个TCP连接,且通过多个携带相同传输层协议头、网络层协议头、链路层协议头的报文来传输应用层协议请求/响应。一个应用层协议通道内传输的各个报文的传输层协议头的序号(例如传输层协议采用TCP连接的情况下)可能不同。S601中建立的请求通道和S602中建立的响应通道组成一对双工通道,也即S601中建立的请求通道传输应用层协议请求,S602中建立的响应通道传输对应的应用层协议响应。
与S601类似的,S602中采用的通道建立请求报文参考图4和图6。具体的,如图9所示,应用层协议头内包括应用层协议的原始字段,还包括通道建立请求内携带的双工通道控制字段。通道建立请求报文中双工通道控制字段之外的内容为协议栈201封装的。双工通道控制字段包括双工通道ID和通道类型。以应用层协议为HTTP协议为例,原始字段包括请求行和请求头,请求行包括请求方法,统一资源定位器(uniform resource locator,URL),该请求方法常见为POST,该URL指向网络服务404;请求头包括Connection字段和Content-Type字段,例如:
Connection:keep-alive
Content-Type:text/event-stream
Connection字段和Content-Type字段还可以有其他取值,此处仅为实例。
双工通道控制字段包括Duplex-Channel-ID(双工通道ID)字段和Duplex-Channel-Type(通道类型)字段,例如:
Duplex-Channel-ID:1
Duplex-Channel-Type:response
通道管理模块203和通道管理模块403还为请求通道分配了通道ID(channel-ID)为1,并记录双工通道ID和通道ID的对应关系。以记为<1,<0,1>>为例,表达双工通道ID为1,该双工通道的请求通道的ID为0,该双工通道的响应通道的ID为1。如图10所示,S601和S602执行完毕后,数据处理池402内为请求通道和响应通道分别创建了一块空间用以存储请求数据以及响应数据,这两块空间分别被标记为<1,<0>>,<1,<1>>。通道管理模块203还记录了应用程序204和双工通道ID 1的对应关系,以在应用程序204发起通道关闭请求的时候,确定属于应用程序204的双工通道ID,具体参见S615。
通道管理模块403可以记录通道建立请求报文中携带的五元组(源/目的网络协议(internet protocol,IP)地址、源/目的媒体访问控制(media access control,MAC)地址、端口号)和双工通道ID/通道ID的对应关系。例如,通道管理模块403记录五元组0和双工通道ID 1/通道ID 0的对应关系,记录五元组1和双工通道ID 1/通道ID 1的对应关系。则通道管理模块403可以确定包括五元组1的报文对应的双工通道ID为1且通道ID为1,且通道管理模块403可以确定包括五元组0的报文对应的双工通道ID为1且通道ID为0。通过记录五元组和双工通道ID/通道ID的对应关系,通道管理模块403可以确定每一个报文对应的双工通道ID以及对应的通道ID。其中,报文的五元组可以由协议栈401解析得出并发送至通道管理模块403。
可选的,S601后,通道管理模块403可以通过请求通道返回通道建立成功响应,以指示请求通道建立成功。类似的,S602后,通道管理模块403可以通过响应通道返回通道建立成功响应,以指示响应通道建立成功。在此情况下,S601和S602中发出的两个通道请求建立报文的Connection字段需要为keep-alive,以免通道建立成功响应返回客户端200后请求通道和响应通道被关闭。
以上S600的执行,由应用程序204发起。应用程序204首次发起对网络服务404的应用层协议请求时或应用程序204初始化与网络服务404之间的应用层协议通道时,应用程序204触发通道管理模块203执行S600。
S601和S602后,应用程序204与网络服务404之间的应用层协议通道建立完毕,应用程序204可以传输请求数据至网络服务404,数据传输部分包括S603至S614。
S603,应用程序204的执行者生成请求数据,将请求数据发送至数据匹配池202。
该请求数据中包括处理类型。可选的,该请求数据还可以包括待处理的数据块。
其中,处理类型指示网络服务的操作类型。例如,处理类型可以是新增,以指示网络服务404接收该待处理的数据块后存储该待处理的数据块;再例如,处理类型可以是替换,以指示网络服务404接收该待处理的数据后,用该待处理的数据替换掉某一数据块;再例如,处理类型可以是删除,以指示网络服务404删除某一数据块,此种情况下,该请求数据可以不包含待处理的数据块;再例如,处理类型可以是访问,以指示网络服务404返回某一数据块至应用程序204,此种情况下,该请求数据可以不包含待处理的数据块。
S604,数据匹配池202为该请求数据生成对应的请求数据ID,存储该请求数据ID。
如图11所示,图11内数据匹配池内实线方框0指代请求数据ID 0。数据匹配池202还记录生成该请求数据的执行者和该请求数据ID的对应关系。
S604后,数据匹配池202可以通知应用程序204挂起生成该请求数据的执行者,等待请求数据对应的响应数据的返回。应用程序204的其他执行者不受影响,可以继续发送请求数据至数据匹配池202。
S605,数据匹配池202将该请求数据和生成的请求数据ID发送至协议栈201。
S606,协议栈201生成数据传输报文,将生成的数据传输报文通过请求通道发送至协议栈401。
该数据传输报文如图5或图7所示,其中,应用层协议体中携带了该请求数据和该请求数据ID。图11中请求数据ID 0和请求数据通过请求通道被发送至协议栈401,数据传输报文的其他部分在图11中略去。
S607,协议栈401解析该数据传输报文,将解析出来的请求数据ID 0和请求数据存入数据处理池402内为请求通道开辟的空间<1,<0>>。
在服务提供系统中建立有多对双工通道的情况下,协议栈401在解析数据传输报文的过程中,依据数据传输报文的内容(例如,五元组)可以确定该数据传输报文对应于哪对双工通道中的请求通道或响应通道。在确定了该数据传输报文归属的通道后,协议栈401可以将解析出来的请求数据ID和请求数据存入数据处理池402中该数据传输报文归属的通道对应的空间中。
S608,网络服务404从空间<1,<0>>中获取请求数据ID 0和请求数据。
S609,网络服务404根据该请求数据生成响应数据。
响应数据包括本次请求数据的处理信息,例如网络服务执行本次请求数据的时间戳、网络服务的类型。当请求数据包括的处理类型为访问时,该响应数据还可以包括根据请求数据访问到的数据块,访问到的数据块的长度等内容。
S610,网络服务404将请求数据ID 0和响应数据存入数据处理池402内为响应通道开辟的空间<1,<1>>,如图11所示。
网络服务404访问通道管理模块403获得通道ID的对应关系,确定从通道ID 0对应的空间内获取的请求数据ID 0和请求数据对应的响应数据需要被发送至通道ID 1对应的空间。或者,网络服务404将请求数据ID 0和响应数据发送至通道管理模块403,由通道管理模块403根据记录的通道ID的对应关系,确定从通道ID 0对应的空间内获取的请求数据ID0和请求数据对应的响应数据需要被发送至通道ID 1对应的空间,由通道管理模块403将请求数据ID 0和响应数据存入数据处理池402内为响应通道开辟的空间<1,<1>>。
S611,协议栈401从数据处理器402中的空间<1,<1>>获取请求数据ID和响应数据,根据获取的请求数据ID和响应数据,生成数据传输报文。
S611中生成的数据传输报文如图5或图7所示,其中,应用层协议体中携带了该响应数据和该请求数据ID。图12中请求数据ID 0和响应数据通过响应通道被发送至协议栈201,数据传输报文的其他部分略去。
协议栈401生成了携带响应数据的数据传输报文后,数据处理池402开辟的空间<1,<0>>和<1,<1>>内存储的请求数据ID/请求数据以及请求数据ID/响应数据可以被删除,以节省服务端400的存储空间。
S612,协议栈401将生成的数据传输报文通过响应通道发送至协议栈201。
S612即协议栈401基于请求通道传送来的应用层协议请求生成应用层协议响应,将应用层协议响应通过响应通道返回至协议栈201。应用层协议响应除了数据传输报文(携带响应数据)外,还应包括应用层协议头。协议栈401通过响应通道返回第一个响应数据之前,还应该返回包括应用层协议头的报文至协议栈201,该报文的格式参考图4或图6。该报文的应用层协议头中携带与S602中通道建立请求报文的应用层协议头中携带的相同的双工通道控制字段,还包括应用层协议的原始字段,该报文携带的应用层协议的原始字段可能与S602中通道建立请求报文部分相同,具体参考应用层协议的类型。以HTTP协议为例,该报文携带的应用层协议头即图15中HTTP响应的头。
S613,协议栈201解析该数据传输报文,将解析出来的请求数据ID 0和响应数据存入数据匹配池202,如图13所示。
S614,数据匹配池202通过S604中记录的执行者和请求数据ID的对应关系,确定该响应数据的目的地为S603中生成的请求数据的执行者,将响应数据发送至该执行者。
S614后,应用程序204的执行者对网络服务404的一次请求被处理完毕。该过程中由于请求数据和响应数据采用了不同的应用层协议通道来传输,互不干扰,也即这两个不同的应用层协议通道构成了一对双工通道。与现有的HTTP连接技术相比,应用程序204可以持续通过请求通道发送请求数据,下一请求数据的发送无须等待上一请求数据对应的响应数据的接收,提升了服务提供系统的TPS,实现了应用程序对网络服务更高效率的访问。
以图14为例,应用程序204生成了请求数据0和请求数据P,P为大于0的任意整数,也即应用程序204在请求数据0和请求数据P之间可能发送其他请求数据至服务端400。请求数据0和请求数据P被生成后,通过请求通道发送至服务端400,请求数据0和请求数据P的发送过程中无须等待任意响应数据的接收。服务端400在接收了请求数据0和请求数据P后,网络服务404可以以任意顺序处理请求数据,暂时无法处理的请求数据可以缓存在数据处理池402内。如图14中,响应数据P先于响应数据0生成,则响应数据P可以先通过响应通道发送回客户端200。与之对应的,现有的HTTP连接技术是先到先得(first in first out,FIFO),也即先发送至网络服务的请求数据先被处理,而在先到达网络服务的请求数据不被处理完毕前,后续的请求数据无法被处理。与之相对的,本申请提供的方法中,网络服务404处理请求数据的顺序可以不受FIFO的限制,处理机制更加灵活,提升访问控制的精细程度。
如图15所示,从应用程序204的角度来看,采用本申请提供的数据通信方法后,从通道建立到通道关闭之间,应用程序204通过请求通道发送了一个持续存活,长度不限(数据传输报文的数量不限)的HTTP请求(以HTTP请求为例,也可以是其他应用层协议请求)。该HTTP请求(响应)的头,也即前述通道建立请求报文,该HTTP请求(响应)的体通过一个或多个数据传输报文被传输。与之对应的,应用程序204通过响应通道接收了一个持续存活,长度不限的HTTP响应。将本方案的双工通道协议加载在现有的应用层协议之上,其一,可以借用现有的应用层协议通道的创建/关闭等管理流程,避免重复设计,其二,依赖现有的应用层协议通道的稳定性,能保证每个数据都能正确传输,其三,由于从应用程序的视角而言,发送/接收的仍然是应用层协议请求/响应,减少了应用程序的改动,适应性更强。
S615及后续步骤后为通道关闭部分。
S615,应用程序204发送通道关闭请求至通道管理模块203。
应用程序204在确定其上运行的执行者无新的请求数据需要发送至网络服务404的情况下,发送通道关闭请求至通道管理模块203。
通道管理模块203接收到通道关闭请求后,如果客户端200和服务端400间建立了多个双工通道,通道管理模块203需要根据在通道建立部分中记录的应用程序204和双工通道ID 1的对应关系,在通道关闭请求中携带双工通道ID 1,并将携带了该信息的通道关闭请求发送至协议栈201。
S616,协议栈201根据通道关闭请求生成通道关闭请求报文,并通过请求通道将通道关闭请求报文发送至协议栈401。
通道关闭请求报文除了携带双工通道ID,还携带了通道关闭标识。通道关闭请求报文的结构,可以参考图5或图7中的数据传输报文,区别在于通道关闭请求报文可以携带通道关闭标识,例如在请求数据ID中采用预先约定的特殊ID,该特殊ID区别于任一请求数据ID,例如为-1。通道关闭请求报文的数据部分可以携带双工通道ID。
S617,协议栈401解析该通道关闭请求报文,将通道关闭请求报文中携带的双工通道ID发送至通道管理模块403。
协议栈401对通道关闭请求报文进行解析,获得通道关闭标识和双工通道ID。通过通道关闭标识,协议栈401确定该报文的功能为关闭某一双工通道,因此协议栈401将解析出来的双工通道ID发送至通道管理模块403。
S618,通道管理模块403确定数据处理池402中为该双工通道ID创建的空间内全部数据处理完毕。
具体的,通道管理模块403在获取了需要关闭的双工通道ID,例如为双工通道1,后,确认数据处理池402中为双工通道1创建的空间内的数据是否被处理完毕,也即<1,<0>>内有没有未被处理的请求数据且<1,<1>>内有没有未被发送至客户端200的响应数据。如果<1,<0>>内有未被处理的请求数据或者<1,<1>>内有未被发送至客户端200的响应数据,那么通道管理模块403等待预设的时长后再次确认数据处理池402中为双工通道1创建的空间内的数据是否被处理完毕,直到网络服务404处理完毕全部请求数据且全部响应数据被发送至客户端200(参考S608至S612)。如果<1,<0>>内没有未被处理的请求数据且<1,<1>>内没有未被发送至客户端200的响应数据,则之前通过双工通道1发送的请求数据以及对应的响应数据已经全部处理完毕。采用本申请提供的数据通信方法的情况下,可能出现应用程序生成请求数据的速度快于网络服务处理请求数据的速度的情况。因此不能由应用程序直接指示通道管理模块关闭双工通道,而是需要由服务端的通道管理模块确定全部数据都被妥善处理完毕后,才能正式关闭双工通道。
可选的,S618也可以由S615之前,应用程序204确认其上运行的执行者发送的请求数据对应的响应数据都已经返回的动作来替代。也即,应用程序204确认其上运行的执行者发送的请求数据对应的响应数据都已经被接收的情况下,执行S615,即发送通道关闭请求至协议栈201,此种情况下无须执行S618。
S619,通道管理模块403发送通道关闭响应至协议栈401。通道关闭响应中携带双工通道ID以及通道关闭标识。
S620,协议栈401根据通道关闭响应生成通道关闭响应报文,并通过响应通道将通道关闭响应报文发送至协议栈201。
通道关闭响应报文中携带双工通道ID以及通道关闭标识。通道关闭响应报文的结构,可以参考图5或图7中的数据传输报文,区别在于请求数据ID部分可以携带通道关闭标识,例如采用预先约定的特殊ID,该特殊ID区别于任一请求数据ID。通道关闭响应报文的数据部分可以携带双工通道ID。
S620后,通道管理模块203和通道管理模块403关闭通道0和通道1,具体的关闭方法可以采用现有技术中关闭应用层协议通道的方法。
S618后,通道管理模块403可以通知数据处理池402释放为双工通道1创建的空间以节省服务端400的存储资源。通道管理模块403还可以删除之前记录的双工通道ID 1和通道ID 0和通道ID 1的对应关系。S620后,通道管理模块203可以删除之前记录的应用程序204和双工通道ID 1以及双工通道ID 1和通道ID 0和通道ID 1的对应关系。
图16提供了一种客户端800。客户端800包括总线803、处理器801、通信接口802和存储器804。处理器801、存储器804和通信接口802之间通过总线803通信。通信接口802用于与外部通信,例如发送通道建立请求报文或数据传输报文至通信网络。
其中,处理器801可以为中央处理器(英文:central processing unit,缩写:CPU)。存储器804可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random access memory,缩写:RAM)。存储器804还可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器,HDD或SSD。
存储器804中存储有可执行指令,处理器801执行该可执行指令以执行前述图8提供的数据通信方法中客户端侧的动作。具体的,存储器804中存储可执行指令,以运行前述应用程序、通道管理模块、数据匹配池和协议栈。存储器804还可以包括运行客户端操作系统所需的可执行指令。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
图17提供了一种服务端1000。服务端1000包括总线1003、处理器1001、通信接口1002和存储器1004。处理器1001、存储器1004和通信接口1002之间通过总线1003通信。通信接口1002用于与外部通信,例如从通信网络接收通道建立请求报文或数据传输报文。
其中,处理器1001可以为CPU。存储器1004可以包括易失性存储器,例如RAM。存储器1004还可以包括非易失性存储器,例如ROM,快闪存储器,HDD或SSD。
存储器1004中存储有可执行指令,处理器1001执行该可执行指令以执行前述图8提供的数据通信方法中服务端侧的动作。具体的,存储器1004中存储可执行指令,以运行前述网络服务、通道管理模块、数据匹配池和协议栈。存储器1004还可以包括运行服务端操作系统所需的可执行指令。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如SSD)等。
Claims (18)
1.一种基于应用层协议的数据通信方法,其特征在于,包括:
在客户端上运行的应用程序和服务端上运行的网络服务之间建立第一应用层协议通道和第二应用层协议通道;
通过所述第一应用层协议通道发送所述应用程序生成的请求数据至所述网络服务;
所述网络服务根据所述请求数据生成响应数据;
通过所述第二应用层协议通道将所述响应数据发送至所述应用程序;
其中,所述第一应用层协议通道和所述第二应用层协议通道基于不同的传输层协议连接;
其中,所述方法还包括:
在所述服务端为所述第一应用层协议通道分配第一空间,为所述第二应用层协议通道分配第二空间;
记录所述第一空间和所述第二空间的对应关系;
所述服务端将从所述第一应用层协议通道接收的所述请求数据存入所述第一空间;
根据所述记录的对应关系,所述服务端将所述网络服务生成的所述响应数据存入所述第二空间。
2.如权利要求1所述的数据通信方法,其特征在于,所述请求数据由所述应用程序内运行的执行者生成,所述方法还包括:
所述客户端为所述请求数据生成请求数据标识ID;
通过所述第一应用层协议通道发送所述请求数据ID至所述网络服务;
所述网络服务根据所述请求数据生成响应数据后,所述方法还包括:
通过所述第二应用层协议通道将所述请求数据ID发送至所述客户端;
所述客户端根据从所述第二应用层协议通道接收的所述请求数据ID,确定所述执行者;
所述客户端将所述响应数据发送至所述执行者。
3.一种基于应用层协议的数据通信方法,其特征在于,包括:
生成第一通道建立请求报文,所述第一通道建立请求报文包括第一通道类型字段,所述第一通道类型字段指示基于所述第一通道建立请求报文建立的第一应用层协议通道为请求类型;
发送所述第一通道建立请求报文至服务端;
生成第二通道建立请求报文,所述第二通道建立请求报文包括第二通道类型字段,所述第二通道类型字段指示基于所述第二通道建立请求报文建立的第二应用层协议通道为响应类型;
其中,所述第一应用层协议通道和所述第二应用层协议通道基于不同的传输层协议连接;
发送所述第二通道建立请求报文至所述服务端;
通过所述第一应用层协议通道发送应用程序生成的请求数据至所述服务端上运行的网络服务;
通过所述第二应用层协议通道接收所述请求数据对应的响应数据。
4.如权利要求3所述的数据通信方法,其特征在于,所述方法还包括:
为所述请求数据生成请求数据ID;
通过所述第一应用层协议通道发送所述请求数据ID至所述网络服务;
通过所述第二应用层协议通道接收所述请求数据ID;
根据从所述第二应用层协议通道接收的所述请求数据ID,确定生成所述请求数据的执行者;
将所述响应数据发送至所述执行者。
5.一种客户端,其特征在于,包括:
通道管理模块,用于生成第一通道建立请求,所述第一通道建立请求包括第一通道类型字段,所述第一通道类型字段指示基于所述第一通道建立请求建立的第一应用层协议通道为请求类型;生成第二通道建立请求,所述第二通道建立请求包括第二通道类型字段,所述第二通道类型字段指示基于所述第二通道建立请求建立的第二应用层协议通道为响应类型;其中,所述第一应用层协议通道和所述第二应用层协议通道基于不同的传输层协议连接;
协议栈,用于发送所述第一通道建立请求至服务端;发送所述第二通道建立请求至所述服务端;通过所述第一应用层协议通道发送应用程序生成的请求数据至所述服务端上运行的网络服务;通过所述第二应用层协议通道接收所述请求数据对应的响应数据。
6.如权利要求5所述的客户端,其特征在于,
数据匹配池,用于为所述请求数据生成请求数据ID,记录生成所述请求数据的执行者和所述请求数据ID的对应关系;将所述请求数据ID发送至所述协议栈;
所述协议栈,用于通过所述第一应用层协议通道发送所述请求数据和所述请求数据ID至所述网络服务;通过所述第二应用层协议通道接收所述请求数据对应的响应数据和所述请求数据ID;将所述响应数据和所述请求数据ID发送至所述数据匹配池;
所述数据匹配池,还用于根据所述记录的对应关系和所述请求数据ID,确定生成所述请求数据的执行者;将所述响应数据发送至所述执行者。
7.一种客户端,其特征在于,包括处理器和存储器,所述处理器执行存储器中的指令执行权利要求3或4所述的方法。
8.一种非瞬态的可读存储介质,其特征在于,所述非瞬态的可读存储介质中存储的指令被客户端执行时,所述客户端执行权利要求3或4所述的方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包含的指令被客户端执行时,所述客户端执行权利要求3或4所述的方法。
10.一种基于应用层协议的数据通信方法,其特征在于,包括:
接收第一通道建立请求报文,所述第一通道建立请求报文包括第一通道类型字段,所述第一通道类型字段指示基于所述第一通道建立请求报文建立的第一应用层协议通道为请求类型;
接收第二通道建立请求报文,所述第二通道建立请求报文包括第二通道类型字段,所述第二通道类型字段指示基于所述第二通道建立请求报文建立的第二应用层协议通道为响应类型;
其中,所述第一应用层协议通道和所述第二应用层协议通道基于不同的传输层协议连接;
通过所述第一应用层协议通道接收请求数据;
通过所述第二应用层协议通道发送所述请求数据对应的响应数据至生成所述请求数据的应用程序。
11.如权利要求10的数据通信方法,其特征在于,还包括:
通过所述第一应用层协议通道接收所述请求数据对应的请求数据ID;
生成所述响应数据后,所述方法还包括:
通过所述第二应用层协议通道发送所述请求数据ID至生成所述请求数据的客户端。
12.如权利要求10或11的数据通信方法,其特征在于,还包括:
为所述第一应用层协议通道分配第一空间;
为所述第二应用层协议通道分配第二空间;
记录所述第一空间和所述第二空间的对应关系;
将从所述第一应用层协议通道接收的所述请求数据存入所述第一空间;
根据所述记录的对应关系,将所述响应数据存入所述第二空间。
13.一种服务端,其特征在于,包括:
通道管理模块,用于接收第一通道建立请求,所述第一通道建立请求包括第一通道类型字段,所述第一通道类型字段指示基于所述第一通道建立请求建立的第一应用层协议通道为请求类型;接收第二通道建立请求,所述第二通道建立请求包括第二通道类型字段,所述第二通道类型字段指示基于所述第二通道建立请求建立的第二应用层协议通道为响应类型;其中,所述第一应用层协议通道和所述第二应用层协议通道基于不同的传输层协议连接;
协议栈,用于通过所述第一应用层协议通道接收请求数据;通过所述第二应用层协议通道发送所述请求数据对应的响应数据至生成所述请求数据的应用程序。
14.如权利要求13所述的服务端,其特征在于,包括:
所述协议栈,还用于通过所述第一应用层协议通道接收所述请求数据对应的请求数据ID;通过所述第二应用层协议通道发送所述响应数据和所述请求数据ID至生成所述请求数据的客户端。
15.如权利要求13或14所述的服务端,其特征在于,还包括:
数据处理池,用于为所述第一应用层协议通道分配第一空间,为所述第二应用层协议通道分配第二空间;
所述协议栈,用于将从所述第一应用层协议通道接收的所述请求数据存入所述第一空间;
所述通道管理模块,用于记录所述第一空间和所述第二空间的对应关系,根据所述记录的对应关系,将所述响应数据存入所述第二空间。
16.一种服务端,其特征在于,包括处理器和存储器,所述处理器执行存储器中的指令执行权利要求10至12任一所述的方法。
17.一种非瞬态的可读存储介质,其特征在于,所述非瞬态的可读存储介质中存储的指令被服务端执行时,所述服务端执行权利要求10至12任一所述的方法。
18.一种计算机程序产品,其特征在于,所述计算机程序产品包含的指令被服务端执行时,所述服务端执行权利要求10至12任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/120468 WO2021068973A1 (zh) | 2019-10-12 | 2020-10-12 | 一种基于应用层协议的数据通信方法及其装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910968860 | 2019-10-12 | ||
CN2019109688607 | 2019-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653656A CN112653656A (zh) | 2021-04-13 |
CN112653656B true CN112653656B (zh) | 2022-06-07 |
Family
ID=75343245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911039001.6A Active CN112653656B (zh) | 2019-10-12 | 2019-10-29 | 一种基于应用层协议的数据通信方法及其装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112653656B (zh) |
WO (1) | WO2021068973A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113727056B (zh) * | 2021-08-30 | 2023-09-22 | 聚好看科技股份有限公司 | 一种数据传输连接的管理方法及服务器 |
CN113726904A (zh) * | 2021-09-03 | 2021-11-30 | 杭州安恒信息技术股份有限公司 | 一种服务器代理方法、装置、设备及计算机可读存储介质 |
CN114221995B (zh) * | 2021-11-11 | 2024-04-09 | 中国建设银行股份有限公司 | 服务调用方法、装置及电子设备 |
CN114615358B (zh) * | 2022-03-07 | 2022-09-02 | 广东工业大学 | 智能电子设备的仿真方法、电子设备和存储介质 |
CN114928597B (zh) * | 2022-05-20 | 2023-07-25 | 中国联合网络通信集团有限公司 | 数据传输方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101185296A (zh) * | 2005-04-25 | 2008-05-21 | 汤姆森特许公司 | 用于在本地网络和远程网络之间建立多链路接入的方法及相应的设备 |
CN103595714A (zh) * | 2013-11-08 | 2014-02-19 | 福建省视通光电网络有限公司 | 一种通过web服务通道实现数据传输的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1909191B1 (en) * | 2006-10-02 | 2011-09-14 | Sun Microsystems France S.A. | Method and system for transmitting data over a network |
US8249100B2 (en) * | 2008-09-25 | 2012-08-21 | Siemens Industry, Inc. | Method and arrangement for providing duplex communications between a client application and a service using an http request/reply channel |
CN103516673A (zh) * | 2012-06-21 | 2014-01-15 | 腾讯科技(深圳)有限公司 | 一种网络数据通信方法、系统及客户端和服务器 |
US20150058203A1 (en) * | 2013-08-22 | 2015-02-26 | Ebay Inc | Systems and methods for payment authorization using full-duplex communication from browser |
CN104243281B (zh) * | 2014-08-20 | 2018-04-27 | 广州华多网络科技有限公司 | 基于移动互联网的语音通信方法 |
CN106161130A (zh) * | 2015-04-14 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 基于WebSocket协议的性能监测装置、系统及方法 |
CN105847275A (zh) * | 2016-04-29 | 2016-08-10 | 掌赢信息科技(上海)有限公司 | 一种数据传输通道建立方法、系统和服务器 |
CN109088918B (zh) * | 2018-07-18 | 2021-09-21 | 创新先进技术有限公司 | 一种交互方法、客户端设备及服务端设备 |
CN109246085B (zh) * | 2018-08-15 | 2021-06-15 | 腾讯科技(深圳)有限公司 | 一种匿名网络访问方法、客户端、系统、服务器及介质 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
-
2019
- 2019-10-29 CN CN201911039001.6A patent/CN112653656B/zh active Active
-
2020
- 2020-10-12 WO PCT/CN2020/120468 patent/WO2021068973A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101185296A (zh) * | 2005-04-25 | 2008-05-21 | 汤姆森特许公司 | 用于在本地网络和远程网络之间建立多链路接入的方法及相应的设备 |
CN103595714A (zh) * | 2013-11-08 | 2014-02-19 | 福建省视通光电网络有限公司 | 一种通过web服务通道实现数据传输的方法 |
Non-Patent Citations (2)
Title |
---|
"A note on local receive channel scheduling versus transmit channel scheduling in wireless multi-channel ad hoc networks";Jens P. Elsner等;《2010 International Conference on Computer and Information Application》;20120130;全文 * |
"多通道适配数据收发系统的设计与实现";路德科等;《电脑知识与技术(学术交流)》;20070910;全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021068973A1 (zh) | 2021-04-15 |
CN112653656A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112653656B (zh) | 一种基于应用层协议的数据通信方法及其装置 | |
US10708360B2 (en) | Method for transport agnostic communication between internet of things client and broker | |
US11349815B2 (en) | Systems and methods for providing communications between on-premises servers and remote devices | |
US9246819B1 (en) | System and method for performing message-based load balancing | |
US8996657B2 (en) | Systems and methods for multiplexing network channels | |
RU2406233C2 (ru) | Передача большого объема сообщений при использовании одиночного нттр-запроса | |
US11700262B2 (en) | System and method to securely execute datacenter management operations remotely | |
EP2587769B1 (en) | Apparatus and method for transmitting a plurality of files | |
WO2023005773A1 (zh) | 基于远程直接数据存储的报文转发方法、装置、网卡及设备 | |
CN112751898B (zh) | 负载均衡方法、装置、介质及设备 | |
US20160255048A1 (en) | Communications over multiple protocol interfaces in a computing environment | |
CN112751897B (zh) | 负载均衡方法、装置、介质及设备 | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
US8527661B1 (en) | Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path | |
CN113326155A (zh) | 一种信息处理方法、装置、系统和存储介质 | |
CN113810349B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN109194765B (zh) | 请求控制方法、装置、计算机设备和存储介质 | |
US10536560B2 (en) | System and method for implementing augmented object members for remote procedure call | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
CN111587586B (zh) | 支持无锚回传的gtp隧道 | |
CN110609746B (zh) | 管理网络系统的方法、设备和计算机可读介质 | |
US11973687B2 (en) | Multilayer decentralized server network | |
CN107078837A (zh) | 一种协议帧传输方法、装置、节点设备以及系统 | |
CN111669364B (zh) | 一种数据传输的方法、装置、电子设备及介质 | |
US11228657B2 (en) | Hybrid proxying with user space hold |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220208 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |