软件定义网络:系统方法
作者 : (美)拉里·彼得森(Larry Peterson);(美)卡梅隆·卡斯克尼(Carmelo Cascone);(美)布莱恩·欧康纳(Brian O''''''''onnor);(美)托马斯·瓦丘斯卡(Thomas Vachuska);(美)布鲁斯·戴维(Bruce Davie) 著
译者 : 林欣;朱利 译
丛书名 : 计算机科学丛书
出版日期 : 2021-11-19
ISBN : 978-7-111-69568-4
适用人群 : 相关专业技术人员,具备计算机网络背景知识的学生
定价 : 69.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 119
开本 : 16
原书名 : Software-Defined Networks: A Systems Approach
原出版社: DA
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

软件定义网络(SDN)正在用开源方式取代专有硬件和控制软件,受到云提供商、电信公司和企业的欢迎,促进了网络的创新发展。本书由开放网络基金会(ONF)的五位专家撰写,对SDN技术做了全面的介绍,强调底层概念、抽象和设计原理。书中给出了一个完整的SDN栈,并用开源软件作为示例进行说明。本书深入讨论了固定功能和可编程交换芯片、用于编程和控制交换的基于P4的工具链,以及一系列SDN用例,包括来自企业、数据中心和接入网络的实例。此外,本书还提供动手编程练习,可从GitHub下载。

图书特色

“系统方法”新作,ONF专家联袂撰写,关注底层概念、抽象和设计原理

图书前言

Internet正在经历一场变革,即远离捆绑式的专有设备,取而代之的是,将网络硬件(之后将成为商品)从控制它的软件(在云中进行扩展)中分离出来。这种变革通常被称为SDN(Software-Defined Networking,软件定义网络),但由于它正在颠覆市场,因此很难将业务定位与技术基础、短期工程决策分开。本书提供了一种分解方式,我们希望读者从本书中学到的最重要的东西是,将基于SDN的网络看作一个运行在商业硬件上的、可扩展的分布式系统。
任何学习过网络入门课程的人都认为协议栈是描述网络的规范框架。不管这个协议栈有七层还是只有三层,它塑造并限制了我们思考计算机网络的方式。教科书也是据此进行组织和编写的。SDN提出了另一种世界观—一种由新的软件栈产生的世界观。本书就是围绕这个新的软件栈进行组织和编写的,目的是呈现从上到下的SDN之旅,不留下任何可能会被读者怀疑而只能用魔术或专有代码来填补的明显空白。本书末尾处,我们邀请你亲自做一些编程练习,从而向自己证明这个软件栈既是真实的,又是完整的。
实现这个目标的一个重要方面是使用开源代码。我们在很大程度上是通过利用两个先进的社区组织来做到这一点的。第一个社区组织是OCP(Open Compute Project,开放计算项目),它正在积极指定和认证运行SDN软件栈的商业硬件(例如裸机交换机)。第二个社区组织是ONF(Open Networking Foundation,开放网络基金会),它正在积极实施一套可以被集成到端到端解决方案中的软件组件。在这个领域内还有许多其他的参与者,从现有的供应商到网络运营商、初创公司、标准机构和其他开源项目,它们每一个都对SDN是什么、不是什么提供了不同的解释。我们讨论这些不同的观点,并解释它们将如何融入更大的计划中,但是不会让这些观点阻碍我们描述SDN的全面性。只有时间会告诉我们,SDN之旅将带我们去向何方,但我们相信,理解“机会的范围”是十分重要的。
本书假定读者对Internet仅有大致了解,当然,对交换机和路由器在转发以太网帧和IP(Internet Protocol,网际协议)数据包的过程中所起的作用有更深入的理解,将会有助于读者阅读本书。本书还包括指向相关背景信息的链接,以帮助读者弥补知识空白。本书还有待完善,我们渴望得到你的反馈和建议。
致谢
本书中介绍的软件源于ONF工程团队以及与该团队一起工作的开源社区的辛勤工作。我们感谢团队和社区成员的贡献,并特别感谢Yi Tseng、Max Pudelko和Charles Chan,感谢他们对本书所包含的实践练习教程所做的贡献。我们也要感谢Charles Chan、Jennifer Rexford和Nick McKeown对初稿的反馈。
Larry Peterson、Carmelo Cascone、Brian O扖onnor、Thomas Vachuska和 Bruce Davie

2020年12月

上架指导

计算机\网络

封底文字

今天,大型数据中心公司已经控制了自己的网络,从设备供应商那里夺得了创新的主动权,接下来登场的将是因特网服务供应商(ISP)和5G运营商。作者从一开始就参与了软件定义网络(SDN)这场革命,他们不仅知道SDN如何发生以及为何发生,而且将帮助我们了解SDN的未来。如果你也有志于投身这场革命,本书将是绝佳的起点。
—— Nick McKeown,斯坦福大学教授,美国国家工程院院士,开放网络实验室创始人

