CN116938921A - 一种数据处理方法、装置以及相关设备 - Google Patents
一种数据处理方法、装置以及相关设备 Download PDFInfo
- Publication number
- CN116938921A CN116938921A CN202210356598.2A CN202210356598A CN116938921A CN 116938921 A CN116938921 A CN 116938921A CN 202210356598 A CN202210356598 A CN 202210356598A CN 116938921 A CN116938921 A CN 116938921A
- Authority
- CN
- China
- Prior art keywords
- service
- request
- target
- data packet
- client
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 37
- 238000004891 communication Methods 0.000 claims abstract description 470
- 238000000034 method Methods 0.000 claims abstract description 75
- 230000004044 response Effects 0.000 claims description 159
- 238000012545 processing Methods 0.000 claims description 75
- 238000012546 transfer Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 abstract description 68
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 12
- 230000009286 beneficial effect Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 210000001072 colon Anatomy 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Abstract
本申请公开了一种数据处理方法、装置以及相关设备,该方法包括:通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;通过隧道服务组件将请求数据包转发至服务网络中的服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力,服务网络设备包括基于目标通讯协议的目标服务端,目标服务端用于响应请求数据包。采用本申请,可以提高数据跨网传输的安全性,且降低系统资源占用率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据处理方法、装置以及相关设备。
背景技术
在相关业务场景(例如,远程登录场景)中,由于网络环境复杂,对于处于不同网络中的设备,无法实现直接的数据传输。以不同网络之间服务器的远程登录和访问为例,对于两个独立的网络A和网络B,网络A中的一台服务器1无法去登录和操作网络B中的另一台服务器2,所以常用的方法是使用一些专业的第三方商业软件。然而,这种方式通常需要在本地设备(例如,网络A中的服务器1)和远端设备(例如,网络B中的服务器2)上均安装第三方商业软件,以至于会占用大量系统资源,同时,第三方商业软件的使用可能会导致数据安全问题。
发明内容
本申请实施例提供了一种数据处理方法、装置以及相关设备,可以提高数据跨网传输的安全性,且降低系统资源占用率。
本申请实施例一方面提供了一种数据处理方法,该方法由中转网络中的具有隧道服务组件的中转网络设备执行,包括:
通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;
通过隧道服务组件将请求数据包转发至服务网络中的服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力,服务网络设备包括基于目标通讯协议的目标服务端,目标服务端用于响应请求数据包。
本申请实施例一方面提供了一种数据处理方法,该方法由中转网络中的具有隧道服务组件的中转网络设备执行,包括:
通过隧道服务组件获取服务网络中的服务网络设备所发送的具有目标通讯协议的响应数据包;响应数据包是指在服务网络设备接收到中转网络设备所转发的请求数据包时,由服务网络设备上的基于目标通讯协议的目标服务端生成的请求数据包所请求的数据;请求数据包是指请求客户端发送的具有目标通讯协议的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
通过隧道服务组件将响应数据包转发至请求客户端。
本申请实施例一方面提供了一种数据处理方法,该方法由服务网络中具有隧道代理组件的服务网络设备执行,包括:
通过隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
通过隧道代理组件将请求数据包发送至运行在服务网络设备上的目标服务端;目标服务端用于生成请求数据包所请求的具有目标通讯协议的响应数据包,响应数据包用于发送至请求客户端。
本申请实施例一方面提供了一种数据处理方法,该方法由服务网络中具有隧道代理组件的服务网络设备执行,包括:
通过隧道代理组件获取具有目标通讯协议的响应数据包;响应数据包是由运行在服务网络设备上的目标服务端基于具有目标通讯协议的请求数据包所生成的;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;中转网络中的中转网络设备用于将请求数据包转发至服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力;
通过隧道代理组件将响应数据包发送至中转网络设备。
本申请实施例一方面提供了一种数据处理装置,包括:
请求获取模块,用于通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;
请求转发模块,用于通过隧道服务组件将请求数据包转发至服务网络中的服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力,服务网络设备包括基于目标通讯协议的目标服务端,目标服务端用于响应请求数据包。
本申请实施例一方面提供了一种数据处理装置,包括:
响应获取模块,用于通过隧道服务组件获取服务网络中的服务网络设备所发送的具有目标通讯协议的响应数据包;响应数据包是指在服务网络设备接收到中转网络设备所转发的请求数据包时,由服务网络设备上的基于目标通讯协议的目标服务端生成的请求数据包所请求的数据;请求数据包是指请求客户端发送的具有目标通讯协议的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
响应转发模块,用于通过隧道服务组件将响应数据包转发至请求客户端。
本申请实施例一方面提供了一种数据处理装置,包括:
数据接收模块,用于通过隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
请求发送模块,用于通过隧道代理组件将请求数据包发送至运行在服务网络设备上的目标服务端;目标服务端用于生成请求数据包所请求的具有目标通讯协议的响应数据包,响应数据包用于发送至请求客户端。
本申请实施例一方面提供了一种数据处理装置,包括:
数据获取模块,用于通过隧道代理组件获取具有目标通讯协议的响应数据包;响应数据包是由运行在服务网络设备上的目标服务端基于具有目标通讯协议的请求数据包所生成的;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;中转网络中的中转网络设备用于将请求数据包转发至服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力;
响应发送模块,用于通过隧道代理组件将响应数据包发送至中转网络设备。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,可以在中转网络中的中转网络设备上部署隧道服务组件,进而在数据跨网传输的过程中,可以通过该隧道服务组件获取运行在目标网络中的请求网络设备上的请求客户端所发送的具有目标通讯协议的请求数据包,进一步,可以通过该隧道服务组件将请求数据包转发至服务网络中的服务网络设备,以便后续服务网络设备可以通过其包含的基于目标通讯协议的目标服务端来响应该请求数据包。可以理解,对于处在不同网络中的设备,请求网络设备以及服务网络设备均具备通过目标通讯协议访问中转网络的能力。由此可见,本申请实施例支持隧道服务组件的灵活部署,可以将请求客户端发送的请求数据包安全高效地转发至目标服务端进行处理,从而可以提高数据跨网传输的安全性。此外,由于请求网络设备和服务网络设备均不需要额外安装第三方商业软件,因此可以降低系统资源占用率,同时可以大幅降低商业软件的使用成本。
附图说明
图1是本申请实施例提供的一种网络架构示意图;
图2是本申请实施例提供的一种数据处理方法的流程示意图;
图3是本申请实施例提供的一种隧道服务组件的网络连接示意图;
图4是本申请实施例提供的一种数据处理方法的流程示意图;
图5是本申请实施例提供的一种数据处理方法的流程示意图;
图6是本申请实施例提供的一种隧道代理组件的网络连接示意图;
图7是本申请实施例提供的一种数据处理方法的流程示意图;
图8是本申请实施例提供的一种数据处理的场景示意图;
图9是本申请实施例提供的一种数据处理方法的交互流程示意图;
图10是本申请实施例提供的一种数据处理装置的结构示意图;
图11是本申请实施例提供的一种数据处理装置的结构示意图;
图12是本申请实施例提供的一种数据处理装置的结构示意图;
图13是本申请实施例提供的一种数据处理装置的结构示意图;
图14是本申请实施例提供的一种计算机设备的结构示意图;
图15是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。如图1所示,该网络架构可以包括服务网络设备10A、中转网络设备10B以及请求网络设备集群。其中,请求网络设备集群可以包括多个请求网络设备,本申请实施例不对请求网络设备集群所包含的请求网络设备的数量进行限定。例如,请求网络设备集群具体可以包括:请求网络设备200a、请求网络设备200b、请求网络设备200c、…、请求网络设备200n,其中,请求网络设备集群之间可以存在通信连接,例如请求网络设备200a与请求网络设备200b之间存在通信连接,请求网络设备200a与请求网络设备200c之间存在通信连接。同时,请求网络设备集群中的任一请求网络设备可以与中转网络设备10B存在通信连接,例如请求网络设备200a与中转网络设备10B之间存在通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。
可以理解的是,本申请实施例中的请求网络设备可以是指使用目标通讯协议向服务网络设备10A请求相关数据的计算机设备,该计算机设备可以是终端设备或服务器。这里的目标通讯协议是指一种用于实现不同设备之间(例如请求网络设备与中转网络设备,中转网络设备与服务网络设备)进行可靠的数据通信的通讯协议,例如,在远程登录场景中,请求网络设备可以为本地的任意终端设备,目标通讯协议可以为传输控制协议(Transmission Control Protocol,TCP)。其中,传输控制协议是一种面向连接的、可靠的、基于字节流的传输层(transport layer)通信协议。
应当理解,如图1所示的请求网络设备集群中的每个请求网络设备均可以安装有相应的客户端,在本申请实施例中,可以将运行在请求网络设备上的客户端称为请求客户端,当该请求客户端运行于各请求网络设备中时,可以分别与上述图1所示的服务网络设备10A之间进行数据交互。其中,这里的请求客户端可以为浏览器、办公类客户端(例如,电子邮件客户端)、社交类客户端(例如,即时通信客户端)、多媒体客户端(例如,视频客户端)、资讯类客户端(例如,新闻客户端)、娱乐客户端(例如,阅读类客户端、游戏客户端)、购物客户端、车载客户端等使用目标通讯协议(例如TCP)的客户端。其中,该请求客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端)中的嵌入式子客户端,在此不做限定。其中,服务网络设备10A可以指用于为请求客户端提供特定业务服务(例如,远程登录服务)的计算机设备,该计算机设备可以是终端设备或服务器,例如,在远程登录场景中,服务网络设备10A可以为远端的服务器。因此,每个请求网络设备均可以通过安装好的请求客户端与服务网络设备10A进行数据交互,如每个请求网络设备均可以通过请求客户端发送具有目标通讯协议的数据(如TCP数据)去请求服务网络设备10A中的相关数据。
需要说明的是,在实际业务场景中,网络环境较为复杂,服务网络设备10A与请求网络设备集群通常处于不同的网络中,此时往往无法实现直接的基于目标通讯协议的数据传输。为便于后续理解和说明,本申请实施例可以将服务网络设备所处的网络称为服务网络,将请求网络设备所处的网络称为目标网络。针对相关数据跨网传输过程中出现的信息安全问题,本申请实施例提供了一种安全可靠且轻量化的数据跨网传输方案,即借助如图1所示的中转网络设备10B,实现在服务网络设备10A和请求网络设备集群之间的数据跨网转发。其中,本申请实施例中的中转网络设备是指具有隧道服务组件的计算机设备,该计算机设备可以是终端设备或服务器,例如,在远程登录场景中,中转网络设备可以为服务器。此外,本申请实施例可以将中转网络设备所处的网络称为中转网络。
在一些实施例中,服务网络和目标网络又可以称为内网,相应的,中转网络又可以称为公网(或者外网),这里的内网和公网是相对的,公网并非特指因特网或某个网络,只要内网中的设备(或机器)能够访问到某个设备(或机器)所在的网络,就可以将该网络定义为公网。其中,服务网络和目标网络可以是彼此独立的网络(例如异地的不同的网络),这两个网络之间不可达,或者也可以是彼此之间网络可达、可以互相访问的网络,本申请实施例对此不进行限定,但服务网络中的设备(例如服务网络设备)和目标网络中的设备(例如请求网络设备)均可以访问中转网络,例如,图1所示的服务网络设备10A和请求网络设备集群中的任一请求网络设备(如请求网络设备200a)均可以访问到中转网络设备10B。
为便于理解,下面以图1所示的服务网络设备10A、中转网络设备10B以及请求网络设备200a为例进行说明。其中,终端设备200a上安装并运行请求客户端A,中转网络设备10B上部署有隧道服务组件B,该隧道服务组件B可以为用户提供安全的数据转发服务,基于此,当请求网络设备200a通过请求客户端A发送具有目标通讯协议(例如TCP)的请求数据包C时,中转网络设备10B可以先通过隧道服务组件B获取该请求数据包C,进而可以通过隧道服务组件B将该请求数据包C转发至服务网络设备10A。例如,在一些实施例中,隧道服务组件B可以包含有基于目标通讯协议的中转服务端B1(即第一中转服务端,如TCP服务端)和中转服务端B2(即第二中转服务端,如TCP服务端),该中转服务端B1与请求客户端A之间可以存在基于目标通讯协议的通信连接,类似的,该中转服务端B2与服务网络设备10A之间也可以存在基于目标通讯协议的通信连接,因此,中转网络设备10B可以通过该中转服务端B1获取上述请求客户端A所发送的请求数据包C,进而可以通过该中转服务端B2将该请求数据包C发送给服务网络设备10A。由于服务网络设备10A包含有基于目标通讯协议的目标服务端D(如TCP服务端),因此后续服务网络设备10A可以通过该目标服务端D来响应其接收到的请求数据包C,从而可以实现将请求客户端A所发送的请求数据包C跨网传输至目标服务端D。
上述可知,对于处在不同网络中的设备,请求网络设备具备通过目标通讯协议访问中转网络的能力,同时服务网络设备也具备通过目标通讯协议访问中转网络的能力,可选的,当请求网络设备和服务网络设备之间网络可达时,请求网络设备上的请求客户端可以直接访问服务网络设备上的业务服务(例如远程登录服务);可选的,当请求网络设备和服务网络设备之间网络不可达时,请求网络设备上的请求客户端无法直接访问服务网络设备上的业务服务,因此,通过在中转网络设备上部署的隧道服务组件,可以将请求客户端发送的请求数据包转发至服务网络设备上的目标服务端进行处理,需要说明的是,隧道服务组件的部署方式非常灵活,本申请实施例对此不进行限定,例如,可以支持部署在公有云、私有云或普通的服务器上(即对中转网络设备所采用的具体技术和具体设备形态不做限定)。此外,与相关技术相比,由于请求网络设备和服务网络设备均不需要额外安装第三方商业软件,从而可以保障数据安全可控,实现安全高效的数据跨网传输,同时可以降低系统资源占用率以及商业软件的使用成本。可以理解,即使在请求网络设备和服务网络设备之间网络可达的情况下,上述方法仍然适用,也就是说,本申请提供的方法可以兼容请求网络设备和服务网络设备之间网络可达和网络不可达这两种场景。
可以理解,为了能够及时准确地获取请求客户端发送的请求数据包进行响应,本申请还可以在服务网络设备上部署相应的隧道代理组件,用于与上述隧道服务组件共同实现具有目标通讯协议的数据跨网传输,其具体实现方式可以参见后续实施例。
需要说明的是,本申请实施例将不对请求客户端的数量进行限制,本申请不仅支持单个请求客户端的跨网访问,而且可以支持多个请求客户端的跨网访问,部署方式非常灵活,系统资源占有率低,可以用于解决受限网络环境下的TCP数据跨网传输问题。
可以理解的是,本申请实施例中的终端设备可以包括用户设备(例如,智能手机、平板电脑、笔记本电脑、台式计算机、掌上电脑)、智能语音交互设备、智能家电、接入终端、V2X(Vehicle to X)通信中的终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、无线通信设备、用户代理或用户装置。终端设备还可以是蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备(例如智能手表、智能手环等)、智能电脑等,未来5G(5th Generation MobileCommunication Technology,第五代移动通信技术)网络中的终端设备或者未来演进的公用陆地移动通信网络(Public Land Mobile Network,PLMN)中的终端设备等,本申请实施例对此不做限定。终端设备还可以包括V2X设备,例如为车辆或车辆中的车载单元(OnBoard Unit,OBU)。终端设备可以是固定位置的,也可以是可移动的。本申请实施例对终端设备所采用的具体技术和具体设备形态不做限定。
可以理解的是,本申请实施例中的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。本申请实施例对服务器所采用的具体技术和具体设备形态不做限定。
需要说明的是,上述目标通讯协议仅是一个名字,名字对协议本身不构成限定。例如,目标通讯协议也可以称作传输控制协议、数据传输协议等等,本申请对协议名称不做限定。在互联网或其它网络中,本申请实施例提及的协议也可以是其它的名字,对此不做限定。类似的,隧道服务组件、隧道代理组件仅是一个名字,名字对组件本身不构成限定,例如,隧道服务组件可以是中转网络设备中提供数据转发服务的组件、功能模块或应用程序,本申请实施例对此不做限定。
可以理解的是,上述网络架构可以应用于多种业务场景中,例如远程登录场景、文件传输场景、电子邮件收发场景等。例如,在远程登录场景中,本申请实施例所实现的跨网络的远程主机登录和访问方法,通过部署在公网的SSH(Secure Shell,安全外壳协议)隧道服务(即隧道服务组件)和部署在远程主机上的SSH隧道代理(即隧道代理组件),可以支持通过标准SSH工具(即请求客户端)从内网经公网去访问远程主机,该方法可以进一步打造成公有云平台或者私有云平台的产品服务,实现用户在本地主机和远程主机点对点网络不可达的情况下的远程SSH登录和访问。此外,该方法也可以作为IT(Internet Technology,互联网技术)企业远程运维的管理工具,集成到企业运维管理堡垒机方案中,以实现灵活的SSH远程访问。其中,SSH为建立在应用层基础上的安全协议,SSH是较可靠、专为远程登录会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中的信息泄露问题,且SSH客户端适用于多种操作平台。
可以理解,当目标通讯协议为传输控制协议(即TCP)时,本申请提供的方法可以广泛应用于多种TCP应用的场景中,不仅仅局限于SSH登录,只要是具有已知的、固定的网络地址的TCP应用,均可以拓展使用。
其中,通过在中转网络设备10B上部署隧道服务组件和在服务网络设备10A上部署隧道发代理组件来实现安全高效的数据跨网传输的具体实现方式,可以参见下述图2-图9所对应实施例中的描述。
请参见图2,图2是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以由中转网络中的具有隧道服务组件的中转网络设备(例如,上述图1所示的中转网络设备10B)执行。如图2所示,该数据处理方法至少可以包括以下S101-S102:
S101,通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;
可以理解,当请求客户端希望访问服务网络设备上的基于目标通讯协议的业务服务时,可以先向中转网络设备发送具有目标通讯协议的请求数据包,进而该中转网络设备可以通过隧道服务组件获取该请求数据包。其中,请求客户端是运行在目标网络中的请求网络设备上的客户端,该请求网络设备具备通过目标通讯协议访问中转网络的能力,这里的目标通讯协议可以是传输控制协议(即TCP)或其它协议,本申请实施例对此不进行限定。
其中,传输控制协议具有高可靠性的优点,可提供可靠交付的服务,由于TCP是面向连接的传输层协议,因此应用程序(例如上述请求客户端)在使用TCP协议之前,必须先建立TCP连接,通过TCP连接传送的数据,无差错、不丢失、不重复,并且按序到达。因此,TCP协议适合于对可靠性要求高的应用场景,例如,万维网中使用的超文本传输协议(Hyper TextTransfer Protocol,HTTP),远程终端接入应用中使用的远程终端协议(teletypenetwork,TELNET),电子邮件传输使用的简单邮件传输协议(Simple Mail TransferProtocol,SMTP)等等,实际应用中可以根据具体业务需求来选择合适的目标通讯协议。
其中,请求数据包所传输的数据可以是普通的具有目标通讯协议的数据,也可以是文本、程序、数据库等文件或者其它类型的数据,本申请实施例将不对请求数据包所传输的数据的数据类型进行限定。
在本申请实施例中,隧道服务组件可以包括基于目标通讯协议的第一中转服务端和基于目标通讯协议的第二中转服务端,通过第一中转服务端和第二中转服务端可以实现数据转发。可以理解,通常可以使用不同的端口为不同的应用保留各自的数据传输通道,传输控制协议正是采用了这一机制实现对同一时刻内多项应用同时发送和接收数据的支持,例如,数据发送方(可以是客户端或服务器端)将TCP数据通过源端口发送出去,而数据接收方通过目标端口接收数据。基于此,在本申请实施例中,为了实现数据交互,隧道服务组件可以通过绑定端口来提供相应的服务地址进行数据通信。具体来说,第一中转服务端可用于绑定第一服务端口,可以理解,在一些实施例中,公网无法直接向内网发送数据,即中转网络设备无法找到请求网络设备,因此请求网络设备上的请求客户端需要主动向中转网络设备建立通信连接,为了便于说明和区分,本申请实施例可将该通信连接称为第一通信连接,也就是说,第一服务端口可用于在请求客户端发送请求数据包前与请求客户端建立基于目标通讯协议的第一通信连接,且第一通信连接是由请求客户端所发起的。例如,该第一服务端口可以是TCP端口,成功绑定TCP端口后,第一中转服务端可以通过该TCP端口向请求客户端收发TCP数据。
类似的,第二中转服务端可用于绑定第二服务端口,可以理解,在一些实施例中,公网无法直接向内网发送数据,即中转网络设备无法找到服务网络设备,因此服务网络设备需要主动向中转网络设备建立通信连接,为了便于说明和区分,本申请实施例可将该通信连接称为第二通信连接,也就是说,第二服务端口可用于与服务网络设备建立基于目标通讯协议的第二通信连接,且第二通信连接是由服务网络设备上的隧道代理组件所发起的。例如,该第二服务端口也可以是TCP端口,成功绑定TCP端口后,第二中转服务端可以通过该TCP端口向服务网络设备收发TCP数据。
可以理解,在一些实施例中,当某些企业内网基于相关策略控制的考量,只允许建立TCP连接到外网去时,由于传输控制协议(即TCP)可为通信双方提供可靠的通信方式,因此该场景下将目标通讯协议设置为传输控制协议(即TCP)是十分合适的。
可以理解,在本申请实施例中,每个端口均采用相应的端口号进行标识,并且在同一台设备上每个端口的端口号是唯一的。
例如,当目标通讯协议为TCP协议时,上述第一通信连接和第二通信连接均为TCP连接,可以理解,在一些实施例中,TCP连接的端点可称为套接字(socket)或插口,端口号拼接到IP地址(Internet Protocol Address,即互联网协议地址,又可称为网际协议地址)即构成了套接字,因此,套接字的表示方法可以为在点分十进制的IP地址后面写上端口号,中间用冒号或者逗号隔开,即套接字socket=(IP地址:端口号)。例如,若IP地址为192.3.4.5,而端口号为80,那么相应的套接字就是(192.3.4.5:80)。可以理解,每一条TCP连接唯一地被通信两端的两个端点所确定,即TCP连接::={socket1,socket2}={(IP1:port1),(IP2:port2)},这里的IP1和IP2分别是两个端点主机的IP地址,而port1和port2分别是两个端点主机中的端口号,TCP连接的两个套接字就是socket1和socket2。由此可见,TCP连接是由软件协议所提供的一种抽象,TCP连接的端点是个很抽象的套接字,即(IP地址:端口号)。同一个IP地址可以有多个不同的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。基于此,在本申请实施例中,绑定第一服务端口的第一中转服务端具有第一服务地址,该第一服务地址可以包括中转网络设备的网络地址和第一服务端口的端口号;类似的,绑定第二服务端口的第二中转服务端具有第二服务地址,该第二服务地址可以包括中转网络设备的网络地址和第二服务端口的端口号。其中,中转网络设备的网络地址具体可以为IP地址,则第一服务地址可以表示为(中转网络设备的IP地址:第一服务端口的端口号),类似的,第二服务地址可以表示为(中转网络设备的IP地址:第二服务端口的端口号)。此外,中转网络设备的网络地址还可以为其它规定的地址,本申请实施例对此不进行限定。
可以理解,第一服务端口和第二服务端口均可以在隧道服务组件运行时进行绑定,且这两个端口是可以配置的,例如,可以使用中转网络设备上未被注册占用的任意空闲的动态端口,也可以使用预先为第一中转服务端和第二中转服务端预留的静态端口,本申请实施例对此不进行限定。其中,动态端口可以被任意应用程序使用,当该应用程序不需要时进行回收待用;而静态端口只能被指定的应用程序使用。需要说明的是,第一服务端口和第二服务端口可以是不同的端口,也可以是相同的端口,这里将不进行限定,下面分别对这两种情况进行说明。
可选的,在第一种实施方式中,当第一服务端口(例如,端口Port1,Port1可表示该端口的端口号)与第二服务端口(例如,端口Port2,Port2可表示该端口的端口号)互不相同时(即Port1不等于Port2),相应的,第一中转服务端与第二中转服务端为不相同的服务端,则在隧道服务组件中,当请求客户端通过第一通信连接向中转网络设备发送具有目标通讯协议的请求数据包(例如TCP数据包)时,第一中转服务端可以通过其绑定的第一服务端口(例如端口Port1)接收该请求数据包。可以理解,在该实施方式中,第一服务地址和第二服务地址也互不相同。
可选的,在第二种实施方式中,当第一服务端口(例如,端口Port3,Port3可表示该端口的端口号)与第二服务端口(例如,端口Port4,Port4可表示该端口的端口号)相同时(即Port3等于Port4),相应的,第一中转服务端与第二中转服务端为相同的服务端,则在隧道服务组件中,当请求客户端通过第一通信连接向中转网络设备发送具有目标通讯协议的请求数据包(例如TCP数据包)时,第一中转服务端可以通过其绑定的第一服务端口(例如端口Port3或者端口Port4)获取该请求客户端所发送的第一发送标识信息和请求数据包,其中,这里的第一发送标识信息用于指示该请求数据包来源于请求客户端。可以理解,在该实施方式中,第一服务地址和第二服务地址是相同的。
可以理解,与上述第一种实施方式相比,第二种实施方式中的隧道服务组件虽然只绑定了一个端口,但是该端口既与请求客户端建立了第一通信连接,又与服务网络设备建立了第二通信连接,因此当隧道服务组件通过该端口接收到数据时,并不清楚该数据是来源于请求客户端还是服务网络设备,这样就需要数据发送方(即请求客户端或服务网络设备)在发送数据时告知隧道服务组件自己是访问端还是被访问端,例如,在请求客户端发送请求数据包时,可以额外发送一条信息来表明自己的身份,也可以说是指示该请求数据包的来源,为便于后续说明和区分,本申请实施例可以将该信息称为第一发送标识信息,这里将不对第一发送标识信息的具体内容进行限定。
上述可知,采用第一种实施方式的好处是访问端和被访问端所连接的端口互不干扰,因此数据来源清楚,除了需要跨网络传输的数据外不需要再额外发送其它信息(例如上述第一发送标识信息)来标识数据来源,数据传输量相对较小,但是需要占用中转网络设备上的多个端口;而采用第二种实施方式的好处是访问端和被访问端均可以连接到同一个端口,中转网络设备上的端口占用率较低,但是需要额外发送其它信息来标识数据来源,数据传输量相对较大。在实际应用中,可以根据需要选择合适的端口绑定方式,本申请对此不进行限定。
S102,通过隧道服务组件将请求数据包转发至服务网络中的服务网络设备。
可以理解,在第一中转服务端获取到请求数据包后,可以通过隧道服务组件上的第二中转服务端将该请求数据包转发至服务网络中的服务网络设备进行后续处理。其中,该服务网络设备具备通过目标通讯协议访问中转网络的能力,且服务网络设备可以包括基于目标通讯协议的目标服务端,该目标服务端可用于响应接收到的请求数据包。
结合上述S101中的描述,下面分别对第一服务端口和第二服务端口为不同的端口或者为相同的端口这两种情况进行说明。
可选的,在第一种实施方式中,当第一服务端口与第二服务端口互不相同时,相应的,第一中转服务端与第二中转服务端为不相同的服务端,则在隧道服务组件中,第一中转服务端可以先通过中转网络设备的内存将请求数据包传输至第二中转服务端,随后第二中转服务端可以通过其绑定的第二服务端口(例如端口Port2)将该请求数据包转发至服务网络设备。
可选的,在第二种实施方式中,当第一服务端口与第二服务端口相同时,相应的,第一中转服务端与第二中转服务端为相同的服务端,因此,在隧道服务组件中,第二中转服务端(此时即为第一中转服务端)可以通过第二服务端口(此时即为第一服务端口,例如端口Port3或者端口Port4)将其接收到的请求数据包转发至服务网络设备。
需要说明的是,本申请实施例可以支持一个或多个请求客户端访问目标服务端,本申请实施例对请求客户端的数量不仅限定,例如,可以支持一台请求网络设备上的一个或多个请求客户端发起访问请求,也可以支持多台请求网络设备上的请求客户端发起访问请求。可以理解,当请求客户端的数量为至少两个时,请求网络设备与中转网络设备之间的第一通信连接可以包含至少两条基于目标通讯协议的第一通信链路(例如TCP链路),每个请求客户端对应于一条第一通信链路,每条第一通信链路可以用于为其所连接的请求客户端和中转网络设备传输数据。相应的,中转网络设备与服务网络设备之间的第二通信连接也可以包含至少两条基于目标通讯协议的第二通信链路(例如TCP链路),每条第二通信链路可以用于为其所连接的中转网络设备和服务网络设备传输数据,例如,中转网络设备可以将每个请求客户端所发送的请求数据包分别通过其中一条第二通信链路传输至服务网络设备。可以理解,对于请求客户端来说,第二通信链路与第一通信链路是一一对应的,也就是说,当一个请求客户端A使用第一通信链路X和第二通信链路Y进行数据传输时,其它的请求客户端就不能再同时使用该第二通信链路Y,而是可以去选取其它空闲的第二通信链路进行数据传输。
其中,第二通信链路的数量可以大于或等于第一通信链路的数量,也就是说,当有多个(例如,N个)请求客户端同时进行数据传输时,数据流量较大,因此可以通过创建多条(例如,N条或多于N条)第二通信链路来满足需求。可选的,上述至少两条第二通信链路均可以是预先创建的,或者,也可以包含一部分预先创建的第二通信链路,另一部分则是在检测到没有空闲的第二通信链路时才创建的,这样,中转网络设备可以及时地对其接收到的数据进行转发,从而可以在一定程度上提升数据跨网传输的效率。在一些实施例中,为了保证其它请求客户端的访问请求,中转网络设备与服务网络设备之间可以始终保持至少一条空闲的第二通信链路。
可以理解,每条通信链路均可具有相应的服务状态,用于表示该通信链路当前的使用情况,为便于区分,本申请实施例可以将正被使用的通信链路的服务状态标记为已使用状态,反之,可以将未被使用的、空闲的通信链路的服务状态标记为未使用状态,本申请实施例将主要关注第二通信链路的服务状态。
基于此,中转网络设备上的隧道服务组件在接收到请求客户端通过第一通信链路传输过来的请求数据包后,又可以及时通过第二通信链路将该请求数据包转发给后端的服务网络设备。例如,假设上述至少两个请求客户端包括目标请求客户端,则该目标请求客户端所发送的请求数据包可以称为目标请求数据包,同时,假设上述至少两条第二通信链路中包括具有未使用状态的目标第二通信链路(即此时目标第二通信链路为空闲的通信链路),这里以目标请求数据包为例,上述第二中转服务端通过第二服务端口将请求数据包转发至服务网络设备的具体过程可以为:当第二中转服务端接收到目标请求数据包时,可以通过第二服务端口与服务网络设备之间的目标第二通信链路,将目标请求数据包转发至服务网络设备中的隧道代理组件,可以理解,这里的第二中转服务端可以与第一中转服务端相同,也可以不相同,本申请实施例对此不做限定。其中,该隧道代理组件可以包括基于目标通讯协议的第一代理客户端和第二代理客户端,这里的第一代理客户端可用于与第二中转服务端建立目标第二通信链路,且可用于将目标请求数据包传输至第二代理客户端;而第二代理客户端则可用于通过目标通讯协议与后端的目标服务端进行数据通信,例如将目标请求数据包传输至目标服务端进行处理。隧道代理组件对请求数据包的具体处理过程可以参见后续图5所对应的实施例,这里暂不展开。同时,由于目标第二通信链路已经用于传输目标请求数据包了,因此,可选的,第二中转服务端可以将目标第二通信链路的服务状态由之前的未使用状态转换为已使用状态;可选的,对目标第二通信链路的服务状态的切换也可以由第一代理客户端执行,这里不进行限定。可以理解,当上述至少两条第二通信链路的服务状态均为已使用状态时,隧道代理组件中的第一代理客户端还可以主动与第二中转服务端建立一条或多条具有未使用状态的第二通信链路来备用,本申请实施例将不对第一代理客户端与第二中转服务端之间的第二通信链路的数量进行限定,在实际应用时,第二通信链路的具体数量可以取决于目标服务端的服务能力。
为便于理解,请一并参见图3,图3是本申请实施例提供的一种隧道服务组件的网络连接示意图。可以理解,当目标通讯协议为TCP时,隧道服务组件可以是一个软件开发的TCP应用程序,它可以部署在中转网络设备(例如,公网服务器)上,例如,在远程登录SSH服务的场景下,隧道服务组件也可以称为SSH隧道服务,且可以为第一中转服务端和第二中转服务端绑定相同的或者不同的端口来分别为请求网络设备(例如,主机1)和服务网络设备(例如,主机2)作为TCP服务端提供数据转发服务。例如,当第一中转服务端(例如,TCP服务端1)和第二中转服务端(例如,TCP服务端2)分别绑定不同的端口时,请求网络设备上的请求客户端(例如,SSH客户端)可以作为TCP客户端连接到隧道服务组件上的一个TCP服务地址(即第一服务地址),服务网络设备上的隧道代理组件(此时也可称为SSH隧道代理)所包含的第一代理客户端可作为TCP客户端连接到隧道服务组件上的另一个TCP服务地址(即与第一服务地址不同的第二服务地址)。其中,当中转网络设备上的隧道服务组件和服务网络设备上的隧道代理组件运行起来后,隧道代理组件可以主动发起向隧道服务组件的TCP连接(即第二通信连接),以便隧道服务组件的第一中转服务端在接收到来自于请求客户端的数据时能够及时将数据从该TCP连接上转发给后端的隧道代理组件。同时,该TCP连接会被标记为“已使用”(即切换为已使用状态)。此外,在远程登录SSH服务的场景下,为了保证其它的SSH连接请求,SSH隧道服务和SSH隧道代理之间可以始终保持至少一条空闲的TCP连接。
需要说明的是,本申请实施例中隧道服务组件和隧道代理组件之间的数据传递既可以采用加密处理以提升数据的安全性,也适用于不使用加密处理的方式。可以理解,在一些实施例中,用于传输的请求数据包可以为已加密的数据,例如,在远程登录场景中,请求客户端可以使用安全外壳协议(即SSH)进行数据加密以得到请求数据包,因此隧道服务组件可以直接将该请求数据包转发给服务网络设备。可选的,在另一些实施例中,若请求网络设备未对需要传输的数据进行加密,或者希望在传输过程中进行二次加密,则当隧道服务组件接收到请求数据包后,可以对该请求数据包进行加密处理,从而得到加密请求数据包,这样可以在一定程度上提升数据的安全性,进而可以将该加密请求数据包转发至服务网络设备中的隧道代理组件,在该场景下,后续隧道代理组件需要先对该加密请求数据包进行解密处理以获取相应的请求数据包,随后可将获取到的请求数据包发送给目标服务端,这里的解密处理的过程和加密处理的过程是相逆的。其中,本申请实施例将不对加密处理所采用的具体方式进行限定,例如,可以采用对称加密方式,也可以采用非对称加密方式。
可以理解,当请求客户端关闭退出时,相应的通信链路(包括第一通信链路、第二通信链路以及后续提到的第三通信链路)也需要关闭或回收。例如,仍以上述目标请求客户端为例,当目标请求客户端需要访问目标服务端时,可以动态建立与第一中转服务端之间的目标第一通信链路,则当目标请求客户端关闭时,该目标第一通信链路也要关闭,例如,若目标第一通信链路为TCP链路,则需释放该TCP链路。而为了节省资源,隧道服务组件与隧道代理组件之间的第二通信连接可以不需要关闭或断开,而是可以将相关的第二通信链路进行回收复用,例如,当目标请求客户端关闭时,第二中转服务端可以将目标第二通信链路的服务状态由已使用状态恢复为未使用状态,即对目标第二通信链路进行回收,这样,后续其它请求客户端就可以重复使用这条具有未使用状态的目标第二通信链路,而不是频繁地去动态创建新的第二通信链路来传输数据,从而可以提升数据传输的效率,并节省系统资源。
例如,假设在缺省情况下,隧道服务组件与隧道代理组件之间预先建立了10条第二通信链路(如TCP链路),分别为通信链路L1、通信链路L2、…、通信链路L10,初始时每条第二通信链路的服务状态均为未使用状态,那么当某一个请求客户端A1要传输数据时,可以从这10条第二通信链路中选择任意一条第二通信链路(例如,通信链路L1)来使用,此时被选取的通信链路L1则被标记为已使用状态;同理,后续另外一个请求客户端A2也要传输数据时,则可以从剩余的9条第二通信链路(包括通信链路L2~通信链路L10)任选一条来使用。进一步,当请求客户端A1关闭时,可以对通信链路L1进行回收,即将通信链路L1的服务状态恢复为未使用状态,这样又存在9条空闲的第二通信链路(包括通信链路L1以及通信链路L3~通信链路L10)以供使用。换句话说,这种方式相当于预先创建好一定数量的第二通信链路放到池子中,需要时可以从池子中取出使用,用完再回收到池子中,这样,就不需要动态地不停建立隧道服务组件与隧道代理组件之间的通信链路,从而可以减少建链带来的资源消耗。
可以理解,服务网络设备上的目标服务端也可以绑定有相应的端口,以便通过该端口进行数据收发,本申请实施例可以将该端口称为目标端口。在一些实施例中,目标端口可以根据实际需要来进行配置的,在第一中转服务端和第二中转服务端绑定同一个端口的情况下(即第一服务端口与第二服务端口相同),第一服务端口(或者第二服务端口)的端口号可以和目标端口的端口号一致,也可以不一致,这里将不进行限定。可选的,当两边的端口号不一致时,中转网络设备可以先向请求客户端通知当前第一服务端口的端口号,随后请求客户端再发送请求数据包。例如,假设主机A(即请求网络设备)和主机B(即服务网络设备)之间是网络可达的,那么当主机A要向主机B发送一个TCP数据包时,如果主机B的TCP服务端绑定的端口是1000号端口,那么主机A就可以直接向主机B的1000号端口发送该TCP数据包;但是,当主机A和主机B之间网络不可达时,在二者之间加上了一个主机C(即中转网络设备),相当于主机C执行了转发处理,如果此时主机C上的两个TCP服务端的端口也设置为1000号端口,那么对于主机A而言,后续都可以往1000号端口去发送数据,也就是说,从主机A的角度来说看到的接收数据的端口号始终只有一个,这种方式可以和相关技术中的用户习惯保持一致。然而,在某些情况下,如果主机C上的1000号端口已经被其它应用程序占用了,那么此时可以绑定主机C上的其它空闲端口(例如,2000号端口),进而主机C可以通知主机A当前绑定的第一服务端口的端口号,随后主机A可以改向主机C上的2000号端口去发送TCP数据包,主机C通过2000号端口接收到该TCP数据包后,通过后面建立的TCP连接最终可以安全地将该TCP数据包转发到主机B的1000号端口。
可以理解,本申请实施例提供的方法可以应用于多种业务场景,这里不进行一一列举。例如,在远程登录场景中,目标服务端可用于提供远程登录服务,则请求客户端发送的请求数据包可以为基于安全外壳协议(即SSH)进行加密的数据包,且该请求数据包可以携带有远程操作命令(例如,通过命令行界面所输入的Linux命令),该远程操作命令可用于通过安全外壳协议对服务网络设备进行远程操作(例如远程拷贝文件),从而可以有效防止远程管理过程中的信息泄露问题。在该场景中,请求客户端即为SSH客户端,可以为操作系统自带的SSH工具,因此请求网络设备无需再安装第三方软件,且SSH隧道服务(即隧道服务组件)和SSH隧道代理(即隧道代理组件)的部署方式非常灵活,例如可以支持部署在公有云、私有云或者普通的服务器上,可为用户提供安全的数据转发服务;而远端的服务网络设备同样无需安装第三方软件,其安装的SSH隧道代理软件资源占用率低,因此可以实现轻量化的部署方案。由此可见,本申请实施例实现的跨网络的远程主机登录和操作方法具备轻量化、安全可靠的特点,而且部署方式非常灵活,资源占用率低,可以充分满足IT从业人员远程办公、运维管理等最为常用的日常功能需求。
可以理解,当接收到服务网络设备返回的数据时,中转网络设备也可以进行相应处理,以最终将请求数据包所请求的响应数据包返回给请求网络设备上的请求客户端,具体过程可以为:中转网络设备可以通过隧道服务组件接收服务网络设备返回的具有目标通讯协议的响应数据包(例如TCP响应数据包),其中,该响应数据包是指在目标服务端接收到请求数据包(例如TCP请求数据包)时,基于目标服务端所提供的业务服务生成的请求数据包所请求的数据。进一步,中转网络设备可以通过隧道服务组件将该响应数据包转发至对应的请求客户端。
可以理解,与上述描述的请求数据包的转发过程类似,针对响应数据包的转发,本申请实施例同样可以支持第一服务端口和第二服务端口为不同的端口或者为相同的端口的场景,下面分别对这两种情况进行说明。
可选的,在第一种实施方式中,若第一服务端口与第二服务端口互不相同,则当服务网络设备通过第二通信连接向隧道服务组件返回具有目标通讯协议的响应数据包时,第二中转服务端可以通过其绑定的第二服务端口接收该响应数据包。进一步,由于第一中转服务端和第二中转服务端是不同的服务端,因此第二中转服务端可以通过中转网络设备的内存将该响应数据包传输至第一中转服务端,随后第一中转服务端可以通过其绑定的第一服务端口,将该响应数据包通过第一通信连接转发至请求客户端。
可选的,在第二种实施方式中,若第一服务端口与第二服务端口相同,则当服务网络设备通过第二通信连接向隧道服务组件返回具有目标通讯协议的响应数据包时,第二中转服务端可以通过其绑定的第二服务端口获取服务网络设备发送的第二发送标识信息和响应数据包,其中,类似于上述S101中的第一发送标识信息,这里的第二发送标识信息用于指示响应数据包来源于服务网络设备,防止数据混淆。进一步,由于第一中转服务端和第二中转服务端是相同的服务端,因此第一中转服务端可以通过其绑定的第一服务端口(此时即为第二服务端口),将该响应数据包通过第一通信连接转发至请求客户端。
可以理解,当存在至少两个请求客户端时,每个请求客户端所发送的请求数据包的传输链路与该请求数据包所请求的响应数据包的传输链路是一致的,即隧道代理组件与隧道服务组件会将目标服务端发送的响应数据包原路返回至对应的请求客户端。
上述可知,本申请实施例通过在中转网络搭建隧道服务组件,在被访问的服务网络设备上部署隧道代理组件,可以综合实现具有目标通讯协议的数据跨网传输。其次,本申请实施例对请求网络设备无改造要求(如无需安装第三方商业软件),只需在被访问的服务网络部署一个轻量化的隧道代理组件,系统资源占用率低,且可以大幅降低商业软件的使用成本,同时部署方式灵活,可支持部署在公有云、私有云或者普通的服务器上,保证数据安全可控,从而可以提高数据跨网传输的安全性。再者,与基于视频传输机制的远程登录技术相比,本申请实施例实现了一种通过标准SSH工具即可访问远程主机的技术,无需传输视频数据,因此网络带宽占有率低、时延小。此外,本申请实施例提供的方法不改变数据访问方式,可以继续使用相关的数据访问模式和协议,兼容性好。
请参见图4,图4是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以由中转网络中的具有隧道服务组件的中转网络设备(例如,上述图1所示的中转网络设备10B)执行。如图4所示,该数据处理方法至少可以包括以下S201-S202:
S201,通过隧道服务组件获取服务网络中的服务网络设备所发送的具有目标通讯协议的响应数据包;
可以理解,结合上述图2所对应的实施例,当服务网络中的服务网络设备接收到中转网络设备所转发的请求数据包时,可以生成该请求数据包所请求的响应数据包,进而可以通过服务网络设备与中转网络设备之间建立的基于目标通讯协议的第二通信连接(例如TCP连接),将该响应数据包发送给服务网络设备。其中,请求数据包是指请求客户端发送的具有目标通讯协议的数据包,响应数据包是指在服务网络设备接收到中转网络设备所转发的请求数据包时,由服务网络设备上的目标服务端基于请求数据包执行业务处理后所得到的数据。进一步,中转网络设备可以通过隧道服务组件获取具有目标通讯协议的响应数据包,具体来说,隧道服务组件中的第二中转服务端可以通过其绑定的第二服务端口获取该响应数据包。其中,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力,且服务网络设备也具备通过目标通讯协议访问中转网络的能力。
其中,中转网络设备转发请求数据包的具体过程可以参见上述图2所对应实施例中的S101-S102,这里不再进行赘述。
S202,通过隧道服务组件将响应数据包转发至请求客户端。
可以理解,当隧道服务组件接收到服务网络设备发送过来的响应数据包时,可以通过第一中转服务端所绑定的第一服务端口将该响应数据包发送至相应的请求客户端。
本申请实施例的S201-S202的具体实现过程可以参见上述图2所对应实施例中的S102,这里不再进行赘述。
可以理解,响应数据包所传输的数据可以是普通的具有目标通讯协议的数据(例如TCP数据),也可以是文本、程序、数据库等文件或者其它类型的数据,本申请实施例将不对响应数据包所传输的数据的数据类型进行限定。
上述可知,通过灵活部署隧道服务组件,既可以将请求客户端发送的请求数据包安全高效地转发至目标服务端进行处理,又可以将目标服务端返回的响应数据包安全高效地转发给请求客户端,相当于在请求客户端和目标服务端之间创建了安全稳定的数据传输通道,从而可以提高数据跨网传输的安全性。此外,由于请求网络设备和服务网络设备均不需要额外安装第三方商业软件,因此可以降低系统资源占用率,同时可以大幅降低商业软件的使用成本。
请参见图5,图5是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以由服务网络中具有隧道代理组件的服务网络设备(例如,上述图1所示的服务网络设备10A)执行。如图5所示,该数据处理方法至少可以包括以下S301-S302:
S301,通过隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;
可以理解,当中转网络中的中转网络设备向服务网络设备发送具有目标通讯协议的请求数据包(例如,TCP数据包)时,服务网络设备可以通过隧道代理组件接收该请求数据包。其中,请求数据包是指请求客户端发送的数据包,该请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力,且服务网络设备具备通过目标通讯协议访问中转网络的能力。中转网络设备转发请求数据包的具体实现过程可以参见上述图2所对应的实施例,这里不再进行赘述。
可以理解,本申请实施例中的目标通讯协议可以是传输控制协议或其它协议,这里不进行限定。
其中,中转网络设备上可以部署有隧道服务组件,该隧道服务组件可以包括基于目标通讯协议的第一中转服务端和第二中转服务端,因此,当请求客户端要传输数据时,可以主动向第一中转服务端建立基于目标通讯协议的第一通信连接,该第一通信连接可用于将该请求客户端发送的请求数据包传输至中转网络设备。可选的,第一中转服务端和第二中转服务端既可以是相同的服务端,又可以是不相同的服务端,本申请实施例对此不进行限定。
其中,隧道代理组件可以包括基于目标通讯协议的第一代理客户端和第二代理客户端,因此,当隧道服务组件以及隧道代理组件开始运行时,第一代理客户端可以主动向第二中转服务端建立基于目标通讯协议的第二通信连接(例如TCP连接),例如,对于TCP来说,可以采用三次握手建立一个TCP连接。而第二代理客户端则用于通过目标通讯协议与目标服务端进行数据通信,例如,将接收到的请求数据包发送给目标服务端,或者,接收目标服务端发送的响应数据包。可以理解,当第二代理客户端与目标服务端之间需要进行数据通信时,可以建立起基于目标通讯协议的第三通信连接(例如TCP连接)。
可以理解,本申请实施例对请求客户端的数量不进行限定,也就是说,可以支持目标网络内的多台请求网络设备或者多个请求客户端来访问目标服务端。例如,在一些实施例中,当请求客户端的数量为至少两个时,上述第一通信连接可以包含至少两条基于目标通讯协议的第一通信链路,且每个请求客户端对应于一条第一通信链路。
需要说明的是,为了满足多个请求客户端的访问需求,本申请实施例对第一代理客户端的数量也不进行限定。例如,在一些实施例中,当第一代理客户端的数量为至少两个时,隧道服务组件与隧道代理组件之间的第二通信连接可以包含至少两条基于目标通讯协议的第二通信链路,且每个第一代理客户端对应于一条第二通信链路,也就是说,一个第一代理客户端可以主动向隧道服务组件中的第二中转服务端建立一条第二通信链路,且第二通信链路的数量对隧道服务组件的结构没有影响。因此,每个请求客户端所发送的请求数据包可以分别通过一条第二通信链路进行传输。在本申请实施例中,每条第二通信链路均具有相应的服务状态,当一条第二通信链路用于传输数据时,其服务状态就由未使用状态切换为已使用状态。可选的,至少两条第二通信链路中可以包含一条或多条具有未使用状态的第二通信链路,这样可以满足数据传输的性能要求。
为便于理解,假设上述至少两个请求客户端包括目标请求客户端,该目标请求客户端发送的请求数据包为目标请求数据包,同时假设上述至少两条第二通信链路中包括具有未使用状态的目标第二通信链路,这里以目标请求客户端为例,服务网络设备通过隧道代理组件接收由中转网络设备所转发的请求数据包的具体过程可以为:当第二中转服务端通过目标第二通信链路向服务网络设备转发目标请求数据包时,第一代理客户端可以接收通过目标第二通信链路传输过来的目标请求数据包,随后,隧道代理组件可以将目标请求数据包缓存到服务网络设备的内存中,以便在第二代理客户端与目标服务端之间成功建立起第三通信连接后,可以继续传输至后端的目标服务端进行处理,具体处理过程可以参见后续步骤。
此外,可选的,当第一代理客户端接收到目标请求数据包时,可以将目标第二通信链路的服务状态由之前的未使用状态转换为已使用状态。同时,为了保持隧道服务组件与隧道代理组件之间始终保持至少一条空闲的通信链路,第一代理客户会不断对第二通信链路的服务状态进行检测,当第一代理客户检测到上述至少两条第二通信链路的服务状态均为已使用状态时,可以与第二中转服务端建立一条或多条具有未使用状态的第二通信链路,从而可以及时地对后续其它请求客户端所发送的数据进行转发,以提升数据跨网传输效率。
S302,通过隧道代理组件将请求数据包发送至运行在服务网络设备上的目标服务端。
可以理解,在获取到请求数据包后,服务网络设备可以继续通过隧道代理组件将该请求数据包发送至运行在服务网络设备上的目标服务端进行处理,其中,目标服务端可以提供基于目标通讯协议的业务服务(例如SSH服务),且可以基于业务服务生成请求数据包所请求的响应数据包,该响应数据包是具有目标通讯协议的数据包,后续可以通过隧道服务组件将该响应数据包发送至请求客户端。
结合上述S301中的描述,这里仍以目标请求客户端为例,通过隧道代理组件将请求数据包发送至目标服务端的具体过程可以为:目标请求数据包缓存成功后,可以触发第二代理客户端向目标服务端发起基于目标通讯协议的第三通信连接,随后第二代理客户端可以从服务网络设备的内存中获取目标请求数据包,进而可以通过第三通信连接将目标请求数据包发送至目标服务端。
可以理解,当第二代理客户端的数量为至少两个时,第三通信连接可以包含至少两条基于目标通讯协议的第三通信链路(例如TCP链路),每一个第二代理客户端可以对应于一条第三通信链路,每个请求客户端所发送的请求数据包分别通过一条第三通信链路进行传输。其中,第二代理客户端的数量与第一代理客户端的数量相等。可以理解,对于请求客户端来说,第三通信链路与第二通信链路和第一通信链路是一一对应的,也就是说,当一个请求客户端A使用第一通信链路X、第二通信链路Y和第三通信链路Z进行数据传输时,第一通信链路X、第二通信链路Y和第三通信链路Z就作为一组配对的通信链路,请求客户端A和目标服务端在这组配对的通信链路之间进行数据的读写转发,而其它的请求客户端不能再同时使用这组配对的通信链路。
为便于理解,请一并参见图6,图6是本申请实施例提供的一种隧道代理组件的网络连接示意图。可以理解,当目标通讯协议为TCP时,隧道代理组件可以是一个软件开发的TCP应用程序,它可以部署在服务网络设备(例如,主机2)上。例如,在远程登录SSH服务的场景下,隧道代理组件也可以称为SSH隧道代理,它可以作为TCP客户端(例如,可以包括TCP客户端1和TCP客户端2),至少需要创建两条TCP连接,分别连接到中转网络设备(例如,公网服务器)上的隧道服务组件(也可以称为SSH隧道服务)和服务网络设备上的目标服务端(例如,SSH服务端)。其中,隧道代理组件在启动之后,可以主动向中转网络设备上的隧道服务组件发起TCP建链(即建立第二通信连接),以便隧道代理组件上的第一代理客户端(例如,TCP客户端1)能够及时接收到隧道服务组件上的第二中转服务端转发过来的请求数据包(例如,主机1上的SSH客户端发送的SSH请求数据)。当接收到转发过来的请求数据包时,隧道代理组件可以将该请求数据包缓存起来,随后,隧道代理组件可以触发第二代理客户端(例如,TCP客户端2)发起向本机上的后端目标服务端的连接请求(即建立第三通信连接),在TCP建链完成后,再将缓存下来的请求数据包转发给目标服务端。同时,使用的第三通信链路可以被标记为“已使用”(即切换为已使用状态)。此外,在远程登录SSH服务的场景下,为了保证其它的SSH连接请求,SSH隧道服务和SSH隧道代理之间可以始终保持至少一条空闲的TCP连接。
可以理解,当请求客户端关闭退出时,相应的通信链路(包括第一通信链路、第二通信链路以及第三通信链路)也需要关闭或回收,对第一通信链路和第二通信链路的处理可以参见上述图2所对应实施例中的S102,这里不再进行赘述。对于第三通信链路,这里仍以上述目标请求客户端为例,当目标请求客户端需要访问目标服务端时,隧道代理组件可以动态建立与目标服务端之间的目标第三通信链路,用于二者之间进行数据交互;当目标请求客户端关闭时,该目标第三通信链路也要关闭,例如,若目标第三通信链路为TCP链路,则目标服务端可以在目标请求客户端访问结束后主动释放该TCP链路。也就是说,在本申请实施例中,为了保证访问请求转发的性能,隧道代理组件和隧道服务组件之间的第二通信链路可以是提前创建完成的,当所有第二通信链路均被访问请求占用之后,可以主动创建一条或多条新的空闲的第二通信链路备用;而隧道代理组件只有接收到来自于隧道服务组件的请求数据包后,才会发起向目标服务端的连接请求,然后再转发请求数据包,而不是预先创建第三通信链路,这样可以防止占用不必要的系统资源。
可以理解,本申请实施例提供的方法可以应用于多种业务场景,这里不进行一一列举。例如,在远程登录场景中,目标服务端可用于提供远程登录服务,则请求客户端(例如SSH客户端)发送的请求数据包可以为基于安全外壳协议(即SSH)进行加密的数据包,且该请求数据包可以携带有远程操作命令,该远程操作命令可用于通过安全外壳协议对服务网络设备进行远程操作。相应的,响应数据包则是由目标服务端执行远程操作命令后所得到的数据,因此,响应数据包也可以为基于安全外壳协议进行加密的数据包。可以理解,本申请实施例实现的远程主机登录和操作方法,可以支持通过标准的SSH工具来访问远程的服务网络设备,不仅解决了常用远程登录软件(即第三方商业软件)传输速度慢、用户体验差等常见问题,同时也可以支持自由灵活的部署,避免了内网数据传输至第三方商业软件平台可能带来的信息安全问题,且可以大幅度降低商业软件的使用成本。
可以理解,当接收到目标服务端返回的数据时,服务网络设备也可以进行相应处理,以将请求数据包所请求的响应数据包返回给中转网络设备进行转发,具体过程可以为:服务网络设备可以通过第二代理客户端接收目标服务端通过第三通信连接所返回的响应数据包(例如TCP数据包),这里的响应数据包是由目标服务端基于请求数据包执行业务处理后所得到的。进一步,服务网络设备可以通过隧道代理组件将该响应数据包发送至中转网络设备。
可以理解,针对响应数据包的处理,本申请实施例可以支持第一服务端口和第二服务端口为不同的端口或者为相同的端口的场景,下面分别对这两种情况进行说明。
可选的,在第一种实施方式中,当第一中转服务端与第二中转服务端为不相同的服务端时,第二代理客户端可以通过服务网络设备的内存将响应数据包传输至第一代理客户端,随后,第一代理客户端可以通过第二通信连接将该响应数据包发送至隧道服务组件中的第二中转服务端。
可选的,在第二种实施方式中,当第一中转服务端与第二中转服务端为相同的服务端时,第一中转服务端可用于获取请求客户端发送的第一发送标识信息和请求数据包,这里的第一发送标识信息用于指示请求数据包来源于请求客户端。与请求数据包的转发过程类似,第二代理客户端可以通过服务网络设备的内存将请求数据包所请求的响应数据包传输至第一代理客户端,随后,第一代理客户端可以通过第二通信连接将接收到的响应数据包和第二发送标识信息共同发送至隧道服务组件中的第二中转服务端,其中,这里的第二发送标识信息用于指示该响应数据包来源于服务网络设备,这样可以有效避免隧道服务组件无法判断数据来源所导致的数据混淆。
可以理解,在隧道服务组件接收到隧道代理组件发送过来的响应数据包后,可以进一步将该响应数据包转发给请求客户端,其具体实现过程可以参见上述图4所对应的实施例,这里不再进行赘述。
上述可知,本申请实施例通过在中转网络搭建隧道服务组件,在被访问的服务网络设备上部署隧道代理组件,可以综合实现具有目标通讯协议的数据跨网传输。其次,本申请实施例对请求网络设备无改造要求(如无需安装第三方商业软件),只需在被访问的服务网络部署一个轻量化的隧道代理组件,系统资源占用率低,且可以大幅降低商业软件的使用成本,同时部署方式灵活,可支持部署在公有云、私有云或者普通的服务器上,保证数据安全可控,从而可以提高数据跨网传输的安全性。再者,与基于视频传输机制的远程登录技术相比,本申请实施例实现了一种通过标准SSH工具即可访问远程主机的技术,无需传输视频数据,因此网络带宽占有率低、时延小。此外,本申请实施例提供的方法不改变数据访问方式,可以继续使用相关的数据访问模式和协议,兼容性好。
请参见图7,图7是本申请实施例提供的一种数据处理方法的流程示意图。该数据处理方法可以由服务网络中具有隧道代理组件的服务网络设备(例如,上述图1所示的服务网络设备10A)执行。如图7所示,该数据处理方法至少可以包括以下S401-S402:
S401,通过隧道代理组件获取具有目标通讯协议的响应数据包;
可以理解,运行在服务网络设备上的目标服务端在接收到请求客户端所发送的具有目标通讯协议的请求数据包后,可以基于该请求数据包执行业务处理,以生成相应的具有目标通讯协议的响应数据包,进而目标服务端可以通过第三通信连接将该响应数据包发送至隧道代理组件,随后隧道代理组件同样可以通过第三通信连接获取该响应数据包。其中,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力,而中转网络中的中转网络设备可用于将请求数据包转发至服务网络设备,且服务网络设备具备通过目标通讯协议访问中转网络的能力。
S402,通过隧道代理组件将响应数据包发送至中转网络设备。
可以理解,在接收到响应数据包后,隧道代理组件可以通过第二通信连接将该响应数据包发送至中转网络设备,其具体实现过程可以参见上述图5所对应实施例中的S302,这里不再进行赘述。
上述可知,本申请实施例通过灵活部署隧道服务组件和隧道代理组件,既可以将请求客户端发送的请求数据包安全高效地转发至目标服务端进行处理,又可以将目标服务端返回的响应数据包安全高效地转发给请求客户端,相当于在请求客户端和目标服务端之间创建了安全稳定的数据传输通道,从而可以提高数据跨网传输的安全性。此外,由于请求网络设备和服务网络设备均不需要额外安装第三方商业软件,因此可以降低系统资源占用率,同时可以大幅降低商业软件的使用成本。
请参见图8,图8是本申请实施例提供的一种数据处理的场景示意图。如图8所示,整个系统可以由目标网络(例如内网A)中的请求网络设备(例如主机1)、服务网络(例如内网B)中的服务网络设备(例如主机2)和中转网络(例如公网C)中的中转网络设备(例如公网服务器)三部分组成。内网A和内网B可以是两个异地的不同的网络,二者之间网络不可达,或者,内网A和内网B也可以是两个可以互相访问的网络,二者之间网络可达,本申请对此不做限定。此外,内网A中的主机1和内网B中的主机2均有公网访问能力,可以访问到公网服务器。
结合上述实施例,为便于理解,这里主要以远程登录场景为例进行说明,其它场景可以参考此处远程登录场景的描述。
可以理解,当主机1和主机2网络不可达时,主机1上的请求客户端(例如SSH客户端)无法直接访问主机2上的业务服务(例如SSH服务)。基于此,本申请实施例实现了一个隧道服务组件(例如SSH隧道服务)和隧道代理组件(例如SSH隧道代理),分别将其部署到公网服务器(其网络地址可以记为IP1)和主机2上。其中,SSH隧道服务通过绑定两个端口,即端口Port1(即第一服务端口)和端口Port2(即第二服务端口)来提供两个TCP服务地址,分别为TCP服务地址(IP1:Port1)(即第一服务地址)和TCP服务地址(IP1:Port2)(即第二服务地址),其中,TCP服务地址(IP1:Port1)可用于主机1上的SSH客户端建立TCP连接(即第一通信连接,例如图8所示的通信链路1),另一个TCP服务地址(IP1:Port2)可用于主机2上的SSH隧道代理主动创建TCP连接(即第二通信连接,例如图8所示的通信链路2)。
其次,本申请实施例实现的SSH隧道代理可以部署在主机2上,它可以主动向公网服务器上的SSH隧道服务建立TCP连接,同时也可以发起向主机2上的SSH服务端(即目标服务端)发起TCP连接(即第三通信连接,例如图8所示的通信链路3)。可以理解,当主机1需要远程登录主机2时,主机1可以通过SSH客户端去访问公网服务器上的TCP服务地址(IP1:Port1),公网服务器接收到SSH请求数据(即请求数据包)后,可以通过SSH隧道服务将该SSH请求数据转发给主机2上的SSH隧道代理,之后SSH隧道代理再继续将该SSH请求数据发送给主机2上的SSH服务端。类似的,当SSH服务端生成该SSH请求数据所请求的SSH响应数据后,SSH隧道代理可以将接收到的SSH响应数据原路返回给主机1上的SSH客户端,从而实现了主机1到主机2的SSH访问。
基于上述描述,本申请实施例所实现的跨网远程登录主机的实现方法,可以通过在公网服务器上部署安全的SSH隧道服务,实现不同网络之间主机的远程登录和访问。例如,内网A中的主机1通过标准SSH工具登录和操作内网B中的主机2的实现过程主要包括:首先,在内网A和内网B均可访问的公网C的公网服务器(例如主机3)上部署SSH隧道服务,它负责对内网A中的主机1提供TCP服务地址和端口;其次,在内网B中的主机2上安装SSH隧道代理,它负责接收公网C中的主机3发送过来的SSH操作命令(即远程操作命令);最后,内网B中的主机2上的SSH隧道代理建立与主机2上的SSH服务端之间的连接,并将接收到的主机3发送过来的SSH操作命令转发给SSH服务端,后续还可以将接收到的SSH响应数据经由公网C中的主机3原路送回给内网A中的主机1。
可以理解,本申请实施例实现的SSH远程访问方式,可以支持多个SSH用户登录,例如,可以支持一台主机上发起多个SSH客户端请求,也可以支持多台主机上发起不同的SSH请求,也就是说,可以支持多个用户用标准SSH客户端从一个内网发起针对位于异地的不同内网中的服务器的远程SSH登录和访问,从而可以实现不同网络之间服务器的远程登录和访问。
可以理解,常用的第三方商业软件是基于视频传输机制来实现,即远程主机(也可称为远端主机,即服务网络设备)将其视频画面传送给本地主机(即请求网络设备),本地主机则将本地的操作指示发送给远程主机,这种方式的优势在于可以访问远程主机的图形化界面(Graphical User Interface,简称GUI),但缺点在于数据传输量较大,在网络状况不佳时易出现时延大、响应慢甚至卡顿等各种情况,严重影响用户的使用体验;而对于专业人士,特别是从事Linux开发工作的IT工程师而言,并不一定需要使用GUI,只需要能提供远程的命令行操作手段就可以满足需求,因此,本申请实施例旨在实现一种远程登录内网服务器的实现方法,其关键点包括一下几个方面:第一,实现了一种通过标准SSH工具即可访问远程主机的实现技术,这种方式无需传输远程主机的视频画面,网络带宽占有率低、时延小;第二,实现了一种安全、高效的SSH转发隧道,支持部署在公有云、客户私有云或普通的服务器上,可以为用户提供安全的数据转发服务,保证数据安全可控;第三,提供了一种轻量化的实现方案,本地主机可以直接使用操作系统自带的SSH工具,而无需安装第三方软件,且远程主机安装的SSH隧道代理软件资源占有率低。
上述可知,本申请实施例实现的跨网络的远程主机登录和操作方法具备轻量化、安全可靠的特点,而且部署方式非常灵活,资源占有率低,可以充分满足IT从业人员远程办公、运维管理等最为常用的日常功能需求。本申请实施例提供的方法还可以集成为一个标准的公有云或者私有云服务,为IT从业人员提供灵活的SSH远程访问服务。
请参见图9,图9是本申请实施例提供的一种数据处理方法的交互流程示意图。该数据处理方法可以由目标网络中的请求网络设备(例如,上述图1所示的请求网络设备集群中的任意请求网络设备,例如,请求网络设备200a)、中转网络中的中转网络设备(例如,上述图1所示的中转网络设备10B)以及服务网络中的服务网络设备(例如,上述图1所示的服务网络设备10A)共同执行。可以理解,只需要在中转网络设备上部署一个隧道服务组件,在服务网络设备上部署一个隧道代理组件,即可以支持目标网络内多台请求网络设备或者多个请求客户端来访问服务网络设备。其中,对于每个请求客户端来说,都会有不同的通信链路为其提供通讯服务,为便于理解,这里以单个请求客户端的访问为例来说明整个交互流程,如图9所示,该数据处理方法至少可以包括以下:
S501,中转网络设备上的隧道服务组件(例如SSH隧道服务)和服务网络设备上的隧道代理组件(例如SSH隧道代理)启动之后,隧道代理组件可以主动向隧道服务组件建立通信连接(即第二通信连接,例如TCP连接);
S502,请求网络设备上的请求客户端通过与隧道服务组件之间的通信连接(即第一通信连接,例如TCP连接),将请求数据包(例如SSH登录请求)发送到隧道服务组件;
S503,隧道服务组件将该请求数据包转发给隧道代理组件;
S504,隧道代理组件接收到该请求数据包后,发起向服务网络设备上的目标服务端(例如SSH服务端)的通信连接(即第三通信连接,例如TCP连接);
S505,通信连接建立成功后,隧道代理组件将请求数据包发送给目标服务端;
S506,隧道代理组件接收目标服务端返回的响应数据包(例如SSH响应数据);
S507,隧道代理组件将该响应数据包转发给隧道服务组件;
S508,可选的,若隧道代理组件发现其与隧道服务组件之间没有空闲的第二通信链路(例如TCP链路),则可以主动创建一条或多条新的第二通信链路备用;其中,该步骤可以是位于上述S503之后的任意步骤;
S509,隧道服务组件可以将接收到的响应数据包转发给请求客户端。
此后,数据按照以上流程周而复始,直到请求网络设备上的请求客户端关闭退出。
上述可知,本申请实施例可以实现不同网络之间的数据传输,对于单个请求客户端来说,其与目标服务端之间的数据交互使用的是一组配对的通信链路,二者之间可以通过这组配对的通信链路进行数据的读写转发,从而可以实现安全高效的数据跨网传输服务,同时,通过灵活部署隧道服务组件和轻量化的隧道代理组件,可以降低系统资源占用率。
请参见图10,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于中转网络设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图10所示,该数据处理装置1可以包括:请求获取模块11、请求转发模块12、状态恢复模块13、响应接收模块14、响应转发模块15;
请求获取模块11,用于通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;
其中,隧道服务组件包括具有第一服务地址的第一中转服务端和具有第二服务地址的第二中转服务端,第一中转服务端和第二中转服务端均为基于目标通讯协议的服务端;第一中转服务端用于绑定第一服务端口,第一服务端口用于在请求客户端发送请求数据包前与请求客户端建立基于目标通讯协议的第一通信连接,第一通信连接是由请求客户端所发起的;第二中转服务端用于绑定第二服务端口,第二服务端口用于与服务网络设备建立基于目标通讯协议的第二通信连接,第二通信连接是由服务网络设备上的隧道代理组件所发起的;第一服务地址包括中转网络设备的网络地址和第一服务端口的端口号,第二服务地址包括网络地址和第二服务端口的端口号。
在一种实施方式中,当第一服务端口与第二服务端口互不相同时,第一中转服务端与第二中转服务端为不相同的服务端;
该请求获取模块11具体用于当请求客户端通过第一通信连接向中转网络设备发送具有目标通讯协议的请求数据包时,通过第一服务端口接收请求数据包。
在一种实施方式中,当第一服务端口与第二服务端口相同时,第一中转服务端与第二中转服务端为相同的服务端;
该请求获取模块11具体用于当请求客户端通过第一通信连接向中转网络设备发送具有目标通讯协议的请求数据包时,通过第一服务端口获取请求客户端发送的第一发送标识信息和请求数据包;第一发送标识信息用于指示请求数据包来源于请求客户端。
在一种实施方式中,当请求客户端的数量为至少两个时,第一通信连接包含至少两条基于目标通讯协议的第一通信链路,每个请求客户端对应于一条第一通信链路;第二通信连接包含至少两条基于目标通讯协议的第二通信链路,每个请求客户端所发送的请求数据包分别通过一条第二通信链路进行传输;第二通信链路的数量大于或等于第一通信链路的数量。
请求转发模块12,用于通过隧道服务组件将请求数据包转发至服务网络中的服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力,服务网络设备包括基于目标通讯协议的目标服务端,目标服务端用于响应请求数据包;
在一种实施方式中,当目标服务端用于提供远程登录服务时,请求数据包为基于安全外壳协议进行加密的数据包,请求数据包携带有远程操作命令,远程操作命令用于通过安全外壳协议对服务网络设备进行远程操作。
在一种实施方式中,当第一服务端口与第二服务端口互不相同时,该请求转发模块12具体用于通过中转网络设备的内存将请求数据包传输至第二中转服务端;通过第二服务端口将请求数据包转发至服务网络设备。
在一种实施方式中,当第一服务端口与第二服务端口相同时,该请求转发模块12具体用于通过第二服务端口将请求数据包转发至服务网络设备。
在一种实施方式中,至少两个请求客户端包括目标请求客户端,目标请求客户端发送的请求数据包为目标请求数据包;至少两条第二通信链路中包括具有未使用状态的目标第二通信链路;
则该请求转发模块12可以包括:转发单元121、转换单元122;
转发单元121,用于当接收到目标请求数据包时,通过第二服务端口与服务网络设备之间的目标第二通信链路,将目标请求数据包转发至服务网络设备中的隧道代理组件;隧道代理组件包括基于目标通讯协议的第一代理客户端和第二代理客户端;第一代理客户端用于与第二中转服务端建立目标第二通信链路,且用于将目标请求数据包传输至第二代理客户端;第二代理客户端用于通过目标通讯协议与目标服务端进行数据通信;
转换单元122,用于将目标第二通信链路的服务状态由未使用状态转换为已使用状态;当至少两条第二通信链路的服务状态均为已使用状态时,第一代理客户端还用于与第二中转服务端建立一条或多条具有未使用状态的第二通信链路。
其中,转发单元121、转换单元122的具体功能实现方式可以参见上述图2所对应实施例中的S102,这里不再进行赘述。
状态恢复模块13,用于当目标请求客户端关闭时,将目标第二通信链路的服务状态由已使用状态恢复为未使用状态;
响应接收模块14,用于通过隧道服务组件接收服务网络设备返回的具有目标通讯协议的响应数据包;响应数据包是指在目标服务端接收到请求数据包时,基于目标服务端所提供的业务服务生成的请求数据包所请求的数据;
在一种实施方式中,当第一服务端口与第二服务端口互不相同时,该响应接收模块14具体用于当服务网络设备通过第二通信连接向隧道服务组件返回具有目标通讯协议的响应数据包时,通过第二服务端口接收响应数据包。
在一种实施方式中,当第一服务端口与第二服务端口相同时,该响应接收模块14具体用于当服务网络设备通过第二通信连接向隧道服务组件返回具有目标通讯协议的响应数据包时,通过第二服务端口获取服务网络设备发送的第二发送标识信息和响应数据包;第二发送标识信息用于指示响应数据包来源于服务网络设备。
响应转发模块15,用于通过隧道服务组件将响应数据包转发至请求客户端。
在一种实施方式中,当第一服务端口与第二服务端口互不相同时,该响应转发模块15具体用于通过中转网络设备的内存将响应数据包传输至第一中转服务端;通过第一服务端口将响应数据包转发至请求客户端。
在一种实施方式中,当第一服务端口与第二服务端口相同时,该响应转发模块15具体用于通过第一服务端口将响应数据包转发至请求客户端。
其中,请求获取模块11、请求转发模块12、状态恢复模块13、响应接收模块14、响应转发模块15的具体功能实现方式可以参见上述图2所对应实施例中的S101-S102,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图11,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于中转网络设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图11所示,该数据处理装置2可以包括:响应获取模块21、响应转发模块22;
响应获取模块21,用于通过隧道服务组件获取服务网络中的服务网络设备所发送的具有目标通讯协议的响应数据包;响应数据包是指在服务网络设备接收到中转网络设备所转发的请求数据包时,由服务网络设备上的基于目标通讯协议的目标服务端生成的请求数据包所请求的数据;请求数据包是指请求客户端发送的具有目标通讯协议的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
响应转发模块22,用于通过隧道服务组件将响应数据包转发至请求客户端。
其中,响应获取模块21、响应转发模块22的具体功能实现方式可以参见上述图4所对应实施例中的S201-S202,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图12,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于服务网络设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图12所示,该数据处理装置3可以包括:数据接收模块31、请求发送模块32、转换模块33、建立模块34、响应接收模块35、响应发送模块36;
数据接收模块31,用于通过隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;服务网络设备具备通过目标通讯协议访问中转网络的能力;
在一种实施方式中,中转网络设备上部署有隧道服务组件,隧道服务组件包括基于目标通讯协议的第一中转服务端和第二中转服务端;第一中转服务端用于与请求客户端建立基于目标通讯协议的第一通信连接;第一通信连接用于将请求数据包传输至中转网络设备,第一通信连接是由请求客户端所发起的;
隧道代理组件包括基于目标通讯协议的第一代理客户端和第二代理客户端;第一代理客户端用于当隧道服务组件以及隧道代理组件开始运行时,主动向第二中转服务端建立基于目标通讯协议的第二通信连接;第二代理客户端用于通过目标通讯协议与目标服务端进行数据通信;
当请求客户端的数量为至少两个时,第一通信连接包含至少两条基于目标通讯协议的第一通信链路,每个请求客户端对应于一条第一通信链路;
当第一代理客户端的数量为至少两个时,第二通信连接包含至少两条基于目标通讯协议的第二通信链路,每个第一代理客户端对应于一条第二通信链路;每个请求客户端所发送的请求数据包分别通过一条第二通信链路进行传输;至少两条第二通信链路中包含一条或多条具有未使用状态的第二通信链路。
在一种实施方式中,至少两个请求客户端包括目标请求客户端,目标请求客户端发送的请求数据包为目标请求数据包;至少两条第二通信链路中包括具有未使用状态的目标第二通信链路;
该数据接收模块31具体用于当第二中转服务端通过目标第二通信链路向服务网络设备转发目标请求数据包时,接收目标请求数据包;将目标请求数据包缓存到服务网络设备的内存中。
请求发送模块32,用于通过隧道代理组件将请求数据包发送至运行在服务网络设备上的目标服务端;目标服务端用于生成请求数据包所请求的具有目标通讯协议的响应数据包,响应数据包用于发送至请求客户端;
在一种实施方式中,当目标服务端用于提供远程登录服务时,请求数据包为基于安全外壳协议进行加密的数据包,请求数据包携带有远程操作命令;响应数据包是由目标服务端执行远程操作命令后所得到的,响应数据包为基于安全外壳协议进行加密的数据包。
在一种实施方式中,该请求发送模块32具体用于向目标服务端发起基于目标通讯协议的第三通信连接,从服务网络设备的内存中获取目标请求数据包,通过第三通信连接将目标请求数据包发送至目标服务端。
转换模块33,用于当接收到目标请求数据包时,将目标第二通信链路的服务状态由未使用状态转换为已使用状态;
建立模块34,用于当检测到至少两条第二通信链路的服务状态均为已使用状态时,与第二中转服务端建立一条或多条具有未使用状态的第二通信链路;
响应接收模块35,用于通过第二代理客户端接收目标服务端通过第三通信连接返回的响应数据包;响应数据包是由目标服务端基于请求数据包执行业务处理后所得到的;
响应发送模块36,用于通过隧道代理组件将响应数据包发送至中转网络设备;
在一种实施方式中,当第一中转服务端与第二中转服务端为不相同的服务端时,该响应发送模块36具体用于通过服务网络设备的内存将响应数据包传输至第一代理客户端;通过第二通信连接将响应数据包发送至第二中转服务端。
在一种实施方式中,当第一中转服务端与第二中转服务端为相同的服务端时,第一中转服务端用于获取请求客户端发送的第一发送标识信息和请求数据包,第一发送标识信息用于指示请求数据包来源于请求客户端;
则该响应发送模块36具体用于通过服务网络设备的内存将响应数据包传输至第一代理客户端;通过第二通信连接将响应数据包和第二发送标识信息发送至第二中转服务端;第二发送标识信息用于指示响应数据包来源于服务网络设备。
其中,数据接收模块31、请求发送模块32、转换模块33、建立模块34、响应接收模块35、响应发送模块36的具体功能实现方式可以参见上述图5所对应实施例中的S301-S302,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图13,是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于服务网络设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图13所示,该数据处理装置4可以包括:数据获取模块41、响应发送模块42;
数据获取模块41,用于通过隧道代理组件获取具有目标通讯协议的响应数据包;响应数据包是由运行在服务网络设备上的目标服务端基于具有目标通讯协议的请求数据包所生成的;请求数据包是指请求客户端发送的数据包,请求客户端是运行在目标网络中的请求网络设备上的客户端,请求网络设备具备通过目标通讯协议访问中转网络的能力;中转网络中的中转网络设备用于将请求数据包转发至服务网络设备;服务网络设备具备通过目标通讯协议访问中转网络的能力;
响应发送模块42,用于通过隧道代理组件将响应数据包发送至中转网络设备。
其中,数据获取模块41、响应发送模块42的具体功能实现方式可以参见上述图7所对应实施例中的S401-S402,这里不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图14,是本申请实施例提供的一种计算机设备的结构示意图。如图14所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图14所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图14所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文图2、图4、图5、图7、图9任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1、数据处理装置2、数据处理装置3或数据处理装置4所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图2、图4、图5、图7、图9任一个所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图2、图4、图5、图7、图9任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图15,图15是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统5可以包含数据处理装置1a、数据处理装置2a、数据处理装置3a以及数据处理装置4a。其中,数据处理装置1a可以为上述图10所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置1a可以集成在上述图1对应实施例中的中转网络设备10B,因此,这里将不再进行赘述。其中,数据处理装置2a可以为上述图11所对应实施例中的数据处理装置2,可以理解的是,该数据处理装置2a可以集成在上述图1对应实施例中的中转网络设备10B,因此,这里将不再进行赘述。其中,数据处理装置3a可以为上述图12所对应实施例中的数据处理装置3,可以理解的是,该数据处理装置3a可以集成在上述图1对应实施例中的服务网络设备10A,因此,这里将不再进行赘述。其中,数据处理装置4a可以为上述图13所对应实施例中的数据处理装置4,可以理解的是,该数据处理装置4a可以集成在上述图1对应实施例中的服务网络设备10A,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (17)
1.一种数据处理方法,其特征在于,所述方法由中转网络中的具有隧道服务组件的中转网络设备执行,包括:
通过所述隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;所述请求客户端是运行在目标网络中的请求网络设备上的客户端,所述请求网络设备具备通过所述目标通讯协议访问所述中转网络的能力;
通过所述隧道服务组件将所述请求数据包转发至服务网络中的服务网络设备;所述服务网络设备具备通过所述目标通讯协议访问所述中转网络的能力,所述服务网络设备包括基于所述目标通讯协议的目标服务端,所述目标服务端用于响应所述请求数据包。
2.根据权利要求1所述的方法,其特征在于,当所述目标服务端用于提供远程登录服务时,所述请求数据包为基于安全外壳协议进行加密的数据包,所述请求数据包携带有远程操作命令,所述远程操作命令用于通过所述安全外壳协议对所述服务网络设备进行远程操作。
3.根据权利要求1所述的方法,其特征在于,所述隧道服务组件包括具有第一服务地址的第一中转服务端和具有第二服务地址的第二中转服务端,所述第一中转服务端和所述第二中转服务端均为基于所述目标通讯协议的服务端;所述第一中转服务端用于绑定第一服务端口,所述第一服务端口用于在所述请求客户端发送所述请求数据包前与所述请求客户端建立基于所述目标通讯协议的第一通信连接,所述第一通信连接是由所述请求客户端所发起的;所述第二中转服务端用于绑定第二服务端口,所述第二服务端口用于与所述服务网络设备建立基于所述目标通讯协议的第二通信连接,所述第二通信连接是由所述服务网络设备上的隧道代理组件所发起的;所述第一服务地址包括所述中转网络设备的网络地址和所述第一服务端口的端口号,所述第二服务地址包括所述网络地址和所述第二服务端口的端口号。
4.根据权利要求3所述的方法,其特征在于,当所述第一服务端口与所述第二服务端口互不相同时,所述第一中转服务端与所述第二中转服务端为不相同的服务端;
所述通过所述隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包,包括:
当所述请求客户端通过所述第一通信连接向所述中转网络设备发送具有目标通讯协议的请求数据包时,所述第一中转服务端通过所述第一服务端口接收所述请求数据包;
则所述通过所述隧道服务组件将所述请求数据包转发至服务网络中的服务网络设备,包括:
所述第一中转服务端通过所述中转网络设备的内存将所述请求数据包传输至所述第二中转服务端;
所述第二中转服务端通过所述第二服务端口将所述请求数据包转发至所述服务网络设备。
5.根据权利要求3所述的方法,其特征在于,当所述第一服务端口与所述第二服务端口相同时,所述第一中转服务端与所述第二中转服务端为相同的服务端;
所述通过所述隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包,包括:
当所述请求客户端通过所述第一通信连接向所述中转网络设备发送具有目标通讯协议的请求数据包时,所述第一中转服务端通过所述第一服务端口获取所述请求客户端发送的第一发送标识信息和所述请求数据包;所述第一发送标识信息用于指示所述请求数据包来源于所述请求客户端;
则所述通过所述隧道服务组件将所述请求数据包转发至服务网络中的服务网络设备,包括:
所述第二中转服务端通过所述第二服务端口将所述请求数据包转发至所述服务网络设备。
6.根据权利要求4或5所述的方法,其特征在于,还包括:
通过所述隧道服务组件接收所述服务网络设备返回的具有所述目标通讯协议的响应数据包;所述响应数据包是指在所述目标服务端接收到所述请求数据包时,基于所述目标服务端所提供的业务服务生成的所述请求数据包所请求的数据;
通过所述隧道服务组件将所述响应数据包转发至所述请求客户端。
7.根据权利要求6所述的方法,其特征在于,当所述第一服务端口与所述第二服务端口互不相同时,所述通过所述隧道服务组件接收所述服务网络设备返回的具有所述目标通讯协议的响应数据包,包括:
当所述服务网络设备通过所述第二通信连接向所述隧道服务组件返回具有所述目标通讯协议的响应数据包时,所述第二中转服务端通过所述第二服务端口接收所述响应数据包;
则所述通过所述隧道服务组件将所述响应数据包转发至所述请求客户端,包括:
所述第二中转服务端通过所述中转网络设备的内存将所述响应数据包传输至所述第一中转服务端;
所述第一中转服务端通过所述第一服务端口将所述响应数据包转发至所述请求客户端。
8.根据权利要求6所述的方法,其特征在于,当所述第一服务端口与所述第二服务端口相同时,所述通过所述隧道服务组件接收所述服务网络设备返回的具有所述目标通讯协议的响应数据包,包括:
当所述服务网络设备通过所述第二通信连接向所述隧道服务组件返回具有所述目标通讯协议的响应数据包时,所述第二中转服务端通过所述第二服务端口获取所述服务网络设备发送的第二发送标识信息和所述响应数据包;所述第二发送标识信息用于指示所述响应数据包来源于所述服务网络设备;
则所述通过所述隧道服务组件将所述响应数据包转发至所述请求客户端,包括:
所述第一中转服务端通过所述第一服务端口将所述响应数据包转发至所述请求客户端。
9.一种数据处理方法,其特征在于,所述方法由服务网络中具有隧道代理组件的服务网络设备执行,包括:
通过所述隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;所述请求数据包是指请求客户端发送的数据包,所述请求客户端是运行在目标网络中的请求网络设备上的客户端,所述请求网络设备具备通过所述目标通讯协议访问所述中转网络的能力;所述服务网络设备具备通过所述目标通讯协议访问所述中转网络的能力;
通过所述隧道代理组件将所述请求数据包发送至运行在所述服务网络设备上的目标服务端;所述目标服务端用于生成所述请求数据包所请求的具有所述目标通讯协议的响应数据包,所述响应数据包用于发送至所述请求客户端。
10.根据权利要求9所述的方法,其特征在于,当所述目标服务端用于提供远程登录服务时,所述请求数据包为基于安全外壳协议进行加密的数据包,所述请求数据包携带有远程操作命令;所述响应数据包是由所述目标服务端执行所述远程操作命令后所得到的,所述响应数据包为基于所述安全外壳协议进行加密的数据包。
11.根据权利要求9所述的方法,其特征在于,所述中转网络设备上部署有隧道服务组件,所述隧道服务组件包括基于所述目标通讯协议的第一中转服务端和第二中转服务端;所述第一中转服务端用于与所述请求客户端建立基于所述目标通讯协议的第一通信连接;所述第一通信连接用于将所述请求数据包传输至所述中转网络设备,所述第一通信连接是由所述请求客户端所发起的;
所述隧道代理组件包括基于所述目标通讯协议的第一代理客户端和第二代理客户端;所述第一代理客户端用于当所述隧道服务组件以及所述隧道代理组件开始运行时,主动向所述第二中转服务端建立基于所述目标通讯协议的第二通信连接;所述第二代理客户端用于通过所述目标通讯协议与所述目标服务端进行数据通信;
当所述请求客户端的数量为至少两个时,所述第一通信连接包含至少两条基于所述目标通讯协议的第一通信链路,每个请求客户端对应于一条第一通信链路;
当所述第一代理客户端的数量为至少两个时,所述第二通信连接包含至少两条基于所述目标通讯协议的第二通信链路,每个第一代理客户端对应于一条第二通信链路;每个请求客户端所发送的请求数据包分别通过一条第二通信链路进行传输;至少两条第二通信链路中包含一条或多条具有未使用状态的第二通信链路。
12.根据权利要求11所述的方法,其特征在于,至少两个请求客户端包括目标请求客户端,所述目标请求客户端发送的请求数据包为目标请求数据包;所述至少两条第二通信链路中包括具有未使用状态的目标第二通信链路;
所述通过所述隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包,包括:
当所述第二中转服务端通过所述目标第二通信链路向所述服务网络设备转发所述目标请求数据包时,所述第一代理客户端接收所述目标请求数据包;
所述隧道代理组件将所述目标请求数据包缓存到所述服务网络设备的内存中;
则所述通过所述隧道代理组件将所述请求数据包发送至运行在所述服务网络设备上的目标服务端,包括:
所述第二代理客户端向所述目标服务端发起基于所述目标通讯协议的第三通信连接,从所述服务网络设备的内存中获取所述目标请求数据包,通过所述第三通信连接将所述目标请求数据包发送至所述目标服务端。
13.一种数据处理装置,其特征在于,包括:
请求获取模块,用于通过隧道服务组件获取请求客户端所发送的具有目标通讯协议的请求数据包;所述请求客户端是运行在目标网络中的请求网络设备上的客户端,所述请求网络设备具备通过所述目标通讯协议访问中转网络的能力;
请求转发模块,用于通过所述隧道服务组件将所述请求数据包转发至服务网络中的服务网络设备;所述服务网络设备具备通过所述目标通讯协议访问所述中转网络的能力,所述服务网络设备包括基于所述目标通讯协议的目标服务端,所述目标服务端用于响应所述请求数据包。
14.一种数据处理装置,其特征在于,包括:
数据接收模块,用于通过隧道代理组件接收由中转网络中的中转网络设备所转发的具有目标通讯协议的请求数据包;所述请求数据包是指请求客户端发送的数据包,所述请求客户端是运行在目标网络中的请求网络设备上的客户端,所述请求网络设备具备通过所述目标通讯协议访问所述中转网络的能力;服务网络设备具备通过所述目标通讯协议访问所述中转网络的能力;
请求发送模块,用于通过所述隧道代理组件将所述请求数据包发送至运行在所述服务网络设备上的目标服务端;所述目标服务端用于生成所述请求数据包所请求的具有所述目标通讯协议的响应数据包,所述响应数据包用于发送至所述请求客户端。
15.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与所述存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使所述计算机设备执行权利要求1-12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行,以使具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,该计算机指令适于由处理器读取并执行,以使具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210356598.2A CN116938921A (zh) | 2022-04-06 | 2022-04-06 | 一种数据处理方法、装置以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210356598.2A CN116938921A (zh) | 2022-04-06 | 2022-04-06 | 一种数据处理方法、装置以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116938921A true CN116938921A (zh) | 2023-10-24 |
Family
ID=88391258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210356598.2A Pending CN116938921A (zh) | 2022-04-06 | 2022-04-06 | 一种数据处理方法、装置以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116938921A (zh) |
-
2022
- 2022-04-06 CN CN202210356598.2A patent/CN116938921A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9159006B2 (en) | System and method for document transmission from a computing device to a portbale electronic device | |
US7792924B2 (en) | Using a mobile phone to remotely control a computer via an overlay network | |
KR101004385B1 (ko) | 방해물을 가진 네트워크를 사용하여 pc들과 스마트 전화간의 피어 투 피어 연결을 설립하는 시스템 및 방법 | |
US8984114B2 (en) | Dynamic session migration between network security gateways | |
Hesmans et al. | An enhanced socket API for Multipath TCP | |
US20240069977A1 (en) | Data transmission method and data transmission server | |
CN109088799A (zh) | 一种客户端接入方法、装置、终端以及存储介质 | |
WO2017219813A1 (zh) | 一种流量处理方法及透明缓存系统 | |
US8443057B1 (en) | System, method, and/or apparatus for establishing peer-to-peer communication | |
US8650313B2 (en) | Endpoint discriminator in network transport protocol startup packets | |
CN115379010A (zh) | 一种容器网络构建方法、装置、设备及存储介质 | |
Li et al. | 6G cloud-native system: Vision, challenges, architecture framework and enabling technologies | |
CN104660550A (zh) | 一种在多服务器之间进行会话迁移的方法 | |
Takasugi et al. | Seamless service platform for following a user's movement in a dynamic network environment | |
JP5303403B2 (ja) | 端末装置、通信方法、及びプログラム | |
CN116938921A (zh) | 一种数据处理方法、装置以及相关设备 | |
US20210203604A1 (en) | Load balancing method, device and system | |
Liu et al. | Rethink Phone-Wearable Collaboration From the Networking Perspective | |
Michalakis et al. | Designing an NFS-based mobile distributed file system for ephemeral sharing in proximity networks | |
JP5198916B2 (ja) | インターネット接続システム | |
CN107948232B (zh) | 基于Hook API的代理实现方法、数据传输方法、装置及系统 | |
CN110417592A (zh) | 一种Qos限速方法、装置、路由设备及存储介质 | |
EP3873043A1 (en) | Load balancing method, device and system | |
US11960407B1 (en) | Cache purging in a distributed networked system | |
CN115134395B (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 |