掌桥专利:专业的专利平台
掌桥专利
首页

一种核心网用户面数据的多线程加速处理控制方法

文献发布时间:2023-06-19 19:40:14


一种核心网用户面数据的多线程加速处理控制方法

技术领域

本发明涉及计算机网络通信领域,特别是指一种核心网用户面数据的多线程加速处理控制方法。

背景技术

LTE(Long Term Evolution)是3GPP无线接入网的长期演进技术,作为第四代移动通信技术,它能够快速传输语音、文本、视频和图像信息,能够满足用户对于无线服务的要求。LTE系统由两部分络组成:无线接入网(eNodeB)提供无线连接与接入用户到核心网的功能;核心网(EPC)主要负责用户管理和数据链路传输,核心网用户面功能涉及到的网元有服务网关(SGW)和分组数据网网关(PGW),SGW负责连接eNodeB的用户面,作为在eNodeB之间的切换的本地锚点,同时负责数据包的路由和转发,PGW作为边界网关,负责数据业务在SGW和数据网络之间转发,并提供用户承载控制、计费、地址分配等功能。用户面数据采用基于UDP的GPRS隧道协议,以满足系统的实时性要求。

核心网用户面功能繁多,逻辑复杂,而特定领域用户对无线网络的吞吐率,时延等指标要求苛刻。因此亟需一种核心网用户面数据的高速处理控制方法,以提高核心网的数据吞吐率,降低数据交换时延。

发明内容

本发明为了解决核心网用户面数据处理速度难以满足大吞吐率,低时延等指标的问题,提供了一种核心网用户面数据的多线程加速处理控制方法,以达到用户面数据高速处理的目的。

本发明所采用的技术方案为:

一种核心网用户面数据的多线程加速处理控制方法,包括以下步骤:

(1)建立控制线程和多个工作线程;

(2)每个工作线程均建立七个业务模块:数据接收模块、数据发送模块、用户数据模块、GTP模块、包过滤器模块、业务质量模块以及计费控制模块,每个业务模块分别实现上行或下行数据处理过程中的一个数据处理环节;

(3)创建数据帧缓存池,并为每个业务模块分配一个数据帧队列;控制线程为每个业务模块建立用户承载信息,并维护业务模块之间的拓扑关系;

(4)控制线程发起障碍同步,等待所有工作线程进入阻塞状态;

(5)控制线程根据业务请求修改业务模块的用户承载信息并调整业务模块之间的拓扑关系,之后销毁障碍同步,实现多线程之间用户承载信息的无锁访问;

(6)工作线程根据新的用户承载信息进行数据处理,具体方式为:

(601)数据接收模块采用用户态轮询驱动机制实现数据的高速接收;

(602)数据接收模块读取数据缓存地址,并从数据帧缓存池中申请数据帧资源,将数据缓存地址保存到该数据帧中;

(603)数据接收模块根据业务模块拓扑关系获取下一个业务模块A的数据帧队列信息,将数据帧压入业务模块A的数据帧队列中;

(604)数据接收模块挂起业务模块A的数据帧队列,以标记该队列存在待处理数据;

(605)重复步骤(602)-(604),直至达到数据接收模块的最大批处理次数,进入下一步处理;

(606)工作线程轮询挂起的队列,进入当前挂起队列所属的业务模块A;

(607)业务模块A读取其数据帧队列中的第一个数据帧,并根据业务模块A的处理逻辑对该数据帧进行处理;

(608)业务模块A根据业务模块拓扑关系获取下一个业务模块B的数据帧队列信息,将处理后的数据帧压入业务模块B的数据帧队列中;

(609)业务模块A挂起业务模块B的数据帧队列,以标记该队列存在待处理数据;

(610)重复步骤(607)-(609),直至达到业务模块A的最大批处理次数,进入下一步处理;

(611)工作线程轮询挂起队列,重复步骤(606)-(610),直至完成所有挂起队列的处理,返回步骤(601);

当有新用户入网时,控制线程重新为每个业务模块建立用户承载信息,更新业务模块之间的拓扑关系,重复步骤(4)-(6)。

本发明的有益效果如下:

(1)本发明实施例根据业务领域的特点,采用单控制线程,多工作线程模型,利用控制线程与工作线程之间的障碍同步,避免使用线程的同步锁机制,实现多线程之间的无锁访问。

(2)采用数据帧队列实现了业务模块之间零内存拷贝的数据传递,缩短了数据帧在模块之间的传递时延。

(3)采用数据流批处理算法,在一次业务处理循环内可以处理多个数据帧,提高了业务数据处理的效率。

附图说明

为更清楚的说明本发明中的技术方案,下面将本说明书描述中所需要使用的附图做简要介绍。