SDN突破了传统的协议栈观点,提出了一种新的软件栈观点。本书正是围绕软件栈展开讨论的,强调将基于SDN的网络看作一个运行在商业硬件上的、可扩展的分布式系统。五位作者均为业界引领者,主导了包括开放网络基金会(ONF)的CORD和Aether项目在内的多项技术创新。他们将实战经验融入书中,对SDN的架构、软硬件组成和可编程性等进行了全面介绍,为读者研究和实践SDN技术奠定了良好的基础。
本书特色
采用作者Larry Peterson和Bruce Davie提出的“系统方法”,从系统视角帮助读者理解SDN的设计与实现,关注底层概念、抽象和设计原理,并通过实例叶-脊结构进行具体说明。
深入讨论固定功能和可编程交换芯片、用于编程和控制交换的基于P4的工具链,以及一系列SDN用例,包括来自企业、数据中心和接入网络的实例。
英文版全书开源(sdn.systemsapproach.org),书中的代码示例和编程练习全部开源(github.com/SystemsApproach/SDN),鼓励读者参与学习及分享。

图书序言

1993年,当我看到最初的Mosaic浏览器时,感到非常惊奇。很明显,有大事要发生了,但当时的我并不知道这件事的影响将会有多么巨大。Internet(因特网)的规模迅速扩大,成千上万家新的ISP(Internet Service Provider,因特网服务供应商)在各地涌现,根植于一片片新的网络中。这些新的ISP需要做的只是将现有的商用交换机、路由器、基站和传统网络设备供应商销售的接入点连接在一起,而无须获得中央控制机构的许可。早期的路由器简单而精练,它们只需要支持Internet协议。这样的分散控制促使Internet迅速发展。
路由器制造商面临一个困境:很难通过销售简单而精练的设备来维持繁荣的盈利业务。再者,如果由简单设备组成的大型网络容易远程管理,那么所有的智能(和价值)都会由网络运营商而非路由器制造商提供。因此,路由器的外部API被控制在了最低限度(“网络管理”被认为是一个笑话)。另外,为了使路由器具有各种用途,路由器里“挤满”了新的功能。到了21世纪00年代中期,ISP所使用的路由器就非常复杂了,能支持数百种协议,运行的源代码超过了一亿行—具有讽刺意味的是,这比有史以来最庞大的电话交换机复杂十倍以上。Internet为这种复杂度付出了巨大的代价:路由器臃肿、耗电、不可靠、难以保证安全,而且价格贵得离谱。最糟糕的是,它们很难改进(ISP需要请求设备供应商添加新的功能),ISP无法自己添加新的功能。网络所有者抱怨路由器供应商的“垄断”行为,研究界则警告说Internet已经“僵化”了。
这本书讲述接下来发生的事情,这也是一个令人兴奋的故事。Larry、Carmelo、Brian、Thomas和Bruce通过具体的示例和开源代码清楚地记录下这段故事:那些拥有并运营大型网络的组织开始编写自己的代码,构建自己的交换机和路由器。一些组织选择用更简单、更易于维护的国产设备取代路由器,另一些组织选择将软件从路由器中转移到远程的集中控制平面上。无论选择哪条道路,开源技术都成为越来越重要的一部分。一旦开源技术在Linux、Apache、Mozilla和Kubernetes上证明了自己,它就可以被信任,也能用来运行我们的网络。
这本书解释了SDN(Software-Defined Networking,软件定义网络)运动发生的原因。它本质上是关于控制的改变:大型网络的所有者和运营商控制了网络的工作方式,从设备供应商那里夺得了创新的主动权。SDN始于各种数据中心公司,因为这些公司无法使用现有的网络设备构建足够大的、可向外扩展的网络。于是它们购买了交换芯片,自己编写了软件。这的确帮它们省了钱(通常能够把成本降低到1/5,或降低更多),但它们更期望的是对网络的控制。这些公司雇了大量的软件工程师,试图激起一次网络新思想的“寒武纪”大爆发,使其网络更加可靠,拥有更快的修复速度,并且能够更好地控制网络业务。2021年的今天,所有的大型数据中心公司都构建了自己的网络设备:这些公司下载并修改开源的控制软件,由自己或委托他人编写新的软件来控制其网络。这些公司已经控制了自己的网络,接下来登场的将是ISP和5G运营商。可以预见,在十年内,企业和校园网络也将运行在开源的控制软件上,并且通过云进行管理。
这是一个很好的变化,因为只有那些大规模网络的拥有者和运营商才知道如何做到最好。
网络构建的革命将朝着网络运营商开发和维护国产软件的方向发展,这种变化就是软件定义网络。本书作者从一开始就参与了这场革命,他们知道这场革命如何发生以及为什么发生。
他们还帮助我们了解未来的网络将是什么样子。网络系统将不再是一堆运行标准化互操作协议的箱子,而是一个可以自己编程的平台。网络所有者将通过对其所期望的行为编程来决定网络的工作方式。网络专业的学生将学习如何规划一个分布式系统,而不是去学习各种遗留协议中那些晦涩难懂的细节。
对于任何对编程感兴趣的人来说,网络又变得有趣了。这本书将会是一个很好的起点。

