报文处理方法、装置及系统与流程

文档序号:16775371发布日期:2019-02-01 18:41阅读:201来源:国知局
报文处理方法、装置及系统与流程

本申请涉及网络通信技术领域,特别是涉及一种报文处理方法、装置及系统。



背景技术:

网关向双系统基站发送报文时,只将报文发送至双系统基站的第一操作系统,无法把报文转发给第二操作系统,导致第二操作系统无法处理报文业务。为了解决上述问题,在传统技术中,第一操作系统在收到的网关报文时,修改属于第二操作系统的报文的端口号,然后转发给第二操作系统。

在实现过程中,发明人发现传统技术中至少存在如下问题:对于分布式架构的基站,接收报文的第一操作系统的负荷过高,影响系统的吞吐量。



技术实现要素:

基于此,有必要针对传统分布式架构的基站,接收报文的第一操作系统的负荷过高,影响系统的吞吐量的问题,提供一种报文处理方法、装置及系统。

为了实现上述目的,一方面,本申请实施例提供了一种报文处理方法,包括:

根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到;

根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

另一方面,本申请实施例还提供了一种报文处理装置,包括:

第一处理模块,用于根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到;

第二处理模块,用于根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

在其中一个实施例中,提供了一种报文处理系统,包括执行如上述的报文处理方法的基站。

在其中一个实施例中,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的报文处理方法。

上述技术方案中的一个技术方案具有如下优点和有益效果:

基站根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到;同时,基站根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。基于接收到的报文的镜像报文,可减少接收报文给第一操作系统的冲击,提高第一操作系统的处理能力。可在满足基站业务吞吐量要求的同时,解决多操作系统基站报文处理的问题。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为传统双系统基站的报文处理流程示意图;

图2为一个实施例中报文处理方法的第一示意性流程图;

图3为一个实施例中报文处理方法的第二示意性流程图;

图4为一个实施例中报文处理方法的第三示意性流程图;

图5为一个实施例中报文处理装置的结构示意图;

图6为一个实施例中计算机设备的内部结构图;

图7为一个实施例中报文处理系统的第一示意性结构图;

图8为一个实施例中报文处理系统的第二示意性结构图;

图9为一个实施例中报文处理系统的第三示意性结构图;

图10为一个实施例中报文处理系统的报文接收示意;

图11为一个实施例中报文处理系统的报文发送示意图。

具体实施方式

为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。

需要说明的是,当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件并与之结合为一体,或者可能同时存在居中元件。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

家庭基站中,通常核心网只为一个家庭基站分配一个ip地址。但实际上,为了提高家庭基站的处理能力,一个家庭基站可能会有两个操作系统组成。这就存在两个操作系统共用一个ip(internetprotocol,网络之间互连的协议)地址的情况,此时,可以通过nat(networkaddresstranslation,网络地址转换)技术来实现。nat技术是为了解决ipv4(网际协议版本4)地址资源有限的问题需发展起来的一种技术。当内网中有多台主机需要访问internet时,可以利用nat技术,通过共用一个公网ip地址来访问internet。

家庭基站中,存在一种业务报文,叫gtp-u(gprstunnellingprotocolfortheuserplane,用户层面的gprs隧道协议)报文,用于在gprs(generalpacketradioservice,通用分组无线服务技术)核心网内,无线接入网与核心网之间传送用户数据。协议中规定,gtp-u使用udp(userdatagramprotocol,用户数据报协议)报文进行传输,目的端口号为2152。传统技术中,通过nat实现的gtp-u业务报文传输如图1所示,图1为传统双系统基站的报文处理流程示意图。

第一操作系统业务流程包括:当第一操作系统发送gtp-u业务报文时,使用源ip为公网ip1,源端口号为2152,目的ip为网关ip,目的端口号为2152。业务报文可以正常到达网关的业务处理模块。当网关的业务处理模块需要向基站发送gtp-u业务报文时,使用源ip为网关ip,源端口号为2152;目的ip为公网ip1,目的端口号为2152,这样报文可以正确到达第一操作系统的gtp-u业务模块。

