基于HookAPI的代理实现方法、数据传输方法、装置及系统与流程

文档序号:14216576阅读:375来源:国知局

本发明涉及一种计算机技术领域,尤其涉及一种基于hookapi的代理实现方法、数据传输方法、装置及系统。



背景技术:

在一个大的网络集群中,不同设备之间由于安全策略的限制,数据无法直接在两者之间相互传输,而需要通过一个中间设备,从第一设备到第二设备的数据传输方式会变成:第一设备将数据传输到中间设备,中间设备再把数据传输到第二设备,其中,中间设备起到了代理作用。

普通的代理实现方式最主要有两种,一种是数据从第一设备传输到了代理设备,代理设备需要先解析数据,通过解析数据得到正在传输的数据对应什么服务,再将该数据传输到第二设备上对应的服务进程。该实现方案需要代理设备对于知悉第一设备与第二设备之间交互的数据的协议,代理设备解析数据需要耗费cpu计算,管理多种多样的协议也十分的复杂,另外在扩容部署的过程会十分麻烦,需要修改跟第一设备和第二设备相关的配置。

另一种是代理设备预先分配多个端口,第一设备把不同协议的数据先发往代理设备的不同端口,代理设备再将这不同的端口请求数据转发到第二设备的不同后台。这种方法的主要弊端是端口需要与服务对应,代理在这个系统上设计中是不透明的,需要将端口与服务对应起来,运维不方便。



技术实现要素:

有鉴于此,本发明提供一种基于hookapi的代理实现方法、数据传输方法、装置及系统,易扩展、且可简化代理过程、提高性能、运维也方便。

本发明实施例提供了一种hookapi的代理实现方法,包括第一设备发送第二设备的目的ip地址和端口号至所述api库,以调用api库中的函数;根据所述api库,将第一设备与代理设备的代理服务端口建立连接;所述api库将接收的所述第二设备的目的ip地址和端口号发送至所述代理设备;以及所述代理设备利用代理服务端口与所述第二设备的目的ip地址和端口号建立连接。

本发明实施例还提供了一种数据传输方法,所述方法包括上述hookapi的代理实现方法及所述代理设备的代理服务端口接收所述第一设备发送的数据,并将所述数据转发至所述第二设备的目的ip地址和端口号。

本发明实施例还提供了一种基于hookapi的代理实现方法,应用于api库,包括接收所述第一设备发送的第二设备的目的ip地址和端口号;以及使第一设备与代理设备的代理服务端口建立连接,并将所述第二设备的目的ip地址和端口号发送至所述代理设备,以使得所述代理设备的代理服务端口与所述第二设备的目的ip地址和端口号建立连接。

本发明实施例还提供了一种基于hookapi的代理实现系统,所述基于hookapi的代理实现系统包括第一设备、api库、代理设备以及第二设备;所述第一设备发送第二设备的目的ip地址和端口号至所述api库,以调用api库中的函数;所述api库用于使第一设备与代理设备的代理服务端口建立连接,并将接收的所述第二设备的目的ip地址和端口号发送至所述代理设备;所述代理设备用于利用代理服务端口与所述第二设备的目的ip地址和端口号建立连接。

本发明实施例还提供了一种基于hookapi的代理实现装置,应用于api库,所述基于hookapi的代理实现装置包括接收模块,用于接收第一设备发送的第二设备的目的ip地址和端口号;连接模块,用于使所述第一设备与代理设备的代理服务端口建立连接;以及发送模块,用于将所述第二设备的目的ip地址和端口号发送至所述代理设备,以使得所述代理设备的代理服务端口与所述第二设备的目的ip地址和端口号建立连接。

本发明实施例提供的基于hookapi的代理实现方法、数据传输方法、装置及系统,通过hookapi的方式,使得代理设备对于第一设备和第二设备透明的,而且交互传输数据的双方并不知道代理设备的存在,这令代理设备的扩容和部署十分方便。此外,通过在代理设备设置代理服务,以及被hook的api与代理设备的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备的数据可以准确地传输到对端设备的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

