本发明专利技术公开了一种高速的网络数据传输方法,解决用户态应用收发网络数据冗杂处理的问题,以飞思卡尔DPAA硬件为基础,设计一种DPAA服务进程,负责以太网口和用户态应用之间数据转发。绕过调用以太网驱动,在用户态调用缓存管理接口和列队管理接口操作DPAA硬件收发网络数据;利用网络处理器的硬件资源实现精简网络协议栈,加快了数据包处理;DPAA服务进程和用户态应用共享内存,在收发数据时仅需在消息队列中交换彼此的数据指针,实现内核态和用户态数据包的零拷贝,省去传统Linux系统收发网络数据时的IO调用、内核执行线程上下文切换、用户态应用访问数据缓存时的IO拷贝等冗杂处理,在用户态应用和硬件之间提供了一个很薄很高效的层,提高了网络数据处理速度。
【技术实现步骤摘要】
一种高速的网络数据传输方法
本专利技术涉及计算机网络数据传输领域,特别是涉及一种高速网络数据传输的实现方案。
技术介绍
DPAA(DataPathAccelerationArchitecture)是飞思卡尔QorIQ平台的数据加速路径架构,支持在平台内部处理特定数据流的路由并管理相关数据流处理任务。DPAA的主要模块包括列队管理器,缓存管理器和数据帧管理器。列队管理器负责管理CPU,网络接口和硬件加速器之间的数据队列,以队列的方式来管理数据,具有拥塞管理、队列的优先级调度和包排序、顺序恢复的功能;缓存管理器主要提供缓存池管理功能,软件分配合适的缓存给缓存管理器管理;数据帧管理器是一个硬件帧加速器,它支持数据报文的解析,分类和分发(PCD),数据帧管理器是网络数据的进出口,帮助实现负载均衡和Qos等功能,并集合了以太网功能。目前LTE基站设备均通过套接字的方式来实现网络数据的收发,这种传统的Linux数据收发模式在处理数据包时,主要采用在内核态收发数据包,再交给内核协议栈处理。在该过程中,系统需要调用IO、在内核执行线程上下文切换、用户空间应用访问数据缓存时,需要进行IO拷贝等,这一系列的操作都会不同程度降低用户态应用对网络数据的收发速率。
技术实现思路
本专利技术为了解决用户态应用收发网络数据冗杂处理的问题,以飞思卡尔的DPAA硬件为基础,专利技术了一种高速网络数据传输的方法,设计一种DPAA服务进程,负责以太网口和用户态应用之间的数据转发,在用户态实现网络数据包收发,以达到网络数据的加速处理的目的。本专利技术采用的技术方案为:一种高速的网络数据传输方法,其特征在于,包括初始化、上行数据接收和下行数据发送三个过程,具体包括以下步骤:初始化:步骤一:DPAA服务进程的初始化模块获取配置信息,通过数据帧管理接口配置以太网口的IP地址和数据帧管理器的解析、分类和分发策略;内存管理模块为缓存管理器提供一块内存池,并从内存池动态获取一部分缓存,形成缓存池;所述的配置信息包括CPU绑定信息、以太网口的IP地址和数据帧管理器的解析、分类和分发策略;上行数据接收:步骤二:数据帧管理器的以太网口接收到与该网口相同IP地址的网络数据后,通过缓存管理器向内存池申请一个或多个缓存以存储网络数据;数据帧管理器根据解析、分类和分发策略对内存池内存储的网络数据进行解析和分类,将用户关心的网络数据推送到列队管理器,并向列队管理器发起一个入队请求;所述的入队请求包含帧队列ID;步骤三:列队管理器接收到数据帧管理器的入队请求后,根据帧队列ID将用户关心的网络数据通过列队管理器的软件入口推送到对应的CPU;步骤四:CPU根据CPU绑定信息找到对应的DPAA服务进程后,DPAA服务进程的以太网收发接口调用列队管理接口接收网络数据,并将网络数据发送到DPAA服务进程的精简网络协议栈;步骤五:精简网络协议栈对网络数据的首部进行解析,并利用DPAA平台硬件资源对解析后的网络数据进行校验和的检验,获得用户数据,将用户数据发送至DPAA服务进程的用户态应用接口;步骤六:用户态应用接口将用户数据组装成消息,通过消息队列的方式将消息发送到用户态应用;下行数据发送:步骤七:用户态应用从缓存池申请缓存以存储待发送的用户数据,并向用户态应用接口发送请求消息;步骤八:用户态应用接口接收到用户态应用发送的请求消息后,从缓存池中提取用户数据指针并发送至精简网络协议栈;步骤九:精简网络协议栈根据用户数据指针找到对应的用户数据,利用DPAA平台硬件资源进行校验和的计算,将用户数据添加协议首部和校验和,完成用户数据的封装,将用户数据指针发送至以太网收发接口;步骤十:以太网收发接口根据用户数据指针找到对应的封装后的用户数据,将封装后的用户数据封装成DPAA要求的数据帧,通过列队管理器接口和软件入口将数据帧发送至列队管理器;步骤十一:列队管理器将接收到的数据帧发送到数据帧管理器;步骤十二:数据帧管理器通过以太网口将数据帧发送出去;步骤十三:内存管理模块释放缓存池中占用的缓存。其中,步骤一具体包括以下步骤:(101)DPAA服务进程的初始化模块获取配置信息,包括CPU绑定信息、以太网口的IP地址和数据帧管理器的解析、分类和分发策略;(102)初始化模块调用数据帧管理接口,将以太网口的IP地址和数据帧管理器的解析、分类和分发策略配置给指定的以太网口;(103)DPAA服务进程的以太网收发接口调用列队管理接口和缓存管理接口获取列队管理器和缓存管理器的软件入口;(104)内存管理模块通过缓存管理接口和软件入口为缓存管理器提供一块内存池;并通过缓存管理接口、软件入口和缓存管理器从内存池动态获取一部分缓存,形成缓存池。其中,步骤七中用户态应用从缓存池申请缓存以存储待发送的用户数据中,若缓存池使用率大于预设缓存数量的70%时,内存管理模块通过缓存管理器、缓存管理器的软件入口和缓存管理接口自动从内存池申请缓存补满缓存池。本专利技术与现有技术相比的优点为:(1)本专利技术不同以往的数据收发方式,本专利技术绕过调用以太网驱动,在用户态调用缓存管理接口和列队管理接口操作DPAA硬件,在用户态实现了网络数据的收发操作,防止了内核态和用户态的冗杂操作;(2)利用网络处理器的硬件资源实现精简网络协议栈,与采用传统网络协议栈相比,这种用户态的网络协议栈加快数据包处理的性能,此外在协议栈解析封装中还可以定制协议首部,方便实现数据包的分发转发任务;(3)DPAA服务进程和用户态应用之间通过消息队列进行交互,由于DPAA服务进程和用户态应用使用共享内存,因此DPAA服务进程和用户态应用在收发数据时,仅需在消息队列中交换彼此的数据指针即可,而无需将整个数据缓存通过消息队列传送,实现内核态和用户态数据包的零拷贝。(4)通过上述方式,DPAA服务进程在用户态应用和硬件之间提供了一个很薄很高效的层,从而达到提高网络数据处理速度的目的。附图说明图1为本专利技术用户态应用获取网络数据原理图。具体实施方式为了使本
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,以使本专利技术的优点和特征能更易于被本领域技术人员理解,从而对本专利技术的保护范围做出更为清楚明确的界定。本专利技术系统采用的硬件平台是飞思卡尔公司的多核处理器B4860,其操作系统为Linux。本专利技术主要简化传统Linux数据收发过程中的复杂操作,采用数据路径加速架构,在用户态实现网络数据的收发,网络协议栈的解析、封装,实现了LTE基站软件高速收发网络数据的目的。实施例为一个DPAA服务进程,运行在用户态,主要负责以太网口和LTE基站软件之间的用户面数据(eGTP-U数据)的转发,以达到基站与核心网之间数据的加速处理。下面详细描述DPAA服务进程的实现:如图1;DPAA服务进程的初始化:步骤一:DPAA服务进程的初始化模块获取配置信息,通过数据帧管理接口配置以太网口的IP地址和数据帧管理器的解析、分类和分发策略;内存管理模块为缓存管理器提供一块内存池,并从内存池动态获取一部分缓存,形成缓存池;所述的配置信息包括CPU绑定信息、以太网口的IP地址和数据帧管理器的解析、分类和分发策略;具体包括以下步骤:(101)DPAA服务进程的本文档来自技高网...
【技术保护点】
一种高速的网络数据传输方法,其特征在于,包括初始化、上行数据接收和下行数据发送三个过程,具体包括以下步骤:初始化:步骤一:DPAA服务进程的初始化模块获取配置信息,通过数据帧管理接口配置以太网口的IP地址和数据帧管理器的解析、分类和分发策略;内存管理模块为缓存管理器提供一块内存池,并从内存池动态获取一部分缓存,形成缓存池;所述的配置信息包括CPU绑定信息、以太网口的IP地址和数据帧管理器的解析、分类和分发策略;上行数据接收:步骤二:数据帧管理器的以太网口接收到与该网口相同IP地址的网络数据后,通过缓存管理器向内存池申请一个或多个缓存以存储网络数据;数据帧管理器根据解析、分类和分发策略对内存池内存储的网络数据进行解析和分类,将用户关心的网络数据推送到列队管理器,并向列队管理器发起一个入队请求;所述的入队请求包含帧队列ID;步骤三:列队管理器接收到数据帧管理器的入队请求后,根据帧队列ID将用户关心的网络数据通过列队管理器的软件入口推送到对应的CPU;步骤四:CPU根据CPU绑定信息找到对应的DPAA服务进程后,DPAA服务进程的以太网收发接口调用列队管理接口接收网络数据,并将网络数据发送到DPAA服务进程的精简网络协议栈;步骤五:精简网络协议栈对网络数据的首部进行解析,并利用DPAA平台硬件资源对解析后的网络数据进行校验和的检验,获得用户数据,将用户数据发送至DPAA服务进程的用户态应用接口;步骤六:用户态应用接口将用户数据组装成消息,通过消息队列的方式将消息发送到用户态应用;下行数据发送:步骤七:用户态应用从缓存池申请缓存以存储待发送的用户数据,并向用户态应用接口发送请求消息;步骤八:用户态应用接口接收到用户态应用发送的请求消息后,从缓存池中提取用户数据指针并发送至精简网络协议栈;步骤九:精简网络协议栈根据用户数据指针找到对应的用户数据,利用DPAA平台硬件资源进行校验和的计算,将用户数据添加协议首部和校验和,完成用户数据的封装,将用户数据指针发送至以太网收发接口;步骤十:以太网收发接口根据用户数据指针找到对应的封装后的用户数据,将封装后的用户数据封装成DPAA要求的数据帧,通过列队管理器接口和软件入口将数据帧发送至列队管理器;步骤十一:列队管理器将接收到的数据帧发送到数据帧管理器;步骤十二:数据帧管理器通过以太网口将数据帧发送出去;步骤十三:内存管理模块释放缓存池中占用的缓存。...
【技术特征摘要】
1.一种高速的网络数据传输方法,其特征在于,包括初始化、上行数据接收和下行数据发送三个过程,具体包括以下步骤:初始化:步骤一:DPAA服务进程的初始化模块获取配置信息,通过数据帧管理接口配置以太网口的IP地址和数据帧管理器的解析、分类和分发策略;内存管理模块为缓存管理器提供一块内存池,并从内存池动态获取一部分缓存,形成缓存池;所述的配置信息包括CPU绑定信息、以太网口的IP地址和数据帧管理器的解析、分类和分发策略;上行数据接收:步骤二:数据帧管理器的以太网口接收到与该网口相同IP地址的网络数据后,通过缓存管理器向内存池申请一个或多个缓存以存储网络数据;数据帧管理器根据解析、分类和分发策略对内存池内存储的网络数据进行解析和分类,将用户关心的网络数据推送到列队管理器,并向列队管理器发起一个入队请求;所述的入队请求包含帧队列ID;步骤三:列队管理器接收到数据帧管理器的入队请求后,根据帧队列ID将用户关心的网络数据通过列队管理器的软件入口推送到对应的CPU;步骤四:CPU根据CPU绑定信息找到对应的DPAA服务进程后,DPAA服务进程的以太网收发接口调用列队管理接口接收网络数据,并将网络数据发送到DPAA服务进程的精简网络协议栈;步骤五:精简网络协议栈对网络数据的首部进行解析,并利用DPAA平台硬件资源对解析后的网络数据进行校验和的检验,获得用户数据,将用户数据发送至DPAA服务进程的用户态应用接口;步骤六:用户态应用接口将用户数据组装成消息,通过消息队列的方式将消息发送到用户态应用;下行数据发送:步骤七:用户态应用从缓存池申请缓存以存储待发送的用户数据,并向用户态应用接口发送请求消息;步骤八:用户态应用接口接收到用户态应...
【专利技术属性】
技术研发人员:候春辉,
申请(专利权)人:河北远东通信系统工程有限公司,
类型:发明
国别省市:河北,13
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。