首页  软件  游戏  图书  电影  电视剧

请输入您要查询的图书:

 

图书 P4编程入门
内容
内容推荐
"网络技术是云计算的关键技术之一,可编程交换芯片技术是网络领域近年来比较有影响力的新技术,是
软件定义网络(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语言感兴趣的读者学习参考。
"
目录
目 录

第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
标签
缩略图
书名 P4编程入门
副书名
原作名
作者 潘卫平、龚志敏
译者
编者
绘者
出版社 清华大学出版社
商品编码(ISBN) 9787302677550
开本 其他
页数 244
版次 1
装订
字数 371
出版时间 2024-12-01
首版时间
印刷时间 2024-12-01
正文语种
读者对象
适用范围
发行范围
发行模式 实体书
首发网站
连载网址
图书大类 教育考试-考试-计算机类
图书小类
重量
CIP核字
中图分类号 TP312
丛书名
印张
印次 1
出版地
整理
媒质
用纸
是否注音
影印版本
出版商国别
是否套装
著作权合同登记号
版权提供者
定价
印数
出品方
作品荣誉
主角
配角
其他角色
一句话简介
立意
作品视角
所属系列
文章进度
内容简介
作者简介
目录
文摘
安全警示 适度休息有益身心健康,请勿长期沉迷于阅读小说。
随便看

 

兰台网图书档案馆全面收录古今中外各种图书,详细介绍图书的基本信息及目录、摘要等图书资料。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/15 5:24:18