图1为本发明一实施例提供的基于hookapi的代理实现方法、数据传输方法、装置及系统的应用环境图;

图2示出了一种服务器的结构框图;

图3为本发明第一实施例提供的基于hookapi的代理实现方法的流程图;

图4为本发明第二实施例提供的基于hookapi的代理实现方法的流程图;

图5为本发明第三实施例提供的基于hookapi的代理实现方法的流程图;

图6为本发明第四实施例提供的基于hookapi的代理实现系统的结构图;

图7为本发明第五实施例提供的基于hookapi的代理实现装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明各实施例所提供的基于hookapi的代理实现方法、装置及系统,可应用于如图1所示的应用环境中,实现跨设备的数据传输。如图1所示,第一设备100、api库200、代理设备300以及第二设备400位于无线网络或有线网络中,通过该无线网络或有线网络,第一设备100、api库200、代理设备300以及第二设备400进行数据交互。

其中,第一设备100与第二设备400一样,二者均可以包括服务器,还可以包括pc机(personalcomputer,个人计算机)、一体机、膝上型便携计算机、车载终端等计算机终端设备,以及智能手机、平板电脑、电子书阅读器、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器等移动终端设备。

其中,api库200可以位于远端,也可以位于第一设备100本地。

优选地,api库200位于远端,其通过网络与第一设备100及代理设备300进行数据交互。

图2示出了一种服务器的结构框图。图2所示的结构可同时适用于第一设备100、代理设备300以及第二设备400,如图2所示,服务器包括:存储器301、处理器302以及网络模块303。

可以理解,图2所示的结构仅为示意,服务器还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。另外,本发明实施例中的服务器还可以包括多个具体不同功能的服务器。

存储器301可用于存储软件程序以及模块,如本发明实施例中的基于hookapi的代理实现方法、数据传输方法、装置及系统对应的程序指令/模块,处理器302通过运行存储在存储器301内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本发明实施例中的基于hookapi的代理实现方法。存储器301可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器301可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至服务器。进一步地,上述软件程序以及模块还可包括:操作系统321以及服务模块322。其中操作系统321,例如可为linux、unix、windows,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。服务模块322运行在操作系统321的基础上,并通过操作系统321的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。也就是说,服务模块322用于向客户端提供网络服务。

网络模块303用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,网络模块303可包括处理器、随机存储器、转换器、晶体振荡器等元件。

第一实施例

图3为本发明第一实施例提供的基于hookapi的代理实现方法的流程图。本实施例为第一设备100、api库200、代理设备300以及第二设备400通过网络所执行的基于hookapi的代理实现方法,其可以应用于图1所示的环境中。如图3及图1所示,本实施例的基于hookapi的代理实现方法可包括以下步骤:

步骤s11:第一设备100发送第二设备400的目的ip地址和端口号至api库200,以调用api库200中的函数;

具体地,第一设备100可根据用户输入的触发指令通过无线网络或有线网络发送欲请求的第二设备400的目的ip地址和端口号至api库200。

步骤s12:根据api库200,将第一设备100与代理设备300的代理服务端口建立连接;

步骤s13:api库200将接收的第二设备400的目的ip地址和端口号发送至代理设备300;

其中,步骤s12与步骤s13的顺序不分先后,也就是说,步骤s13可以先于或晚于步骤s12进行。当然,步骤s13与步骤s12也可以同时进行。

具体地,代理设备300提供代理服务,该代理服务对应一个ip地址和端口号。

以第一设备100欲请求第二设备400上的172.168.0.1:1001服务,代理设备300的代理服务对应的ip地址和端口号为172.168.0.2:1002为例:api库200将第一设备100与代理设备300的代理服务端口172.168.0.2:1002建立连接,并将第一设备100欲请求的第二设备400的目的ip地址和端口号即172.168.0.1:1001发送至代理设备300。