第二操作系统业务流程包括:当第二操作系统发送gtp-u业务报文时,使用源ip为内网ip2,源端口号为2152;目的ip为网关ip,目的端口号为2152。这样的报文,先经过第一操作系统的nat模块,把报文修改为源ip为公网ip1,源端口号为1024,目的ip为网关ip,目的端口号为2152后,报文正确发送到网关的业务处理模块。

而当网关的业务处理模块需要向基站发送gtp-u业务报文时,使用源ip为网关ip,源端口号为2152;目的ip为公网ip1,目的端口号为2152(协议规定,gtp-u端口号是2152),这样报文到达第一操作系统后,进入了第一操作系统的gpt-u业务模块,但无法把报文转发给第二操作系统的gpt-u业务模块。导致第二操作系统无法处理gtp-u业务。

为了解决上述问题,可通过第一操作系统对收到的网关gtp-u报文进行检查,把属于第二操作系统的gtp-u报文通过修改目的端口号为1024后,由nat模块转发给第二操作系统。但在实践中,这种方法会导致第一操作系统的cpu(centralprocessingunit,中央处理器)利用率过高的问题,使系统的吞吐量下降。

为了解决网关发送报文给分布式架构的基站时,无法正确到达第二操作系统或第一操作系统的cpu利用率过高的问题,本申请实施例提出一种报文处理方法。

在一个实施例中,提供了一种报文处理方法,如图2所示,图2为一个实施例中报文处理方法的第一示意性流程图,包括:

步骤s110,根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到。

步骤s120,根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

具体而言,分布式架构的基站在接收到第二报文时,通过第一操作系统过滤第二报文,得到属于第一操作系统的第一报文;第一报文为第一操作系统的待处理报文。基站获取第二报文的镜像报文,即第四报文,通过第二操作系统过滤第四报文,得到属于第二操作系统的第三报文;第三报文为第二操作系统的待处理报文。

具体地,可通过端口镜像,把第一操作系统接收到的报文全部镜像给第二操作系统;第一操作系统和第二操作系统分别对获取到的报文进行处理,过滤掉不属于自身操作系统的报文,把属于自身操作系统的报文传输给报文处理模块,根据预设的业务协议,分别对报文进行业务处理。

基站或基站的第一操作系统可根据预设的业务协议对第一报文进行业务处理,其中,预设的业务协议可为与第一报文相应的协议。基站或基站的第而操作系统可根据预设的业务协议对第二报文进行业务处理,其中,预设的业务协议可为与第二报文相应的协议。

需要说明的是,第二报文可为外部网关传输给基站或第一操作系统的报文,可包括属于第一操作系统的报文和/或属于第二操作系统的报文。第四报文为对第二报文进行镜像得到的,其内容与第二报文一致。具体地,第二报文可为gtp-u报文、tftp(trivialfiletransferprotocol,简单文件传输协议)报文或其它基于传输层协议端口号定义的报文。

对第二报文进行镜像的步骤可由基站执行,也可由外部的交换机执行后再发送给基站。具体地,网关可通过交换机将报文发送给第一操作系统;交换机通过端口镜像将报文发送给第二操作系统。

分布式架构的基站至少包含两个操作系统,但核心网给该基站分配的ip地址只有一个,因此,传统的报文传输过程是将第二报文发送给该基站的一个操作系统中,由该操作系统对第二报文进行处理、并转发给其他操作系统。

本申请实施例中,第一操作系统只需完成对第二报文的过滤,即可得到对应的可处理报文,并且,无需检查、处理并转发属于第二操作系统的报文,可有效降低第一操作系统的负荷及其cpu的利用率,保证系统的吞吐量。同时,第二操作系统获取并过滤第二报文的镜像报文,可得到对应的待处理报文,解决报文无法正确到达第二操作系统的问题。通过镜像报文,可减少接收报文给第一操作系统的冲击,提高第一操作系统的处理能力,在满足基站业务吞吐量要求的同时,解决分布式架构的基站中,各操作系统的报文处理问题。

在一个实施例中,如图3所示,图3为一个实施例中报文处理方法的第二示意性流程图,根据预设的业务协议对属于第一操作系统的第一报文进行业务处理的步骤之前,还包括步骤:

步骤s102,根据报文标识符,通过第一操作系统过滤第二报文,得到所述第一报文。

根据预设的业务协议对属于第二操作系统的第三报文进行业务处理的步骤之前,还包括步骤:

步骤s112,根据报文标识符,通过第二操作系统过滤第四报文,得到第三报文。

具体而言,基站的操作系统可根据报文的标识符来进行过滤,识别属于自身操作系统的报文。

需要说明的是,不同类型的报文定义的报文标识符可不相同;报文标识符中包含了对应报文的目标地址或是目标操作系统,以及报文的相关属性信息。基于报文标识符来进行过滤,有利于操作系统提高处理效率,降低处理器的负荷,保证系统的吞吐量。

具体地,如图4所示,图4为一个实施例中报文处理方法的第三示意性流程图,在一个实施例中,报文标识符为teid(tunnelendpointid,隧道端点标识符)号。

根据报文标识符,通过第一操作系统过滤第二报文,得到第一报文的步骤包括:

步骤s104,判断第二报文的teid号是否为奇数,若否,则丢弃第二报文,若是,则将第二报文确定属于第一操作系统的第一报文。

根据报文标识符,通过第二操作系统过滤第四报文,得到第三报文的步骤包括:

步骤s114,判断第四报文的teid号是否为偶数,若否,则丢弃第四报文,若是,则将第四报文确定属于第二操作系统的第三报文。

具体而言,在第二报文为gtp-u报文时,报文标识符可为teid号;基站的操作系统可根据teid号的奇偶性来过滤报文。

具体地,第一操作系统在第二报文的teid号为奇数时,将其确认为属于第一操作系统的第一报文,并将第一报文发送至第一操作系统的gtp-u业务处理模块;在第二报文的teid号为偶数时,将其确认为属于第二操作系统的报文,将其丢弃。

第二操作系统在第四报文的teid号为奇数时,将其确认为属于第一操作系统的报文,将其丢弃;在第四报文的teid号为偶数时,将其确认为属于第二操作系统的第三报文,并将第三报文发送至第二操作系统的gtp-u业务处理模块。

需要说明的是,基于teid号进行报文识别,可快速进行过滤,得到对应操作系统的报文。

在一个实施例中,如图4所示,还包括步骤:

步骤s130,将待发送报文发送给网关;待发送报文为通过第一操作系统插入第一vlan(virtuallocalareanetwork,虚拟局域网)标识的基站报文;基站报文包括通过第一操作系统对第二操作系统发出的、携带有第二vlan标识的报文进行源地址转换得到的报文。

具体而言,基站向网关发送报文时,将插入第一vlan标识的基站报文发送给网关。基站报文包括第一操作系统的需要发送的报文和第二操作系统需要发送的报;其中,第一操作系统的需要发送的报文携带有第一vlan标识;第二操作系统的需要发送的报文携带有第二vlan标识。在基站报文为携带有第二vlan标识的报文时,可通过第一操作系统对该基站报文进行源地址转换,并用第一vlan标识取代第二vlan标识,得到待发送报文。

需要说明的是,由于第一操作系统与第二操作系统的源ip不同,而基站发送给网关的报文的源ip是统一的,因此,基站需要对报文的来源进行识别,以便进行源ip的更改与统一。具体地,可通过vlan标识来区分第一操作系统的报文和第二操作系统的报文;将不同的操作系统分别列入不同的vlan中,以使其发送的报文携带对应的vlan标识。

执行vlan标识的识别可由基站来实现,也可由交换机来实现。基站可通过交换机将待发送报文发送给网关;第一操作系统可通过交换机将携带有第一vlan标识的报文发送给网关;第二操作系统可通过交换机将携带有第二vlan标识的报文发送给第一操作系统。

在一个实施例中,源地址转换包括:修改携带有第二vlan标识的报文的源ip和源端口号。

具体而言,第一操作系统对携带有第二vlan标识的报文进行源地址转换,具体可包括:修改该报文的源ip,以使其与基站向网关发送报文的源ip统一;根据实际转发以及发送等涉及的端口,修改该报文的源端口号。

