核心网数据传输方法及系统与流程

文档序号:25993515发布日期:2021-07-23 21:06阅读:362来源:国知局
核心网数据传输方法及系统与流程

本发明涉及无线通信技术领域,更具体地,涉及核心网数据传输方法及系统。



背景技术:

目前,核心网设备分为信令面和数据面。信令面通过对各信令的处理,生成数据传输业务的转换规则,数据面则利用信令面生成的转换规则,完成上行数据传输业务以及下行数据传输业务在核心网设备内的处理,上述均在用户态完成。但是由于数据传输是基于网络(ip)层的,数据需要由核心网设备的linux内核从网卡驱动接收然后经过tcp/ip协议栈在内核态完成接收处理后,通过socket进入用户态并进行处理,用户态按照转换规则完成处理后,还需通过socket发送至内核态,再由网卡驱动发送出去。数据传输业务处理流程可以由图1表示。

现有技术中,每一个数据传输业务的数据包在核心网设备处,都需要经历由tcp/ip协议栈到用户态,再由用户态到内核协议栈两次内核态和用户态的切换,而内核态和用户态之间切换,会消耗核心网设备的大量系统资源。当数据包的数量很大时,核心网设备会在内核态和用户态频繁切换,消耗核心网设备内的大量中央处理器(centralprocessingunit,cpu)资源,使核心网设备负载变重,也会成为整个核心网处理能力的瓶颈。

因此,现急需提供一种核心网数据传输方法及系统。



技术实现要素:

为克服上述问题或者至少部分地解决上述问题,本发明实施例提供了一种核心网数据传输方法及系统。

第一方面,本发明实施例提供了一种核心网数据传输方法,包括:

基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;

将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;

其中,所述netfilter框架位于所述核心网设备的linux内核中。

优选地,所述基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理,具体包括:

若判断获知所述核心网设备接收的数据面数据包为上行数据包,则基于所述核心网设备的用户态信息,对所述核心网设备接收的数据面数据包中的标识信息进行有效性验证和解封装处理。

优选地,所述基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据进行处理,还包括:

若判断获知所述核心网设备接收的数据面数据包为下行数据包,则基于所述核心网设备的用户态信息,对所述核心网设备接收的数据面数据包进行协议封装。

优选地,所述对所述核心网设备接收的数据包进行协议封装,具体包括:

对所述核心网设备接收的数据面数据包进行gtp-u协议封装。

优选地,所述核心网设备的用户态和内核态之间通过内核态和用户态通信技术进行信息传递。

第二方面,本发明实施例提供了一种核心网数据传输系统,包括:处理模块和传输模块。其中,

处理模块用于基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;

传输模块用于将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;

其中,所述netfilter框架位于所述核心网设备的linux内核中。

第三方面,本发明实施例提供了一种电子设备,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的核心网数据传输方法的步骤。

第四方面,本发明实施例提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的核心网数据传输方法的步骤。

本发明实施例提供的一种核心网数据传输方法及系统,核心网数据传输方法包括:基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出。通过关键点pre_routing处的钩子hook函数对核心网设备接收的数据面数据包进行处理,使对数据面数据包的处理下移至内核态,在linux内核中实现数据面数据包的处理,减少了内核态和用户态的频繁切换,提升核心网的处理能力。而且,由于并不需要涉及netfilter框架中的关键点local_in、linux内核上层协议栈以及关键点local_out。经过处理后的数据面数据包经过输入包路由,进入关键点forward,然后从关键点post_routing输出,可以缩短数据面数据包在核心网设备内的传输路径,加快核心网设备内数据面数据包的传输速率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有的数据传输业务处理流程示意图;

图2为本发明实施例提供的一种核心网数据传输方法的流程示意图;

图3为本发明实施例使用的一种核心网数据传输方法中linux内核中的netfilter架构示意图;

图4为本发明实施例提供的一种核心网数据传输系统的结构示意图;

图5为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

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

图2所示,本发明实施例提供了一种核心网数据传输方法,包括:

s1,基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;

s2,将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;

