CN107360205B - 数据报文的传输方法及装置、*** - Google Patents
数据报文的传输方法及装置、*** Download PDFInfo
- Publication number
- CN107360205B CN107360205B CN201610304787.XA CN201610304787A CN107360205B CN 107360205 B CN107360205 B CN 107360205B CN 201610304787 A CN201610304787 A CN 201610304787A CN 107360205 B CN107360205 B CN 107360205B
- Authority
- CN
- China
- Prior art keywords
- server
- message
- communication protocol
- data
- appointed
- 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
Images
Classifications
-
- 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/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据报文的传输方法及装置、***。其中,该方法包括:客户端设备接收来自应用程序的数据报文;所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;所述客户端设备将所述封装报文发送至所述指定服务器。
Description
技术领域
本申请涉及网络通信领域,具体而言,涉及一种数据报文的传输方法及装置、***。
背景技术
目前,根据协议类型的不同,常见的网络代理类型可以分为以下几种:HTTP代理、FTP代理、socks代理。其中,
Socks代理不要求应用程序遵循特定的操作***平台,Socks代理与应用层代理、HTTP层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理的处理效率高。它通常绑定在代理服务器的1080端口上。虽然socks代理V5版本同时支持TCP和UDP两种协议,但是以下缺陷:不支持协议异构代理,无法使用UDP代理来实现TCP内容的代理,或者使用TCP代理来实现UDP内容的代理。因此sock代理无法只基于内容进行代理。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
根据本申请实施例的一个方面,提供了一种数据报文的传输方法,包括:客户端设备接收来自应用程序的数据报文;所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;所述客户端设备将所述封装报文发送至所述指定服务器。
根据本申请实施例的另一方面,还提供了另一种数据报文的传输方法,包括:指定服务器接收来自客户端设备的封装报文;其中,所述封装报文为所述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,所述封装报文中携带有目标服务器标识;所述指定服务器将所述封装报文转发至所述目标服务器标识所指示的服务器。
根据本申请实施例的又一方面,还提供了一种数据报文的传输装置,应用于客户端设备,上述装置包括:接收模块,用于接收来自应用程序的数据报文;封装模块,用于对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;发送模块,用于将所述封装报文发送至所述指定服务器。
根据本申请实施例的再一方面,还提供了一种数据报文的传输装置,应用于指定服务器中,上述装置包括:接收模块,用于接收来自客户端设备的封装报文;其中,所述封装报文为所述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,所述封装报文中携带有目标服务器标识;发送模块,用于将所述封装报文转发至所述目标服务器标识所指示的服务器。
根据本申请实施例的再一方面,还提供了一种数据报文的传输***,包括:应用程序所在终端,用于将应用程序生成的数据报文发送至客户端设备;所述客户端设备,连接至所述终端,用于接收所述数据报文,并对所述数据报文中的有效载荷数据进行封装,得到封装报文,以及将所述封装报文发送至所述指定服务器;其中,所述封装报文中携带有目标服务器标识;指定服务器,用于接收所述封装报文,以及将所述封装报文转发至所述目标服务器标识所指示的服务器。
在本申请实施例中,采用客户端设备对数据报文中的有效载荷数据进行封装,从而利用封装后的报文中的目标服务器标识将报文由指定服务器转发至目标服务器的方式,因此,可以基于有效载荷数据进行数据的转发,而不用考虑代理设备和设备之间以及代理设备之间所支持的通信协议,从而可以支持协议异构代理的数据转发,进而解决了目前的网络代理不支持异构代理的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请实施例的一种数据报文的传输方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种数据报文的传输方法的流程图;
图3是根据本申请实施例的一种可选的IP报文格式的示意图;
图4是根据本申请实施例的一种可选的UDP数据格式的示意图;
图5为根据本申请实施例的一种会话映射关系示意图;
图6为根据本申请实施例的一种客户端设备发送数据的流程示意图;
图7为根据本申请实施例的一种客户端设备创建新连接的流程示意图;
图8为根据本申请实施例的一种客户端设备接收数据的流程示意图;
图9为根据本申请实施例的一种数据报文的传输装置的结构示意图;
图10为根据本申请实施例的另一种数据报文的传输方法的流程图;
图11为根据本申请实施例的一种指定服务器发送数据的流程示意图;
图12为根据本申请实施例的一种指定服务器创建新连接的流程示意图;
图13为根据本申请实施例的一种指定服务器接收数据的流程示意图;
图14为根据本申请实施例的另一种数据报文的传输装置的结构示意图;
图15为根据本申请实施例的一种数据报文的传输***的结构示意图;
图16为根据本申请实施例的一种可选的数据报文的传输***的结构示意图;
图17为根据本申请实施例的一种可选的客户端设备的结构示意图;
图18为根据本申请实施例的一种可选的指定服务器的结构示意图;
图19为根据本申请实施例的一种计算机终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解本申请的实施例,以下将本申请实施例中所涉及的技术术语简述如下:
数据报文(message):网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
有效载荷数据:在因特网中,有效载荷数据是指在一个数据包或其它传输单元中运载的基本必要数据。有效载荷不包括使得数据包到达目的地所要求的“管理的”数据。
代理(Proxy):也称为网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端设备)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。
提供代理服务的电脑***或其它类型的网络终端称为代理服务器(英文:ProxyServer)。一个完整的代理请求过程为:客户端设备首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端设备所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接返回缓存了的资源。一些代理协议允许代理服务器改变客户端设备的原始请求、目标服务器的原始响应,以满足代理协议的需要。
超文本传输协议(Hyper Text Transfer Protocol,简称为HTTP)代理:主要用于访问网页,一般有内容过滤和缓存功能。端口一般为80、8080、3128等。
文件传输协议(File Transfer Protocol,简称为FTP)代理:主要用于访问FTP服务器,一般有上传、下载以及缓存功能。端口一般为21、2121等。
socks代理:又称为全能代理,就像有很多跳线的转接板,只是简单地将一端的***连接到另外一端。Socks不要求应用程序遵循特定的操作***平台,Socks代理与应用层代理、HTTP层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上,但是无法支持TCP和UDP协议异构代理。
HTTP和FTP代理属于特殊协议的代理,不具备普遍性。
转发(Forward):一种特殊的网络服务,允许一个网络终端(一般为客户端设备)通过这个服务中转数据,将信息传递到其他节点上。多见于网关等设备。
传输控制协议(Transmission Control Protocol,简称为TCP):传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
用户数据报文协议(User Datagram Protocol,简称为UDP):用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。
管道(PIPE):应用程序之间通信的一种方式。
会话(session):表示一条可用的双向通信链路。
实施例1
根据本申请实施例,还提供了一种数据报文的传输方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种数据报文的传输方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据报文的传输方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
在上述运行环境下,本申请提供了如图2所示的数据报文的传输方法。图2为根据本申请实施例的一种数据报文的传输方法的流程图。如图2所示,该方法包括步骤S202-S206,其中:
步骤S202,客户端设备接收来自应用程序的数据报文。其中,客户端设备可以采用TCP、UDP和PIPE协议与应用程序进行通信,即进行数据报文的传输,但不限于此种表现形式。可选地,上述数据报文可以表现为IP报文。
可选地,本申请实施例中的客户端设备可以表现为代理服务器,但不限于此。
步骤S204,客户端设备对上述数据报文中的有效载荷数据进行封装,得到封装报文;其中,上述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的上述封装报文。
可选地,上述指定服务器与上述目标服务器标识所指示的服务器(即上述目标服务器)之间采用的通信协议为第一通信协议;上述客户端设备与上述指定服务器之间采用的通信协议为第二通信协议。其中,第一通信协议和第二通信协议可以为相同类型的通信协议,例如均为UDP协议或TCP协议,当然也可以为不同的通信协议,即无论第一通信协议和第二通信协议相同或不同,均可以基于内容进行数据的传输,即本申请实施例中提供的方案可以适用于协议异构场景(目标服务器和指定服务器之间通信协议与指定服务器和客户端设备之间通信协议不同)。
基于上述方案,客户端设备可以按照上述第二通信协议对上述数据报文中的有效载荷数据进行封装,并将上述目标服务器标识携带于上述第二通信协议的头部,但不限于此。
其中,本申请实施例中的上述数据报文可以为IP报文,在一个可选实施例中,对数据报文中的有效载荷数据进行封装后,其所在IP报文的数据格式如图3所示:IP头部保持不变,IP头中的目的地址为指定服务器的IP。需要说明的是,上述有效载荷数据可以表现为IP报文中的“UDP数据”字段中承载的数据,此时,对上述有效载荷数据进行封装可以表现为对UDP数据字段进行修改,例如如图4所示,对UDP数据字段的头部进行修改,即在UDP头部增加上述目标服务器标识(即图4中目标服务器IP),当然也可以在头部添加用于接收数据报文的目标服务器端口,以及目标服务器所支持的目标协议类型(例如TCP或UDP)以更有效地进行数据传输。
在一个可选实施例中,本申请提供的数据报文的传输方法还可以适用于以下协议异构场景:客户端设备和应用程序之间采用的通信协议与客户端设备和指定服务器之间的通信协议不同,即客户端设备和应用程序之间采用的通信协议为第三通信协议。由此可见,采用本申请实施例中提供的数据报文的传输方案可以适用于协议异构场景。
正如上面所述,本申请实施提供的数据报文的传输方案可以适用于协议异构场景或非协议异构场景。另外,上述第一通信协议可以包括以下之一:用户数据报文协议UDP、传输控制协议TCP和转发FORWARD协议;和/或上述第二通信协议包括:UDP;和/或上述第三通信协议包括以下之一:TCP、UDP和管道PIPE协议。
步骤S206,客户端设备将上述封装报文发送至上述指定服务器。
需要说明的是,在应用程序与客户端设备之间的会话(第一会话)以及客户端设备和上述指定服务器之间的会话(第二会话)是可以存在映射关系的,即可以依据上述映射关系实现数据报文的转发。在本申请的一个可选实施例中,步骤S202可以表现为客户端设备从第一会话session中接收上述数据报文;此时步骤S206可以表现为:客户端设备按照预设映射关系在与上述第一会话对应的第二会话中将上述封装报文发送至上述指定服务器。
其中,对于上述映射关系可以参见图5所示,如图5所示,该映射关系可以表现为会话1与会话3相对应,会话2和会话4相对应,即当收到会话1的消息时,可以准确的通过会话3发送,或者,当收到会话3的消息时,将会话3的消息准确的发给会话1。
综上所述,在客户端设备侧,应用程序和客户端设备侧之间可以使用多种通信协议进行通信,保留了最大程度的兼容性。而客户端设备侧和指定服务器侧使用UDP通信,大大提升了指定服务器的通信效率和指定服务器侧服务器自身的性能。通过指定服务器将请求信息进行解析(分离装置交互信息,获取目标服务器地址、端口号和协议类型以及通信内容等信息)和封装(将通信内容按照指定协议类型进行重新封装。如原来是TCP的,还是通过TCP方式连接到服务端,UDP则亦然;如果是使用PIPE方式接入的,则需要在应用程序和客户端设备通信过程中,指定服务器采取TCP还是UDP方式与服务端进行通信),然后按照指定协议类型发送给信息中指定的目标服务器的指定端口。当目标服务器侧向指定服务器侧进行应答时,指定服务器侧提取应答中的数据信息,按照客户端设备要求(可以是双方预先约定的)将数据进行重新组装,然后发送给客户端设备。客户端设备接收到信息以后,提取数据信息并将数据信息传递给应用程序。
以下结合图6说明客户端设备发送数据的流程,如图6所示,客户端设备发送数据过程中,执行以下步骤:
步骤S602,利用TCP、UDP或PIPE侦听信息;
步骤S604,获取连接信息(包括但不限于源IP、源端口、目标服务器IP、目标服务器端口和协议类型);
步骤S606,判断连接(即会话)是否存在,如果是,转步骤S608,否则转步骤S610;
步骤S608,提取通信内容(即有效载荷数据),转步骤S616;
步骤S610,创建新连接,转步骤S612;
步骤S612,判断上述新连接是否创建成功,如果是转步骤S608,否则转步骤S614;
步骤S614,关闭侦听的连接;
步骤S616,按照会话要求组装数据;
步骤S618,将数据发送给指定服务器。
其中,步骤S610中创建新连接的流程如图7所示,包括以下处理步骤:
步骤S702,向指定服务器发送用于创建新连接的创建消息;
步骤S704,是否收到指定服务器的应答消息?如果是,转步骤S706,否则转步骤S712;
步骤S706,判断是否允许创建新连接,如果是,转步骤S708,否则,转步骤S712;
步骤S708,保存会话信息。
图6和图7示出了关于客户端设备的数据发送流程,但是,作为通信的参与方,其还会涉及到数据的接收,如图8所示,客户端设备的数据接收流程包括以下处理步骤:
步骤S802,在客户端设备接收数据的过程中,对接收的数据进行侦听;
步骤S804,判断是否接收到数据,如果是,转步骤S806,否则转步骤S802;
步骤S806,从接收的数据中提取数据信息(即有效载荷数据);
步骤S808,对上述数据信息进行重组,即按照客户端设备与应用程序之间的通信协议对上述数据信息进行封装;
步骤S810,将重组后的数据发送给应用程序。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述数据报文的传输方法的装置,该装置应用于客户端设备中,如图9所示,该装置包括:
接收模块90,用于接收来自应用程序的数据报文;
封装模块92,连接至接收模块90,用于对上述数据报文中的有效载荷数据进行封装,得到封装报文;其中,上述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器为用于接收指定服务器转发的上述封装报文的服务器;
发送模块94,连接至封装模块92,用于将上述封装报文发送至上述指定服务器。
可选地,上述指定服务器与上述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;上述客户端设备与上述指定服务器之间采用的通信协议为第二通信协议。可选地,上述客户端设备与上述应用程序之间采用的通信协议为第三通信协议。
在一个可选实施例中,上述第一通信协议、第二通信协议和第三通信协议之间是可以完全相同的,也可以是部分或全部不同,具体可以根据实际情况灵活确定,由此也可以看出,本申请实施例中的方案适用于协议相同和协议异构的场景,尤其是将本申请实施例中的方案应用于协议异构场景中时,解决了相关技术中不支持协议异构代理的问题。
需要说明的是,本实施例中的优选技术方案可以参见实施例1中的相关描述,此处不再赘述。
实施例3
本申请实施例还提供了另外一种数据报文的传输方法,该方法同样可以运行于图1所示的计算机终端上,即本申请实施例中的指定服务器可以为图1所示结构的计算机终端,但不限于此,即指定服务器也可以具有一些比图1所示计算机终端多或少的结构特征。如图10所示,该方法包括:
步骤S1002,指定服务器接收来自客户端设备的封装报文;其中,上述封装报文为上述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,上述封装报文中携带有目标服务器标识;
步骤S1004,指定服务器将上述封装报文转发至上述目标服务器标识所指示的服务器。
可选地,上述指定服务器与上述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;上述客户端设备与上述指定服务器之间采用的通信协议为第二通信协议。
在本申请的一个可选实施例中,上述指定服务器将上述数据报文转发至上述目标服务器标识所指示的服务器包括:上述指定服务器按照上述客户端设备所指定的通信协议,将上述数据报文转发至上述目标服务器标识所指示的服务器。
可选地,上述客户端设备所指定的通信协议为上述指定服务器和上述客户端设备预先约定的通信协议,或者上述客户端设备通过协商确定的通信协议。
其中,指定服务器的数据发送流程如图11所示,包括以下处理步骤:
步骤S1102,在指定服务器发送数据过程中,侦听UDP消息;
步骤S1104,获取连接信息(即会话信息);
步骤S1106,判断连接是否存在,如果存在,转步骤S1108,否则,转步骤S1110;
步骤S1108,从消息中提取通信内容(即有效载荷数据),转步骤S1116;
步骤S1110,创建新连接,转步骤S1112;
步骤S1112,判断是否创建成功,如果是,转步骤S1108,否则转步骤S1114;
步骤S1114,发送创建失败信息,转步骤S1102;
步骤S1116,向目标服务器发送数据。
其中,步骤S1110中创建新连接的过程可以参见图12所示,如图12所示,该过程包括以下处理步骤:
步骤S1202,根据连接信息向目标服务器发起通信;
步骤S1204,判断是否收到应答,如果是,转步骤S1206,否则转步骤S1208;
步骤S1206,保存会话信息;
步骤S1208,创建失败。
作为通信过程中的一方,指定服务器除了发送数据之外,也可以接收数据,具体如图13所示,包括以下处理步骤:
步骤S1302,在指定服务器接收数据的过程中,对接收的数据进行侦听;
步骤S1304,判断是否接收到数据,如果是,转步骤S1306,否则转步骤S1302;
步骤S1306,从接收的数据中提取数据信息(即有效载荷数据);
步骤S1308,对上述数据信息进行重组,即按照客户端设备与指定服务器之间的通信协议对上述数据信息进行封装;
步骤S1310,将重组后的数据发送给客户端设备。
实施例4
根据本申请实施例,还提供了一种用于实施实施例3所述的数据报文的传输方法的装置,该装置应用于服务器中,如图14所示,该装置包括:
接收模块1402,用于接收来自客户端设备的封装报文;其中,所述封装报文为所述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,所述封装报文中携带有目标服务器标识;
发送模块1404,用于将所述封装报文转发至所述目标服务器标识所指示的服务器。
可选地,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
本实施例中的优选实施方案可以参见实施例4中方法实施例的相关描述,此处不再赘述。
实施例5
根据本申请实施例,还提供了一种数据报文的传输***,如图15所示,该***包括:
应用程序所在终端150,用于将应用程序生成的数据报文发送至客户端设备;
所述客户端设备152,连接至所述终端,用于接收所述数据报文,并对所述数据报文中的有效载荷数据进行封装,得到封装报文,以及将所述封装报文发送至所述指定服务器;其中,所述封装报文中携带有目标服务器标识;
指定服务器154,用于接收所述封装报文,以及将所述封装报文转发至所述目标服务器标识所指示的服务器。
可选地,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
可选地,所述客户端设备与所述应用程序之间采用的通信协议为第三通信协议。
图16示出了数据报文的传输***的一种可选结构。如图16所示,客户端设备和应用程序之间可以使用TCP、UDP、PIPE协议进行通信,客户端设备与指定服务器之间可以使用UDP协议进行通信,指定服务器和目标服务器之间可以使用TCP、UDP和FORWARD协议进行通信。
其中,客户端设备的结构如图17所示:
连接管理模块1700:
连接管理模块有两个作用一个是承接原生TCP/UDP协议、PIPE和客户端设备之间的信息交互;另一个是负责处理和应用程序之间的连接关系,并将连接信息(如源IP、源端口、目标服务器IP、目标服务器端口和协议类型)告知会话管理模块1708进行记录。
内容提取模块1702:
从连接管理模块1700获取纯通信数据信息(不包含TCP/UDP开销)(即有效载荷数据),并将信息转交给内容转换模块1704。
内容转换模块1704:
从会话管理模块1708获取连接信息,按照连接信息将从内容提取模块获取的数据信息进行转换封装,生成新的通信数据。
新数据格式如下(一行4字节):
IP头部保持不变,IP头中的目的IP为指定服务器的IP。
UDP头部有变动,变更方式如下,蓝色为原始UDP头部信息,红色为新增头部信息。
信息发送模块1706:
将内容转换模块1704生成的新的通信数据发送给指定服务器。
内容重组模块1710:
从会话管理模块1708中获取原始通信信息(使用源IP,源端口),将从信息分离模块获取通信数据信息按照原始通信信息进行重组,并最终交换给连接管理模块1700。
信息分离模块1712:
从UDP数据中分离出数据信息,转交给内容重组模块1710。
会话管理模块1708:
会话管理模块1708包含两大功能,负责会话信息记录和协调会话的映射关系。
会话信息记录:因为在任何情况下,五元组(源IP、源端口、目的IP、目的端口和协议类型)是唯一标识一个会话的标志,因此会话之间的关系可以通过通信的五元组信息进行关联和管理。
会话映射关系:会话映射关系可以是同一个应用程序和客户端设备之间的不同通信会话之间的关系,也可以是不同应用程序和客户端设备之间的通信关系。以多应用程序为例:比如当收到会话1的消息时,可以准确的通过会话3发送出去,或者收到会话3的消息准确的发送给会话1。
信息接收模块1714,用于从应用程序和指定服务器接收数据。
在一个可选实施例中,图18示出了指定服务器的结构,如图18所示,该服务器包括:
UDP管理模块180:
处理和装置客户端之间的UDP通信,并将连接信息更新到会话管理模块。
内容提取模块182:
提取UDP管理模块收到的UDP消息,提取消息内容。
会话管理模块184:
与装置客户端的会话管理模块功能类似,服务端装置的会话管理模块负责管理UDP管理模块和代理转发模块之间的会话映射关系。
内容重组模块186:
将代理转发模块收到的数据信息按照UDP装置客户端的要求,重组通信数据。
代理转发模块188:
代理转发模块有3个模块组成:
TCP代理模块1880:处理TCP业务的代理。如果装置客户端要求按照TCP方式连接目标服务器,则由该模块负责。
UDP代理模块:与TCP代理模块类似,该模块处理UDP协议数据。
NAT模块1884:区别于前面两种代理模式,NAT模式不会与目标服务器建立连接,而是透传转发连接请求给目标服务器。
实施例6
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行数据报文的传输方法中以下步骤的程序代码:客户端设备接收来自应用程序的数据报文;所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器为用于接收指定服务器转发的所述封装报文的服务器;所述客户端设备将所述封装报文发送至所述指定服务器。
可选地,图19是根据本申请实施例的一种计算机终端的结构框图。如图19所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器191、存储器193、以及传输装置195。
其中,存储器193可用于存储软件程序以及模块,如本申请实施例中的数据报文的传输方法和装置对应的程序指令/模块,处理器191通过运行存储在存储器193内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据报文的传输方法。存储器193可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器193可进一步包括相对于处理器191远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置195用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置195包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置195为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器193用于存储预设动作条件和预设权限用户的信息、以及应用程序。
处理器191可以通过传输装置调用存储器193存储的信息及应用程序,以执行下述步骤:客户端设备接收来自应用程序的数据报文;所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;所述客户端设备将所述封装报文发送至所述指定服务器。
可选的,上述处理器191还可以执行如下步骤的程序代码:所述客户端设备按照所述第二通信协议对所述有效载荷数据进行封装,并将所述目标服务器标识携带于所述第二通信协议的头部。
可选的,上述处理器191还可以执行如下步骤的程序代码:所述客户端设备从第一会话session中接收所述数据报文。
可选的,上述处理器191还可以执行如下步骤的程序代码:所述客户端设备按照预设映射关系在与所述第一会话对应的第二会话中将所述封装报文发送至所述指定服务器。
本领域普通技术人员可以理解,图19所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图19其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图19中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图19所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据报文的传输方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:客户端设备接收来自应用程序的数据报文;
所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;
所述客户端设备将所述封装报文发送至所述指定服务器。
此处需要说明的是,上述计算机终端群中的任意一个可以与网站服务器和扫描器建立通信关系,扫描器可以扫描计算机终端上php执行的web应用程序的值命令。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端设备,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.一种数据报文的传输方法,其特征在于,包括:
客户端设备接收来自应用程序的数据报文;
所述客户端设备对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;
所述客户端设备将所述封装报文发送至所述指定服务器;
所述指定服务器对所述封装报文进行解析,得到所述目标服务器支持的指定协议类型,按照所述指定协议类型将所述封装报文重新封装,得到重新封装后的封装报文,并将所述重新封装后的封装报文按照所述指定协议类型发送至目标服务器的指定端口,其中,所述目标服务器为所述目标服务器标识所指示的服务器;
其中,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
2.根据权利要求1所述的方法,其特征在于,所述客户端设备对所述数据报文中的有效载荷数据进行封装,包括:
所述客户端设备按照所述第二通信协议对所述有效载荷数据进行封装,并将所述目标服务器标识携带于所述第二通信协议的头部。
3.根据权利要求1所述的方法,其特征在于,所述客户端设备与所述应用程序之间采用的通信协议为第三通信协议。
4.根据权利要求3所述的方法,其特征在于,所述第一通信协议包括以下之一:用户数据报文协议UDP、传输控制协议TCP和转发FORWARD协议;和/或所述第二通信协议包括:UDP;和/或所述第三通信协议包括以下之一:TCP、UDP和管道PIPE协议。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
客户端设备接收来自应用程序的数据报文包括:所述客户端设备从第一会话session中接收所述数据报文;
所述客户端设备将所述封装报文发送至所述指定服务器包括:所述客户端设备按照预设映射关系在与所述第一会话对应的第二会话中将所述封装报文发送至所述指定服务器。
6.一种数据报文的传输方法,其特征在于,包括:
指定服务器接收来自客户端设备的封装报文;其中,所述封装报文为所述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,所述封装报文中携带有目标服务器标识;
所述指定服务器对所述封装报文进行解析,得到所述目标服务器支持的指定协议类型,按照所述指定协议类型将所述封装报文重新封装,得到重新封装后的封装报文,并将所述重新封装后的封装报文按照所述指定协议类型发送至目标服务器的指定端口;其中,所述目标服务器为所述目标服务器标识所指示的服务器;
其中,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
7.根据权利要求6所述的方法,其特征在于,所述指定服务器将所述数据报文转发至所述目标服务器标识所指示的服务器包括:
所述指定服务器按照所述客户端设备所指定的通信协议,将所述数据报文转发至所述目标服务器标识所指示的服务器。
8.根据权利要求7所述的方法,其特征在于,所述客户端设备所指定的通信协议为所述指定服务器和所述客户端设备预先约定的通信协议,或者所述客户端设备通过协商确定的通信协议。
9.一种数据报文的传输装置,应用于客户端设备,其特征在于,包括:
接收模块,用于接收来自应用程序的数据报文;
封装模块,用于对所述数据报文中的有效载荷数据进行封装,得到封装报文;其中,所述封装报文中携带有目标服务器标识,该目标服务器标识所指示的服务器用于接收指定服务器转发的所述封装报文;
发送模块,用于将所述封装报文发送至所述指定服务器;
其中,所述指定服务器对所述封装报文进行解析,得到所述目标服务器支持的指定协议类型,按照所述指定协议类型将所述封装报文重新封装,得到重新封装后的封装报文,并将所述重新封装后的封装报文按照所述指定协议类型发送至目标服务器的指定端口,其中,其中,所述目标服务器为所述目标服务器标识所指示的服务器;
其中,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
10.根据权利要求9所述的装置,其特征在于,所述客户端设备与所述应用程序之间采用的通信协议为第三通信协议。
11.一种数据报文的传输装置,应用于指定服务器中,其特征在于,包括:
接收模块,用于接收来自客户端设备的封装报文;其中,所述封装报文为所述客户端设备对数据报文中的有效载荷数据进行封装后得到的封装报文;其中,所述封装报文中携带有目标服务器标识;
发送模块,用于所述指定服务器对所述封装报文进行解析,得到所述目标服务器支持的指定协议类型,按照所述指定协议类型将所述封装报文重新封装,得到重新封装后的封装报文,并将所述重新封装后的封装报文按照所述指定协议类型发送至目标服务器的指定端口;其中,所述目标服务器为所述目标服务器标识所指示的服务器;
其中,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
12.一种数据报文的传输***,其特征在于,包括:
应用程序所在终端,用于将应用程序生成的数据报文发送至客户端设备;
所述客户端设备,连接至所述终端,用于接收所述数据报文,并对所述数据报文中的有效载荷数据进行封装,得到封装报文,以及将所述封装报文发送至指定服务器;其中,所述封装报文中携带有目标服务器标识;
所述指定服务器,用于接收所述封装报文,并对所述封装报文进行解析,得到所述目标服务器支持的指定协议类型,按照所述指定协议类型将所述封装报文重新封装,得到重新封装后的封装报文,并将所述重新封装后的封装报文按照所述指定协议类型发送至目标服务器的指定端口;其中,所述目标服务器为所述目标服务器标识所指示的服务器;
其中,所述指定服务器与所述目标服务器标识所指示的服务器之间采用的通信协议为第一通信协议;所述客户端设备与所述指定服务器之间采用的通信协议为第二通信协议。
13.根据权利要求12所述的***,其特征在于,所述客户端设备与所述应用程序之间采用的通信协议为第三通信协议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610304787.XA CN107360205B (zh) | 2016-05-09 | 2016-05-09 | 数据报文的传输方法及装置、*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610304787.XA CN107360205B (zh) | 2016-05-09 | 2016-05-09 | 数据报文的传输方法及装置、*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107360205A CN107360205A (zh) | 2017-11-17 |
CN107360205B true CN107360205B (zh) | 2020-12-29 |
Family
ID=60270986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610304787.XA Active CN107360205B (zh) | 2016-05-09 | 2016-05-09 | 数据报文的传输方法及装置、*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107360205B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019041332A1 (zh) * | 2017-09-04 | 2019-03-07 | 深圳前海达闼云端智能科技有限公司 | 一种加速网络传输优化方法以及*** |
CN109120696A (zh) * | 2018-08-17 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 用于发送数据的方法和装置 |
CN111182487B (zh) * | 2018-11-09 | 2022-06-03 | 杭州海康威视数字技术股份有限公司 | 一种数据发送方法、数据接收方法及装置 |
CN111031027A (zh) * | 2019-12-09 | 2020-04-17 | 广州信天翁信息科技有限公司 | 一种数据高效传输方法及异构数据传输层 |
CN112804154A (zh) * | 2021-01-04 | 2021-05-14 | 北京金山云网络技术有限公司 | 报文处理方法、装置、电子设备及介质 |
CN113301106A (zh) * | 2021-03-23 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 运维处理***、方法以及装置 |
CN113726904A (zh) * | 2021-09-03 | 2021-11-30 | 杭州安恒信息技术股份有限公司 | 一种服务器代理方法、装置、设备及计算机可读存储介质 |
CN114363311B (zh) * | 2021-12-22 | 2024-04-12 | 广西交控智维科技发展有限公司 | 道岔智能运维监测***仿真工具的报文上报方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1128634A3 (en) * | 2000-02-28 | 2003-05-14 | Kizna Corporation | Client server system and communication method thereof |
CN101369960A (zh) * | 2007-08-17 | 2009-02-18 | 华为技术有限公司 | 在下一代网络中处理消息的方法、装置及*** |
CN101909011A (zh) * | 2010-08-04 | 2010-12-08 | 成都市华为赛门铁克科技有限公司 | 报文传输方法、***、客户端和代理网关 |
CN104539510A (zh) * | 2014-12-02 | 2015-04-22 | 百纳(武汉)信息技术有限公司 | 一种基于多协议的信息推送***及方法 |
CN104780203A (zh) * | 2015-03-23 | 2015-07-15 | 江苏南开之星软件技术有限公司 | 一种基于弹性云的多点接入方法 |
-
2016
- 2016-05-09 CN CN201610304787.XA patent/CN107360205B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1128634A3 (en) * | 2000-02-28 | 2003-05-14 | Kizna Corporation | Client server system and communication method thereof |
CN101369960A (zh) * | 2007-08-17 | 2009-02-18 | 华为技术有限公司 | 在下一代网络中处理消息的方法、装置及*** |
CN101909011A (zh) * | 2010-08-04 | 2010-12-08 | 成都市华为赛门铁克科技有限公司 | 报文传输方法、***、客户端和代理网关 |
CN104539510A (zh) * | 2014-12-02 | 2015-04-22 | 百纳(武汉)信息技术有限公司 | 一种基于多协议的信息推送***及方法 |
CN104780203A (zh) * | 2015-03-23 | 2015-07-15 | 江苏南开之星软件技术有限公司 | 一种基于弹性云的多点接入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107360205A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107360205B (zh) | 数据报文的传输方法及装置、*** | |
CN110572460B (zh) | 基于区块链***的数据传输方法、装置及计算机设备 | |
US10547505B2 (en) | Software defined networking for edge nodes | |
US8885649B2 (en) | Method, apparatus, and system for implementing private network traversal | |
CN110601902B (zh) | 一种基于区块链网络的交互数据处理方法及装置 | |
US8817815B2 (en) | Traffic optimization over network link | |
CN107104929B (zh) | 防御网络攻击的方法、装置和*** | |
EP4210297A1 (en) | Edge application discovery method and apparatus, and edge application service support method and apparatus | |
CN112751898B (zh) | 负载均衡方法、装置、介质及设备 | |
US11418438B2 (en) | Signaling packet processing method and entity | |
EP3119057A1 (en) | Packet conversion device and method for allowing transparent packet-based multipath bundling | |
KR101538762B1 (ko) | 캡슐화 프로토콜을 이용하여 클라이언트의 ip 주소를 서버로 전송하는 중계 시스템 및 방법 | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN102771164A (zh) | 针对旧版本应用和非旧版本应用提供智能无线模块选择的方法和装置 | |
CN108696546B (zh) | 一种企业移动专用网的用户终端访问公网的方法及装置 | |
EP3709684A1 (en) | Secure and transparent transport of application level protocols over non-ip data delivery communication channels | |
CN111786869B (zh) | 一种服务器之间的数据传输方法及服务器 | |
CN111786868B (zh) | 服务器之间的数据传输方法及strongswan服务器 | |
WO2021244356A1 (zh) | 数据传输方法及装置 | |
CN110351394B (zh) | 网络数据的处理方法及装置、计算机装置及可读存储介质 | |
CN114205185B (zh) | 一种控制报文的代理方法及装置 | |
CN115604339A (zh) | 基于udp和quic协议的ip透明传输方法和*** | |
WO2014067065A1 (zh) | 实现隧道处理的方法、装置和*** | |
CN114650197A (zh) | 通信方法、装置及用户面网元和存储介质 | |
CN111614539B (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 |