当前位置:主页 > 管理论文 > 移动网络论文 >

基于Intel DPDK框架的用户空间驱动和环境抽象层的研究与实现

发布时间:2017-06-07 14:10

  本文关键词:基于Intel DPDK框架的用户空间驱动和环境抽象层的研究与实现,由笔耕文化传播整理发布。


【摘要】:SDN和NFV是近几年来网络世界炙手可热的“新星”,虽然提出的背景和应用场景不完全相同,但是两者在实际应用过程中需要的转发表表项都变得非常巨大。此时,海量表项的存储、处理也就不再适合全部由硬件部分来实现。同时,不断提高的网络速率对网络设备处理时延提出了更高的要求。针对上述情况,我们结合软件和硬件各自的优势,提出了一种高速网络中硬件提取软件查找的处理方案。该方案从下到上整体上分为三部分:FPGA逻辑开发硬件部分,低延时数据传递软件部分,数据处理软件部分。需要特别说明的是,本方案中一个很重要的改进就是:硬件逻辑开发部分和数据处理软件部分之间传递的绝大部分数据不是完整的数据包,而是数据包中一些关键的数据。这样做的好处是能够节省内存和PCI-E带宽。软件实现查找与传统交换机中硬件实现查找相比,经历更多的操作、消耗更多的时间。要在高速网络中使用这种数据处理方案,软件设计时最根本的要求就是尽最大可能减少数据收发、处理过程中的时间消耗。本文的主要工作是设计和实现了低延时数据传递软件部分,具体的说分为三部分:第一、对比传统Linux驱动程序设计和Linux用户空间I/0技术两种驱动设计方式,针对实验室特定的FPGA逻辑开发板,设计了一种无中断、零拷贝、轮询的用户空间驱动。这种方式的驱动,可以使得数据的收发过程绕过Linux内核,数据直接在Linux用户空间和硬件逻辑开发部分之间传递,从多个方面减少数据接收和发送过程中的时间消耗。第二、参考了Intel DPDK框架,对底层具体的硬件环境进行了抽象,实现了一个环境抽象层。该环境抽象层可以为上层的库和数据处理软件提供一个低开销、紧凑的数据处理环境。第三、编写具有转发功能的数据处理软件、和硬件逻辑开发模块进行联合调试和测试。测试内容主要包括低延时数据传递软件的传递时延和整个数据处理方案的吞吐率。出于对比和测试的需要,本文还实现了一个简单的网络设备驱动。
【关键词】:硬件提取 软件查找 用户空间驱动 DPDK框架 环境抽象层
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2015
【分类号】:TP393.11;TP274
【目录】:
  • 摘要5-6
  • ABSTRACT6-14
  • 缩略词表14-15
  • 第一章 绪论15-21
  • 1.1 研究背景15-17
  • 1.1.1 以太网的快速发展15
  • 1.1.2 SDN和NFV的快速发展15-17
  • 1.2 研究问题的提出17
  • 1.3 国内外研究现状17-18
  • 1.4 论文的主要工作18-21
  • 1.4.1 论文内容与意义18-19
  • 1.4.2 本文的结构19-21
  • 第二章 协议分析与技术介绍21-29
  • 2.1 相关的协议简介21-22
  • 2.1.1 MAC子层协议21
  • 2.1.2 网络层协议21-22
  • 2.2 用户空间I/O框架22-23
  • 2.3 处理器亲和性23-25
  • 2.4 硬件高速缓存、转址旁路转换、Linux大页面机制25-27
  • 2.4.1 硬件高速缓存25-26
  • 2.4.2 转址旁路转换26
  • 2.4.3 Linux大页面机制26-27
  • 2.5 对称多处理以及和非对称多处理27-28
  • 2.6 本章小结28-29
  • 第三章 数据处理方案的整体架构29-43
  • 3.1 数据处理方案架构29-30
  • 3.2 数据处理方案的改进30-32
  • 3.3 数据处理方案的处理流程32-34
  • 3.4 数据处理方案带来的有益效果34
  • 3.5 数据处理方案对软件根本要求34-36
  • 3.6 数据处理方案数据传输模块总体方案36-42
  • 3.6.1 Intel DPDK框架36-39
  • 3.6.1.1 DPDK框架主要组成模块36-38
  • 3.6.1.2 DPDK框架给数据处理平面带来的有益效果38-39
  • 3.6.2 环境抽象层(EAL)分析39-41
  • 3.6.2.1 环境抽象层实现要求39-41
  • 3.6.2.2 环境抽象层中各个子模块的初始化步骤41
  • 3.6.3 驱动设计的具体要求分析41-42
  • 3.7 本章小结42-43
  • 第四章 环境抽象层各子模块的实现43-52
  • 4.1 环境抽象层中CPU子模块43-44
  • 4.2 环境抽象层中PCI子模块44-47
  • 4.2.1 PCI子模块初始化过程44-45
  • 4.2.2 PCI子模块探测函数45-47
  • 4.3 环境抽象层中内存子模块47-50
  • 4.3.1 环境抽象层中大页内存管理子模块47-49
  • 4.3.2 环境抽象层中内存区子模块49-50
  • 4.4 环境抽象层中线程子模块50-51
  • 4.5 本章小结51-52
  • 第五章 用户空间驱动的设计与实现52-72
  • 5.1 驱动实现方案的选择52-57
  • 5.1.1 中断还是轮询52-53
  • 5.1.2 传统设备驱动程序还是用户空间I/O53-57
  • 5.1.2.1 传统的Linux网络设备驱动程序54-55
  • 5.1.2.2 Linux网络设备驱动的中断数据接收和发送过程55-57
  • 5.1.2.3 传统的网络设备驱动程序中存在的问题57
  • 5.2 用户空间轮询驱动详细设计与实现57-71
  • 5.2.1 用户空间轮询驱动的内核模块的设计与实现59-62
  • 5.2.2 用户空间轮询驱动的用户模块的设计与实现62-71
  • 5.2.2.1 用户空间轮询驱动的用户模块实现的关键数据结构62-66
  • 5.2.2.2 用户空间轮询驱动的轮询的实现66-67
  • 5.2.2.3 用户空间轮询驱动数据收发过程的具体实现67-70
  • 5.2.2.4 用户空间驱动中批量数据包处理的实现70-71
  • 5.3 本章小结71-72
  • 第六章 环境抽象层和用户空间驱动测试与分析72-89
  • 6.1 测试环境简介72-73
  • 6.2 简单功能测试73-79
  • 6.2.1 网卡基本收发功能测试73-75
  • 6.2.1.1 测试目的73
  • 6.2.1.2 网卡收发功能测试步骤73-74
  • 6.2.1.3 网卡收发功能测试结果与分析74-75
  • 6.2.2 数据卡低延时数据传递软件中环境抽象层测试75-76
  • 6.2.2.1 测试目的75
  • 6.2.2.2 环境抽象层测试步骤75
  • 6.2.2.3 环境抽象层测试与结果分析75-76
  • 6.2.3 数据卡低延时数据传递软件中用户空间驱动测试76-79
  • 6.2.3.1 测试目的76
  • 6.2.3.2 数据卡用户空间驱动测试场景与步骤76
  • 6.2.3.3 数据卡用户空间驱动测试与结果分析76-79
  • 6.3 性能测试79-86
  • 6.3.1 延时测试79-83
  • 6.3.1.1 测试目的79
  • 6.3.1.2 延时测试场景与步骤79-80
  • 6.3.1.3 延时测试与结果分析80-83
  • 6.3.2 吞吐率测试83-86
  • 6.3.2.1 测试目的83
  • 6.3.2.2 吞吐率测试场景和步骤83
  • 6.3.2.3 数据包关键信息方式转发测试吞吐率结果与分析83-86
  • 6.4 特殊功能测试-MAC地址替换86-88
  • 6.4.1 测试目的86
  • 6.4.2 MAC地址替换测试场景和步骤86-87
  • 6.4.3 MAC地址替换测试结果与分析87-88
  • 6.5 本章小结88-89
  • 第七章 结束语89-90
  • 7.1 论文总结89
  • 7.2 下一步研究工作89-90
  • 致谢90-91
  • 参考文献91-93
  • 攻读硕士学位期间的研究成果93