在一个实施例中,第二报文为由网关发送的报文经交换机转发得到;第四报文为由第二报文经交换机进行端口镜像得到。

具体而言,第一操作系统通过交换机接收网关发送的报文;同时,交换机可对网关发送给第一操作系统的报文进行端口镜像,并将端口镜像得到的结果发送给基站的第二操作系统。

本申请实施例可在满足分布式架构基站的业务吞吐量要求的同时,解决多操作系统基站的报文收发问题;通过端口镜像,减少接收报文给第一操作系统的冲击,提高第一操作系统的处理能力。

在一个实施例中,所述根据预设的业务协议对属于第二操作系统的第三报文进行业务处理的步骤包括:

通过所述第二操作系统对所述第三报文进行目的地址转换,得到所述第二操作系统的可处理报文。

具体而言,由于第三报文是由第四报文中过滤得到,而第四报文是第二报文的镜像报文,因此,第三报文的目的ip仍是第一操作系统的ip。基于此,第二操作系统在获取到第三报文后,对其进行目的地址转换,修改其目的ip为第二操作系统的ip,修改后的报文可由第二操作系统的报文处理模块做进一步的处理。

在一个实施例中,第一报文、第二报文、第三报文以及第四报文均为gtp-u报文。

具体而言,基于第二报文,可获取到第一报文、第三报文以及第四报文;网关向基站发送的第二报文为gtp-u报文时,第一报文、第三报文以及第四报文也为gtp-u报文。

需要说明的是,根据实际的业务需求,分布式架构的基站与网关进行不同类型的业务交互时,对应不同类型的报文,此时,第一报文、第二报文、第三报文以及第四报文的类型也随之变化。

在一个实施例中,第一报文、第二报文、第三报文以及第四报文均为tftp报文。

本申请实施例可在满足分布式架构基站的业务吞吐量要求的同时,解决多操作系统基站的报文收发问题;通过镜像报文,减少接收报文给第一操作系统的冲击,提高第一操作系统的处理能力。

应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种报文处理装置,如图5所示,图5为一个实施例中报文处理装置的结构示意图,包括:

第一处理模块110,用于根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到。

第二处理模块120,用于根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

在一个实施例中,第一处理模块包括:

第一过滤单元,用于根据报文标识符,通过第一操作系统过滤第二报文,得到第一报文。

第二处理模块包括:

第二过滤单元,用于根据报文标识符,通过第二操作系统过滤第四报文,得到第三报文。

在一个实施例中,报文标识符为teid号。

第一过滤单元包括:

第一teid识别单元,用于判断第二报文的teid号是否为奇数,若否,则丢弃第二报文,若是,则将第二报文确定属于第一操作系统的第一报文。

第二过滤单元包括:

第二teid识别单元,用于判断第四报文的teid号是否为偶数,若否,则丢弃第四报文,若是,则将第四报文确定属于第二操作系统的第三报文。

在一个实施例中,还包括:

报文发送模块,用于将待发送报文发送给网关;待发送报文为通过第一操作系统插入第一vlan标识的基站报文;基站报文包括通过第一操作系统对第二操作系统发出的、携带有第二vlan标识的报文进行源地址转换得到的报文。

在一个实施例中,源地址转换包括:修改携带有第二vlan标识的报文的源ip和源端口号。

在一个实施例中,第二报文为由网关发送的报文经交换机转发得到;第四报文为由第二报文经交换机进行端口镜像得到。

在一个实施例中,第二处理模块中包括:

目的地址转换单元,用于通过第二操作系统对第三报文进行目的地址转换,得到第二操作系统的可处理报文。

在一个实施例中,第一报文、第二报文、第三报文以及第四报文均为gtp-u报文。

关于报文处理装置的具体限定可以参见上文中对于报文处理方法的限定,在此不再赘述。上述报文处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是基站,其内部结构图可以如图6所示,图6为一个实施例中计算机设备的内部结构图。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储网关地址、报文数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种报文处理方法。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种报文处理系统,如图7所示,图7为一个实施例中报文处理系统的第一示意性结构图,包括基站;基站可实现以下步骤:

