具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例中处理服务器的结构示意图。在本实施例中,外部网1与内部网2通信连接,内部网2可以理解为企业网。内部网2包括处理服务器21和内网服务器22,外部网1通过处理服务器21访问内网服务器22。在本实施例中,处理服务器21可以是VPN服务器或是代理服务器。在本实施例中,处理服务器21可以将外部网1发送的数据进行处理后,再转发至内网服务器22,处理服务器21也可以将内网服务器22发送的数据进行处理后,转发至外部网1。
在本实施例中,处理服务器21包括:端口管理模块211、处理单元群212(也可以称为CPU群),和数据发送模块213;处理服务器21还可以包括:数据接收模块210和/或端口划分模块214。在本实施例中,处理单元可以包括中央处理器CPU、微处理器MCU、可编程逻辑门阵列FPGA、数字信号处理器DSP等。
在本实施例中,数据接收模块210用于接收外部网1或内网服务器22发送的数据报文。在本实施例中,外部网1发送的数据报文为加密的数据报文,内网服务器22发送的数据报文为非加密的数据报文。在本实施例中,数据接收模块210还用于判断所接收的数据报文的类型,即识别确定当前所接收的数据报文是来自于外部网1,还是来自于内网服务器22。在本实施例中,可以现有技术中的识别技术来进行识别,比如,若当前的处理服务器SSL服务器时,外部网1发送的数据报文中的端口号为443,即SSL服务器只需要识别数据报文中的端口号即可确定该数据报文是否为加密报文,从而判断出是否来自于外部网1。当然,反过来,由于内网服务器22的发送至SSL服务器的数据报文不加密,因而,其端口号不是443,从而可以进行识别。
在本实施例中,处理单元群212包括多个处理单元,每个处理单元互相独立,端口划分模块214用于根据处理单元ID划分端口号,以使处理单元与端口号相对应,便于管理处理单元群212中的每个处理单元。在本实施例中,端口划分模块214可以根据处理单元ID将处理单元群212进行划分端口范围,例如处理单元0的的端口范围可以为3001-6000,处理单元1的端口范围可以为6001-9000,依次类推。端口划分模块214也可以预先获取CPU群214的各处理单元的ID,或者CPU群214的各处理单元的ID是有管理人员预置的。
端口管理模块211用于当数据接收模块210确定所接收的数据报文为外部网1发送的数据报文时,为该数据报文分配处理单元。在本实施例中,可以采用分配策略对该数据报文进行分配处理单元。在本实施例中,该分配策略可以将该数据报文的IP地址和端口号进行HASH计算,也可以只将该数据报文的IP地址进行HASH计算,将HASH计算后的结果匹配一个处理单元。比如,可以将HASH值同处理单元的ID进行强相关的方式匹配。
在本实施例中,端口管理模块211还用于当为该数据报文分配一个处理单元时,将该数据报文发送至该处理单元,令所述处理单元处理所述数据报文。该处理单元对该数据报文进行解密处理。在本实施例中,若该数据报文解密后,若需要发送至内网服务器22,数据发送模块213用于将该处理单元处理后的数据报文发送至内网服务器22。在本实施例中,端口管理模块211可以根据预设的不同的处理单元ID划分不同的端口号,以使不同的处理单元管理不同的端口号,并将划分后的端口号作为所述处理后的数据报文的源端口号。可以理解为例如处理单元0的端口范围可以为3001-6000,处理单元1的端口范围可以为6001-9000,依次类推,即可以将处理单元0的端口范围中的某一个端口号作为该数据报文的源端口号。在本实施例中,数据发送模块213发送至内网服务器22的数据报文中包括端口管理模块211划分的源端口号。
在本实施例中,内网服务器22接收处理服务器21发送的数据报文,进行相关的处理,并返回处理后的数据报文至处理服务器21。此时,内网服务器22返回的数据报文不进行加密,并且包括目的端口号。
端口管理模块211用于当数据接收模块210判断所接收的数据报文为内网服务器22发送的数据报文时,获取该数据报文的目的端口号,并将该目的端口号与处理单元群212中的处理单元管理的端口号进行匹配,判断所述获取的目的端口号与发送至所述内网服务器的数据报文中的源端口号是否相同,若相同,则所述数据报文为将所述源端口号作为目的端口号的数据报文。在本实施例中,由于在处理服务器21与内网服务器22进行数据交互时,在内网服务器22将处理服务器21发送的数据报文进行处理后,需要将该处理后的数据报文返回至对应的处理服务器中处理的处理单元,因此,内网服务器22将处理后的数据报文的目的端口号与处理服务器发送的数据报文的源端口号设置成相同的端口号,并且该端口号与处理单元ID具有对应的关系。在本实施例中,端口管理模块211将获取的该目的端口号与处理单元群212中的处理单元管理的端口号进行匹配,就可以正确的找着处理该数据报文的处理单元ID,从而可以判断同一个处理单元来处理该数据报文,从而可以实现在处理单元群212中的处理单元之间没有交互的情况下对数据报文的处理。
端口管理模块211还用于当该目的端口号与处理单元群212中的处理单元的端口号进行匹配后,将该内网服务器22发送的数据报文发送至匹配的处理单元进行处理。
本实施例提供的技术方案,通过端口管理模块分配和管理同一个处理单元来处理外部网1和内网服务器22发送的相关联的数据报文,使得相同的一组连接由相同的处理单元处理,并且减少确认处理单元时,处理单元之间需要频繁交互的情况,从而可以提高数据报文的处理效率。
图2为本发明实施例的数据报文的处理方法的总体流程图。
在本实施例中,所述的处理数据报文的方法可以应用于客户在外部网通过处理服务器或代理服务器来访问某企业的内网服务器。在本实施例中,所述方法可以包括:
步骤S300,为外部网发送的数据报文分配处理单元进行处理;也可以理解为,为外部网发送的数据报文分配处理单元,令该处理单元处理该数据报文。
步骤S302,将预设的所述处理单元对应的端口号作为所述处理后的数据报文的源端口号;
步骤S304,发送所述数据报文至内网服务器进行处理。
通过上述对步骤S300至S304的说明,实现了本发明实施例提供的数据报文的处理方法,该方法通过分配和管理同一个处理单元来处理外部网发送的数据报文,从而可以避免现有技术中的在处理数据报文时,处理单元之间需要频繁交互的情况,从而可以提高数据报文的处理效率。
该方法还可以包括:
步骤S306,接收所述内网服务器发送的将所述源端口号作为目的端口号的处理后的数据报文;
步骤S308,将数据报文发送至所述源端口号对应的处理单元进行处理。
该方法通过增加步骤S306和S308,使得从内网服务器发送来的将源端口号作为目的端口号的处理后的数据被发送到同一个处理单元中进行处理,避免了处理单元之间的交互,提高数据报文的处理效率。
需要说明的是,步骤S306、S308可以在步骤S300之前执行也可以在步骤S304之后执行。当在步骤S304之后执行时,所述的述源端口号也就是对各处理单元预设的对应端口号
图3为本发明另一实施例的数据报文的处理方法的具体流程图。
以下进行详细描述。
步骤S400,处理服务器接收数据报文。在本实施例中,数据报文可能由外部网发送,也可能由内网服务器发送。
步骤S402,判断是否为外部网或内网服务器的数据报文。在本实施例中,外部网与处理服务器交互的数据报文是加密的数据,而处理服务器与内网服务器之间交互的数据报文不是加密的数据报文,因而,在步骤中,可以确定是否为加密数据报文。比如,若当前的处理服务器SSL服务器时,外部网发送的数据报文中的端口号为443,即SSL服务器只需要识别数据报文中的端口号即可确定该数据报文是否为加密报文,从而确定是否来自于外部网。当然,反过来,由于内网服务器的发送至SSL服务器的数据报文不加密,因而,其端口号不是443,从而可以进行识别。显然,步骤S402可以对任意两个端口号不同的数据进行区分,不限于仅区分出是否加密数据。
在本实施例中,若确定所接收的数据报文为外部网发送的数据报文,则继续执行步骤S404,若确定所接收的数据报文为内网服务器发送的数据报文时,则跳过步骤S404、S406及S408,直接执行步骤S410。
步骤S404,根据所述数据报文的IP地址,或者根据所述数据报文的IP地址和端口号,为该数据报文分配处理单元。在本实施例中,可以采用分配策略对该数据报文进行分配处理单元。在本实施例中,该分配策略可以将该数据报文的IP地址和端口号进行HASH计算,也可以只将该数据报文的IP地址进行HASH计算,将HASH计算后的结果匹配一个处理单元。比如,可以将HASH值同处理单元的ID进行强相关的方式匹配。需要理解的是,为数据报文分配处理单元,不限于采用HASH计算的方法,还可以有其他分配方法。
步骤S406,将该数据报文发送至该分配的处理单元进行解密处理。
步骤S408,将处理后的数据报文发送至内网服务器。在本实施例中,在步骤S400之前,该方法还可以根据不同的处理单元ID划分不同的端口号,以使不同的处理单元管理不同的端口号,将划分后的端口号作为所述处理后的数据报文的源端口号。可以理解为例如处理单元0的端口范围可以为3001-6000,处理单元1的端口范围可以为6001-9000,依次类推,即可以将处理单元0的端口范围中的某一个端口号作为该数据报文的源端口号。在本实施例中,发送至内网服务器的数据报文中包括划分的源端口号。
当执行步骤S408后,处理服务器需要等待内网服务器返回处理该数据报文的消息,即返回执行步骤S400,接收数据据文。此时,所接收的数据报文可能为内网服务器返回的针对处理服务器发送的数据报文的处理消息,也可能为客户通过外部网发送的其它数据报文。
步骤S410,获取该内网服务器发送的数据报文的目的端口号。
步骤S412,将该获取的目的端口号与处理单元管理的端口号进行匹配。在本实施例中,由于在处理服务器与内网服务器进行数据交互时,在内网服务器将处理服务器发送的数据报文进行处理后,需要将该处理后的数据报文返回至对应的处理服务器中处理的处理单元,因此,内网服务器将处理后的数据报文的目的端口号与处理服务器发送的数据报文的源端口号设置成相同的端口号,并且该端口号与处理单元ID具有对应的关系。在本实施例中,将获取的该目的端口号与处理单元的端口号进行匹配,就可以正确的找着处理该数据报文的处理单元ID,从而可以确定同一个处理单元来处理该数据报文,从而可以实现处理单元群中的处理单元之间没有交互的情况下对数据报文的处理。
步骤S414,将该数据报文发送至所述源端口号对应的处理单元进行处理,进行相应的处理。
本实施例提供的技术方案,通过分配和管理同一个处理单元来处理外部网和内网服务器发送的相关联的数据报文,使得相同的一组连接由相同的处理单元处理,并且减少确认处理单元时,处理单元之间需要频繁交互的情况,从而可以提高数据报文的处理效率。
本发明装置实施例可以实施本发明方法实施例。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。