P4 編程入門
潘衛平、龔誌敏
買這商品的人也買了...
-
Linkers and Loaders (Paperback)$2,480$2,430 -
UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers$2,410$2,290 -
人月神話:軟體專案管理之道 (20 週年紀念版)(The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2/e)$480$379 -
程式設計師的自我修養-連結、載入、程式庫$580$493 -
Debug Hacks 除錯駭客 -- 極致除錯的技巧與工具$580$458 -
Binary Hacks -- 駭客秘傳技巧一百招$580$458 -
Linux Kernel Hacks 改善效能、提昇開發效率及節能的技巧與工具$680$537 -
Peopleware:腦力密集產業的人才管理之道 (增訂版) (Peopleware: Productive Projects and Teams, 3/e)$420$357 -
ARM 系統開發者指南 (ARM System Developer's Guide: Designing and Optimizing System Software)
$800$720 -
Cloud Computing : Theory and Practice, 2/e$2,760$2,622 -
從 Paxos 到 Zookeeper:分散式一致性原理與實例 (舊名: 撐起14億人電商的技術機密:用Paxos及ZooKeeper打造分散叢集)$580$493 -
Kali Linux 滲透測試工具|花小錢做資安,你也是防駭高手, 3/e$880$748 -
Programming Persistent Memory: A Comprehensive Guide for Developers (Paperback)$1,663,260$1,575,720 -
軟體架構原理|工程方法 (Fundamentals of Software Architecture: A Comprehensive Guide to Patterns, Characteristics, and Best Practices)$680$537 -
資料密集型應用系統設計 (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems)$980$774 -
$2,160Parallel and High Performance Computing (Paperback) -
軟件定義網絡(SDN)基礎教程$299$284 -
$422SDN/NFV 精要:下一代網絡圖解指南 -
軟件定義網絡(SDN)技術與應用$239$227 -
高並發系統實戰派:集群、Redis 緩存、海量存儲、Elasticsearch、RocketMQ、微服務、持續集成等$654$621 -
基於 MATLAB / Simulink 的控制系統模擬及應用$474$450 -
控制之美 (捲2) - 最優化控制 MPC 與卡爾曼濾波器$474$450 -
$374控制之美 (捲1) - 控制理論從傳遞函數到狀態空間, 2/e -
Spring Boot 零基礎入門:從零到專案開發,古古帶你輕鬆上手(iThome鐵人賽系列書)$720$562 -
$710網絡操作系統 SONiC:原理、技術與實踐
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
VIP 95折
深入淺出 SSD 測試 : 固態存儲測試流程 方法與工具$594$564 -
VIP 95折
MCP 開發從入門到實戰$515$489 -
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
RISC-V 架構 DSP 處理器設計$534$507 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
85折
$454RAG 實踐權威指南:構建精準、高效大模型之道 -
79折
$564CUDA 並行編程與性能優化 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
VIP 95折
大模型驅動的具身智能 架構,設計與實現$534$507 -
VIP 95折
納米級CMOS VLSI電路(可制造性設計)$474$450 -
VIP 95折
Manus應用與AI Agent設計指南:從入門到精通$359$341 -
VIP 95折
高薪Offer 簡歷、面試、談薪完全攻略$414$393 -
VIP 95折
軟件系統優化$534$507 -
VIP 95折
芯片的較量 (日美半導體風雲)$414$393 -
VIP 95折
Manus AI 智能體從入門到精通$294$279 -
87折
$981深度學習:基礎與概念 -
79折
$469GitHub Copilot 編程指南 -
87折
$469Cursor 與 Copilot 開發實戰 : 讓煩瑣編程智能化 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
Verilog HDL 計算機網絡典型電路算法設計與實現$354$336 -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
VIP 95折
高薪Offer 簡歷、面試、談薪完全攻略$414$393 -
VIP 95折
軟件系統優化$534$507 -
79折
$469GitHub Copilot 編程指南 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673 -
VIP 95折
深入淺出 Docker, 2/e$419$398 -
85折
$658Unity 特效制作:Shader Graph 案例精講 -
79折
$275零基礎玩轉國產大模型DeepSeek -
VIP 95折
人工智能大模型:機器學習基礎$774$735 -
VIP 95折
RAG 極簡入門:原理與實踐$419$398 -
VIP 95折
大模型實戰 : 從零實現 RAG 與 Agent 系統$419$398 -
VIP 95折
算法趣學(第2版)$348$331 -
VIP 95折
大模型理論與實踐——打造行業智能助手$354$336 -
85折
$509生成式人工智能 (基於 PyTorch 實現) -
VIP 95折
機器人抓取力學$894$849 -
VIP 95折
集成電路版圖設計從入門到精通$474$450 -
VIP 95折
Java 學習筆記, 6/e$839$797 -
VIP 95折
ZBrush遊戲角色設計(第2版)$479$455
相關主題
商品描述
"網絡技術是雲計算的關鍵技術之一,可編程交換芯片技術是網絡領域近年來比較有影響力的新技術,是 軟件定義網絡(Software Defined Network,SDN)理念的進一步發展,也是走向網絡全組件可編程的必由之路。 P4語言是可編程交換芯片的標準編程語言,風格類似於C語言。借著可編程交換芯片的發展契 機,P4語言從可編程交換芯片、可編程網卡逐漸擴展到FPGA(現場可編程門陣列)、DPDK(Data Plane Development Kit)、eBPF(擴展伯克利包過濾器)等,初步展現成為網絡數據面統一編程語言的潛質。 本書共分為6章。第1章介紹可編程交換芯片的產生背景、實現原理、特點和優勢;第2章概述P4 語言的特點,介紹P4編程架構,並以一個P4版“hello,world”程序展示P4語言的各個編程要素;第3章 詳細介紹P4語言,包括數據類型、表達式、語句等,並重點介紹與可編程交換芯片相關的重要組件;第 4章介紹P4編程環境的搭建,方便讀者進行實踐操作;第5章通過13個精心設計的P4編程實例,幫助 讀者掌握P4編程的核心概念和技術;第6章介紹可編程交換芯片的實戰項目,幫助讀者在實際的學習工 作中靈活應用可編程交換芯片技術。 本書面向高等學校電腦網絡方向的本科生、研究生,以及雲計算、因特網企業中的網絡研發工程 師、架構師,也可供對可編程交換芯片、P4語言感興趣的讀者學習參考。 "
作者簡介
潘衛平,百度資深軟件工程師,碩士畢業於北京工商大學。2014年加入百度系統部,長期從事高性能報文處理方向的研發工作,參與過多種不同類型的網關產品的研發,目前在基礎公有雲部從事虛擬交換機的研發工作,在高性能網絡、網絡虛擬化等技術方向有豐富的研發經驗。
目錄大綱
目 錄
第1章 可編程交換芯片概述..........................................................1
1.1 可編程交換芯片產生的背景...............................................................................1
1.1.1 可編程交換芯片是SDN發展過程的自然產物 ............................................1
1.1.2 可編程交換芯片的發展是學界與業界互相促進的結果 ..............................3
1.2 可編程交換芯片的實現原理...............................................................................4
1.2.1 傳統交換芯片存在的問題 ..............................................................................4
1.2.2 可編程交換芯片的設計目標 ..........................................................................6
1.2.3 可編程交換芯片的參考實現——RMT架構 ................................................7
1.2.4 可編程交換芯片與傳統交換芯片的比較 ....................................................13
1.3 可編程交換芯片的應用場景.............................................................................14
1.3.1 傳統交換設備功能的增強 ............................................................................14
1.3.2 網關類應用 ....................................................................................................15
1.3.3 新型網絡應用 ................................................................................................16
1.4 本章小結..........................................................................................................16
第2章 P4語言概述.................................................................17
2.1 P4語言的特點.................................................................................................17
2.2 P4語言規範....................................................................................................19
2.3 P4編程架構....................................................................................................19
2.4 P4報文路徑....................................................................................................22
2.5 P4 “hello, world” 實例程序..............................................................................24
2.6 P4學習資料....................................................................................................30
2.7 P4語言的發展前景..........................................................................................31
2.8 本章小結..........................................................................................................31
第3章 P4語言詳解.................................................................32
3.1 P4語言概述....................................................................................................32
3.1.1 P4語言的關鍵字 ...........................................................................................32
3.1.2 P4語言的數據類型 .......................................................................................32
3.2 P4語言基本數據類型及其表達式....................................................................33
3.2.1 無符號整型 ....................................................................................................33
3.2.2 有符號整型 ....................................................................................................36
3.2.3 整型常量 ........................................................................................................38
3.2.4 varbit類型 ......................................................................................................38
3.2.5 布爾類型 ........................................................................................................39
3.2.6 error類型 .......................................................................................................40
3.3 復合數據類型及其表達式................................................................................40
3.3.1 枚舉類型 ........................................................................................................41
3.3.2 結構類型 ........................................................................................................44
3.3.3 元組類型 ........................................................................................................45
3.3.4 header類型 ....................................................................................................46
3.3.5 header stack類型 ...........................................................................................49
3.3.6 header union類型 ..........................................................................................50
3.3.7 集合類型 ........................................................................................................51
3.3.8 extern類型 .....................................................................................................53
3.4 有關數據類型的其他主題................................................................................53
3.4.1 類型默認值 ....................................................................................................53
3.4.2 未初始化的值 ................................................................................................54
3.4.3 類型轉換 ........................................................................................................54
3.4.4 類型別名 ........................................................................................................55
3.4.5 類型嵌套規則 ................................................................................................56
3.4.6 運算符的優先級 ............................................................................................56
3.4.7 表達式的求值順序 ........................................................................................58
3.4.8 P4中非法算術表達式舉例 ...........................................................................58
3.5 函數.................................................................................................................59
3.6 語句.................................................................................................................60
3.6.1 賦值語句 ........................................................................................................60
3.6.2 條件語句 ........................................................................................................60
3.6.3 switch語句 .....................................................................................................61
前言
V
3.6.4 return語句 ......................................................................................................62
3.6.5 exit語句 .........................................................................................................62
3.7 control.............................................................................................................62
3.7.1 control的定義 ................................................................................................63
3.7.2 action ..............................................................................................................64
3.7.3 table ................................................................................................................65
3.7.4 control調用的方法 ........................................................................................69
3.8 parser..............................................................................................................70
3.8.1 parser的定義 .................................................................................................70
3.8.2 parser中的語句 .............................................................................................71
3.8.3 parser value set ...............................................................................................73
3.9 deparser..........................................................................................................74
3.9.1 將數據插入報文 ............................................................................................74
3.9.2 計算checksum ...............................................................................................75
3.10 package..........................................................................................................76
3.11 本章小結..........................................................................................................76
第4章 P4開發環境搭建............................................................77
4.1 使用虛擬機搭建P4開發環境..........................................................................78
4.1.1 安裝Ubuntu 20.04 .........................................................................................78
4.1.2 安裝P4開發環境 ..........................................................................................78
4.2 BMv2網絡拓撲的搭建.....................................................................................79
4.3 P4程序的編譯和運行......................................................................................80
4.3.1 編譯P4“hello,world”實例程序 .................................................................80
4.3.2 運行P4“hello,world”實例程序 .................................................................80
4.4 simple_switch_CLI使用方法介紹....................................................................84
4.4.1 simple_switch_CLI命令概覽 ........................................................................84
4.4.2 通過simple_switch_CLI進行表項配置 .......................................................85
4.5 本章小結..........................................................................................................87
第5章 P4編程實例.................................................................88
5.1 可編程parser實例..........................................................................................88
5.1.1 parser實例的主要功能 .................................................................................89
5.1.2 parser實例的代碼清單 .................................................................................89
5.1.3 parser實例代碼的詳細解釋 .........................................................................93
5.1.4 parser實例的運行 .......................................................................................101
5.1.5 parser實例小結 ...........................................................................................104
5.2 最長前綴匹配算法lpm實例..........................................................................104
5.2.1 lpm實例的主要功能 ...................................................................................104
5.2.2 lpm實例的代碼清單 ...................................................................................105
5.2.3 lpm實例代碼的詳細解釋 ...........................................................................108
5.2.4 lpm實例的運行 ...........................................................................................109
5.2.5 lpm實例小結 ...............................................................................................112
5.3 三態匹配ternary實例....................................................................................112
5.3.1 ternary實例的主要功能 ..............................................................................113
5.3.2 ternary實例的代碼清單 ..............................................................................113
5.3.3 ternary實例代碼的詳細解釋 ......................................................................116
5.3.4 ternary實例的運行 ......................................................................................117
5.3.5 ternary實例小結 ..........................................................................................120
5.4 範圍匹配range實例......................................................................................120
5.4.1 range實例的主要功能 ................................................................................120
5.4.2 range實例的代碼清單 ................................................................................121
5.4.3 range實例代碼的詳細解釋 ........................................................................123
5.4.4 range實例的運行 ........................................................................................124
5.4.5 range實例小結 ............................................................................................126
5.5 可編程deparser實例....................................................................................127
5.5.1 deparser實例的主要功能 ............................................................................127
5.5.2 deparser實例的代碼清單 ............................................................................127
5.5.3 deparser實例代碼的詳細解釋 ....................................................................131
5.5.4 deparser實例的運行 ....................................................................................133
5.5.5 deparser實例小結 ........................................................................................135
5.6 selector實例.................................................................................................135
5.6.1 selector實例的主要功能 .............................................................................137
5.6.2 selector實例的代碼清單 .............................................................................137
5.6.3 selector實例代碼的詳細解釋 .....................................................................138
5.6.4 selector實例的運行 .....................................................................................140
5.6.5 selector實例小結 .........................................................................................142
5.7 register實例..................................................................................................143
5.7.1 register實例的主要功能 .............................................................................143
5.7.2 register實例的代碼清單 .............................................................................144
5.7.3 register實例代碼的詳細解釋 .....................................................................147
5.7.4 register實例的運行 .....................................................................................150
5.7.5 register實例小結 .........................................................................................153
5.8 counter實例..................................................................................................154
5.8.1 counter實例的主要功能 .............................................................................154
5.8.2 counter實例的代碼清單 .............................................................................154
5.8.3 counter實例代碼的詳細解釋 .....................................................................156
5.8.4 counter實例的運行 .....................................................................................158
5.8.5 counter實例小結 .........................................................................................161
5.9 meter實例.....................................................................................................161
5.9.1 meter實例的主要功能 ................................................................................161
5.9.2 meter實例的代碼清單 ................................................................................161
5.9.3 meter實例代碼的詳細解釋 ........................................................................162
5.9.4 meter實例的運行 ........................................................................................164
5.9.5 meter實例小結 ............................................................................................166
5.10 resubmit/recirculate實例.............................................................................167
5.10.1 resubmit實例的主要功能 .......................................................................168
5.10.2 resubmit實例的代碼清單 .......................................................................168
5.10.3 resubmit實例代碼的詳細解釋 ...............................................................169
5.10.4 resubmit實例的運行 ...............................................................................172
5.10.5 resubmit實例小結 ...................................................................................175
5.11 clone實例...................................................................................................175
5.11.1 clone實例的主要功能 .............................................................................176
5.11.2 clone實例的代碼清單 .............................................................................176
5.11.3 clone實例代碼的詳細解釋 .....................................................................177
5.11.4 clone實例的運行 .....................................................................................178
5.11.5 clone實例小結 .........................................................................................181
5.12 vnic實例......................................................................................................181
5.12.1 vnic實例的主要功能 ..............................................................................183
5.12.2 vnic實例的代碼清單 ..............................................................................183
5.12.3 vnic實例代碼的詳細解釋 ......................................................................185
5.12.4 vnic實例的運行 ......................................................................................186
5.12.5 vnic實例小結 ..........................................................................................189
5.13 P4Runtime實例..........................................................................................189
5.13.1 P4Runtime實例的主要功能 ...................................................................191
5.13.2 P4Runtime實例的代碼清單 ...................................................................192
5.13.3 P4Runtime實例代碼的詳細解釋 ...........................................................194
5.13.4 P4Runtime控制面代碼 ...........................................................................197
5.13.5 P4Runtime實例的運行 ...........................................................................200
5.13.6 P4Runtime實例小結 ...............................................................................203
第6章 P4項目實戰...............................................................204
6.1 P4項目立項與軟硬件平臺選型......................................................................204
6.1.1 P4項目立項需要考慮的問題 .....................................................................204
6.1.2 P4硬件平臺選型 .........................................................................................205
6.1.3 P4軟件平臺選型 .........................................................................................205
6.2 基於P4和可編程芯片的虛擬路由器.............................................................206
6.2.1 虛擬路由器的功能 ......................................................................................207
6.2.2 虛擬路由器適合用P4和可編程芯片實現嗎 ............................................212
6.2.3 基於P4和可編程芯片的虛擬路由器的需求定義 ....................................214
6.2.4 基於P4和可編程芯片的虛擬路由器的概要設計 ....................................214
6.3 基於P4和可編程芯片的分流器.....................................................................218
6.3.1 網關設備的部署模式 ..................................................................................218
6.3.2 網關集群化部署模式的缺點和問題 ..........................................................222
6.3.3 分流器設計 ..................................................................................................223
6.4 本章小結........................................................................................................230
參考文獻................................................................................231