根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到。

根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

具体而言,分布式架构的基站包括至少两个操作系统,基站与外部网关交互时,包括操作系统各自对应的报文;在基站接收到外部发送的报文时,需对报文进行处理,以使其进入对应的操作系统。

需要说明的是,通过镜像报文,可减少接收报文给基站的第一操作系统的冲击,提高基站的第一操作系统的处理能力,在满足基站业务吞吐量要求的同时,解决分布式架构的基站中,各操作系统的报文处理问题。

在一个实施例中,基站包括运行第一操作系统的第一cpu芯片和运行第二操作系统的第二cpu芯片。

具体而言,第一cpu芯片运行第一操作系统,处理第一操作系统的报文;第二cpu芯片运行第二操作系统,处理第二操作系统的报文。

需要说明的是,基站的第一cpu芯片只需完成对第二报文的过滤,即可得到第一操作系统的待处理报文,并且,无需检查、处理并转发属于第二操作系统的报文,可有效降低第一cpu芯片的利用率,保证系统的吞吐量。同时,基站的第二cpu芯片获取并过滤第二报文的镜像报文,可得到第二操作系统的待处理报文,解决报文无法正确到达基站的第二操作系统的问题。

具体地,cpu芯片可根据报文标识符来进行过滤,识别属于对应的操作系统的报文。例如,根据teid号,识别gtp-u报文所归属的报文。第二cpu芯片还可对报文进行目的地址转换,并将转换后的报文传输给业务模块进行处理。

在一个实施例中,如图8所示,图8为一个实施例中报文处理系统的第二示意性结构图,还包括交换机。

交换机的第一网口用于连接网关,第二网口连接第一cpu芯片,第三网口连接第二cpu芯片。

第一网口属于第一vlan;第三网口属于第二vlan;第二网口属于第一vlan和第二vlan。

具体而言,交换机的第一网口接收网口传输的第二报文,第二网口将第二报文发送给第一cpu芯片,第三网口可将对第二报文进行端口镜像得到第四报文发送给第二cpu芯片。

交换机可配置第一vlan,并将第一网口和第二网口加入第一vlan的成员列表中;交换机还可配置第二vlan,并将第二网口和第三网口加入第二vlan的成员列表中。基站发送报文给外部网关时,包括以下情况:

1、对于第一操作系统需要发送的报文,第一cpu芯片在该报文上插入第一vlan标识后,通过第二网口发送给交换机;交换机在识别到接收的报文为插入第一vlan标识的基站报文时,通过第一网口将该基站报文发送给外部网关。

2、对于第二操作系统需要发送的报文,第二cpu芯片在该报文上插入第二vlan标识后,通过第三网口发送给交换机;交换机在识别到接收的报文为插入第二vlan标识的基站报文时,通过第二网口将该基站报文发送给第一cpu芯片;第一cpu芯片对接收到的、携带有第二vlan标识的基站报文进行源地址转换,并用第一vlan标识替代第二vlan标识,然后通过第二网口将处理后的基站报文发送给交换机;交换机在识别到接收的报文为插入第一vlan标识的基站报文时,通过第一网口将该基站报文发送给外部网关。

在一个实施例中,还包括连接第二cpu芯片、mac(mediaaccesscontrol,媒体介入控制层)地址为混杂模式的网卡。

具体而言,通过端口镜像,网关发送给基站的报文可到达连接第二cpu芯片的第二操作系统的网卡;由于报文的目的mac地址不是该网卡的mac地址,该网卡硬件会丢弃该报文;本申请实施例中,将第二操作系统的网卡的mac地址配置为混杂模式,基于此,网卡不检查报文的目的mac地址,可把所有到达的报文都传递给网卡驱动模块。