Nick McKeown
加利福尼亚州,斯坦福

作者简介

(美)拉里·彼得森(Larry Peterson);(美)卡梅隆·卡斯克尼(Carmelo Cascone);(美)布莱恩·欧康纳(Brian O''''''''onnor);(美)托马斯·瓦丘斯卡(Thomas Vachuska);(美)布鲁斯·戴维(Bruce Davie) 著:暂无

译者简介

林欣;朱利 译:暂无

译者序

本书描述新型通信网络架构—软件定义的网络(SDN),更简洁的叫法是“软件定义网络”,其本质上是一种可扩展的、虚拟化的分布式通信网络。书中涵盖SDN的架构、软硬件组成和可编程性(包含源代码),内容很完整,是新型网络技术方面难得的好书。
全书共分八章,外加一些网站上的扩展阅读资源。前两章介绍SDN的概念和应用情况;中间四章讨论SDN的架构和组成,包括三层架构、硬件组成、软件栈及网络操作系统;接下来是SDN架构的实例—叶–脊结构;最后对SDN的未来进行了展望,并给读者提供了编程练习题目。书中强调开源的思想,很多地方都给出了示例性的源代码。本书可以为读者深入研究和实践SDN技术奠定良好的基础。
本书由林欣和朱利翻译,其中:朱利翻译了目录、第5章和第6章,并对专业词汇和译文风格进行了统一,对全部译文进行了校正和质量把控;林欣翻译了其余内容。在翻译过程中,力求忠实于作者的原意,同时也考虑到国内读者的阅读习惯,避免一味地直译。另外,也对原文存在的几处小错误进行了校正。
本人多年从事高等计算机网络与通信的双语教学工作,授课内容中就包含SDN,对计算机网络、通信网络及本书的内容十分熟悉,所以翻译本书还算得心应手。然而,由于时间或认识所限,书中可能会有这样或那样的错误,诚恳地欢迎广大读者批评指正,以便及时纠正。

朱利
2021年7月

图书目录

译者序
序言
前言
关于本书
关于作者
第1章 绪论 1
1.1 市场概况 2
1.2 技术概况 4
1.2.1 分离控制平面和数据平面 4
1.2.2 控制平面:集中式与分布式 8
1.2.3 数据平面:可编程与固定功能 11
1.3 SDN:一种定义 13
第2章 用例 15
2.1 网络虚拟化 16
2.2 交换结构 18
2.3 广域网的业务流工程 19
2.4 软件定义广域网 21
2.5 接入网络 22
2.6 网络遥测 24
第3章 基本架构 27
3.1 软件栈 27
3.2 裸机交换机 30
3.3 交换机操作系统 31
3.4 网络操作系统 32
3.5 叶–脊结构 33
第4章 裸机交换机 37
4.1 交换机示意图 37
4.2 转发流水线 39
4.3 流水线抽象 41
4.3.1 V1模型 44
4.3.2 TNA 46
4.4 P4程序 48
4.4.1 头声明和元数据 48
4.4.2 解析器 49
4.4.3 入口处理 50
4.4.4 出口处理 52
4.4.5 逆解析器 53
4.4.6 交换机的定义 54
4.5 固定功能流水线 54
4.5.1 OF-DPA 55
4.5.2 SAI 56
4.6 比较 57
第5章 交换机操作系统 59
5.1 瘦交换机操作系统 59
5.2 P4Runtime接口 61
5.3 gNMI和gNOI 64
5.4 SONiC 69
第6章 网络操作系统 71
6.1 ONOS架构 71
6.2 分布式内核 74
6.2.1 Atomix原语 75
6.2.2 服务 76
6.3 北向接口 80
6.4 南向接口 83
6.4.1 供应商插件 84
6.4.2 设备驱动程序 84
6.5 可扩展的性能 85
第7章 叶–脊结构 87
7.1 特征集 88
7.2 分段路由 89
7.3 路由和多播 91
7.4 定制的转发 93
第8章 SDN的未来 97
8.1 可验证网络 97
8.2 SD-RAN 100
附录 动手编程 103

教学资源推荐
作者: Gary R.Wright,W.Richard Stevens
作者: James F. Kurose;Keith W. Ross
作者: 熊建强 黄文斌 彭庆喜 主编
作者: 王志文,陈妍,夏秦