其中,所述netfilter框架位于所述核心网设备的linux内核中。

具体地,本发明实施例中提供的核心网数据传输方法,其执行主体为核心网设备。核心网通过核心网设备管理多个基站,核心网可以实现数据网和基站之间的数据传输。也就是说,数据网和基站之间通过核心网设备进行通信。本发明实施例中核心网设备的操作系统为linux系统,netfilter架构位于linux内核中。本发明实施例中提供的核心网数据传输方法,执行主体具体为核心网设备的linux内核,在核心网设备的内核态完成。

netfilter架构钩子函数管理点示意图如图3所示,linux内核中的netfilter框架中包括关键点pre_routing301,关键点local_in302、关键点local_out303、关键点forward304以及关键点post_routing305。linux内核接收到数据包,该数据包从关键点pre_routing301进入。数据包经过输入包路由,若数据包中的目的ip地址是本机的ip地址,则该数据包经过关键点local_in302,关键点local_in302可用于对数据包在该关键点处形成的input包进行过滤。数据包经过关键点local_in302后,往linux内核上层协议栈继续传递,经过linux内核上层协议栈处理后,通过关键点local_out303,关键点local_out303可用于对处理后的数据包在该关键点处形成的output包进行过滤。处理后的数据包通过关键点local_out303后,经过输出包路由,确定处理后的数据包是从哪个物理接口发送出去,然后从关键点post_routing305将处理后的数据包发送出去,关键点post_routing305内置源地址转换以及地址伪装功能,可用于对处理后的数据包进行源地址转换以及地址伪装;若数据包中的目的ip地址不是本机的ip地址,则将数据包通过关键点forward304,关键点forward304可用于对数据包在该关键点处形成的forward包进行过滤。数据包经过关键点post_routing305后,从关键点post_routing305将数据包转发出去。

linux内核首先执行步骤s1。根据netfilter框架的关键点pre_routing处的hook函数,对核心网设备接收的数据包进行处理。其中,关键点pre_routing处的hook函数具体可以是注册得到,在数据网和基站之间实现数据面数据包的转发功能。处理过程具体可以包括利用核心网设备的用户态的信令面数据生成的转换规则,完成上行数据传输业务以及下行数据传输业务在核心网设备内的处理。也就是说,本发明实施例中将核心网设备的数据面由用户态下移到内核态进行处理。本发明实施例中,核心网设备接收的数据面数据包可以是由基站发送,此时数据面数据包为上行数据包,也可以是由数据网发送,此时数据面数据包为下行数据包,本发明实施例中对此不作具体限定。

然后执行步骤s2。将处理后的数据面数据包经netfilter框架的关键点forward,从netfilter框架的关键点post_routing输出。需要说明的是,本发明实施例中仅仅利用netfilter框架中的关键点pre_routing、关键点forward以及关键点post_routing,并不需要涉及关键点local_in、linux内核上层协议栈以及关键点local_out。经过处理后的数据面数据包经过输入包路由,进入关键点forward,然后从关键点post_routing输出。缩短了数据面数据包在核心网设备内的传输路径,加快了核心网设备内数据面数据包的传输速率。

本发明实施例中提供的核心网数据传输方法,包括:基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出。通过关键点pre_routing处的钩子hook函数对核心网设备接收的数据面数据包进行处理,使对数据面数据包的处理下移至内核态,在linux内核中实现数据面数据包的处理,减少了内核态和用户态的频繁切换,提升核心网的处理能力。而且,由于并不需要涉及netfilter框架中的关键点local_in、linux内核上层协议栈以及关键点local_out。经过处理后的数据面数据包经过输入包路由,进入关键点forward,然后从关键点post_routing输出,可以缩短数据面数据包在核心网设备内的传输路径,加快核心网设备内数据面数据包的传输速率。

在上述实施例的基础上,所述基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据包进行处理,具体包括:

若判断获知所述核心网设备接收的数据面数据包为上行数据包,则基于所述核心网设备的用户态信息,对所述核心网设备接收的数据面数据包中的标识信息进行有效性验证和解封装处理。

