fbpx

[email protected]

购物车

 查看订单

  • 我的帐户
东东购 | EasternEast
  • 中文书店
    • 畅销排行榜
      • 小说 畅销榜
      • 童书 畅销榜
      • 外语畅销榜
      • 管理畅销榜
      • 法律畅销榜
      • 青春文学畅销榜
    • 热门分类
      • 社会小说
      • 成功/励志 畅销榜
      • 人物传记
      • 大陆原创
      • 绘本童书
      • 影视小说
    • 文学推荐
      • 文集
      • 戏剧
      • 纪实文学
      • 名家作品
      • 民间文学
      • 中国现当代随笔
    • 新书热卖榜
      • 小说 新书热卖榜
      • 青春文学 新书热卖榜
      • 童书 新书热卖榜
      • 管理 新书热卖榜
      • 成功/励志 新书热卖榜
      • 艺术 新书热卖榜
  • 精选分类
    • 小说
    • 保健养生
    • 烹饪/美食
    • 风水/占卜
    • 青春文学
    • 童书
    • 管理
    • 成功/励志
    • 文学
    • 哲学/宗教
    • 传记
    • 投资理财
    • 亲子家教
    • 动漫/幽默
    • 法律 Legal
    • 经济 Economics
    • 所有分类
  • 关于东东
  • 帮我找书
搜索
首页计算机/网络程序设计P4编程入门

P4编程入门

入门可编程交换芯片(网络全组件可编程的必由之路) 和 P4(可编程交换芯片的标准语言)

作者:潘卫平、龚志敏 出版社:清华大学出版社 出版时间:2024年12月 

ISBN: 9787302677550
年中特卖用“SALE15”折扣卷全场书籍85折!可与三本88折,六本78折的优惠叠加计算!全球包邮!
trust badge

EUR €48.99

类别: 计算机/网络 新书热卖榜, 程序设计 SKU:67815d0ba15f9082ca7297fa 库存: 有现货
  • 描述
  • 评论( 0 )

描述

开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302677550

产品特色

编辑推荐

本书作者结合研发实践,详细讲解P4语言的学习路线,以实际工程项目中运用的实例加深读者对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

11 可编程交换芯片产生的背景1

111 可编程交换芯片是SDN发展过程的自然产物 1

112 可编程交换芯片的发展是学界与业界互相促进的结果 3

12 可编程交换芯片的实现原理4

121 传统交换芯片存在的问题 4

122 可编程交换芯片的设计目标 6

123 可编程交换芯片的参考实现——RMT架构 7

124 可编程交换芯片与传统交换芯片的比较 13

13 可编程交换芯片的应用场景14

131 传统交换设备功能的增强 14

132 网关类应用 15

133 新型网络应用 16

14 本章小结16

第2章 P4语言概述17

21 P4语言的特点17

22 P4语言规范19

23 P4编程架构19

24 P4报文路径22

25 P4 “hello, world” 实例程序24

26 P4学习资料30

27 P4语言的发展前景31

28 本章小结31

第3章 P4语言详解32

31 P4语言概述32

 
311 P4语言的关键字 32

312 P4语言的数据类型 32

32 P4语言基本数据类型及其表达式33

321 无符号整型 33

322 有符号整型 36

323 整型常量 38

324 varbit类型 38

325 布尔类型 39

326 error类型 40

33 复合数据类型及其表达式40

331 枚举类型 41

332 结构类型 44

333 元组类型 45

334 header类型 46

335 header stack类型 49

336 header union类型 50

337 集合类型 51

338 extern类型 53

34 有关数据类型的其他主题53

341 类型默认值 53

342 未初始化的值 54

343 类型转换 54

344 类型别名 55

345 类型嵌套规则 56

346 运算符的优先级 56

347 表达式的求值顺序 58

348 P4中非法算术表达式举例 58

35 函数59

36 语句60

361 赋值语句 60

362 条件语句 60

363 switch语句 61

 
前言

V

364 return语句 62

365 exit语句 62

37 control62

371 control的定义 63

372 action 64

373 table 65

374 control调用的方法 69

38 parser70

381 parser的定义 70

382 parser中的语句 71

383 parser value set 73

39 deparser74

391 将数据插入报文 74

392 计算checksum 75

310 package76

311 本章小结76

第4章 P4开发环境搭建77

41 使用虚拟机搭建P4开发环境78

411 安装Ubuntu 2004 78

412 安装P4开发环境 78

42 BMv2网络拓扑的搭建79

43 P4程序的编译和运行80

431 编译P4“hello,world”实例程序 80

432 运行P4“hello,world”实例程序 80

44 simple_switch_CLI使用方法介绍84

441 simple_switch_CLI命令概览 84

442 通过simple_switch_CLI进行表项配置 85

