DPDK灵活的流分发库

本文介绍了DPDK中的EFD(Efficient Flow Distributor)库,一种结合了流表和实时计算优点的流分发解决方案。EFD通过使用完美散列,减少了存储需求,支持百万级的流key,并提供了高效的查找性能。文章详细阐述了EFD的工作原理,包括基于计算和流表的流量分发方案,并给出了实际应用案例。
摘要由CSDN通过智能技术生成

一. 缘由

好的流表设计,在大量网络产品中是一个相当重要的环节,如dpi产品、取证产品、内容审计产品等。

二. 简介

1.介绍

在数据中心的当代,集群和工作负载的调度是一个非常普遍的任务。许多工作负载在集群中需要有一个确切的分区key空间。当一个包进入集群,在进入节点直接将数据包分发的处理节点。例如,具有分解存储的数据中心使用存储元数据将I/O请求转发到正确的后端存储集群的中,有状态的数据包检查将匹配流表中标签来发送进入的数据包到其预期的深度数据包检测(DPI)设备,等等其他。

EFD是为每条流key使用完美hash生成一个目标或值的分发库。它具有以下优点:首先,因为它使用完美的散列,它不存储密钥本身,因此查找性能不依赖于密钥大小。其次,目标/值可以是任意值,因此系统设计者和/或 运营商可以更好地优化服务速率和群集间网络流量定位。 第三,由于存储要求远小于基于散列的流表(即更适合于CPU缓存),所以EFD可以扩展到数百万个流密钥。 最后,利用当前优化的库实现,性能完全可扩展,任意数量的CPU内核。

2.基于流的分发

2.1基于计算的方案

流量分发和/或负载均衡可以简单地使用无状态计算完成,例如使用轮询调度或基于流key作为输入的简单计算。例如,可以使用散列函数来基于流key(例如h(key)mod n)将特定流引导到目标,其中h(key)是流key的哈希值,并且n是可能的目标。 在该方案(图13.1)中,前端服务器/分发/负载平衡器从输入包中提取流key(如五元组)࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值