以处理gtp-u报文为例进行报文处理系统的说明,在一个实施例中,如图9所示,图9为一个实施例中报文处理系统的第三示意性结构图,提供一种报文处理系统,该系统主要包括三个芯片,分别为交换机芯片,第一cpu芯片和第二cpu芯片。交换机芯片上运行交换机模块,负责交换机的操作与配置;第一cpu芯片上运行第一操作系统,第一操作系统中运三大处理模块,分别是:驱动模块1、gtp-u处理模块1、snat模块。第二cpu芯片上运行第二操作系统,第二操作系统中运三大处理模块,分别是:驱动模块2、gtp-u处理模块2、dnat(destinationnetworkaddresstranslation,目的地址转换)模块。

其中,驱动模块1和驱动模块2负责接收对应的物理网卡传递上来的报文,或把将要发送的报文传递给对应的物理网卡;gtp-u处理模块1和gtp-u处理模块2负责对各自操作系统上的gtp-u报文进行处理。

报文处理系统接收报文时分为以下几个步骤:s1、交换机模块配置端口镜像,把第一操作系统收到的报文,全部镜像给第二操作系统;s2、第一操作系统和第二操作系统分别过滤掉不属于自身操作系统的报文;s3、第一操作系统把属于自身的报文传递给gtp-u处理模块1处理;s4、第二操作系统把属于自身的报文做dnat转换后传递给gtp-u处理模块1处理。

报文处理系统发送报文时分为以下几步:s1、第一操作系统和第二操作系统分别组建gtp-u报文后把报文发送到交换机;s2、交换机接收到第一操作系统的报文后,把报文转发给网关;s3、交换机接收到第二操作系统的报文后,把报文转发给第一操作系统;s4、第一操作系统收到第二操作系统的报文,经过snat(sourcenetworkaddresstranslation,源网络地址转换)转换后,把报文重新发送给交换机;s5、交换机收到第一操作系统转发的第二操作系统的报文后,把报文发送给网关。

进一步地,交换机模块可设有多个物理网口,本实施例中,包括3个网口。网口5(属于第一网口)用于接外部网络,网口0(属于第二网口)用于连接第一操作系统,网口2(属于第三网口)用于连接第二操作系统。

在交换机模块中,做以下配置:

1、端口镜像配置,把从网口0发出的报文,全部镜像到网口2,也就是说,从网口0发出的报文,会同时从网口2发出,这样第二操作系统可以收到所有发到第一操作系统的报文。

2、vlan配置,把网口0和网口5加入到vlan2(属于第一vlan)的成员表中。把网口0和网口2加入到vlan1(属于第一vlan)的成员表中。这样,第二操作系统发出的报文,不会直接转发到网口0,而是经过第一操作系统的nat模块,由nat模块处理后再转发到网口5。

如图10所示,图10为一个实施例中报文处理系统的报文接收示意图,在报文处理系统接收外部发送的报文时,由于网关发出gtp-u报文,一部分是发给第一操作系统的gtp-u处理模块的,一部分是发给第二操作系统的gtp-u处理模块的,但因为其目的ip和端口号一样,所以,都会被交换机转以到网口0,并由第一操作系统接收。这时,第一操作系统需要在把发给第二操作系统的gtp-u报文过滤掉,其过滤方法如下:在第一操作系统的驱动模块中,检查gtp-u报文头中的teid号,如果teid号为单号,则判断为属于第一操作系统的gtp-u报文,接收并转发给第一操作系统的gtp-u处理模块;如果为双号,则判断为属于第二操作系统的gtp-u报文,丢弃。

由于交换机模块中配置了把网口0的出报文镜像到网口2,所以,网关发出gtp-u报文,同样可以到达被第二操作系统的网卡,但由于报文的目的mac地址不是第二操作系统网卡的mac地址,网卡硬件会丢弃所收到的报文,因此,需要把操作系统的网卡mac地址配置为混杂模式,基于该配置,网卡不检查报文的mac地址,从而把所有到达的报文都传递给驱动模块。