【共引文献】

中国期刊全文数据库 前10条

1 陈刚;张京;唐建;;一种基于FPGA的PCIe总线及其DMA的设计方法[J];兵工自动化;2014年05期

2 温宇辰;李明伟;陈玉龙;;PCI-E总线光纤接口卡的设计[J];电子技术应用;2014年04期

3 赵英潇;张月;戴华骅;郭瑞;陈曾平;;Virtex-6 FPGA的三种串行通信协议测试及对比[J];单片机与嵌入式系统应用;2014年10期

4 檀永;侯明国;沈健;;基于PCI-E总线的智能变电站网络记录分析仪研制[J];电气自动化;2015年05期

5 孙文硕;赛景波;;PCI-e高速数据采集卡的驱动与上位机软件设计[J];电子器件;2015年05期

6 王澧;王蕾;张玲;;一种PCIe总线MAC模块的设计与验证[J];电子与封装;2015年10期

7 李丽斯;崔志华;殷晔;王石记;常路;;基于FPGA的PCIe总线DMA控制器的设计与验证[J];计算机测量与控制;2014年04期

8 刘兴辉;姜长仁;张冬苓;曹军;罗烨辉;;PCI Express多链路的De-Skew逻辑设计[J];辽宁大学学报(自然科学版);2014年01期

9 侯宁;卢亚鹏;张多利;;基于片上网络的多核芯片组通讯方案[J];计算机时代;2014年10期

10 郑乾;晏敏;赵建中;李优;张锋;;基于PCIE2.0的物理层弹性缓冲器设计[J];计算机工程;2014年10期

中国博士学位论文全文数据库 前1条

1 陈劲;水听器线列阵的数据采集与传输关键技术研究[D];天津大学;2013年

中国硕士学位论文全文数据库 前10条

1 胡民达;基于PCIE总线的CCSDS标准卫星数据采集软件开发[D];华南理工大学;2010年

2 兰里;自动丝网印刷机硬件设计与驱动开发[D];华南理工大学;2012年

3 彭毕雨;基于FPGA的网络适配器驱动程序设计[D];华中科技大学;2013年

4 侯君健;增强型以太网适配器研究与设计[D];华中科技大学;2013年

5 尤超勤;木质材料超声无损定征与分类技术的研究[D];浙江大学;2014年

6 徐开洁;Linux下算法加密卡的PCIe接口的驱动研究[D];杭州电子科技大学;2013年

7 杨威龙;基于FPGA的高速数据传输接口设计与实现[D];北方工业大学;2014年

8 李锋;基于光纤反射内存网的实时数据传输研究[D];中国科学院研究生院(光电技术研究所);2014年

9 钟晓珍;基于PowerPC的网络存储系统[D];山东大学;2014年

10 段洁汝;高频RFID测试设备硬件部分设计与实现[D];山东大学;2014年


  本文关键词:基于Intel DPDK框架的用户空间驱动和环境抽象层的研究与实现,由笔耕文化传播整理发布。



本文编号:429276

资料下载
论文发表

本文链接:https://www.wllwen.com/guanlilunwen/ydhl/429276.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户f62dd***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com