基于DPDK的数据包查表技术的设计与实现

被引量 : 9次 | 上传用户:xj3301365
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着互联网技术的不断发展,数据中心网络和企业网络的规模发生了快速的增长,数据中心的服务器的数量可能是数万台甚至数十万台。巨大而又复杂的数据中心网络将会使得路由表的规模变的很大。SDN技术的快速发展,OpenFlow流表中的匹配域越来越越多,不同匹配域之间的组合使得OpenFlow流表的流表项发生爆炸式的增长。另一方面网络速率的迅速增加,单位时间到达交换设备的数据包变多,数据包必须被及时的处理和转发。面对如此之大的表项数目,如果使用TCAM来存储,存储成本会大大的增加,而且功耗也比较大,实现查表算法也不够灵活。如果使用软件查表又会面临linux系统处理数据包的开销问题,这些开销包括中断处理、上下文切换、数据拷贝等,这会严重影响快速处理数据包的能力。而本文设计了一种软硬结合的数据包查找方案,此方案将占用内存较大的查表部分由软件实现,降低了成本。且硬件只传送用于查表的数据包包头给软件,可以减少软硬件之间的PCIe的宽带利用率。本文的主要工作包括三个部分:1.基于DPDK的数据包转发实现。在DPDK中实现数据包查找的优势在于我们可以利用它的用户空间轮询模式驱动、大页内存、CPU affinity等特性来提升数据包的处理速度。2.Cuckoo hash表的实现。Cuckoo hash表具有内存利用率高,O(1)的查找时间优点,本文通过对比和分析基于细粒度锁实现的Cuckoo hash算法和基于计数器实现的Cuckoo hash算法,最终采用了基于计数器的Cuckoo hash算法,并针对这个算法进行了两个优化:1)通过添加tag字段来加速哈希桶的匹配速度。2)移位路径搜索方式的优化提升了插入性能,减少了插入对读的影响。3.为了解决单流表过度膨胀,OpenFlow采用了多级流表。这里我们利用OpenFlow多级流表的思想,采用多个逻辑表,每个逻辑表负责不同的匹配域,再将不同的逻辑表分配到不同的逻辑核,不同的逻辑核负责不同匹配域的匹配,在数据包流过来的时候,形成流水线查找。并对多级查找进行了两个优化来提升查找性能。最后我们对表的内存利用率、单级查找性能、插入性能、多级查找性能等进行了相关测试和对比,并对结果进行了分析。
其他文献
<正>近年来,在语言教学中日益受到关注的一个崭新的教学理论——词块理论逐渐进入研究者的视野。词块,作为集词汇和语法的特征于一身的语言使用的重要单位,作为语言输入、记
能源问题是当今社会关注的热点,锂离子电池由于自身的优异特性得到了广泛运用,同时随着锂离子电池应用领域的增加,锂离子动力电池组的出现显得顺理成章。高性能高质量的锂电
随着微电机系统(Micro-Electro-Mechanical Systems, MEMS)技术的不断发展,基于MEMS的惯性传感器应用呈现出巨大的研究价值和广阔的应用前景,已逐渐成为国内外研究的热点,这
随着自然语言分析、文本挖掘等技术高速发展,元分析中数据提取工作逐渐从人工手动提取向计算机自动提取转变。本文以基因关联研究(Genome-WideAssociationStudy,GWAS)研究为例,通
中央提出建设社会主义新农村以来,新农村建设正在如火如荼地进行,关于新农村建设的内容、措施、重等方面的讨论也随之全面展开。本文以台州市黄岩区为例,着重阐述社会主义新
可再生能源发电的输出功率具有波动性和间歇性的特点,给电网安全运行带来显著的不利影响,限制了可再生能源发电大规模接入电网的能力。在保证既有电网安全稳定运行的前提下,
煤炭行业进入“寒冬”时期已是不争的事实。根据新发布的BP2014能源统计数据,我国2002-2012十年间的煤炭平均消费水平为8.3%,而2013年这个数字是4%,还不足2002-2012平均值的
在当前开发使用的人工智能应用系统中,人工智能算法存在着以统计方式进行学习、完全依赖数据等固有特性,意味着人工智能系统在攻击面前脆弱不堪。人工智能攻击是指恶意操纵人
近年来,伴随着计算机的发展和网络的广泛覆盖,从简单的红白机单机游戏转向互动性更强的网络游戏模式。游戏类别百花齐放,游戏角色的服饰更趋多元化,欧美、日韩游戏占据主导地
在平面设计日益繁荣的今天,创作更具有创意效果、更能吸引人眼球、具有更丰富审美体验的平面设计作品已成为平面设计在巨大的设计浪潮中脱颖而出的必要条件。本文研究平面设