深入淺齣DPDK

深入淺齣DPDK pdf epub mobi txt 電子書 下載 2025

硃河清 等 著
圖書標籤:
  • DPDK
  • 網絡編程
  • 高性能
  • Linux
  • 數據平麵
  • 網絡加速
  • 包處理
  • 內核旁路
  • 網絡協議
  • 開發實踐
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111537830
版次:1
商品編碼:11937100
品牌:機工齣版
包裝:平裝
開本:16開
齣版時間:2016-05-01
用紙:膠版紙
頁數:267

具體描述

編輯推薦

  

挑戰網絡性能極限 ,資深開發者伴你在DPDK的世界中成長。展現軟件優化的極*魅力,百萬兆高性能網絡就在身邊。剖析數據麵軟件中的核心算法和關鍵技術 全麵展示DPDK與 NFV的深度融閤

難得的NFV數據麵軟件書籍,
  全麵係統地闡述硬件平颱和數據麵軟件中一係列關鍵技術。
  權*的數據麵軟件開發指南,
  深入剖析核心算法的原理及詳盡的DPDK編程實踐。
  前沿的數據麵産業應用和動嚮
  全麵介紹DPDK與 NFV、軟件存儲等領域的深度融閤的案例。

內容簡介

  

近年來,隨著網絡技術的不斷創新和市場的發展,越來越多的網絡設備基礎架構開始嚮基於通用處理器平颱的架構方嚮融閤,期望用更低的成本和更短的産品開發周期來提供多樣的網絡單元和豐富的功能,如應用處理、控製處理、包處理、信號處理等。為瞭適應這一新的産業趨勢, 英特爾公司聯閤第三方軟件開發公司及時推齣瞭基於Intel® x86架構的DPDK (Data Plane Development Kit,數據平麵開發套件),實現瞭高效靈活的包處理解決方案。經過近6年的發展DPDK已經發展成支持多種高性能網卡和多通用處理器平颱的開源軟件工具包,並已成為通用處理器平颱上影響力*大的數據平麵解決方案。
  本書匯聚瞭資深的DPDK技術專傢的精闢見解和實戰體驗,詳細介紹瞭DPDK技術發展趨勢、數據包處理、硬件加速技術、包處理和虛擬化 ,以及DPDK 技術在SDN、NFV、網絡存儲等領域的實際應用。書中還使用大量的篇幅講解各種核心軟件算法、先進的數據優化思想、大量詳盡的實戰心得和使用指南。作為國內*一本全麵闡述網絡數據麵的核心技術的書籍,本書主要麵嚮IT、網絡通訊行業的從業人員,以及大專院校的學生,用通俗易懂的文字打開瞭一扇通嚮新一代網絡處理架構的大門。

作者簡介

硃河清 現為英特爾DPDK與Hyperscan軟件經理,在Intel、Alcatel、Huawei、Lucent有15年通信網絡設備研發與開源軟件開發經驗。
梁存銘 英特爾資深軟件工程師,在計算機網絡領域具有豐富的實踐開發經驗,提交多項美國專利。作為DPDK早期貢獻者之一,在PCIe 高性能加速、I/O虛擬化、IA指令優化、協議棧優化等方麵有較深入的研究。
鬍雪焜 現為英特爾網絡通訊平颱部門應用工程師,主要研究底層虛擬化技術和基於IA架構的數據麵性能優化, 以及對網絡演進的影響,具有豐富的SDN/NFV商業實踐。
曹水 現為英特爾軟件經理,從事嵌入式開發和軟件行業超過15年,主要負責DPDK軟件測試工作。


精彩書評

  

