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

一种5G通信用户面有序转发数据包的方法和终端

文献发布时间:2023-06-19 11:54:11


一种5G通信用户面有序转发数据包的方法和终端

技术领域

本发明涉及5G通信技术领域,尤其涉及一种5G通信用户面有序转发数据包的方法和终端。

背景技术

第五代移动通信技术(5th generation mobile networks或5th generationwireless systems、5th-Generation,简称5G或5G技术)是最新一代蜂窝移动通信技术,也是继4G(LTE-A、WiMax)、3G(UMTS、LTE)和2G(GSM)系统之后的延伸。5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。

5G通信用户面转发是指5G通信系统用户平面的数据包转发。5G通信用户面转发是指5G通信系统用户平面的数据包转发。GTP-U是指GPRS隧道协议-用户面(GPRS TunnelingProtocol-User Plane),它是用户平面主要的数据包类型。GTP-U数据包携带了隧道ID用于标识一个数据流,用户不同使用的隧道ID也不同,相同用户的数据流对应的数据包的隧道ID也相同。

5G通信系统需要支持转发超大容量的数据包和接入大规模的用户设备,为此必须采用多核CPU并行转发处理大量用户的数据包。而多核CPU并行处理数据包时,很容易导致乱序问题。数据包乱序是指(通信双方为用户A和服务器B)服务器B接收数据包的次序与用户A发送数据包的次序不一致,例如用户A先后发送数据包1/数据包2而经过5G通信用户面转发之后,服务器B接收数据包的次序为数据包2/数据包1;接收到乱序数据包时需要消耗额外的性能对数据包进行排序。

采用多核CPU并行处理数据包的5G通信用户面转发,容易导致乱序问题的原因是每个CPU核心的运算速度并不绝对相等,而且CPU核心的运算速度也会实时波动;如果网卡先收到数据包1交给CPU核心1处理、后收到数据包2交给核心2处理,不能保证CPU核心1会先于CPU核心2将数据包1处理完转发出去。

在一个高效的IP通信系统中需要避免数据包乱序,否则通信双方以及通信系统会消耗大量的性能对数据包进行排序。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的在于提供一种5G通信用户面有序转发数据包的方法和终端,旨在解决现有技术中采用多核CPU并行处理数据包的5G通信用户面转发容易导致乱序,通信双方以及通信系统会消耗大量的性能对数据包进行排序问题。

为实现上述目的,本发明提供一种5G通信用户面有序转发数据包的方法,所述5G通信用户面有序转发数据包的方法包括如下步骤:

预先使用N个CPU核心运行5G通信用户面转发系统,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1);

接收GTP-U数据包;

逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M;

计算M除以N的余数记为Q,Q对应一个CPU核心编号,并将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,所述GTP-U数据包携带了隧道ID用于标识一个传输数据流,同一个用户的传输数据流对应的GTP-U数据包的隧道ID相同,而不同用户使用的隧道ID互不相同。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,N为大于或者等于2的正整数。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,M为一个四字节的整数。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,M的数值范围为0-4294967295。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,Q的数值范围为0-(N-1)。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理用于保证将同一个用户传输的GTP-U数据包始终分配给同一个CPU核心处理。

可选地,所述的5G通信用户面有序转发数据包的方法,其中,同一个用户传输的GTP-U数据包为隧道ID相同的GTP-U数据包。

此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的5G通信用户面有序转发数据包的程序,所述5G通信用户面有序转发数据包的程序被所述处理器执行时实现如上所述的5G通信用户面有序转发数据包的方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有5G通信用户面有序转发数据包的程序,所述5G通信用户面有序转发数据包的程序被处理器执行时实现如上所述的5G通信用户面有序转发数据包的方法的步骤。

本发明通过预先使用N个CPU核心运行5G通信用户面转发系统,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1);接收GTP-U数据包;逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M;计算M除以N的余数记为Q,Q对应一个CPU核心编号,并将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理;本发明实现了将同一个用户传输的数据包(隧道ID相同的数据包)总是分配给同一个CPU核心处理,而该CPU核心会按照数据包到来的先后顺序进行处理和转发出去,从而保证5G通信用户面对同一个用户发送的数据包按照其接收顺序进行转发,最终保证了接收者收到数据包的顺序与用户发送数据包的顺序一致。

附图说明

图1是本发明5G通信用户面有序转发数据包的方法的较佳实施例的流程图;

图2为本发明终端的较佳实施例的运行环境示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明较佳实施例所述的5G通信用户面有序转发数据包的方法,如图1所示,所述5G通信用户面有序转发数据包的方法包括以下步骤:

步骤S10、预先使用N个CPU核心运行5G通信用户面转发系统,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1)。

具体地,预先使用N个CPU核心运行5G通信用户面转发系统,其中,N为大于或者等于2的正整数,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1),例如当N为11时,11个CPU核心依次编号为0、1、2、3、4、5、6、7、8、9、10。

