一种5G数据转发平面的避免数据包丢失的方法和服务器技术

技术编号:24589992 阅读:48 留言:0更新日期:2020-06-21 02:29
本发明专利技术公开了一种5G数据转发平面的避免数据包丢失的方法和服务器,所述方法包括:根据服务器最大并发运行转发程序的CPU核心数量设置预定个数数据包的接收队列,保证每一个CPU核心对应一定数目的多个接收队列,当并发运行转发程序的CPU核心的数量增加或者减少时,无需调整网卡的接收队列的数量,只需调整预定个数的数据包接收队列与数量变化后的多个CPU核心的对应关系即可,避免并发运行转发程序的CPU核心的数量增加或者减少时会丢失数据包的问题,而且使得所有运行转发程序的CPU核心的工作负荷比较均衡。

A method and server to avoid packet loss of 5G data forwarding plane

【技术实现步骤摘要】
一种5G数据转发平面的避免数据包丢失的方法和服务器
本专利技术涉及计算机应用
,尤其涉及一种5G数据转发平面的避免数据包丢失的方法和服务器。
技术介绍
5G数据转发平面是5G网络(5G网络是第五代移动通信网络,其峰值理论传输速度可达每8秒1GB,比4G网络的传输速度快10倍以上,对于5G网络而言,其在实际应用过程中表现出更加明显的优势及更加强大的功能)中用于实现转发用户的数据包的硬件资源以及软件资源的统称。5G数据转发平面用于在5G网络中转发用户的数据包,实现该数据转发平面的程序称为转发程序。5G网络中支持的用户数量非常多,而且在当今用户流量爆炸的时代,同样数量用户的数据流量规模也越来越大。为了提高单台服务器上的转发程序的处理能力,往往采用多核并发(多个CPU核心同时转发数据包,CPU的每个运算核心都可以独立运行程序,多个运算核心同时运行程序叫做并发,CPU核心即CPU内核的意思)的处理模式,这些CPU核心(CPU核心即CPU运算核心)加载运行相同的转发程序,多个CPU核心(即多核CPU,全称为具有多个运算核心的CPU)分别分担负责一部分数据包的转发处理工作。网络中数据流量的规模越大,自然而然用户数据流量在网络高峰期和网络低谷期相差的流量规模也越大。当网络低谷期渐变为网络高峰期时,CPU核心的工作压力越来越大,直至不得不增加CPU核心参与并发处理转发数据包(即多核并发),用以分担减轻已有的CPU核心的工作压力,简称为扩容。当网络高峰期渐变为网络低谷期时,CPU核心的工作压力越来越小,可以减少并发处理转发数据包的CPU核心数量,用以降低功耗节省运营成本,简称为缩容。增加或减少并发运行转发程序的CPU核心数量(即扩容或缩容)时,需要在扩容或缩容后的CPU核心上重新分配其各自所负责处理的数据包比例(各自负责处理的数据包的比例尽可能均衡),以便重新平衡CPU核心的工作负荷(避免有的CPU核心负载重处理不过来,有的CPU核心负载轻浪费资源)。现有技术中数据包分配交给CPU核心处理的实现方法是:网卡支持多个数据包接收队列(接收队列为网卡收取数据包后存放数据包的缓冲队列,CPU核心会从该缓冲队列中读取数据包进行转发处理),即网卡收取数据包后,会将数据包存放到多个缓冲队列中,并且网卡会将所有数据包均衡的分配存放到每个接收队列上,一个接收队列对应给一个CPU核心使用(一个CPU核心可以对应多个接收队列),以此保证CPU核心的工作负荷的均衡。但是扩容和缩容时,CPU核心的数量发生了变化,如果网卡也调整数据包接收队列的数量相等于CPU核心的数量,就会丢弃接收队列里还未来得及处理的数据包,同时调整接收队列数量的过程中网卡会短暂停止收取数据包,从而导致扩容和缩容时出现丢失数据包的问题。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术的主要目的在于提供一种5G数据转发平面的避免数据包丢失的方法和服务器,旨在解决现有技术中导致扩容和缩容时出现丢失数据包的问题。为实现上述目的,本专利技术提供一种5G数据转发平面的避免数据包丢失的方法,所述5G数据转发平面的避免数据包丢失的方法包括如下步骤:获取服务器内最大并发运行转发程序的CPU核心的数量为N;设置N*(N-1)个数据包的接收队列,并将N*(N-1)个接收队列分成N组接收队列,每一组接收队列包括N-1个接收队列,每一个CPU核心对应N-1个接收队列;获取当前并发运行转发程序的CPU核心的数量,当增加或者减少当前并发运行转发程序的CPU核心的数量时,获取增加或者减少后实际的并发运行转发程序的CPU核心数量为M,M≤N;将第1组接收队列至第M组接收队列中的全部接收队列依次对应分配给第1个CPU核心至第M个CPU核心进行处理;将剩下的第M+1组接收队列至第N组接收队列的总共(N-M)*(N-1)个接收队列平均分给M个CPU核心进行处理,无法均分时剩下的A个接收队列分别依次分配第1个CPU核心至第A个CPU核心进行处理。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,服务器内最大并发运行转发程序的CPU核心的数量等于服务器内的所有CPU核心的数量。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,服务器内实际并发运行转发程序的CPU核心的数量小于或者等于服务器内的所有CPU核心的数量。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,所述设置N*(N-1)个数据包的接收队列,并将N*(N-1)个接收队列分成N组接收队列,每一组接收队列包括N-1个接收队列,每一个CPU核心对应N-1个接收队列,具体包括:根据服务器内最大并发运行转发程序的CPU核心的数量N,通过网卡固定设置N*(N-1)个数据包的接收队列,将N*(N-1)个接收队列分成N组接收队列,将每一个接收队列进行编号,每一组接收队列包括N-1个接收队列,N*(N-1)个接收队列划分为N组包括:第1组接收队列中的队列编号有:1至(N-1);第2组接收队列中的队列编号有:1*(N-1)+1至2*(N-1);第N组接收队列中的队列编号有:(N-1)*(N-1)+1至N*(N-1);每一个CPU核心对应N-1个接收队列;其中,N为正整数。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,当前并发运行转发程序的CPU核心的数量小于等于服务器内的所有CPU核心的数量。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,所述增加或者减少当前并发运行转发程序的CPU核心的数量,具体包括:当增加当前并发运行转发程序的CPU核心的数量时,表示增加CPU核心参与并发处理转发数据包,定义为扩容;当减少当前并发运行转发程序的CPU核心的数量时,表示减少CPU核心参与并发处理转发数据包,定义为缩容。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,所述获取增加或者减少后实际的并发运行转发程序的CPU核心数量为M,具体包括:获取扩容或者缩容后实际的并发运行转发程序的CPU核心数量为M,其中,M≤N,M为正整数。可选地,所述的5G数据转发平面的避免数据包丢失的方法,其中,A小于M,其中,A为正整数。此外,为实现上述目的,本专利技术还提供一种服务器,其中,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的5G数据转发平面的避免数据包丢失的程序,所述5G数据转发平面的避免数据包丢失的程序被所述处理器执行时实现如上所述的5G数据转发平面的避免数据包丢失的方法的步骤。此外,为实现上述目的,本专利技术还提供一种存储介质,其中,所述存储介质存储有5G数据转发平面的避免数据包丢失的程序,所述5G数据转发平面的避免数据包丢失的程序被处理器执行时实现如上所述的5G数据转发平面的避免数据包丢失的方法的步骤。本专利技术通过获取服务器内最大并发运行转发程序的CPU核心的数量为N;设置N*(N本文档来自技高网
...

【技术保护点】
1.一种5G数据转发平面的避免数据包丢失的方法,其特征在于,所述5G数据转发平面的避免数据包丢失的方法包括:/n获取服务器内最大并发运行转发程序的CPU核心的数量为N;/n设置N*(N-1)个数据包的接收队列,并将N*(N-1)个接收队列分成N组接收队列,每一组接收队列包括N-1个接收队列,每一个CPU核心对应N-1个接收队列;/n获取当前并发运行转发程序的CPU核心的数量,当增加或者减少当前并发运行转发程序的CPU核心的数量时,获取增加或者减少后实际的并发运行转发程序的CPU核心数量为M,M≤N;/n将第1组接收队列至第M组接收队列中的全部接收队列依次对应分配给第1个CPU核心至第M个CPU核心进行处理;/n将剩下的第M+1组接收队列至第N组接收队列的总共(N-M)*(N-1)个接收队列平均分给M个CPU核心进行处理,无法均分时剩下的A个接收队列分别依次分配第1个CPU核心至第A个CPU核心进行处理。/n

【技术特征摘要】
1.一种5G数据转发平面的避免数据包丢失的方法,其特征在于,所述5G数据转发平面的避免数据包丢失的方法包括:
获取服务器内最大并发运行转发程序的CPU核心的数量为N;
设置N*(N-1)个数据包的接收队列,并将N*(N-1)个接收队列分成N组接收队列,每一组接收队列包括N-1个接收队列,每一个CPU核心对应N-1个接收队列;
获取当前并发运行转发程序的CPU核心的数量,当增加或者减少当前并发运行转发程序的CPU核心的数量时,获取增加或者减少后实际的并发运行转发程序的CPU核心数量为M,M≤N;
将第1组接收队列至第M组接收队列中的全部接收队列依次对应分配给第1个CPU核心至第M个CPU核心进行处理;
将剩下的第M+1组接收队列至第N组接收队列的总共(N-M)*(N-1)个接收队列平均分给M个CPU核心进行处理,无法均分时剩下的A个接收队列分别依次分配第1个CPU核心至第A个CPU核心进行处理。


2.根据权利要求1所述的5G数据转发平面的避免数据包丢失的方法,其特征在于,服务器内最大并发运行转发程序的CPU核心的数量等于服务器内的所有CPU核心的数量。


3.根据权利要求2所述的5G数据转发平面的避免数据包丢失的方法,其特征在于,服务器内实际并发运行转发程序的CPU核心的数量小于或者等于服务器内的所有CPU核心的数量。


4.根据权利要求1所述的5G数据转发平面的避免数据包丢失的方法,其特征在于,所述设置N*(N-1)个数据包的接收队列,并将N*(N-1)个接收队列分成N组接收队列,每一组接收队列包括N-1个接收队列,每一个CPU核心对应N-1个接收队列,具体包括:
根据服务器内最大并发运行转发程序的CPU核心的数量N,通过网卡固定设置N*(N-1)个数据包的接收队列,将N*(N-1)个接收队列分成N组接收队列,将每一个接收队列进行编号,每一组接收队列包括N-1个接收队列,N*(N-1)个接收队列划分为N组包括:
第1组接收队列中的队列编号有:1...

【专利技术属性】
技术研发人员:向卫东孟庆晓吴闽华
申请(专利权)人:深圳震有科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1