當前,一場全新的網絡技術革新正在如火如荼地展開,其焦點在於如何給通信企業、雲服務商提供更具性價*的方案和更靈活的服務,而軟件的創新正是推動這場革新的核心動力。經過多年的發展,DPDK已經成為事實上的數據麵軟件的標準,支持多個主流處理器架構,並已經擁有上百個成功的商業部署。英特爾公司非常榮幸能夠作為這次網絡技術變革的領導者,幫助用戶打造具備高性能和靈活功能的産品。
  ——Sandra Rivera,英特爾數據中心網絡平颱事業部總裁
  
  英特爾平颱在軟件優化方麵擁有巨大的潛力,DPDK是一個非常齣色的例子。過去10年是我人生中尤為珍貴的旅程,我有幸主持DPDK開發計劃,親眼見證DPDK從最初一個很小的軟件庫起步,逐步完善原型設計,獲得客戶認可。伴隨著多核時代和高速以太網時代的到來,DPDK在電信業、雲計算和企業服務中掀起瞭一股網絡技術革新的浪潮。在未來幾年,我們即將看到全行業開源步伐加快,最近思科公司VPP在www.fd.io發布是一個優秀的實踐。我們很幸運,能夠成為網絡技術革新的領導者。
  ——St Leger Jim,英特爾網絡事業部軟件産品總監
  
  軟件正在改變世界,DPDK這樣的開源軟件展示瞭軟件在高速的網絡報文處理中的魅力。本書能夠幫助廣大學生在係統地學習理論知識的同時緊密聯係實際工程和應用,具有相當不錯的參考價值。
  ——金耀輝教授,上海交通大學網絡中心

目錄

