[发明专利]基于DPDK的链路聚合接口的数据包转发方法在审
申请号: | 201910307568.0 | 申请日: | 2019-04-17 |
公开(公告)号: | CN110224929A | 公开(公告)日: | 2019-09-10 |
发明(设计)人: | 刘亚轩;何建锋 | 申请(专利权)人: | 西安交大捷普网络科技有限公司 |
主分类号: | H04L12/709 | 分类号: | H04L12/709;H04L12/741;H04L12/801;H04L29/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710075 陕西省*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据包 数据包转发 链路聚合 节点查询 聚合接口 快速转发 区别处理 数据包量 网关设备 有效减少 重复处理 转发性能 选路 查询 | ||
本发明公开了一种基于DPDK的链路聚合接口的数据包转发方法,对聚合接口的数据包根据快转表的节点查询结果进行区别处理,未查询到节点的数据包被送到Linux内核进行选路,可以有效减少需要Linux内核重复处理的数据包量,从而实现了数据包的快速转发,有利于提高网关设备的转发性能。
技术领域
本发明属于网络技术领域,尤其是涉及链路聚合技术,一种基于DPDK的网络中间设备的链路聚合及其数据包快转的方法,用于网关设备对网络数据包进行快速转发。
背景技术
链路接口聚合就是把多个物理接口绑定成一个逻辑接口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。
DPDK(数据平面开发工具包:Data Plane Development Kit)是一个开源的数据平面开发工具集,是Intel为了解决Linux SMP环境下数据包处理性能问题而提供的一个用户空间下的高效数据包处理函数库和驱动集。DPDK的核心技术包括EAL(环境适配层)、PMD(轮询模式驱动)、RING(无锁环)、MEMPOOL(内存池管理)、MBUF(缓存管理)、KNI(内核NIC接口)、ACL(接入控制库)等。
现有基于DPDK的数据包处理框架,对于DPDK应用程序的链路聚合接口,数据包无法被送到Linux内核实现数据包的选路,从而无法实现数据包的快速转发特性,很大程度上降低了网关设备的转发性能。因此有必要对链路聚合接口的数据包转发进行改进。
发明内容
为了克服上述问题,本发明旨在提出一种基于DPDK的链路聚合接口的数据包转发方法,避免具有相同五元组的数据包重复上Linux内核协议栈,有利于提高数据包的转发效率。
本发明采用的技术方案是:
基于DPDK的链路聚合接口的数据包转发方法,包括:
链路聚合接口接收数据包;
DPDK应用程序解析数据包得到五元组信息;
根据五元组信息查找快转表,若查找到对应节点则由快转通道发送数据,若未查找到对应节点则交由Linux内核处理。
进一步的,上述数据包转发方法,还包括:
DPDK应用程序为链路聚合接口分配对应的KNI接口,数据包通过KNI接口发送至Linux内核;
Linux内核利用协议栈解析数据包并进行选路,将选路信息填充到数据包后,通过KNI接口返回DPDK应用程序;
DPDK应用程序根据数据包的五元组信息在快转表新建节点,并将选路信息填充至该节点;
发送数据包。
优选的,链路聚合接口后续收到五元组信息相同的数据包,由快转通道发送数据,不再进行Linux内核处理。
优选的,链路聚合接口创建时,设置收发数据包的策略,所述策略至少包括轮询、主备、XOR。
采用以上技术方案的本发明,具有以下有益效果:对于快转表未查找到的数据包,经Linux内核处理后返回DPDK应用程序,并新建相应的节点,以备后续相同五元组信息的数据包不再进行Linux处理而实现快速转发,提高链路聚合接口的数据包转发效率,进而有利于提高网关设备的转发性能。
附图说明
图1为本发明的数据包处理流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交大捷普网络科技有限公司,未经西安交大捷普网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910307568.0/2.html,转载请声明来源钻瓜专利网。