本发明涉及代理模式网闸技术领域,具体涉及一种数据处理方法、装置、网闸设备及计算机可读存储介质。
背景技术:
传统代理模式网闸的每一个代理任务仅能设置一个端口,这是由于一个套接字(socket)只能有一个端口。在实际业务场景中,该功能会存在一定的不便。例如,如果客户不知道具体的业务端口、业务使用了多个端口或业务使用了动态端口,在这种情况下,传统代理模式网闸难以配置。
技术实现要素:
有鉴于此,为了克服现有技术中传统代理模式网闸的缺点,本发明实施例提供了一种数据处理方法、装置、网闸设备及计算机可读存储介质。
根据第一方面,本发明实施例提供了一种数据处理方法,应用于网闸设备,网闸设备分别与客户端和服务器连接,包括:接收客户端发送的第一数据包,提取第一数据包中的第一原始ip、第一原始端口及第一套接字;第一套接字包括:第一目的ip和第一目的端口;将第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,第二套接字包括:第二目的ip和第二目的端口;第二目的端口为第一目的端口所属的端口范围所对应的预设端口;通过第二目的ip和第二目的端口发送第一数据包至服务器。
可选地,该数据处理方法还包括:接收服务器反馈的第二数据包,第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;将第二目的ip和第二目的端口进行目的地址还原,得到第一原始ip和第一原始端口;通过第二目的ip和第二目的端口向第一原始ip和第一原始端口对应的客户端发送第二数据包。
可选地,通过第二目的ip和第二目的端口发送第一数据包至服务器,包括:根据第一原始ip和第一原始端口查询预设连接表,得到第一目的ip和第一目的端口;根据第一目的ip和第一目的端口查询预设代理任务配置,得到服务器ip和服务器端口;将服务器ip和服务器端口附加在第一数据包中,通过第二目的ip和第二目的端口将第一数据包发送给服务器ip和服务器端口对应的服务器。
根据第二方面,本发明实施例提供了一种数据处理装置,应用于网闸设备,网闸设备分别与客户端和服务器连接,数据处理装置包括:提取单元,用于接收客户端发送的第一数据包,提取第一数据包中的第一原始ip、第一原始端口及第一套接字;第一套接字包括:第一目的ip和第一目的端口;目的地址转换单元,用于将第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,第二套接字包括:第二目的ip和第二目的端口;第二目的端口为第一目的端口所属的端口范围所对应的预设端口;第一发送单元,用于通过第二目的ip和第二目的端口发送第一数据包至服务器。
可选地,数据处理装置还包括:接收单元,用于接收服务器反馈的第二数据包,第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;目的地址还原单元,用于将第二目的ip和第二目的端口进行目的地址还原,得到第一原始ip和第一原始端口;第二发送单元,用于通过第二目的ip和第二目的端口向第一原始ip和第一原始端口对应的客户端发送第二数据包。
可选地,第一发送单元包括:第一发送子单元和第二发送子单元;第一发送子单元,用于通过第二目的ip和第二目的端口发送第一数据包至第二发送子单元;第二发送子单元用于将第一数据包发送给服务器。
根据第三方面,本发明实施例提供了一种网闸设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任意实施方式中的数据处理方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行第一方面或第一方面任意实施方式中的数据处理方法。
本发明实施例提供的数据处理方法、装置、网闸设备及计算机可读存储介质,通过从要代理的多个端口中挑选一个第二目的端口,创建目的地址转换映射,使要代理的所有端口都转换成该第二目的端口,当接收到第一目的端口在该第一目的端口所属的端口范围内的第一数据包时,将该第一数据包的第一目的端口进行目的地址转换,转换成该第二目的端口,从该第二目的端口进行数据转发,从而使得该第二目的端口可以对应一个范围内的第一目的端口,从而使得第二目的端口可以采用一个套接字代理多个端口,从而减小资源的消耗,且该第二目的端口可以对应一个范围内的第一目的端口,从而可以解决在客户不知道具体的业务端口、业务使用了多个端口或业务使用了动态端口的情况下,代理模式网闸难以配置的问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例的数据处理方法的流程图;
图2示出了本发明实施例的数据处理装置的结构框图;
图3示出了本发明实施例的网闸设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据处理方法,应用于网闸设备,网闸设备分别与客户端和服务器连接,如图1所示,该方法包括:
s101.接收客户端发送的第一数据包,提取第一数据包中的第一原始ip、第一原始端口及第一套接字,第一套接字包括:第一目的ip和第一目的端口;具体地,第一原始ip和第一原始端口为客户端的ip和端口,第一目的ip和第一目的端口为网闸的ip和端口。
s102.将第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,第二套接字包括:第二目的ip和第二目的端口;第二目的端口为第一目的端口所属的端口范围所对应的预设端口;具体的,第二目的端口为从网闸设备要代理的多个端口(多个第一目的端口)中挑选的一个特定端口,多个第一目的端口组成第一目的端口所属的端口范围,第二目的端口是第一目的端口所属的范围所对应的一个端口。将第一目的ip和第一目的端口进行目的地址转换,从而在第一目的端口所属的端口范围内的第一目的端口都可以转化为第二目的端口,从而可以实现一个套接字代理多个端口。
s103.通过第二目的ip和第二目的端口发送第一数据包至服务器。具体地,网闸设备包括控制侧和信息侧。第二目的ip和第二目的端口为控制侧的一个ip和端口,在控制侧进行目的地址转换后,就可以通过转换后的目的ip和目的地址将第一数据包发送给网闸设备的信息侧,通过网闸设备的信息侧将第一数据包发送给服务器。
本发明实施例提供的数据处理方法,通过从要代理的多个端口中挑选一个第二目的端口,创建目的地址转换映射,使要代理的所有端口都转换成该第二目的端口,当接收到第一目的端口在该第一目的端口所属的端口范围内的第一数据包时,将该第一数据包的第一目的端口进行目的地址转换,转换成该第二目的端口,从该第二目的端口进行数据转发,从而使得该第二目的端口可以对应一个范围内的第一目的端口,从而使得第二目的端口可以采用一个套接字代理多个端口,从而减小资源的消耗,且该第二目的端口可以对应一个范围内的第一目的端口,从而可以解决在客户不知道具体的业务端口、业务使用了多个端口或业务使用了动态端口的情况下,代理模式网闸难以配置的问题。
在可选的实施例中,为了实现数据的交互和数据的完整,网闸设备还需要将服务器反馈的第二数据包发送给客户端。因此,本发明实施例的数据处理方法还包括:接收服务器反馈的第二数据包,第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;将第二目的ip和第二目的端口进行目的地址还原,得到第一原始ip和第一原始端口;通过第二目的ip和第二目的端口向第一原始ip和第一原始端口对应的客户端发送第二数据包。具体地,第二原始ip和第二原始端口为服务器的ip和端口,第二目的ip和第二目的端口为网闸设备的ip和端口,在客户端通过网闸设备向服务器发送第一数据时,网闸设备进行目的地址转换,那么在服务器通过网闸设备向客户端反馈第二数据时,网闸设备需要进行目的地址还原,将第二目的地址和第二目的ip还原成客户端的第一原始ip和第一原始端口,进而通过第二目的ip和第二目的端口将第二数据反馈给客户端。
在可选的实施例中,步骤s103中,通过第二目的ip和第二目的端口发送第一数据包至服务器,具体包括:根据第一原始ip和第一原始端口查询预设连接表,得到第一目的ip和第一目的端口;根据第一目的ip和第一目的端口查询预设代理任务配置,得到服务器ip和服务器端口;将服务器ip和服务器端口附加在第一数据包中,通过第二目的ip和第二目的端口将第一数据包发送给服务器ip和服务器端口对应的服务器。具体的,预设连接表为网闸设备内预存的客户端与网闸设备的对应ip和对应端口连接表。预设代理任务配置为网闸设备内预存的网闸设备与服务器对应的ip和端口连接表。虽然网闸接收的第一数据包中包括了第一目的ip和第一目的端口,但进行了目的地址转换后,第一目的ip和第一目的端口发生了改变,在不对网闸设备的内核层做改变的情况下,那么需要根据第一原始ip和第一原始端口查询预设的连接表,找到第一目的ip和第一目的端口,进而通过第一目的ip和第一目的端口,查询预设代理任务配置表,得到服务器的ip和端口,然后才能将第一数据发送给服务器。
本发明实施例还提供了一种数据处理装置,应用于网闸设备,网闸设备分别与客户端和服务器连接,如图2所示,该数据处理装置包括:
提取单元21,用于接收客户端发送的第一数据包,提取第一数据包中的第一原始ip、第一原始端口及第一套接字;第一套接字包括:第一目的ip和第一目的端口;具体的描述详见上述方法实施例中步骤s101的描述,在此不再赘述。
目的地址转换单元22,用于将第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,第二套接字包括:第二目的ip和第二目的端口;第二目的端口为第一目的端口所属的端口范围所对应的预设端口;具体的描述详见上述方法实施例中步骤s102的描述,在此不再赘述。
第一发送单元23,用于通过第二目的ip和第二目的端口发送第一数据包至服务器。具体的描述详见上述方法实施例中步骤s103的描述,在此不再赘述。
本发明实施例提供的数据处理装置,通过从要代理的多个端口中挑选一个第二目的端口,创建目的地址转换映射,使要代理的所有端口都转换成该第二目的端口,当接收到第一目的端口在该第一目的端口所属的端口范围内的第一数据包时,将该第一数据包的第一目的端口进行目的地址转换,转换成该第二目的端口,从该第二目的端口进行数据转发,从而使得该第二目的端口可以对应一个范围内的第一目的端口,从而使得第二目的端口可以采用一个套接字代理多个端口,从而减小资源的消耗,且该第二目的端口可以对应一个范围内的第一目的端口,从而可以解决在客户不知道具体的业务端口、业务使用了多个端口或业务使用了动态端口的情况下,代理模式网闸难以配置的问题。
在可选的实施例中,数据处理装置还包括:接收单元,用于接收服务器反馈的第二数据包,第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;目的地址还原单元,用于将第二目的ip和第二目的端口进行目的地址还原,得到第一原始ip和第一原始端口;第二发送单元,用于通过第二目的ip和第二目的端口向第一原始ip和第一原始端口对应的客户端发送第二数据包。通过接收单元、目的地址转换单元、第二发送单元的设置,可以将服务器反馈的信息发送给客户端,实现数据的交互。
在可选的实施例中,第一发送单元包括:第一发送子单元和第二发送子单元;第一发送子单元,用于通过第二目的ip和第二目的端口发送第一数据包至第二发送子单元;第二发送子单元用于将第一数据包发送给服务器。具体的,网闸设备包括控制侧和信息侧。第二目的ip和第二目的端口为控制侧的一个ip和端口,在控制侧进行目的地址转换后,就可以通过转换后的目的ip和目的地址将第一数据包发送给网闸设备的信息侧的第二发送单元,通过网闸设备的信息侧的第二发送单元将第一数据包发送给服务器。
本发明实施例还提供了一种网闸设备,如图3所示,包括:处理器31和存储器32,其中处理器31和存储器32可以通过总线或者其他方式连接,图3中以通过总线连接为例。
处理器31可以为中央处理器(centralprocessingunit,cpu)。处理器31还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器32作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/模块。处理器31通过运行存储在存储器32中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的数据处理方法。
存储器32可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器31所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器32可选包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至处理器31。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的一个或者多个模块存储在存储器32中,当被处理器31执行时,执行如图2所示实施例中的数据处理方法。
上述网闸设备具体细节可以对应参阅图1所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本发明实施例提供的网闸设备,通过从要代理的多个端口中挑选一个第二目的端口,创建目的地址转换映射,使要代理的所有端口都转换成该第二目的端口,当接收到第一目的端口在该第一目的端口所属的端口范围内的第一数据包时,将该第一数据包的第一目的端口进行目的地址转换,转换成该第二目的端口,从该第二目的端口进行数据转发,从而使得该第二目的端口可以对应一个范围内的第一目的端口,从而使得第二目的端口可以采用一个套接字代理多个端口,从而减小资源的消耗,且该第二目的端口可以对应一个范围内的第一目的端口,从而可以解决在客户不知道具体的业务端口、业务使用了多个端口或业务使用了动态端口的情况下,代理模式网闸难以配置的问题。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
1.一种数据处理方法,应用于网闸设备,所述网闸设备分别与客户端和服务器连接,其特征在于,包括:
接收客户端发送的第一数据包,提取所述第一数据包中的第一原始ip、第一原始端口及第一套接字;所述第一套接字包括:第一目的ip和第一目的端口;
将所述第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,所述第二套接字包括:第二目的ip和第二目的端口;所述第二目的端口为所述第一目的端口所属的端口范围所对应的预设端口;
通过所述第二目的ip和第二目的端口发送所述第一数据包至服务器。
2.根据权利要求1所述的数据处理方法,其特征在于,还包括:
接收服务器反馈的第二数据包,所述第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;
将所述第二目的ip和第二目的端口进行目的地址还原,得到所述第一原始ip和第一原始端口;
通过所述第二目的ip和第二目的端口向所述第一原始ip和第一原始端口对应的客户端发送所述第二数据包。
3.根据权利要求1所述的数据处理方法,其特征在于,所述通过所述第二目的ip和第二目的端口发送所述第一数据包至服务器,包括:
根据所述第一原始ip和第一原始端口查询预设连接表,得到所述第一目的ip和第一目的端口;
根据所述第一目的ip和第一目的端口查询预设代理任务配置,得到服务器ip和服务器端口;
将所述服务器ip和服务器端口附加在所述第一数据包中,通过所述第二目的ip和第二目的端口将所述第一数据包发送给所述服务器ip和服务器端口对应的服务器。
4.一种数据处理装置,应用于网闸设备,所述网闸设备分别与客户端和服务器连接,其特征在于,包括:
提取单元,用于接收客户端发送的第一数据包,提取所述第一数据包中的第一原始ip、第一原始端口及第一套接字;所述第一套接字包括:第一目的ip和第一目的端口;
目的地址转换单元,用于将所述第一套接字的第一目的ip和第一目的端口进行目的地址转换,生成第二套接字,所述第二套接字包括:第二目的ip和第二目的端口;所述第二目的端口为所述第一目的端口所属的端口范围所对应的预设端口;
第一发送单元,用于通过所述第二目的ip和第二目的端口发送所述第一数据包至服务器。
5.根据权利要求4所述的数据处理装置,其特征在于,还包括:
接收单元,用于接收服务器反馈的第二数据包,所述第二数据包包括第二原始ip、第二原始端口、第二目的ip和第二目的端口;
目的地址还原单元,用于将所述第二目的ip和第二目的端口进行目的地址还原,得到所述第一原始ip和第一原始端口;
第二发送单元,用于通过所述第二目的ip和第二目的端口向所述第一原始ip和第一原始端口对应的客户端发送所述第二数据包。
6.根据权利要求4所述的数据处理装置,其特征在于,所述第一发送单元包括:第一发送子单元和第二发送子单元;
所述第一发送子单元,用于通过所述第二目的ip和第二目的端口发送所述第一数据包至所述第二发送子单元;
所述第二发送子单元用于将所述第一数据包发送给服务器。
7.一种网闸设备,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-3任意一项所述的数据处理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-3任意一项所述的数据处理方法。
技术总结