序  言
引  言
作者介紹
第一部分 DPDK基礎篇
第1章 認識DPDK 3
1.1 主流包處理硬件平颱 3
1.1.1 硬件加速器 4
1.1.2 網絡處理器 4
1.1.3 多核處理器 5
1.2 初識DPDK 7
1.2.1 IA不適閤進行數據包處理嗎 7
1.2.2 DPDK最佳實踐 9
1.2.3 DPDK框架簡介 10
1.2.4 尋找性能優化的天花闆 11
1.3 解讀數據包處理能力 12
1.4 探索IA處理器上最艱巨的任務 13
1.5 軟件包處理的潛力——再識DPDK 14
1.5.1 DPDK加速網絡節點 14
1.5.2 DPDK加速計算節點 15
1.5.3 DPDK加速存儲節點 15
1.5.4 DPDK的方法論 16
1.6 從融閤的角度看DPDK 16
1.7 實例 17
1.7.1 HelloWorld 17
1.7.2 Skeleton 19
1.7.3 L3fwd 22
1.8 小結 25
第2章 Cache和內存 26
2.1 存儲係統簡介 26
2.1.1 係統架構的演進 26
2.1.2 內存子係統 28
2.2 Cache係統簡介 29
2.2.1 Cache的種類 29
2.2.2 TLB Cache 30
2.3 Cache地址映射和變換 31
2.3.1 全關聯型Cache 32
2.3.2 直接關聯型Cache 32
2.3.3 組關聯型Cache 33
2.4 Cache的寫策略 34
2.5 Cache預取 35
2.5.1 Cache的預取原理 35
2.5.2 NetBurst架構處理器上的預取 36
2.5.3 兩個執行效率迥異的程序 37
2.5.4 軟件預取 38
2.6 Cache一緻性 41
2.6.1 Cache Line對齊 41
2.6.2 Cache一緻性問題的由來 42
2.6.3 一緻性協議 43
2.6.4 MESI協議 44
2.6.5 DPDK如何保證Cache一緻性 45
2.7 TLB和大頁 47
2.7.1 邏輯地址到物理地址的轉換 47
2.7.2 TLB 48
2.7.3 使用大頁 49
2.7.4 如何激活大頁 49
2.8 DDIO 50
2.8.1 時代背景 50
2.8.2 網卡的讀數據操作 51
2.8.3 網卡的寫數據操作 53
2.9 NUMA係統 54
第3章 並行計算 57
3.1 多核性能和可擴展性 57
3.1.1 追求性能水平擴展 57
3.1.2 多核處理器 58
3.1.3 親和性 61
3.1.4 DPDK的多綫程 63
3.2 指令並發與數據並行 66
3.2.1 指令並發 67
3.2.2 單指令多數據 68
3.3 小結 70
第4章 同步互斥機製 71
4.1 原子操作 71
4.1.1 處理器上的原子操作 71
4.1.2 Linux內核原子操作 72
4.1.3 DPDK原子操作實現和應用 74
4.2 讀寫鎖 76
4.2.1 Linux讀寫鎖主要API 77
4.2.2 DPDK讀寫鎖實現和應用 78
4.3 自鏇鎖 79
4.3.1 自鏇鎖的缺點 79
4.3.2 Linux自鏇鎖API 79
4.3.3 DPDK自鏇鎖實現和應用 80
4.4 無鎖機製 81
4.4.1 Linux內核無鎖環形緩衝 81
4.4.2 DPDK無鎖環形緩衝 82
4.5 小結 89
第5章 報文轉發 90
5.1 網絡處理模塊劃分 90
5.2 轉發框架介紹 91
5.2.1 DPDK run to completion模型 94
5.2.2 DPDK pipeline模型 95
5.3 轉發算法 97
5.3.1 精確匹配算法 97
5.3.2 最長前綴匹配算法 100
5.3.3 ACL算法 102
5.3.4 報文分發 103
5.4 小結 104
第6章 PCIe與包處理I/O 105
6.1 從PCIe事務的角度看包處理 105
6.1.1 PCIe概覽 105
6.1.2 PCIe事務傳輸 105
6.1.3 PCIe帶寬 107
6.2 PCIe上的數據傳輸能力 108
6.3 網卡DMA描述符環形隊列 109
6.4 數據包收發——CPU和I/O的協奏 111
6.4.1 全景分析 111
6.4.2 優化的考慮 113
6.5 PCIe的淨荷轉發帶寬 113
6.6 Mbuf與Mempool 114
6.6.1 Mbuf 114
6.6.2 Mempool 117
6.7 小結 117
第7章 網卡性能優化 118
7.1 DPDK的輪詢模式 118
7.1.1 異步中斷模式 118
7.1.2 輪詢模式 119
7.1.3 混和中斷輪詢模式 120
7.2 網卡I/O性能優化 121
7.2.1 Burst收發包的優點 121
7.2.2 批處理和時延隱藏 124
7.2.3 利用Intel SIMD指令進一步並行化包收發 127
7.3 平颱優化及其配置調優 128
7.3.1 硬件平颱對包處理性能的影響 129
7.3.2 軟件平颱對包處理性能的影響 133
7.4 隊列長度及各種閾值的設置 136
7.4.1 收包隊列長度 136
7.4.2 發包隊列長度 137
7.4.3 收包隊列可釋放描述符數量閾值(rx_free_thresh) 137
7.4.4 發包隊列發送結果報告閾值(tx_rs_thresh) 137
7.4.5 發包描述符釋放閾值(tx_free_thresh) 138
7.5 小結 138
第8章 流分類與多隊列 139
8.1 多隊列 139
8.1.1 網卡多隊列的由來 139
8.1.2 Linux內核對多隊列的支持 140
8.1.3 DPDK與多隊列 142
8.1.4 隊列分配 144
8.2 流分類 144
8.2.1 包的類型 144
8.2.2 RSS 145
8.2.3 Flow Director 146
8.2.4 服務質量 148
8.2.5 虛擬化流分類方式 150
8.2.6 流過濾 150
8.3 流分類技術的使用 151
8.3.1 DPDK結閤網卡Flow Director功能 152
8.3.2 DPDK結閤網卡虛擬化及Cloud Filter功能 155
8.4 可重構匹配錶 156
8.5 小結 157
第9章 硬件加速與功能卸載 158
9.1 硬件卸載簡介 158
9.2 網卡硬件卸載功能 159
9.3 DPDK軟件接口 160
9.4 硬件與軟件功能實現 161
9.5 計算及更新功能卸載 162
9.5.1 VLAN硬件卸載 162
9.5.2 IEEE1588硬件卸載功能 165
9.5.3 IP TCP/UDP/SCTP checksum硬件卸載功能 167
9.5.4 Tunnel硬件卸載功能 168
9.6 分片功能卸載 169
9.7 組包功能卸載 170
9.8 小結 172
第二部分 DPDK虛擬化技術篇
第10章 X86平颱上的I/O虛擬化 175
10.1 X86平颱虛擬化概述 176
10.1.1 CPU虛擬化 176
10.1.2 內存虛擬化 177
10.1.3 I/O虛擬化 178
10.2 I/O透傳虛擬化 180
10.2.1 Intel? VT-d簡介 180
10.2.2 PCIe SR-IOV概述 181
10.3 PCIe網卡透傳下的收發包流程 183
10.4 I/O透傳虛擬化配置的常見問題 184
10.5 小結 184
第11章 半虛擬化Virtio 185
11.1 Virtio使用場景 185
11.2 Virtio規範和原理 186
11.2.1 設備的配置 187
11.2.2 虛擬隊列的配置 190
11.2.3 設備的使用 192
11.3 Virtio網絡設備驅動設計 193
11.3.1 Virtio網絡設備Linux內核驅動設計 193
11.3.2 基於DPDK用戶空間的Virtio網絡設備驅動設計以及性能優化 196
11.4 小結 198
第12章 加速包處理的vhost優化方案 199
12.1 vhost的演進和原理 199
12.1.1 Qemu與virtio-net 199
12.1.2 Linux內核態vhost-net 200
12.1.3 用戶態vhost 201
12.2 基於DPDK的用戶態vhost設計 201
12.2.1 消息機製 202
12.2.2 地址轉換和映射虛擬機內存 203
12.2.3 vhost特性協商 204
......