具体地,本发明实施例中,当核心网设备接收的数据包由基站发出,则为上行数据包,基于核心网设备的用户态信息,对核心网设备接收的数据面数据包中的标识信息进行有效性验证和解封装处理。其中,用户态信息可以通过内核态与用户态之间的通信技术,从用户态的信令面数据中得到,内核态与用户态具体可以通过netlink技术或者共享内存技术等用户态和内核态的通信技术实现通信。用户态信息为根据用户态的信令面数据所生成的各项数据转发的规则。经过有效性验证后,对数据面数据包进行协议的解封装处理。

在上述实施例的基础上,所述基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据包进行处理,还包括:

若判断获知所述核心网设备接收的数据包为下行数据包,则基于所述核心网设备的用户态信息,对所述核心网设备接收的数据面数据包进行协议封装。

具体地,本发明实施例中,当核心网设备接收的数据包经判断由数据网发出,即为下行数据包,基于核心网设备的用户态信息,对核心网设备接收的数据面数据包进行协议封装,具体可以采用gtp-u协议实现。

本发明实施例中关键点pre_routing具体可以是关键点nf_ip_pre_routing或关键点nf_inet_pre_routing,本发明实施例中对此不作具体限定。

在上述实施例的基础上,所述核心网设备具体为服务网关(servinggateway,sgw)、公用数据网网关(publicdatanetworkgateway,pgw)或增强型集群网关(xgateway,xgw)。xgw接收基站发送的上行数据,数据封装格式为gtp-u协议,传输层采用udp协议,xgw解析gtp-u协议。xgw分为信令面和数据面,信令面生成数据业务转发规则的用户态信息,数据面下移至内核态的同时,增加用户态和内核态的通信,来传递用户态信息。用户态和内核态的通信手段包含但不限于netlink技术。

上行数据:pre_routing处的hook函数,对接收的数据面数据包(即gtp-u报文)中的teid根据由netlink技术传递下来的用户态信息进行有效性验证和解封装,经过输入包路由后进入关键点forward,最终由关键点post_routing发送至核心网。

下行数据:pre_routing处的hook函数,根据用户态信息判断接收的数据面数据包是否是需要发往基站的报文,如果是则进行gtp-u协议封装,经过输入包路由后进入关键点forward,最终由关键点post_routing发送至基站。

如图4所示,在上述实施例的基础上,本发明实施例中提供了一种核心网数据传输系统,包括:处理模块41和传输模块42。其中,

处理模块41用于基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;

传输模块42用于将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;

其中,所述netfilter框架位于所述核心网设备的linux内核中。

具体地,本发明实施例中提供的核心网数据传输系统中各模块的作用与上述方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。

图5所示,在上述实施例的基础上,本发明实施例中提供了一种电子设备,包括:处理器(processor)501、存储器(memory)502、通信接口(communicationsinterface)503和通信总线504;其中,

所述处理器501、存储器502、通信接口503通过通信总线504完成相互间的通信。所述存储器502存储有可被所述处理器501执行的程序指令,处理器501用于调用存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;其中,所述netfilter框架位于所述核心网设备的linux内核中。

需要说明的是,本实施例中的电子设备在具体实现时可以为服务器,也可以为pc机,还可以为其他设备,只要其结构中包括如图5所示的处理器501、通信接口503、存储器502和通信总线504,其中处理器501、通信接口503和存储器502通过通信总线504完成相互间的通信,且处理器501可以调用存储器502中的逻辑指令以执行上述方法即可。本实施例不对电子设备的具体实现形式进行限定。

存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;其中,所述netfilter框架配置于所述核心网设备的linux内核中。

在上述实施例的基础上,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:基于netfilter框架的关键点pre_routing处的钩子hook函数,对核心网设备接收的数据面数据包进行处理;将处理后的数据面数据包经所述netfilter框架的关键点forward,从所述netfilter框架的关键点post_routing输出;其中,所述netfilter框架位于所述核心网设备的linux内核中。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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