45 本章小结87

第5章 P4编程实例88

51 可编程parser实例88

511 parser实例的主要功能 89

 
512 parser实例的代码清单 89

513 parser实例代码的详细解释 93

514 parser实例的运行 101

515 parser实例小结 104

52 最长前缀匹配算法lpm实例104

521 lpm实例的主要功能 104

522 lpm实例的代码清单 105

523 lpm实例代码的详细解释 108

524 lpm实例的运行 109

525 lpm实例小结 112

53 三态匹配ternary实例112

531 ternary实例的主要功能 113

532 ternary实例的代码清单 113

533 ternary实例代码的详细解释 116

534 ternary实例的运行 117

535 ternary实例小结 120

54 范围匹配range实例120

541 range实例的主要功能 120

542 range实例的代码清单 121

543 range实例代码的详细解释 123

544 range实例的运行 124

545 range实例小结 126

55 可编程deparser实例127

551 deparser实例的主要功能 127

552 deparser实例的代码清单 127

553 deparser实例代码的详细解释 131

554 deparser实例的运行 133

555 deparser实例小结 135

56 selector实例135

561 selector实例的主要功能 137

562 selector实例的代码清单 137

563 selector实例代码的详细解释 138

 
564 selector实例的运行 140

565 selector实例小结 142

57 register实例143

571 register实例的主要功能 143

572 register实例的代码清单 144

573 register实例代码的详细解释 147

574 register实例的运行 150

575 register实例小结 153

58 counter实例154

581 counter实例的主要功能 154

582 counter实例的代码清单 154

583 counter实例代码的详细解释 156

584 counter实例的运行 158

585 counter实例小结 161

59 meter实例161

591 meter实例的主要功能 161

592 meter实例的代码清单 161

593 meter实例代码的详细解释 162

594 meter实例的运行 164

595 meter实例小结 166

510 resubmit/recirculate实例167

 5101 resubmit实例的主要功能 168

 5102 resubmit实例的代码清单 168

 5103 resubmit实例代码的详细解释 169

 5104 resubmit实例的运行 172

 5105 resubmit实例小结 175

511 clone实例175

 5111 clone实例的主要功能 176

 5112 clone实例的代码清单 176

 5113 clone实例代码的详细解释 177

 5114 clone实例的运行 178

 5115 clone实例小结 181

 
512 vnic实例181

 5121 vnic实例的主要功能 183

 5122 vnic实例的代码清单 183

 5123 vnic实例代码的详细解释 185

 5124 vnic实例的运行 186

 5125 vnic实例小结 189

513 P4Runtime实例189

 5131 P4Runtime实例的主要功能 191

 5132 P4Runtime实例的代码清单 192

 5133 P4Runtime实例代码的详细解释 194

 5134 P4Runtime控制面代码 197

 5135 P4Runtime实例的运行 200

 5136 P4Runtime实例小结 203

第6章 P4项目实战204

61 P4项目立项与软硬件平台选型204

611 P4项目立项需要考虑的问题 204

612 P4硬件平台选型 205

613 P4软件平台选型 205

62 基于P4和可编程芯片的虚拟路由器206

621 虚拟路由器的功能 207

622 虚拟路由器适合用P4和可编程芯片实现吗 212

623 基于P4和可编程芯片的虚拟路由器的需求定义 214

624 基于P4和可编程芯片的虚拟路由器的概要设计 214

63 基于P4和可编程芯片的分流器218

631 网关设备的部署模式 218

632 网关集群化部署模式的缺点和问题 222

633 分流器设计 223

64 本章小结230

参考文献231

 

前  言

为什么要写这本书?

2022年夏天,我们回顾过去两年多从事有关P4语言和可编程交换芯片的研发项目,
有一个很深的体会,那就是“科学技术是第一生产力”。

我们之前长期从事网关研发工作,硬件平台是高性能服务器和高性能网卡,软件平台
是高性能数据平面开发套件及Linux内核协议栈。受限于平台本身,网关性能有限且不稳
定。首先是单台设备的性能有限,目前主流网关的带宽只能达到50Gb/s或者200Gb/s,很
难有数量级的提升。其次是每次更新硬件时,例如更换不同型号的网卡或者CPU,转发
性能都会发生变化,有时会变好,有时会变差,因此每次都要重新进行一遍性能优化工作
才能确保得到预期的性能。最后是在同样配置下,遇到不同类型的流量,网关性能也会产
生较大的波动。例如,受CPU Cache的影响,包长较长的报文,转发性能相对较差。