图1为本发明实施例中核心网用户面的多线程模型图。

图2为本发明实施例中核心网用户面多线程无锁访问的原理图。

图3为本发明实施例中核心网用户面工作线程数据处理的流程图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

一种核心网用户面数据的多线程加速处理控制方法,如图1所示,该方法采用单控制线程,多工作线程模型,控制线程负责用户承载信息的建立流程并维护业务模块之间的拓扑关系,工作线程负责业务数据的处理流程。每个工作线程均建立七个业务模块:数据接收模块、数据发送模块、用户数据模块、GTP模块、包过滤器模块、业务质量模块以及计费控制模块,每个业务模块分别实现上行或下行数据处理过程中的一个数据处理环节,工作线程中的业务模块之间采用数据帧队列交换业务数据,各个业务模块根据用户承载信息和拓扑关系实现核心网业务数据的GTP封装、数据包承载过滤,数据流量控制和计费控制等功能。

图2为多线程无锁访问的原理图。用户面采用单控制线程,多工作线程模型,由控制线程建立用户承载控制信息,工作线程根据用户承载信息和模块拓扑关系进行业务数据处理。所述多线程无锁访问具体包括以下步骤:

在控制线程方面:

S101:当有新用户入网时,控制线程发起障碍同步;

S102:控制线程等待是否所有工作线程进入阻塞状态;

S103:由控制线程根据业务请求修改业务模块的用户承载信息并调整业务模块之间的拓扑关系;

S104:控制线程修改完成后,销毁障碍同步;

S105:控制线程等待工作线程退出阻塞状态,完成整个数据同步操作。

在工作线程方面:

S106:工作线程在每次逻辑处理循环之前,检测控制线程是否发起了障碍同步请求,否则调到步骤S110继续执行后续逻辑;

S107:如果控制线程发起了障碍同步请求,则将阻塞线程数加一;

S108:工作线程进入阻塞状态,等待控制线程结束障碍同步;

S109:工作线程收到障碍同步销毁请求,工作线程将阻塞线程数减一;

S110:工作线程进入业务逻辑处理流程,根据新的用户承载信息和模块的拓扑关系进行数据处理转发,实现多线程之间的无锁访问算法。

当有新用户入网时,控制线程重新为每个业务模块建立用户承载信息,更新业务模块之间的拓扑关系,重复步骤以上控制线程、工作线程相关步骤。

图3为一种核心网用户面工作线程数据处理的流程图,具体包括如下步骤:

S201:各业务模块进行初始化工作,创建数据帧缓存池,并为每个业务模块分配一个数据帧队列;

S202:数据接收模块采用用户态轮询驱动机制实现数据的高速接收;

S203:数据接收模块读取数据缓存地址,并从数据帧缓存池中申请数据帧资源,将数据缓存地址保存到该数据帧中;

S204:数据接收模块根据业务模块拓扑关系获取下一个业务模块A的数据帧队列信息,将数据帧压入业务模块A的数据帧队列中;

S205:数据接收模块挂起业务模块A的数据帧队列,以标记该队列存在待处理数据;

S206:重复步骤S202 - S205,直至达到数据接收模块的最大批处理次数,执行下一步操作;

S207:工作线程判断挂起队列是否为空,挂起队列为空则跳回步骤S202进行网络数据的接收;

S208:如果挂起队列不为空,则工作线程轮询挂起的队列,进入当前挂起队列所属的业务模块A;

S209:业务模块A读取其数据帧队列中的第一个数据帧,并根据业务模块A的处理逻辑对该数据帧进行处理;

S210:业务模块A根据业务模块拓扑关系获取下一个业务模块B的数据帧队列信息,将处理后的数据帧压入业务模块B的数据帧队列中;

S211:业务模块A挂起业务模块B的数据帧队列,以标记该队列存在待处理数据;

S212:重复步骤S208 - S211,直至达到业务模块A的最大批处理次数,跳回S207;

总之,本发明提出了一种核心网用户面数据的多线程加速处理控制方法,其中,业务模块之间具有高内聚、低耦合的特性,简化了核心网用户面业务逻辑的实现。本发明根据业务领域的特点,采用单控制线程,多工作线程模型,利用控制线程与工作线程之间的障碍同步,避免使用线程的同步锁算法,实现多线程之间的上下文数据的互访问算法。本发明还采用数据帧队列,实现了业务模块之间零内存拷贝的数据传递,缩短了数据帧在模块之间的传递时延。此外,本发明采用数据流批处理思想,在一次业务处理循环内可以处理多个数据帧,提高了业务数据处理的效率。

本发明解决核心网用户面数据处理速度难以满足大吞吐率,低时延等指标的问题,达到了用户面数据高速处理的目的。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术分类

06120115989884