机房360首页
当前位置:首页 » 网络安全 » 5G CPE传输性能提升研究与实现

5G CPE传输性能提升研究与实现

来源:C114通信网 作者:Harris编辑 更新时间:2021/8/24 6:55:41

摘要:为了解决5GCPE终端性能与成本功耗冲突问题,本文提出了包加速技术。

1、概述
  
  如今移动互联网承载来自不同行业越来越多的数据,各种不同类型的终端接入到无线网络中。随着5G的持续演进,网络的传输速率越来越高,网络侧设备可以靠提升CPU处理能力,增加CPU核等手段满足网络演进需求,但是个人手持终端、家庭工业互联网行业终端要求低成本、低功耗,传统方式下CPU无法满足1Gbps、10Gbps级别的数据处理需求。
  
  为了解决5GCPE终端性能与成本功耗冲突问题,本文提出了包加速技术,通过对Linux进行传输优化,数据包直接通过网络设备进行转发,减少转发路径的同时不影响正常的NAT、路由功能,在相同CPU处理能力下提升传输性能。
  
  2、5GCPE介绍
  
  CPE全称CustomerPremiseEquipment,即“客户终端设备”。它的作用是将移动通信信号(4G、5G等)或有线宽带信号转换成本地局域网信号,供用户设备使用。
  
  图15GCPE在5G网络中的位置
  
  5GCPE属于5G终端设备,如图1所示它接收运营商基站发出的5G信号,然后转换成Wi-Fi信号或有线信号,让更多本地设备(手机、平板、电脑、工业设备)上网。目前的5GCPE产品,支持SA/NSA组网,兼容4G/5G信号。5GCPE应用通常以2种方式出现:面向家庭的toC场景和面向企业的toB市场。除了提供网络连接功能外,5GCPE还可以与边缘计算结合,成为一个下沉的边缘计算节点,为相关设备提供算力支持。
  
  图25GCPE实现示意图图25GCPE实现示意图
  
  5GCPE由5GModem和5GRouter2部分组成,如图2所示,5GModem负责5GUE协议栈、基带、射频处理,将5G信号转化为网口信号。5GRouter负责路由功能,将5GModem的网口数据转化为局域网内Wi-Fi或者网口数据。本文主要针对5GCPERouter中的LinuxTCP/IP以及网卡驱动进行优化研究,实现5GCPE传输性能的提升。
  
  3、引言
  
  3.1传统方式的传输
  
  传统方式下Linux对TCP/IP数据包收发的流程如图3所示。
  
  Linux的IP数据发送流程为用户进程通过系统调用进入内核,调用发送函数,通过内存拷贝将数据从用户空间拷贝到内核空间,完成发送函数处理后,将数据封装为标准SKB_BUFF,随后进入到IP协议栈处理,最后到达网卡驱动。网卡驱动通过一次拷贝或者通过DMA将数据添加到网卡的发送队列,随后网卡将数据发送到网络。
  
  Linux的IP数据接收流程为网络的数据包到达网卡后,网卡将数据放到DMA中,然后产生一个硬中断通知数据包到达,中断处理程序调用网卡驱动中的接受函数将网卡中的数据包通过拷贝或者DMA操作到SKB_BUFF,随后CPU进入软中断处理。在软中断的处理过程中,数据包进入IP协议栈处理后,再进入接受队列,应用程序通过系统调用进入到内核的接受函数,并将数据从内核空间拷贝到用户空间,完成了数据接收流程。
  
  当前基于5GCPE产品进行性能优化时发现网卡接收数据时CPU占用率高,其中主要为softirq进程占用。使用perf性能工具分析,CPU占用高的函数主要为linux网络协议栈函数流程,该路径消耗CPU过高。因此如何降低软中断的CPU占用率成为性能提升的关键。
  
  3.2包加速技术原理
  
  为了解决5GCPE传输的性能瓶颈问题,本文提出了包加速技术,即对Linux中的TCP/IP报文进行快速转发,达到性能提升目的。如图4所示,网卡接收到数据包如果sa_conn_tuple五元组未命中,数据转交给IPRouting路径,按照Linux标准IP包处理流程处理,此时IP_Forward在FORWARDhook将flowentry加入到forwardentry表中。如果命中sa_conn_tuple五元组,获取forwardentry项里的路由项,解析出发送网卡的信息,直接转发到对端网卡。
  
  其中forwardentry和sa_conn_tuple的定义如下。
  
  a)forwardentry用于记录路由表信息,发送网卡信息。由于缺少IP、ARP等支持,必须包含MAC和发送网卡设备信息,另外使用Tuple用来辨识数据流,Age用来记录最后一次entryhit的jiffies。
  
  b)sa_conn_tuple用五元组来匹配发送数据包。
  
  3.3包加速技术实现
  
  如图5所示,网卡接收到数据包进入到TCP/IP协议栈,如果匹配forwardentry成功,则直接转发到对端网卡,如果不成功,按原来流程发送,并将sa_conn_tuple记录到forwardentry中。
  
  3.4包加速实验测试
  
  使用5GCPE在5GNSA网络下使用TCP报文进行测试,在5GCPE传输数据未消耗完CPU资源的场景下,采用包加速技术可以降低CPU损耗。5GCPE传输数据流量超过CPU负载能力时,采用包加速可以提升5GCPE传输性能。具体测试结果如表2所示,本文所采用的5GCPETCP未优化前可以达到上行600Mbps下行1080Mbps,采用加速技术后,下行提升到1580Mbps,上行由于网络限制,跑满600Mbps时CPU占用率比未加速时降低39%。
  
  表2包加速测试数据表
  
  4、结束语
  
  网络设备所有网络处理都在操作系统内核运行,既有大量的中断,又要参与内核调度,所以协议栈效率低,消耗了大量的CPU资源,本文提出的运行在5GCPE设备上的TCP/IP包加速技术,缩短了网络数据包在Linux中的处理路径,对数据包进行协议加速处理,提高了网络处理效率,最后试验结果证明,采用包加速技术后设备的传输性能提高,CPU资源消耗降低。
  
  目前包加速只能用在Linux平台,支持IPv4、IPv6的上传下载加速,支持网络内部转发及VLAN加速,数据包优先级调度。但是不支持点对点设备、隧道设备以及数据包大于MTU的情况,这些将在后续继续研究。
  
  编辑:Harris

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2021824/n7182139623.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片