第二操作系统的网卡驱动需要把发给第一操作系统的gtp-u报文过滤掉,过滤方法如下:在第二操作系统的驱动模块中,检查gtp-u报文头中的teid号,如果teid号为单号,则判断为属于第一操作系统的gtp-u报文,丢弃;如果为双号,则判断为属于第二操作系统的gtp-u报文,接收并转发给第二操作系统的dnat模块。dnat模块接收到驱动模块传递过来的报文后,检查目的ip和目的端口号,如果目的ip地址为第一操作系统的ip,目的mac地址为2152,则把目的ip地址修改为第二操作系统的ip,这样,报文就可以通过第二操作系统的网络协议栈到达gtp-u处理模块2。报文最终由gtp-u处理模块2进行处理。

如图11所示,图11为一个实施例中报文处理系统的报文发送示意图,在gtp-u处理模块1发送报文时,把报文的目的ip地址填写为网关的ip地址,目的端口号填写为2152,源ip地址填写为公网ip1,源端口号填写为2152,基于此,报文可通过第一操作系统的协议栈到达驱动模块1,最终由驱动模块1在报文的mac层加上vlan2的标识后,发送到交换机模块,交换机识别到报文的带上了vlan2标识,则把报文从网口5发出,到达网关。

在gtp-u处理模块2发送报文时,把报文的目的ip地址填写为网关的ip地址,目的端口号填写为2152,源ip地址填写为内网ip2,源端口号填写为2152,基于此,报文可以通过第二操作系统的协议栈到达驱动模块2,由驱动模块2把报文在报文的mac层中加上vlan1的标识后,传递给交换机,交换机识别到报文的vlan1标识后,报文从网口0发出,报文会被第一操作系统的驱动模块1收到并提交给snat模块。

第一操作系统的snat模块收到此报文后,检查到源ip地址填为内网ip2,源端口号为2152,则把报文的源ip地址修改为公网ip1,源端口号修改为1024,最后通过第一操作系统的网络协议栈重新转发给第一操作系统的驱动模块1,并由驱动模块1把报文发通过交换机发送到网关。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

根据预设的业务协议对属于第一操作系统的第一报文进行业务处理;第一报文为通过第一操作系统对接收到的第二报文进行过滤得到。

根据预设的业务协议对属于第二操作系统的第三报文进行业务处理;第三报文为通过第二操作系统对获取到的第四报文进行过滤得到的;其中,第四报文为第二报文的镜像报文。

在一个实施例中,计算机程序被处理器执行根据预设的业务协议对属于第一操作系统的第一报文进行业务处理之前,还实现以下步骤:

根据报文标识符,通过第一操作系统过滤第二报文,得到第一报文。

计算机程序被处理器执行根据预设的业务协议对属于第二操作系统的第三报文进行业务处理之前,还实现以下步骤:

根据报文标识符,通过第二操作系统过滤第四报文,得到第三报文。

在一个实施例中,报文标识符为teid号。

计算机程序被处理器执行根据报文标识符,通过第一操作系统过滤第二报文,得到第一报文时,还实现以下步骤:

判断第二报文的teid号是否为奇数,若否,则丢弃第二报文,若是,则将第二报文确定属于第一操作系统的第一报文。

计算机程序被处理器执行根据报文标识符,通过第二操作系统过滤第四报文,得到第三报文时,还实现以下步骤:

判断第四报文的teid号是否为偶数,若否,则丢弃第四报文,若是,则将第四报文确定属于第二操作系统的第三报文。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将待发送报文发送给网关;待发送报文为通过第一操作系统插入第一vlan标识的基站报文;基站报文包括通过第一操作系统对第二操作系统发出的、携带有第二vlan标识的报文进行源地址转换得到的报文。

在一个实施例中,计算机程序被处理器执行源地址转换时,实现以下步骤:修改携带有第二vlan标识的报文的源ip和源端口号。

在一个实施例中,计算机程序被处理器执行时,第二报文为由网关发送的报文经交换机转发得到;第四报文为由第二报文经交换机进行端口镜像得到。

在一个实施例中,计算机程序被处理器执行根据预设的业务协议对属于第二操作系统的第三报文进行业务处理时,还实现以下步骤:

通过第二操作系统对第三报文进行目的地址转换,得到第二操作系统的可处理报文。

在一个实施例中,计算机程序被处理器执行时,第一报文、第二报文、第三报文以及第四报文均为gtp-u报文。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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