https://www.intel.cn/content/www/cn/zh/communications/data-plane-development-kit.htmlhtml
軟件簡介
Intel® DPDK 全稱 Intel Data Plane Development Kit,是 Intel 提供的數據平面開發工具集,爲 Intel architecture(IA)處理器架構下用戶空間高效的數據包處理提供庫函數和驅動的支持,它不一樣於Linux系統以通用性設計爲目的,而是專一於網絡應用中數據包的高性能處理。目前已經驗證能夠運行在大多數Linux操做系統上,包括FreeBSD 9.二、Fedora release1八、Ubuntu 12.04 LTS、RedHat Enterprise Linux 6.3和Suse EnterpriseLinux 11 SP2等。DPDK使用了BSDLicense,極大的方便了企業在其基礎上來實現本身的協議棧或者應用。 服務器
須要強調的是,DPDK應用程序是運行在用戶空間上利用自身提供的數據平面庫來收發數據包,繞過了Linux內核協議棧對數據包處理過程。Linux內核將DPDK應用程序看做是一個普通的用戶態進程,包括它的編譯、鏈接和加載方式和普通程序沒有什麼兩樣。網絡
整體結構
主要有如下幾個核心架構
-
網絡層模塊函數
-
內存管理模塊工具
-
內核管理模塊性能
網絡模塊
整體分析
DPDK對從內核層到用戶層的網絡流程相對傳統網絡模塊進行了特殊處理,下面對傳統網絡模塊結構和DPDK中的網絡結構作對比開發工具
傳統linux網絡層:spa
硬件中斷--->取包分發至內核線程--->軟件中斷--->內核線程在協議棧中處理包--->處理完畢通知用戶層用戶層收包-->網絡層--->邏輯層--->業務層
dpdk網絡層:
硬件中斷--->放棄中斷流程
用戶層經過設備映射取包--->進入用戶層協議棧--->邏輯層--->業務層
對比後總結:
dpdk優點:
-
減小了中斷次數。
-
減小了內存拷貝次數。
-
繞過了linux的協議棧,進入用戶協議棧,用戶得到了協議棧的控制權,可以定製化協議棧下降複雜度
dpdk劣勢
-
內核棧轉移至用戶層增長了開發成本.
-
低負荷服務器不實用,會形成內核空轉.