步骤s14:代理设备300利用代理服务端口与第二设备400的目的ip地址和端口号建立连接。

具体地,代理设备300发送连接请求至第二设备400的目的ip地址和端口号,第二设备400接收到代理设备300发送的连接请求后响应连接请求,以与代理设备300的代理服务端口建立连接。

具体地,代理设备300的代理服务端口与第二设备400的目的ip地址和端口号建立连接,例如代理设备300的代理服务端口172.168.0.2:1002与第二设备400的172.168.0.1:1001建立连接。

本发明实施例提供的基于hookapi的代理实现方法通过hookapi的方式,使得代理设备300对于第一设备100和第二设备400透明的,交互传输数据的双方并不知道代理设备300的存在,这令代理设备300的扩容和部署十分方便。此外,通过在代理设备300设置代理服务,以及被hook的api与代理设备300的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备300的数据可以准确地传输到对端设备的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

第二实施例

图4为本发明第二实施例提供的基于hookapi的代理实现方法的流程图。本实施例为第一设备100、api库200、代理设备300以及第二设备400通过网络所执行的基于hookapi的代理实现方法。如图4所示,本实施例的基于hookapi的代理实现方法可包括以下步骤:

步骤s21:在第一设备100上添加代理配置文件,代理配置文件配置了第一设备100请求第二设备400的服务通过代理设备300的代理服务端口转发;

本领域的技术人员可以理解的是,在第一设备100上添加代理配置文件也可以在步骤s22之后执行。

步骤s22:第一设备100发送第二设备400的目的ip地址和端口号至api库200,以调用api库200中的函数;

具体地,第一设备100可根据用户输入的触发指令通过无线网络或有线网络发送第二设备400的目的ip地址和端口号至api库200。

步骤s23:api库200读取第一设备100上的代理配置文件;

步骤s24:api库200使第一设备100与代理设备300的代理服务端口建立连接,并将接收的第二设备400的目的ip地址和端口号发送至代理设备300;

具体地,代理设备300提供代理服务,该代理服务对应的一个ip地址和端口号。

以第一设备100欲请求第二设备400上的172.168.0.1:1001服务,代理设备300的代理服务对应的ip地址和端口号为172.168.0.2:1002为例:api库200将第一设备100与代理设备300的代理服务端口172.168.0.2:1002建立连接,并将第一设备100欲请求的第二设备400的目的ip地址和端口号即172.168.0.1:1001发送至代理设备300。

步骤s25:代理设备300利用代理服务端口与第二设备400的目的ip地址和端口号建立连接。

具体地,例如代理设备300利用代理服务端口172.168.0.2:1002与第二设备400的172.168.0.1:1001建立连接。

步骤s26:代理设备300的代理服务端口接收第一设备100发送的数据,并将数据转发至第二设备400的目的ip地址和端口号。

本发明实施例提供的基于hookapi的代理实现方法,通过配置第一设备100请求第二设备400的服务通过代理设备300的代理服务端口转发,以通过hookapi的方式使得代理设备300对于第一设备100和第二设备400是透明的,交互传输数据的双方并不知道代理设备300的存在,这令代理设备300的扩容和部署十分方便。此外,通过在代理设备300设置代理服务,以及被hook的api与代理设备300的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备300的数据可以准确地传输到对端设备的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

第三实施例

图5为本发明第三实施例提供的基于hookapi的代理实现方法的流程图。本实施例为api库200通过网络所执行的基于hookapi的代理实现方法。如图5及图1所示,本实施例的基于hookapi的代理实现方法可包括以下步骤:

步骤s31:接收第一设备100发送的第二设备400的目的ip地址和端口号;

步骤s32:使第一设备100与代理设备300的代理服务端口建立连接,并将第二设备400的目的ip地址和端口号发送至代理设备300,以使得代理设备300的代理服务端口与第二设备400的目的ip地址和端口号建立连接。

进一步地,在步骤s31之前还可以包括读取第一设备100上的代理配置文件,代理配置文件配置了第一设备100请求第二设备400的服务通过代理设备300的代理服务端口转发。