步骤S20、接收GTP-U数据包。

具体地,接收GTP-U数据包,GTP(GPRS Tunnel Protocol)表示GPRS隧道传输协议,GTP是一组基于IP的高层协议,位于TCP/IP,UDP/IP协议之上,GTP-U是其中一种GTP。

步骤S30、逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M。

具体地,逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M,其中,M为一个四字节的整数,M的数值范围为0-4294967295。

步骤S40、计算M除以N的余数记为Q,Q对应一个CPU核心编号,并将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理。

具体地,计算M除以N的余数记为Q,Q对应一个CPU核心编号,其中,Q的数值范围为0-(N-1),也就是说,Q为N个CPU核心中的一个,然后将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理,用于保证将同一个用户传输的GTP-U数据包(隧道ID相同的GTP-U数据包)总是分配给同一个CPU核心处理。

本发明中,GTP-U数据包携带了隧道ID用于标识一个传输数据流,同一个用户的传输数据流对应的数据包的隧道ID相同,而不同用户使用的隧道ID互不相同。根据这一特点,多核CPU并发运行的5G通信用户面转发系统收到GTP-U数据包时,先解析GTP-U数据包并读出其中携带的隧道ID,根据隧道ID决定GTP-U数据包分配给多核CPU中的某一个CPU核心处理,上述分配算法满足两个要求:第一,具有相同的隧道ID的数据包总是分配给同一个CPU核心处理;第二,所有隧道ID的数据包比较均匀的分配给各个CPU核心处理。

本发明实现了将同一个用户传输的数据包(隧道ID相同的数据包)总是分配给同一个CPU核心处理,而该CPU核心会按照数据包到来的先后顺序进行处理和转发出去,从而保证5G通信用户面对同一个用户发送的数据包按照其接收顺序进行转发,最终保证了接收者收到数据包的顺序与用户发送数据包的顺序一致。

进一步地,如图2所示,基于上述5G通信用户面有序转发数据包的方法,本发明还相应提供了一种终端,所述终端包括处理器10、存储器20及显示器30。图2仅示出了终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器20在一些实施例中可以是所述终端的内部存储单元,例如终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述终端的应用软件及各类数据,例如所述安装终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有5G通信用户面有序转发数据包的程序40,该5G通信用户面有序转发数据包的程序40可被处理器10所执行,从而实现本申请中5G通信用户面有序转发数据包的方法。

所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述5G通信用户面有序转发数据包的方法等。

所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述终端的信息以及用于显示可视化的用户界面。所述终端的部件10-30通过系统总线相互通信。

在一实施例中,当处理器10执行所述存储器20中5G通信用户面有序转发数据包的程序40时实现以下步骤:

预先使用N个CPU核心运行5G通信用户面转发系统,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1);

接收GTP-U数据包;

逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M;

计算M除以N的余数记为Q,Q对应一个CPU核心编号,并将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理。

其中,所述GTP-U数据包携带了隧道ID用于标识一个传输数据流,同一个用户的传输数据流对应的GTP-U数据包的隧道ID相同,而不同用户使用的隧道ID互不相同。

其中,N为大于或者等于2的正整数。

其中,M为一个四字节的整数。

其中,M的数值范围为0-4294967295。

其中,Q的数值范围为0-(N-1)。

其中,将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理用于保证将同一个用户传输的GTP-U数据包始终分配给同一个CPU核心处理。

其中,同一个用户传输的GTP-U数据包为隧道ID相同的GTP-U数据包。

本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有5G通信用户面有序转发数据包的程序,所述5G通信用户面有序转发数据包的程序被处理器执行时实现如上所述的5G通信用户面有序转发数据包的方法的步骤。

综上所述,本发明提供一种5G通信用户面有序转发数据包的方法和终端,所述方法包括:预先使用N个CPU核心运行5G通信用户面转发系统,并将N个CPU核心依次编号为0、1、2、…、(N-2)和(N-1);接收GTP-U数据包;逐个读取所述GTP-U数据包中的隧道ID,将所述隧道ID记为M;计算M除以N的余数记为Q,Q对应一个CPU核心编号,并将所述GTP-U数据包分配给编号为Q的CPU核心进行转发处理;本发明实现了将同一个用户传输的数据包(隧道ID相同的数据包)总是分配给同一个CPU核心处理,而该CPU核心会按照数据包到来的先后顺序进行处理和转发出去,从而保证5G通信用户面对同一个用户发送的数据包按照其接收顺序进行转发,最终保证了接收者收到数据包的顺序与用户发送数据包的顺序一致。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的计算机可读存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的计算机可读存储介质可为存储器、磁碟、光盘等。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

相关技术
  • 一种5G通信用户面有序转发数据包的方法和终端
  • 数据包异步转发方法和系统、数据处理系统及共识节点终端
技术分类

06120113096068