这种状况在P4和可编程交换芯片出现之后有了很大的变化。使用P4和可编程交换
芯片,可以在交换机上实现网关的功能,带宽较之前提升一个数量级,即从百吉比特每秒
(Gb/s)提升至太比特每秒(Tb/s)级别,并且转发性能也很稳定,一般在平均256字节包
长时便可以达到线速。另外,芯片升级过程也比较平滑,如从3.2Tb/s升级至6.4Tb/s,除
端口数量增加1倍之外,其他地方(包括P4程序等)基本不需要变化。

当一种新的技术取得一个数量级的优势时,它便会展现极强的生命力。

但是学习P4和可编程交换芯片有两个难点。第一个难点是P4语言是一个领域特定
语言(Domain Specific Language,DSL)。P4语言本身并不复杂,有C语言知识的读者基
本就能直接读懂P4源代码。但是P4面向的是可编程交换芯片领域,而可编程交换芯片是
用在交换机中的,这导致P4语言不可避免地涉及很多交换机研发的知识和概念。

P4语言处于网络研发和交换机研发的交叉点上,因此开发人员既要掌握网络开发的
知识,理解业务逻辑,熟悉各种网络协议的处理,又要掌握部分交换机研发的知识,熟悉
交换机的计算资源和存储资源的使用。本书从网络开发者的视角,将交换机研发的专业
知识去粗取精、融会贯通,简洁明了地表述出来,配合P4相关的编程知识,一起呈现给
读者。

第二个难点是P4语言相关资料繁杂。每种资料其实都是有上下文的,编者刚开始学
习时,因为没有厘清P4语言和可编程交换芯片发展的脉络,所以容易如坠迷津,不知所云。
编者经过长时间的阅读、思考、摸索、实践、再阅读、再思考,才逐渐整理出一个比较清
晰的发展脉络。

编者希望这本书能降低初学者学习P4的门槛,提供一份P4学习地图,既能高屋建
瓴、总揽全局、仰观宇宙之大,又能细致入微、鞭辟入里、俯察品类之盛。

 
II

本书面向的读者

本书面向高等学校计算机网络方向的本科生、研究生,为他们写程序、做实验、写论
文提供帮助。本书面向云计算、互联网企业中的网络研发工程师,为他们开展P4相关项
目提供参考。本书面向对P4语言感兴趣的技术专家和架构师,为他们进行项目方案选型
提供新的思路。

一点说明

本书共分为6章,第1章介绍可编程交换芯片的产生背景、实现原理、特点和优势,
第2章介绍P4语言的特点和P4编程架构,第3章详细介绍P4语言,第4章介绍如何搭
建P4编程环境,第5章通过编程实例介绍P4编程的核心概念和技术,第6章介绍P4和
可编程交换芯片的实际项目。本书的开发环境和实例代码的下载地址可扫描下方二维码
获取。

 

配套资源

本书第1章、第2章、第5章和第6章由潘卫平编写,第3章和第4章部分内容由龚
志敏编写,其余部分由潘卫平编写。全书由潘卫平统稿。

非常幸运躬逢信息化和云计算的时代,感谢百度公司提供的良好的工作环境,也感谢
编辑安妮、李燕为本书所做的细致而专业的工作。受到编者认知层次、技术水平、写作能
力以及时间的限制,本书难免有错误或者不准确的地方,欢迎读者指正,联系方式可从本
书配套资源压缩包中获取,不胜感谢。

 编者

 2024年6月

 

抢先评论了 “P4编程入门” 取消回复

评论

还没有评论。

相关产品

阅读更多
缺货

C程序设计语言 第2版·

EUR €24.99
阅读更多
缺货

C++ Primer Plus(第6版)中文版(畅销30年C++必读经典教程全新升级,蔡学镛、孟岩、高博倾力推荐)

EUR €43.99
评分 5.00 / 5
加入购物车

PHP编程 第三版(影印版)

EUR €42.99
加入购物车

Head First HTML5 Programming(中文版)

EUR €48.99

东东购的宗旨是服务喜爱阅读中文书籍的海外人民,提供一个完善的购书平台,让国人不论何时何地都能沉浸在书香之中,读着熟悉的中文字,回忆着家乡的味道。


安全加密结账 安心网络购物 支持Paypal付款

常见问题

  • 货物配送
  • 退换货政策
  • 隐私政策
  • 联盟营销

客户服务

  • 联系东东
  • 关于东东
  • 帮我找书
  • 货物追踪
  • 会员登入

订阅最新的优惠讯息和书籍资讯

选择币别

EUR
USD
CAD
AUD
NZD
NOK
GBP
CHF
SEK
CNY
UAH
ILS
SAR
MXN
KRW
MYR
SGD
HUF
TRY
JPY
HKD
TWD
facebookinstagram
©2020 东东购 EasternEast.com

限时特卖:用“SALE15”优惠券全场书籍85折!可与三本88折,六本78折的优惠叠加计算。 忽略