本发明实施例提供的基于hookapi的代理实现方法,通过配置第一设备100请求第二设备400的服务通过代理设备300的代理服务端口转发,以通过hookapi的方式使得代理设备300对于第一设备100和第二设备400是透明的,交互传输数据的双方并不知道代理设备300的存在,这令代理设备300的扩容和部署十分方便。此外,通过在代理设备300设置代理服务,以及被hook的api与代理设备300的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备300的数据可以准确地传输到第二设备400的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

本发明还提供一种数据传输方法,其包括如图3或图4或图5的基于hookapi的代理实现方法,具体步骤请参考第一实施例、第二实施例及第三实施例的具体描述,此处不再赘述。

本发明实施例提供的数据传输方法,通过配置第一设备100请求第二设备400的服务通过代理设备300的代理服务端口转发,以通过hookapi的方式使得代理设备300对于第一设备100和第二设备400是透明的,交互传输数据的双方并不知道代理设备300的存在,这令代理设备300的扩容和部署十分方便。此外,通过在代理设备300设置代理服务,以及被hook的api与代理设备300的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备300的数据可以准确地传输到第二设备400的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

第四实施例

图6为本发明第四实施例提供的基于hookapi的代理实现系统的结构图。如图6所示,基于hookapi的代理实现系统包括第一设备600、api库601、代理设备602以及第二设备603。

其中,第一设备600发送欲请求的第二设备603的目的ip地址和端口号至api库601,以调用api库601中的函数。

api库601用于使第一设备600与代理设备602的代理服务端口建立连接,并将接收的第二设备603的目的ip地址和端口号发送至代理设备602。

具体地,第一设备600包括代理配置文件,代理配置文件配置了第一设备600请求第二设备603的服务通过代理设备602的代理服务端口转发;api库601读取第一设备600上的代理配置文件。

其中,代理设备602用于利用代理服务端口与第二设备603的目的ip地址和端口号建立连接。

进一步地,代理设备602还用于利用代理服务端口接收第一设备600发送的数据,并将数据转发至第二设备603的目的ip地址和端口号。

本发明实施例提供的基于hookapi的代理实现系统,通过配置第一设备600请求第二设备603的服务通过代理设备602的代理服务端口转发,以通过hookapi的方式使得代理设备602对于第一设备600和第二设备603是透明的,交互传输数据的双方并不知道代理设备602的存在,这令代理设备602的扩容和部署十分方便。此外,通过在代理设备602设置代理服务,以及被hook的api与代理设备602的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备602的数据可以准确地传输到第二设备603的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

第五实施例

图7为本发明第五实施例提供的基于hookapi的代理实现装置的结构图。其应用于api库,基于hookapi的代理实现装置包括:接收模块710、连接模块720、发送模块730。

接收模块710用于接收第一设备发送的第二设备的目的ip地址和端口号。连接模块720用于使第一设备与代理设备的代理服务端口建立连接。发送模块730用于将第二设备的目的ip地址和端口号发送至代理设备,以使得代理设备的代理服务端口与第二设备的目的ip地址和端口号建立连接。

进一步地,基于hookapi的代理实现装置还包括读取模块,读取模块用于读取第一设备上的代理配置文件,代理配置文件配置了第一设备请求第二设备的服务通过代理设备的代理服务端口转发。

本发明实施例提供的基于hookapi的代理实现装置,通过hookapi的方式使得代理设备对于第一设备和第二设备是透明的,交互传输数据的双方并不知道代理设备的存在,这令代理设备的扩容和部署十分方便。此外,通过在代理设备300设置代理服务,以及被hook的api与代理设备的代理服务端口之间的数据传输通过协议保证的方式,使得传输到代理设备的数据可以准确地传输到第二设备的目的端口,且无需知晓传输两端之间的协议,简单了代理设计,性能也能大幅提高,运维也方便。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者装置中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1