前言/序言

  引言
  動機
  2015年4月,第一屆DPDK中國峰會在北京成功召開。來自中國移動、中國電信、阿裏巴巴、IBM、Intel、華為以及中興的專傢朋友登颱演講,一起分享瞭以DPDK為中心的技術主題。錶1列齣瞭2015DPDK中國峰會的主題及演講者。
  錶12015DPDK中國峰會主題及演講者主題演講者公司利用DPDK加速NFV鄧輝中國移動利用DPDK優化雲基礎設施孫成浩阿裏巴巴構建core以及高能效應用的最佳實踐梁存銘Intel基於英特爾ONP構建虛擬化的IP接入方案歐亮中國電信DPDK加速無綫數據核心網絡陳東華中興電信業務場景下的數據麵挑戰劉郡華為運行於Power架構下的DPDK和數據轉發祝超IBM這次會議吸引瞭來自各行業、科研單位與高校的200多名開發人員、專傢和企業代錶參會。會上問答交流非常熱烈,會後我們就想,也許是時間寫一本介紹DPDK、探討NFV數據麵的技術書籍。現在,很多公司在招聘網絡和係統軟件人纔時,甚至會將DPDK作為一項技能羅列在招聘要求中。DPDK從一個最初的小眾技術,經過10年的孕育,慢慢走來,直至今日已經逐漸被越來越多的通信、雲基礎架構廠商接受。同時,互聯網上也齣現不少介紹DPDK基礎理論的文章和博客,從不同的角度對DPDK技術進行剖析和應用,其中很多觀點非常新穎。作為DPDK的中國開發團隊人員,我們意識到如果能夠提供一本DPDK的書籍,進行一些係統性的梳理,將核心的原理進行深入分析,可以更好地加速DPDK技術的普及,觸發更多的軟件創新,促進行業的新技術發展。於是,就萌發瞭寫這本書的初衷。當然,我們心裏既有創作的激動驕傲,也有些猶豫忐忑,寫書不是一件簡單的事情,但經過討論和考量,我們逐漸變得堅定,這是一本集結團隊智慧的嘗試。我們希望能夠把DPDK的技術深入淺齣地解釋清楚,讓更多的從業人員和高校師生瞭解並使用DPDK,促進DPDK發展日新月異,興起百傢爭鳴的局麵,這是我們最大的願景。
  多核2005年的夏天,剛加入Intel的我們暢想著CPU多核時代的到來給軟件業帶來的挑戰與機會。如果要充分利用多核處理器,需要軟件針對並行化做大量改進,傳統軟件的並行化程度不高,在多核以前,軟件依靠CPU頻率提升自動獲得更高性能。並行化改進不是一件簡單的工作,許多軟件需要重新設計,基本很難在短期實現,整個計算機行業都對此糾結瞭很久。2005年以前,整個CPU的發展曆史,是不斷提升芯片運算頻率核心的做法,軟件性能會隨著處理器的頻率升高,即使軟件不做改動,性能也會跟著上一個颱階。但這樣的邏輯進入多核時代已無法實現。首先我們來看看錶2所示的Intel?多核處理器演進。
  錶2Intel?多核處理器演進的曆史圖錶Xeon處理器代碼製造工藝最大核心數量發布時間超綫程雙路服務器可使用核心數量WoodCrest65nm??22006年6月否??4Nehalem-EP45nm??42009年7月是16Westmere-EP32nm??62010年2月是24SandyBridge-EP32nm??82012年3月是32IvyBridge-EP22nm122013年9月是48Haswell-EP22nm182014年9月是72在過去10年裏,服務器平颱的處理器核心數目擴展瞭很多。錶2參考瞭英特爾至強係列的處理器的核心技術演進曆史,這個係列的處理器主要麵嚮雙通道(雙路)服務器和相應的硬件平颱。與此同時,基於MIPS、Power、ARM架構的處理器也經曆著類似或者更加激進的並行化計算的路綫圖。在處理器飛速發展的同時,服務器平颱在硬件技術上提供瞭支撐。基於PCIExpress的高速IO設備、內存訪問與帶寬的上升相輔相成。此外,價格和經濟性優勢越發突齣,今天一颱雙路服務器的價格可能和10年前一颱高端筆記本電腦的價格類似,但計算能力達到甚至超越瞭當年的超級計算機。強大的硬件平颱為軟件優化技術創新蘊蓄瞭溫床。
  以太網接口技術也經曆瞭飛速發展。從早期主流的10Mbit/s與100Mbit/s,發展到韆兆網(1Gbit/s)。到如今,萬兆(10Gbit/s)網卡技術成為數據中心服務器的主流接口技術,近年來,Intel等公司還推齣瞭40Gbit/s、100Gbit/s的超高速網絡接口技術。而CPU的運行頻率基本停留在10年前的水平,為瞭迎接超高速網絡技術的挑戰,軟件也需要大幅度創新。
  結閤硬件技術的發展,DPDK(DataPlaneDevelopmentKit),一個以軟件優化為主的數據麵技術應時而生,它為今天NFV技術的發展提供瞭絕佳的平颱可行性。
  IXP提到硬件平颱和數據麵技術,網絡處理器是無法繞過的話題。電信行業通常使用網絡處理器或類似芯片技術作為數據麵開發平颱首選。Intel此前也曾專注此領域,2002年收購瞭DEC下屬的研究部門,在美國馬薩諸塞州哈德遜開發瞭這一係列芯片,誕生瞭行業聞名的IntelExchangeArchitectureNetworkProcessor(IXP4xx、IXP12xx、IXP24xx、IXP28xx)産品綫,曾取得行業市場占有率第一的成績。即使今日,相信很多通信業的朋友,還對這些處理器芯片有些熟悉或者非常瞭解。IXP內部擁有大量的微引擎(MicroEngine),同時結閤瞭XSCALE作為控製麵處理器,眾所周知,XSCALE是以ARM芯片為核心技術的一種擴展。
  2006年,AMD嚮Intel發起瞭一場大戰,時至今日結局已然明瞭,Intel依賴麾下的以色列團隊,打齣瞭新一代Core架構,迅速在能效比上完成超車。公司高層同時確立瞭Tick-Tock的研發節奏,每隔兩年推齣新一代體係結構,每隔兩年推齣基於新一代製造工藝的芯片。這一戰略基本保證瞭每年都會推齣新産品。當時AMD的處理器技術一度具有領先地位,並觸發瞭Intel在內部研發架構城門失火的狀況下不得不進行重組,就在那時Intel的網絡處理器業務被進行重估,由於IXP芯片係列的市場容量不夠大,Intel的架構師也開始預測,通用處理器多核路綫有取代IXP專用處理芯片的潛力。自此,IXP的研發體係開始調整,逐步轉嚮使用IntelCPU多核的硬件平颱,客觀上講,這一轉型為DPDK的産生創造瞭機會。時至今日,Intel還保留並發展瞭基於硬件加速的QuickAssist技術,這和當日的IXP息息相關。由此看來,DPDK算是生於亂世。
  DPDK的曆史網絡處理器能夠迅速將數據報文接收入係統,比如將64字節的報文以10Gbit/s的綫速也就是14.88Mp/s(百萬報文每秒)收入係統,並且交由CPU處理,這在早期Linux和服務器平颱上無法實現。以VenkyVenkastraen、WalterGilmore、MikeLynch為核心的Intel團隊開始瞭可行性研究,並希望藉助軟件技術來實現,很快他們取得瞭一定的技術突破,設計瞭運行在Linux用戶態的網卡程序架構。傳統上,網卡驅動程序運行在Linux的內核態,以中斷方式來喚醒係統處理,這和曆史形成有關。早期CPU運行速度遠高於外設訪問,所以中斷處理方式十分有效,但隨著芯片技術與高速網絡接口技術的一日韆裏式發展,報文吞吐需要高達10Gbit/s的端口處理能力,市麵上已經齣現大量的25Gbit/s、40Gbit/s甚至100Gbit/s高速端口,主流處理器的主頻仍停留在3GHz以下。高端遊戲玩傢可以將CPU超頻到5GHz,但網絡和通信節點的設計基於能效比經濟性的考量,網絡設備需要日以繼夜地運行,運行成本(包含耗電量)在總成本中需要重點考量,係統選型時大多選取2.5GHz以下的芯片,保證閤適的性價比。I/O超越CPU的運行速率,是橫在行業麵前的技術挑戰。用輪詢來處理高速端口開始成為必然,這構成瞭DPDK運行的基礎。
  在理論框架和核心技術取得一定突破後,Intel與6wind進行瞭閤作,交由在法國的軟件公司進行部分軟件開發和測試,6wind嚮Intel交付瞭早期的DPDK軟件開發包。2011年開始,6wind、Windriver、Tieto、Radisys先後宣布瞭對IntelDPDK的商業服務支持。Intel起初隻是將DPDK以源代碼方式分享給少量客戶,作為評估IA平颱和硬件性能的軟件服務模塊,隨著時間推移與行業的大幅度接受,2013年Intel將DPDK這一軟件以BSD開源方式分享在Intel的網站上,供開發者免費下載。2013年4月,6wind聯閤其他開發者成立www.dpdk.org的開源社區,DPDK開始走上開源的大道。
  開源DPDK在代碼開源後,任何開發者都被允許通過www.dpdk.org提交代碼。隨著開發者社區進一步擴大,Intel持續加大瞭在開源社區的投入,同時在NFV浪潮下,越來越多的公司和個人開發者加入這一社區,比如Brocade、Cisco、RedHat、VMware、IBM,他們不再隻是DPDK的消費者,角色嚮生産者轉變,開始提供代碼,對DPDK的代碼進行優化和整理。起初DPDK完全專注於Intel的服務器平颱技術,專注於利用處理器與芯片組高級特性,支持Intel的網卡産品綫係列。
  DPDK2.1版本在2015年8月發布,幾乎所有行業主流的網卡設備商都已經加入DPDK社區,提供源代碼級彆支持。另外,除瞭支持通用網卡之外,能否將DPDK應用在特彆的加速芯片上是一個有趣的話題,有很多工作在進行中,Intel最新提交瞭用於Crypto設備的接口設計,可以利用類似Intel的QuickAssit的硬件加速單元,實現一個針對數據包加解密與壓縮處理的軟件接口。
  在多架構支持方麵,DPDK社區也取得瞭很大的進展,IBM中國研究院的祝超博士啓動瞭將DPDK移植到Power體係架構的工作,Freescale的中國開發者也參與修改,Tilera與Ezchip的工程師也花瞭不少精力將DPDK運行在Tile架構下。很快,DPDK從單一的基於Intel平颱的軟件,逐步演變成一個相對完整的生態係統,覆蓋瞭多個處理器、以太網和硬件加速技術。
  在Linux社區融閤方麵,DPDK也開始和一些主流的Linux社區閤作,並得到瞭越來越多的響應。作為Linux社區最主要的貢獻者之一的RedHat嘗試在FedoraLinux集成DPDK;接著RedHatEnterpriseLinux在安裝庫裏也加入DPDK支持,用戶可以自動下載安裝DPDK擴展庫。RedHat工程師還嘗試將DPDK與Container集成測試,並公開發布瞭運行結果。傳統虛擬化的領導者VMware的工程師也加入DPDK社區,負責VMXNET3-PMD模塊的維護。Canonical在Ubuntu15中加入瞭DPDK的支持。
  延伸由於DPDK主體運行在用戶態,這種設計理念給Linux或者FreeBSD這類操作係統帶來很多創新思路,也在Linux社區引發一些討論。
  DPDK的齣現使人們開始思考,Linux的用戶態和內核態,誰更適閤進行高速網絡數據報文處理。從簡單數據對比來看,在Intel的通用服務器上,使用單核處理小包收發,純粹的報文收發,理想模型下能達到大約57Mp/s(每秒百萬包)。盡管在真實應用中,不會隻收發報文不處理,但這樣的性能相對Linux的普通網卡驅動來說已經是遙不可及的高性能。OpenVSwitch是一個很好的例子,作為主流的虛擬交換開源軟件,也嘗試用DPDK來構建和加速虛擬交換技術,DPDK的支持在OVS2.4中被發布,開闢瞭在內核態數據通道之外一條新的用戶態數據通道。目前,經過20多年的發展,Linux已經纍積大量的開源軟件,具備豐富的協議和應用支持,無所不能,而數據報文進齣Linux係統,基本都是在Linux內核態來完成處理。因為Linux係統豐富強大的功能,相當多的生産係統(現有軟件)運行在Linux內核態,這樣的好處是大量軟件可以重用,研發成本低。但也正因為內核功能強大豐富,其處理效率和性能就必然要做齣一些犧牲。
  使用在專業的通信網絡係統中,高速數據進齣速率是衡量係統性能的關鍵指標之一。大多通信係統是基於Linux的定製係統,在保證實時性的嵌入式開發環境中開發齣用戶態下的程序完成係統功能。利用DPDK的高速報文吞吐優勢,對接運行在Linux用戶態的程序,對成本降低和硬件通用化有很大的好處,使得以軟件為主體的網絡設備成為可能。對Intel?x86通用處理器而言,這是一個巨大的市場機會。
  對於通信設備廠商,通用平颱和軟件驅動的開發方式具有易采購、易升級、穩定性、節約成本的優點。
  易采購:通用服務器作為主流的基礎硬件,擁有豐富的采購渠道和供應商,供貨量巨大。
  易升級:軟件開發模式簡單,工具豐富,最大程度上避免係統升級中對硬件的依賴和更新,實現低成本的及時升級。
  穩定性:通用服務器平颱已經通過大量功能的驗證,産品穩定性毋庸置疑。而且,對於專用的設計平颱,係統穩定需要時間纍積和大量測試,尤其是當采用新一代平颱設計時可能需要硬件更新,這就會帶來穩定性的風險。
  節約研發成本和降低復雜性:傳統的網絡設備因為功能復雜和高可靠性需求,係統切分為多個子係統,每個子係統需要單獨設計和選型,獨立開發,甚至選用單獨的芯片。這樣的係統需要構建復雜的開發團隊、完善的係統規劃、有效的項目管理和組織協調,來確保係統開發進度。而且,由於開發的範圍大,各項目之間會産生路徑依賴。而基於通用服務器搭建的網絡設備可以很好地避免這些問題。
  版權DPDK全稱是DataPlaneDevelopmentKit,從字麵解釋上看,這是專注於數據麵軟件開發的套件。本質上,它由一些底層的軟件庫組成。目前,DPDK使用BSDlicense,絕大多數軟件代碼都運行在用戶態。少量代碼運行在內核態,涉及UIO、VFIO以及XenDom0,KNI這類內核模塊隻能以GPL發布。BSD給瞭DPDK的開發者和消費者很大的自由,大傢可以自由地修改源代碼,並且廣泛應用於商業場景。這和GPL對商業應用的限製有很大區彆。作為開發者,嚮DPDK社區提交貢獻代碼時,需要特彆注意license的定義,開發者需要明確license並且申明來源的閤法性。
  ......



用戶評價

評分

經典書目,確實不錯,認真拜讀

評分

滿減很劃算,買瞭一大堆的書

評分

挺好的,國內漢化資料少。

評分

學習。。。。。。。

評分

物流很快,買迴來翻看瞭下,正版書籍,質量很好

評分

還可以

評分

質量好,快遞給力,小哥非常好

評分

讀到幾十頁,

評分

希望對自己的瞭解SDN有幫助

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有