CN110247926A - 一种交互方法和系统 - Google Patents
一种交互方法和系统 Download PDFInfo
- Publication number
- CN110247926A CN110247926A CN201910577475.XA CN201910577475A CN110247926A CN 110247926 A CN110247926 A CN 110247926A CN 201910577475 A CN201910577475 A CN 201910577475A CN 110247926 A CN110247926 A CN 110247926A
- Authority
- CN
- China
- Prior art keywords
- tcp
- agent side
- client
- preset format
- long connection
- 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
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/22—Parsing or analysis of headers
Abstract
本发明实施例提供了一种交互方法及系统,涉及数据传输技术领域,客户端通过第一代理方和第二代理方与服务器进行数据交互,上述方法包括:所述第一代理方接收所述客户端发送的TCP请求;所述第一代理方将所述TCP请求封装,得到第一预设格式数据,并基于可靠用户数据报协议RUDP长连接向所述第二代理方发送所述第一预设格式数据;所述第二代理方接收所述第一预设格式数据;所述第二代理方对所述第一预设格式数据进行解析,得到所述TCP请求,并基于传输控制协议TCP长连接向服务器发送所述TCP请求。应用本发明实施例提供的方案进行交互,能够提高用户请求成功的概率。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种交互方法和系统。
背景技术
随着互联网技术的蓬勃发展,客户端可以通过互联网向提供各种服务的服务端请求各种服务。现有技术中,客户端一般基于TCP(Transport Control Protocol,传输控制协议)通过以下方式与服务端进行交互,从而获得所要请求的服务:
客户端向服务端发送TCP请求,服务端接收到上述TCP请求后,获得用于响应上述TCP请求的TCP响应,并向客户端反馈上述TCP响应,这样客户端可以获得其所要请求的服务。
然而,基于TCP协议进行交互的过程中,客户端一般采用明文方式向服务端发送上述TCP请求传输,这样上述TCP请求容易被劫持,从而导致客户端无法获得其所要请求的服务。
发明内容
本发明实施例的目的在于提供一种交互方法和系统,以提高用户请求成功率。具体技术方案如下:
第一方面,本发明实施例提供了一种交互方法,客户端通过第一代理方和第二代理方与服务器进行数据交互,上述方法包括:
所述第一代理方接收所述客户端发送的TCP请求;
所述第一代理方将所述TCP请求封装,得到第一预设格式数据,并基于可靠用户数据报协议RUDP长连接向所述第二代理方发送所述第一预设格式数据;
所述第二代理方接收所述第一预设格式数据;
所述第二代理方对所述第一预设格式数据进行解析,得到所述TCP请求,并基于传输控制协议TCP长连接向服务器发送所述TCP请求。
本发明的一个实施例中,在所述第一代理方接收所述客户端发送的TCP请求之后,包括:
所述第一代理方接收所述客户端基于TCP长连接发送的所述TCP请求,并获得所述TCP长连接的标识;
所述第一代理方生成所述TCP长连接的标识和所述客户端之间的第一映射关系。
本发明的一个实施例中,在所述第二代理方接收所述第一预设格式数据之前,还包括:
所述第二代理方接收所述第一代理方基于RUDP长连接发送的所述第一预设格式数据,并获得所述RUDP长连接的标识;
所述第二代理方生成所述RUDP长连接的标识和所述第一代理方之间的第二映射关系。
本发明的一个实施例中,服务器通过第二代理方和第一代理方与客户端进行数据交互,所述方法还包括:
所述第二代理方接收所述服务器针对所述TCP请求生成的TCP响应;
所述第二代理方将所述TCP响应封装,得到第二预设格式数据;
所述第二代理方根据所述第二映射关系和所述RUDP长连接的标识,基于RUDP长连接向所述第一代理方发送所述第二预设格式数据;
所述第一代理方接收所述第二预设格式数据;
所述第一代理方对所述第二预设格式数据进行解析,得到所述TCP响应;
所述第一代理方根据所述第一映射关系和所述TCP长连接的标识,基于TCP长连接向所述客户端发送所述TCP响应。
本发明的一个实施例中,所述第一预设格式数据还包括:
表示所述TCP请求所属消息类型的标识;
所述TCP请求的数据长度;
所述客户端的类型标识;
所述客户端指定从所述服务器下载数据的速度的上限。
第二方面,本发明实施例提供了一种交互系统,所述系统包括:第一代理方和第二代理方,
所述第一代理方,用于接收客户端发送的TCP请求;将所述TCP请求封装,得到第一预设格式数据,并基于RUDP长连接向所述第二代理方发送所述第一预设格式数据;
所述第二代理方,用于接收所述第一预设格式数据;对所述第一预设格式数据进行解析,得到所述TCP请求,并TCP长连接向服务器发送所述TCP请求。
本发明的一个实施例中,所述第一代理方,还用于在所述第一代理方接收客户端发送的TCP请求之后,
接收所述客户端基于TCP长连接发送的所述TCP请求,并获得所述TCP长连接的标识;
生成所述TCP长连接的标识和所述客户端之间的第一映射关系。
本发明的一个实施例中,所述第二代理方,还用于在所述第二代理方接收所述第一预设格式数据之前,
接收所述第一代理方基于RUDP长连接发送的所述第一预设格式数据,并获得所述RUDP长连接的标识;
生成所述RUDP长连接的标识和所述第一代理方之间的第二映射关系。
本发明的一个实施例中,
所述第二代理方,还用于接收所述服务器针对所述TCP请求生成的TCP响应;将所述TCP响应封装,得到第二预设格式数据;根据所述第二映射关系和所述RUDP长连接的标识,基于RUDP长连接向所述第一代理方发送所述第二预设格式数据;
所述第一代理方,还用于接收所述第二预设格式数据;对所述第二预设格式数据进行解析,得到所述TCP响应;根据所述第一映射关系和所述TCP长连接的标识,基于TCP长连接向所述客户端发送所述TCP响应。
本发明的一个实施例中,所述第一预设格式数据还包括:
表示所述TCP请求所属消息类型的标识;
所述TCP请求的数据长度;
所述客户端的类型标识;
所述客户端指定从所述服务器下载数据的速度的上限。
第三方面,本发明实施例提供了一种终端设备,所述终端设备上运行有第一代理方,所述终端设备包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法步骤。
第四方面,本发明实施例提供了一种服务器,所述服务器包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的方法步骤。
由以上可见,应用本发明实施例提供的方案实现客户端与服务端之间的交互时,客户端不再直接基于TCP向服务端发送TCP请求,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。其中,第一代理方获得客户端生成的TCP请求生成包含上述TCP请求的第一预设格式数据,并基于RUDP(Reliable User Data Protocol,可靠用户数据报协议)长连接向第二代理方发送上述第一预设格式数据,在第二代理方接收上述第一预设格式数据后,对第一预设格式数据进行解析,基于TCP长连接向服务器发送TCP请求,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,因此,应用本发明实施例提供的方案进行数据交互,能够减少TCP请求被劫持的情况,从而能够提高用户请求成功的概率,提高弱网下数据传输速率。
另外,对于客户端而言,向其外部发送的依然是TCP请求,而对于服务端而言,接收的也依然是TCP请求,因此,在交互过程中无需对客户端和服务端进行修改,也就是无需对已有业务架构进行修改。在此基础上,本发明实施例提供的方案由第一代理方和第二代理方代替客户端和服务端实现了基于RUDP交互TCP请求的过程,也就是实现了针对TCP的透明代理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的第一种交互方法的流程示意图;
图2为本发明实施例提供的第二种交互方法的流程示意图;
图3为本发明实施例提供的一种交互系统的结构示意图;
图4为本发明实施例提供的一种终端设备的结构示意图;
图5为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明实施例提供了一种数据交互方法及系统,以下分别进行详细说明。
参见图1,图1为本发明实施例提供的第一种交互方法的流程示意图,客户端通过第一代理方和第二代理方与服务器进行数据交互,上述交互方法包括如下步骤:
S101:第一代理方接收客户端发送的TCP请求。
具体的,上述第一代理方可以以下述两种方式存在:
第一种方式,第一代理方为上述客户端的一个功能模块。这种情况下,客户端中用于生成TCP请求的功能模块生成上述TCP请求后,可以通过客户端内部功能模块之间通信的方式,向上述第一代理方发送所生成的TCP请求。
第二种方式:第一代理方为一个独立的软件端。也就是,上述第一代理方和上述客户端作为两个独立的软件端工作于同一台电子设备中。在这种情况下,客户端中生成上述TCP请求后,可以通过软件端之间通信的方式,例如客户端可以基于TCP向上述第一代理方发送所生成的TCP请求。
本发明的一个实施例中,第一代理方获得上述TCP请求后,可以将上述TCP请求存储至预设的消息队列中,这样可以使得第一代理方在接收到多个TCP请求的情况下,有顺序的与服务器进行交互。
S102:第一代理方将TCP请求封装,得到第一预设格式数据,并基于RUDP长连接向第二代理方发送第一预设格式数据。
上述长连接是指在一个连接上可以连续发送多个数据包以及接受多个数据包,并且即使没有数据包发送或者接受也始终保持连接状态。
在上述第一代理方对TCP请求进行封装时,可以按照预设的第一格式生成上述第一预设格式数据。
其中,上述预设的第一格式用于规定封装数据中包括第一预设格式数据信息以及这些信息在封装数据中的排列顺序。
例如,上述预设的第一数据格式规定封装数据中可以包括TCP请求、TCP连接的标识、目的IP地址和目的端口,并规定封装数据中这几种信息的排列顺序从前到后依次为:TCP连接的标识、目的IP地址、目的端口、TCP请求。
从上述S101部分描述的内容可以得知,第一代理方可以有两种存在方式,在这两种不同的存在方式下,第一代理方与第二代理方的交互过程不完全相同,下面分情况进行说明:
在第一代理方为上述客户端的一个功能模块的情况下,第一代理方可以基于RUDP长连接直接与第二代理方进行交互。由于这种情况下第一代理方为客户端的一部分,所以站在客户端的角度来看,也可以理解为是客户端基于RUDP长连接与第二代理方交互的。
在第一代理方为一个独立的软件端的情况下,客户端将TCP请求发送给第一代理方,然后第一代理方基于RUDP长连接与第二代理方进行交互。由于这种情况下第一代理方与客户端是两个独立的软件端,所以站在客户端的角度来看,是由第一代理方基于RUDP长连接与第二代理方交互的。
S103:第二代理方接收第一预设格式数据。
本发明的一个实施例中,第二代理方获得上述第一预设格式数据后,可以将上述第一预设格式数据存储至预设的消息队列中,这样可以使得第二代理方在接收到多个第一预设格式数据的情况下,有顺序的与服务端进行交互。
S104:第二代理方对第一预设格式数据进行解析,得到TCP请求,并基于TCP长连接向服务器发送TCP请求。
上述第二代理方与服务器可以工作于同一台电子设备,还可以分别工作于两台电子设备上。
解析上述第一预设格式数据时,可以按照预设的第一格式解析上述第一预设格式数据。
在对上述第一预设格式数据进行解析后,第二代理方获得上述TCP请求,还可以获得目的服务器的目的IP地址和目的端口,向服务器发送上述TCP请求时,可以是基于TCP长连接向IP地址为上述目的IP地址的服务端的上述目的端口发送上述TCP请求。
由以上可见,应用本实施例提供的方案实现客户端与服务端之间的交互时,客户端不再直接基于TCP向服务端发送TCP请求,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。其中,第一代理方获得客户端生成的TCP请求,并生成包含上述TCP请求的第一预设格式数据,并基于RUDP长连接向第二代理方发送上述第一预设格式数据,在第二代理方接收上述第一预设格式数据后,对第一预设格式数据进行解析,基于TCP长连接向服务器发送TCP请求,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,因此,应用本实施例提供的方案进行数据交互,能够减少TCP请求被劫持的情况,从而能够提高用户请求成功的概率,提高弱网下数据传输速率。
本发明的一个实施例中,在上述S101第一代理方接收客户端发送的TCP请求之后,第一代理方可以接收客户端基于TCP长连接发送的TCP请求,并获得TCP长连接的标识;生成TCP长连接的标识和客户端之间的第一映射关系。
上述第一代理方获得上述TCP连接的标识之后,将客户端生成的TCP请求与上述TCP连接的标识进行封装并发送至第二代理方,服务端接收到TCP请求和TCP连接的标识后,会向客户端发送上述TCP请求对应的TCP响应。在此基础上,为便于第一代理方在后续工作过程中接收到TCP响应时,知晓所接收的TCP响应是哪一客户端所生成TCP请求的响应,所以可以在获得上述TCP连接的标识之后,生成上述TCP连接的标识与上述客户端之间的第一映射关系。
具体的,上述第一映射关系所包括的信息可以是上述TCP连接的标识和上述客户端的标识。
这样,通过第一映射关系能将服务器针对TCP请求生成的TCP响应数据发送至对应客户端。
本发明的一个实施例中,在上述S103第二代理方接收第一预设格式数据之前,第二代理方可以接收第一代理方基于RUDP长连接发送的第一预设格式数据,并获得RUDP长连接的标识;生成RUDP长连接的标识和第一代理方之间的第二映射关系。
上述第二代理方获得RUDP连接的标识之后,解封第一代理方发送的第一预设格式数据,获得TCP请求和TCP连接的标识,并将上述TCP请求发送至服务端;服务端向第二代理方发送针对上述TCP请求生成的TCP响应,第二代理方将上述TCP响应和TCP连接的标识封装成第二预设格式数据后发送至第一代理方。在此基础之上,为便于第二预设格式数据中上述TCP响应发送至对应第一代理方,以使得根据TCP连接的标识和第一映射关系将上述TCP响应发送至对应客户端。所以可以在获得上述RUDP连接的标识之后,生成上述RUDP连接的标识与上述第一代理方之间的第二映射关系。
具体的,上述第二映射关系所包括的信息可以是上述RUDP连接的标识和上述第一代理方的标识。
这样,通过第二映射关系能将包含服务器针对TCP请求生成的TCP响应的第二预设格式数据发送至对应第一代理方。
在上述实施例的基础上,本发明的另一个实施例中,参见图2,提供了第二种交互方法的流程示意图,与前述实施例相比,本实施例中,上述交互方法还包括:
S201:第二代理方接收服务器针对TCP请求生成的TCP响应。
本发明的一个实施例中,第二代理方获得上述TCP响应后,可以将上述TCP响应存储至预设的消息队列中,这样可以使得第二代理方在接收到多个TCP响应的情况下,有顺序的与客户端进行交互。
S202:第二代理方将TCP响应封装,得到第二预设格式数据。
生成上述第二预设格式数据时,可以按照预设的第二预设格式生成上述第二预设格式数据。
其中,上述预设的第二预设格式用于规定第二预设格式数据中包括数据信息以及这些信息在第二预设格式数据中的排列顺序。
例如,上述预设的第二预设格式规定第二预设格式数据中包括TCP响应、第一代理方与客户端之间TCP长连接的标识,并规定封装数据中这几种信息的排列顺序为:TCP连接的标识之后排列的是TCP响应。
S203:第二代理方根据第二映射关系和RUDP长连接的标识,基于RUDP长连接向第一代理方发送第二预设格式数据。
由于上述第二映射关系所表征的是RUDP长连接的标识和第一交互端之间的对应关系,所以第二代理方根据存储的RUDP长连接的标识和第二映射关系后,可以依据上述第二映射关系得到需要获得上述第二预设格式数据的第一代理方。
S204:第一代理方接收第二预设格式数据。
其中,第二预设格式数据包含第一代理方与客户端之间TCP长连接的标识和服务器针对TCP请求生成的TCP响应。
上述TCP长连接的标识是第一代理方与客户端建立TCP连接时生成唯一的标识。
本发明的一个实施例中,生成上述第二预设格式数据时,可以按照预设的第二格式生成上述第二预设格式数据。
其中,上述预设的第二格式用于规定第二预设格式数据中包括数据信息以及这些信息在封装数据中的排列顺序。
例如,上述预设的第二格式规定第二预设格式数据中包括TCP响应、TCP连接的标识,并规定第二预设格式数据中这几种信息的排列顺序为:TCP连接的标识之后排列是TCP响应。
本发明的一个实施例中,第一代理方获得上述第二预设格式数据后,可以将上述第二预设格式数据存储至预设的消息队列中,这样可以使得第一代理方在接收到多个第二预设格式数据的情况下,有顺序的与客户端进行交互。
S205:第一代理方对第二预设格式数据进行解析,得到TCP响应。
在解析上述第二预设格式数据时,可以按照上述预设的第二预设格式解析上述第二预设格式数据。
S206:第一代理方根据第一映射关系和TCP长连接的标识,基于TCP长连接向客户端发送TCP响应。
由于上述第一映射关系所表征的是TCP连接的标识和上述客户端之间的对应关系,所以第一代理方解析出上述TCP连接的标识后,可以依据上述第一映射关系得到需要获得上述TCP响应的客户端。
例如,上述映射关系表征的是:上述TCP连接的标识ID1与客户端标识A之间的对应关系,则第一代理方解析出上述ID1后,可以依据上述第一映射关系得知客户端的标识为A。这种情况下,第一代理方可以知晓需要向标识为A的客户端发送上述TCP响应,为此,可以根据上述标识A向上述客户端发送TCP响应。
由以上可见,应用本实施例提供的方案实现客户端与服务端之间的交互时,服务器不再直接基于TCP向客户端发送针对TCP请求生成的TCP响应,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。第二代理方获得服务端针对TCP请求生成的TCP响应后,生成包含上述TCP响应的第二预设格式数据,并根据第二映射关系和RUDP长连接的标识,基于RUDP长连接向对应第一代理方发送上述第二预设格式数据。第一代理方可以对第二预设格式数据进行解析,获取TCP请求,并根据第一映射关系将TCP请求发送至对应客户端,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,提高弱网下数据传输效率。因此,应用本实施例提供的方案进行数据交互,能够保证将TCP响应发送至相应的客户端上,提高用户请求成功的概率。
本发明的一个实施例中,第一预设格式数据还可以包括:表示TCP请求所属消息类型的标识,TCP请求的数据长度,客户端的类型标识客户端指定从服务器下载数据的速度的上限。
下面分别对第一预设格式数据中包括的上述各种信息进行说明。
上述TCP请求所属消息类型的标识表示TCP请求这一消息的类型标识。例如,TCP请求这一消息的类型标识可以为request。与TCP请求相类似,TCP响应这一消息的类型标识可以为response。
上述TCP请求的数据长度表示上述TCP请求包含的字节数。例如,TCP请求的数据长度最大可以为8MB。
上述客户端的类型标识表示上述生成TCP请求的客户端的类型标识,也就是向第一代理方发送上述TCP请求的客户端的类型标识。例如,上述类型标识可以为:rtmp、http等。
上述客户端指定从服务器下载数据的速度上限,也就是客户端下载数据的速度最大值。例如:下载数据的速度上限可以为4096Kbps。
这样,由于上述第一预设格式数据包含客户端类型的标识,客户端类型包括有http、rtmp等多种类型,那么第一代理方能够支持主流的rtmp、http等多种协议。
本发明的一个实施例中,第一预设格式数据可以按照预设的第一数据格式生成上述第一预设格式数据。
其中,上述预设的第一数据格式用于规定封装数据中包括第一预设格式数据信息以及这些信息在封装数据中的排列顺序。
例如,上述预设的第一数据格式规定封装数据中包括TCP请求所属消息版本的标识、客户端类型的标识、TCP请求所属消息类型标识、TCP请求的数据的长度、TCP连接的标识、服务器的目的IP地址、服务器的目的端口、客户端指定从服务器下载速度上限、预留字段、FEC(Forward Error Correction,前向纠错)开关标志和TCP请求的数据。并规定封装数据中这几种信息的排列顺序为:从前到后依次为,TCP请求所属消息版本的标识、客户端类型的标识、TCP请求所属消息类型标识、TCP请求的数据的长度、TCP连接的标识、服务器的目的IP地址、服务器的目的端口、客户端指定从服务器下载速度上限、预留字段、FEC标志和TCP请求的数据。
下面再通过具体实例对本发明实施例提供的交互方法进行说明。
假设,客户端指定服务器的目的IP地址为IP1,客户端指定服务器的目的端口号为80,客户端标识为A。
具体的,客户端生成TCP请求后,发送至第一代理方,第一代理方获得上述TCP请求,并获得客户端与第一代理方建立的TCP连接的标识ID1,第一代理方对上述TCP请求进行封装,生成包含上述TCP请求、ID1、IP1和目的端口80的第一预设格式数据,并生成标识A与上述ID1之间的第一映射关系,第一代理方将上述第一预设格式数据基于RUDP长连接发送至第二代理方,第二代理方对上述第一预设格式数据进行解封装,得到上述TCP请求、ID1、IP1和目的端口80,向IP地址为IP1的服务器的80端口发送上述TCP请求;
服务器针对上述TCP请求生成TCP响应,发送至第二代理方。第二代理方在获得第一代理方基于RUDP发送的第一预设格式数据之前,与第一代理方建立RUDP连接,获得上述RUDP长连接的标识,并生成RUDP连接的标识和第一代理方的第二映射关系。第二代理方获得上述TCP响应,并对上述TCP响应和ID1进行封装,生成包含上述TCP响应和ID1的第二预设格式数据,第二代理方基于RUDP根据第二映射关系向对应第一代理方发送第二预设格式数据。第一代理方对上述第二预设格式数据进行解封装,得到上述TCP响应和ID1,根据客户端标识A与ID1之间的第一映射关系,向标识为A的客户端发送上述TCP响应。
与上述交互方法相对应,本发明实施例还提供了一种交互系统。
参见图3,图3为本发明实施例提供的一种交互系统的结构示意图,该系统包括第一代理方和第二代理方,包括:
第一代理方301,用于接收客户端发送的TCP请求;将TCP请求封装,得到第一预设格式数据,并基于RUDP长连接向第二代理方发送第一预设格式数据。
第二代理方302,用于接收第一预设格式数据;对第一预设格式数据进行解析,得到TCP请求,并TCP长连接向服务器发送TCP请求。
由以上可见,应用本实施例提供的方案实现客户端与服务端之间的交互时,客户端不再直接基于TCP向服务端发送TCP请求,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。其中,第一代理方获得客户端生成的TCP请求,并生成包含上述TCP请求的第一预设格式数据,并基于RUDP长连接向第二代理方发送上述第一预设格式数据,在第二代理方接收上述第一预设格式数据后,对第一预设格式数据进行解析,基于TCP长连接向服务器发送TCP请求,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,因此,应用本实施例提供的方案进行数据交互,能够减少TCP请求被劫持的情况,从而能够提高用户请求成功的概率,提高弱网下数据传输速率。
本发明的一个实施例中,上述第一代理方301,还用于在接收客户端发送的TCP请求之后,
接收客户端基于TCP长连接发送的TCP请求,并获得TCP长连接的标识;生成TCP长连接的标识和客户端之间的第一映射关系。
由以上可见,根据本实施例提供的第一映射关系能将包含服务器针对TCP请求生成的TCP响应发送至对应客户端。
本发明的一个实施例中,上述第二代理方302,还用于接收第一预设格式数据之前,
接收第一代理方基于RUDP长连接发送的第一预设格式数据,并获得RUDP长连接的标识;生成RUDP长连接的标识和第一代理方之间的第二映射关系。
由以上可见,根据本实施例提供的第二映射关系能将包含服务器针对TCP请求生成的TCP响应的第二预设格式数据发送至对应第一代理方。
本发明的一个实施例中,在上述实施例基础之上,
第二代理方,还用于接收服务器针对TCP请求生成的TCP响应;将TCP响应封装,得到第二预设格式数据;根据第二映射关系和RUDP长连接的标识,基于RUDP长连接向第一代理方发送第二预设格式数据。
第一代理方,还用于接收第二预设格式数据;对第二预设格式数据进行解析,得到TCP响应;根据第一映射关系和TCP长连接的标识,基于TCP长连接向客户端发送TCP响应。
由以上可见,应用本实施例提供的方案实现客户端与服务端之间的交互时,服务器不再直接基于TCP向客户端发送针对TCP请求生成的TCP响应,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。第二代理方获得服务端针对TCP请求生成的TCP响应后,生成包含上述TCP响应的第二预设格式数据,并根据第二映射关系和RUDP长连接的标识,基于RUDP长连接向对应第一代理方发送上述第二预设格式数据。第一代理方可以对第二预设格式数据进行解析,获取TCP请求,并根据第一映射关系将TCP请求发送至对应客户端,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,提高弱网下数据传输效率。因此,应用本实施例提供的方案进行数据交互,能够保证将TCP响应发送至相应的客户端上,提高用户请求成功的概率。
本发明的一个实施例中,上述第一预设格式数据还包括:
表示TCP请求所属消息类型的标识;TCP请求的数据长度;客户端的类型标识;客户端指定从服务器下载数据的速度的上限。
由以上可见,应用本实施例提供的第一预设格式数据包含客户端类型的标识,客户端类型包括有http、rtmp等多种类型,那么第一代理方能够支持主流的rtmp、http等多种协议。
与上述交互方法相对应,本发明实施例还提供了一种终端设备。
图4为本发明实施例提供的一种终端设备的结构示意图,终端设备上运行有第一代理方,终端设备包括:处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信;
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,实现本发明实施例提供的应用于第一代理方的交互方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
与上述交互方法相对应,本发明实施例还提供了一种服务器。
图5为本发明实施例提供的一种服务器的结构示意图,服务器上运行有第二代理方,服务器包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例提供的应用于第二代理方的交互方法。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现本发明实施例提供的上述任一的交互方法。
由以上可见,应用上述实施例提供的终端设备、服务器以及执行上述机器可读存储介质中存储的计算机程序,分别实现客户端与服务端之间的交互时。客户端不再直接基于TCP向服务端发送TCP请求,而是借助在客户端和服务端之间部署一对代理方来实现客户端与服务端之间的交互。其中,第一代理方获得客户端生成的TCP请求,并获得与客户端建立的TCP连接的标识后,生成包含上述TCP请求和上述TCP连接的标识第一预设格式数据,并基于RUDP长连接向第二代理方发送上述第一预设格式数据,在第二代理方接收上述第一预设格式数据后,对第一预设格式数据进行解析,基于TCP长连接向服务器发送TCP请求,从而实现客户端与服务器之间的交互。又由于RUDP采用了自我实现的弱网下拥塞控制算法,可靠性较高,相对于基于TCP进行交互,能够减少交互过程中交互数据被劫持的概率,因此,应用本发明实施例提供的方案进行数据交互,能够减少TCP请求被劫持的情况,从而能够提高用户请求成功的概率,提高弱网下数据传输速率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一交互方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、终端设备、服务器、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (12)
1.一种交互方法,其特征在于,客户端通过第一代理方和第二代理方与服务器进行数据交互,所述方法包括:
所述第一代理方接收所述客户端发送的TCP请求;
所述第一代理方将所述TCP请求封装,得到第一预设格式数据,并基于可靠用户数据报协议RUDP长连接向所述第二代理方发送所述第一预设格式数据;
所述第二代理方接收所述第一预设格式数据;
所述第二代理方对所述第一预设格式数据进行解析,得到所述TCP请求,并基于传输控制协议TCP长连接向服务器发送所述TCP请求。
2.根据权利要求1所述的方法,其特征在于,在所述第一代理方接收所述客户端发送的TCP请求之后,包括:
所述第一代理方接收所述客户端基于TCP长连接发送的所述TCP请求,并获得所述TCP长连接的标识;
所述第一代理方生成所述TCP长连接的标识和所述客户端之间的第一映射关系。
3.根据权利要求1所述的方法,其特征在于,在所述第二代理方接收所述第一预设格式数据之前,还包括:
所述第二代理方接收所述第一代理方基于RUDP长连接发送的所述第一预设格式数据,并获得所述RUDP长连接的标识;
所述第二代理方生成所述RUDP长连接的标识和所述第一代理方之间的第二映射关系。
4.根据权利要求2或3所述的方法,其特征在于,服务器通过第二代理方和第一代理方与客户端进行数据交互,所述方法还包括:
所述第二代理方接收所述服务器针对所述TCP请求生成的TCP响应;
所述第二代理方将所述TCP响应封装,得到第二预设格式数据;
所述第二代理方根据所述第二映射关系和所述RUDP长连接的标识,基于RUDP长连接向所述第一代理方发送所述第二预设格式数据;
所述第一代理方接收所述第二预设格式数据;
所述第一代理方对所述第二预设格式数据进行解析,得到所述TCP响应;
所述第一代理方根据所述第一映射关系和所述TCP长连接的标识,基于TCP长连接向所述客户端发送所述TCP响应。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一预设格式数据还包括:
表示所述TCP请求所属消息类型的标识;
所述TCP请求的数据长度;
所述客户端的类型标识;
所述客户端指定从所述服务器下载数据的速度的上限。
6.一种交互系统,其特征在于,所述系统包括:第一代理方和第二代理方,
所述第一代理方,用于接收客户端发送的TCP请求;将所述TCP请求封装,得到第一预设格式数据,并基于RUDP长连接向所述第二代理方发送所述第一预设格式数据;
所述第二代理方,用于接收所述第一预设格式数据;对所述第一预设格式数据进行解析,得到所述TCP请求,并基于TCP长连接向服务器发送所述TCP请求。
7.根据权利要求6所述的系统,其特征在于,所述第一代理方,还用于在所述第一代理方接收客户端发送的TCP请求之后,
接收所述客户端基于TCP长连接发送的所述TCP请求,并获得所述TCP长连接的标识;
生成所述TCP长连接的标识和所述客户端之间的第一映射关系。
8.根据权利要求6所述的系统,其特征在于,所述第二代理方,还用于在所述第二代理方接收所述第一预设格式数据之前,
接收所述第一代理方基于RUDP长连接发送的所述第一预设格式数据,并获得所述RUDP长连接的标识;
生成所述RUDP长连接的标识和所述第一代理方之间的第二映射关系。
9.根据权利要求7或8所述的系统,其特征在于,
所述第二代理方,还用于接收所述服务器针对所述TCP请求生成的TCP响应;将所述TCP响应封装,得到第二预设格式数据;根据所述第二映射关系和所述RUDP长连接的标识,基于RUDP长连接向所述第一代理方发送所述第二预设格式数据;
所述第一代理方,还用于接收所述第二预设格式数据;对所述第二预设格式数据进行解析,得到所述TCP响应;根据所述第一映射关系和所述TCP长连接的标识,基于TCP长连接向所述客户端发送所述TCP响应。
10.根据权利要求6-8任一项所述的系统,其特征在于,所述第一预设格式数据还包括:
表示所述TCP请求所属消息类型的标识;
所述TCP请求的数据长度;
所述客户端的类型标识;
所述客户端指定从所述服务器下载数据的速度的上限。
11.一种终端设备,其特征在于,所述终端设备上运行有第一代理方,所述终端设备包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种服务器,其特征在于,所述服务器包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577475.XA CN110247926B (zh) | 2019-06-28 | 2019-06-28 | 一种交互方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577475.XA CN110247926B (zh) | 2019-06-28 | 2019-06-28 | 一种交互方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110247926A true CN110247926A (zh) | 2019-09-17 |
CN110247926B CN110247926B (zh) | 2022-04-22 |
Family
ID=67890115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910577475.XA Active CN110247926B (zh) | 2019-06-28 | 2019-06-28 | 一种交互方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247926B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110913008A (zh) * | 2019-11-29 | 2020-03-24 | 成都知道创宇信息技术有限公司 | 一种数据传输方法及装置 |
CN112565337A (zh) * | 2020-11-06 | 2021-03-26 | 北京奇艺世纪科技有限公司 | 请求传输方法、服务端、客户端、系统及电子设备 |
CN112965745A (zh) * | 2021-04-01 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 一种系统接入方法、装置、设备及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117322B1 (en) * | 2009-12-10 | 2012-02-14 | Google Inc. | Latency reduction on HTTP servers |
CN102439946A (zh) * | 2011-06-23 | 2012-05-02 | 华为技术有限公司 | 数据传输方法和设备 |
CN103873515A (zh) * | 2012-12-13 | 2014-06-18 | 联想(北京)有限公司 | 信息处理的方法及电子设备 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
-
2019
- 2019-06-28 CN CN201910577475.XA patent/CN110247926B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117322B1 (en) * | 2009-12-10 | 2012-02-14 | Google Inc. | Latency reduction on HTTP servers |
CN102439946A (zh) * | 2011-06-23 | 2012-05-02 | 华为技术有限公司 | 数据传输方法和设备 |
CN103873515A (zh) * | 2012-12-13 | 2014-06-18 | 联想(北京)有限公司 | 信息处理的方法及电子设备 |
CN109922053A (zh) * | 2019-02-22 | 2019-06-21 | 北京三快在线科技有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110913008A (zh) * | 2019-11-29 | 2020-03-24 | 成都知道创宇信息技术有限公司 | 一种数据传输方法及装置 |
CN110913008B (zh) * | 2019-11-29 | 2023-02-28 | 成都知道创宇信息技术有限公司 | 一种数据传输方法及装置 |
CN112565337A (zh) * | 2020-11-06 | 2021-03-26 | 北京奇艺世纪科技有限公司 | 请求传输方法、服务端、客户端、系统及电子设备 |
CN112565337B (zh) * | 2020-11-06 | 2022-09-30 | 北京奇艺世纪科技有限公司 | 请求传输方法、服务端、客户端、系统及电子设备 |
CN112965745A (zh) * | 2021-04-01 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 一种系统接入方法、装置、设备及计算机可读介质 |
CN112965745B (zh) * | 2021-04-01 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种系统接入方法、装置、设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110247926B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546800B (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
CN102790776B (zh) | 心跳连接归一处理方法、终端、服务器及通信系统 | |
CN103051725B (zh) | 应用识别方法、数据挖掘方法、装置及系统 | |
CN110247926A (zh) | 一种交互方法和系统 | |
CN102904959B (zh) | 网络加速方法和网关 | |
CN105847312B (zh) | 一种资源访问方法及用户终端 | |
CN101262478A (zh) | 穿越网络地址转换nat的方法和设备 | |
US9240899B2 (en) | Method for implementing virtual network port and embedded device for implementing virtual network port | |
CN107360177B (zh) | 一种基于udp的报文传输方法及装置 | |
CN108200165A (zh) | 请求传输系统、方法、装置及存储介质 | |
CN110769009B (zh) | 用户身份认证方法及系统 | |
CN107222561A (zh) | 一种传输层反向代理方法 | |
CN107147655A (zh) | 一种网络双协议栈并行处理模型及其处理方法 | |
CN108769017A (zh) | 一种数据通信方法及装置 | |
CN111294235A (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN107360205A (zh) | 数据报文的传输方法及装置、系统 | |
CN105389120A (zh) | 支持通过活动消息的rma api | |
CN105450585A (zh) | 一种信息传输方法及装置 | |
CN104468704A (zh) | 支持内容中心网络的Web服务器系统及处理方法 | |
CN108429739A (zh) | 一种识别蜜罐的方法、系统及终端设备 | |
CN102594886B (zh) | 浏览器与浏览器直通的方法、装置和通信系统 | |
CN113163028B (zh) | 一种业务数据传输方法、装置及系统 | |
CN103796191A (zh) | 向用户终端发送数据的方法、装置及终端 | |
CN103997437A (zh) | 一种测试云服务器注册功能的方法 | |
CN112291259B (zh) | 一种协议转换方法、网关、设备及可读存储介质 |
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 |