《重构网络-SDN架构与实现》:

SDNLAB 《重构网络-SDN架构与实现》新书有奖试读活动

资源下载

随笔

有幸拜读了李呈前辈和杨泽卫杨老师的作品《重构网络-SDN架构与实现》的前两个章节,晚辈阅读该书之后感悟和学习颇多,特此记之。由于我对章节一的印象十分深刻,所以本文主要是对章节一的小结和感想。

试读章节共有两章,第一章是“SDN重塑网络”,第二章是“SDN南向协议”,结构如下:

Ch1.SDN重塑网络

  • 1.1 SDN是什么
  • 1.2 为什么需要SDN
  • 1.3 网络可编程探索之路
  • 1.4 SDN发展历史
  • 1.5 SDN重塑网络
  • 1.6 本章小结

Ch2.SDN南向协议

  • 2.1 SDN南向协议简介
  • 2.2 狭义SDN南向协议
  • 2.3 广义SDN南向协议
  • 2.4 完全可编程南向协议
  • 2.5 SDN南向协议标准之战
  • 2.6 本章小结

章节1"SDN重塑网络"所阐述的内容从标题即可略窥一二,两位前辈对SDN是什么以及为什么需要SDN进行了详细的解读和说明,内容清晰明了。

Ch1.1 SDN是什么

Ch1.1中介绍了SDN的定义以及三大特征。

定义:

(1)ONRC: "SDN 是一种逻辑集中控制的新网络架构,其关键属性包括:数据平面 和控制平面分离;控制平面和数据平面之间有统一的开放接口OpenFlow。" => 强调数控分离和集中控制等表现形式;

(2)ONF: "SDN是一种支持动态、弹性管理的新型网络体系结构,是实现高带宽、动态网络的理想架构。SDN将网络的控制平面和数据平面解耦分离,抽象了数据平面网络资源,并支持通过统一的接口对网络直接进行编程控制。" => 强调SDN对网络资源的抽象能力和可编程能力。

三大特征:

  • 网络开放可编程
  • 控制平面和数据平面分离
  • 逻辑上的集中控制

及一张体系架构图:

Ch1.2 为什么需要SDN

Ch1.2中对我们为什么需要SDN进行了讨论和阐述。

文中的答案是:"我们需要拥有更多可编程能力的网络, 来支持快速增长的网络业务需求。" 分别从Nick McKeown教授和Shenker教授的两个观点进行了分析。

Nick教授从计算机产业迅速发展的支撑点出发,借鉴了其思想,重新按层次划分了传统网络系统架构的功能模块,层次之间通过开放可编程的协议接口进行通信,创建了SDN体系架构;

  • 面向计算的通用硬件底层 => 面向服务的白盒数据平面 => 一改网络尽力而为服务模式,大幅提升基础网络服务能力,支持上层自顶向下网络设计。
  • 计算机功能的软件定义方式 => 控制层软件定义、控制整网的数据平面 => 可编程能力带来了灵活性,加速网络应用发展和创新。
  • OpenSource => 社区化,加速产业快速发展。

Shenker教授从现网管理复杂、协议种类繁多入手,探寻能够简化网络管理、提高网络可编程能力的途径,由繁化简。他分析了计算机软件编程的发展历程,发现建立网络抽象模型是完成这一转变的关键。而SDN控制平面、数据平面提供了网络的抽象架构,使网络从管理复杂性转向提取简单性的阶段,从而更好的满足用户的需求,简化管理和运维,智化网络。

总结下,本节内容从两个角度对我们为什么需要SDN进行了分析。第一种角度从系统功能重构的角度出发:通过三因素的支撑,形成面向服务的SDN体系结构,从而加速网络产业的发展和应用创新;第二种角度从解决现网问题的角度入手,为了将现网管理复杂性阶段转向提取简单性阶段,进行对网络抽象模型的重定义,达到封装底层网络细节,满足上层易用性需求的目的,SDN架构即是网络抽象模型的合理集合。这两个角度都有相同的特点,即是使网络拥有灵活的可编程能力,从而使网络最大化的适配上层动态业务需求。

这里再从上层的角度来看SDN,上层业务对于网络有如下要求:

  • 网络能够满足我们业务的特定需求,比如直播要求低时延,不卡顿,会议视频要求安全性高,等等。
  • 底层Underlay网络要易于运维、监控,容错率高,有问题能够立即反馈。
  • 业务有动态性和实时性,对网络的灵活性有较高的要求。
  • etc...

SDN控制平面通过全局网络拓扑这一抽象制定相关网络策略,哪条链路过载就做LB,哪条链路故障了换冗余,要安全性走firewall,要快就调度流量,还可以通过编程的方式来灵活控制网络行为,根本不用care底层的细节;哪台机器故障了、过载了,控制层面都能够实时查看,极大的方便了网络运维和管理;白盒化的数据平面设备无条件支持上层业务逻辑和策略下发,最大化的提供支持。SDN就像一块橡皮泥,你想捏成什么样子就捏成什么样子。

在本章节中,学习和收获颇多的即是第一节和第二节,从文字中即可看出两位作者的功底及对SDN的深刻理解,awesome!

Ch1.3 网络可编程探索之路

本节内容介绍了人们对网络可编程的探索之路。

网络设备可配置 => Active Networking => 为获取可编程能力,需要将网络设备中的数据平面和控制平面分离开 => ForCES(数控平面分离先行者) => RCP => 4D(SDN雏形) => SANE, Ethane => OpenFlow的诞生,SDN的正式提出 => SDN控制器,高度抽象的网络模型,提供更加高级的可编程能力 => NPL, 数据平面可编程, 白盒化通用数据平面网络设备, such as P4 => ...


(Figure: The Road to SDN[1])

Ch1.4 SDN发展历史

介绍了SDN的发展历史。

SDN前期大事记:



SDN中期大事记:

SDN大事记:

Ch1.5 & Ch1.6

传统网络已然是十分成功,但是随着万物移云,云计算、大数据、IoT等新兴IT技术的兴起和发展给目前的网络带来了许多无法解决的问题和挑战,传统网络体系结构已十分臃肿,需要做出架构的改变。

SDN下一代网络体系架构,主张从当前应用需求来定义网络,使网络服务、适配于业务;从目前的发展趋势来看,SDN必将成为网络的变革浪潮。

感想

先说结论:《重构网络-SDN构架与实现》这本书无疑是一本好书。这并不是吹捧或是浮夸,接触SDN一年以来,此书能够让我静下心回想起SDN的根源,在阅读的同时无形中加深了对SDN的理解和感悟,当看到"为什么需要SDN"这一章节的时候,作者们的两个角度让晚辈有醍醐灌顶的感觉。从全文的结构来看,本书覆盖SDN的各个方面和角落,既有深度又有广度,不可多得!在SDN的学习之路上有此书指引,实乃晚辈之幸!

参考文献:

[1]Nick Feamster, Jennifer Rexford, Ellen Zegura, The Road to SDN, ACM SIGCOMM Computer Communication Review, Volume 44, Number 2, April 2014, pages 87-98.

《重构网络-SDN架构与实现》阅读随笔的更多相关文章

  1. 浅谈左偏树在OI中的应用

    Preface 可并堆,一个听起来很NB的数据结构,实际上比一般的堆就多了一个合并的操作. 考虑一般的堆合并时,当我们合并时只能暴力把一个堆里的元素一个一个插入另一个堆里,这样复杂度将达到\(\log ...

  2. 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树

    http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...

  3. 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  4. 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...

  5. 转 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为"在计算机科学中,B树(B-tre ...

  6. 【ASP.NET 系列】浅谈缓存技术在ASP.NET中的运用

    本篇文章虽不谈架构,但是Cache又是架构中不可或缺的部分,因此,在讲解Cache的同时,将会提及到部分架构知识,关于架构部分,读者可以不用理解,或者直接跳过涉及架构部分的内容 你只需关心Cache即 ...

  7. 浅谈缓存技术在ASP.NET中的运用

    本篇文章虽不谈架构,但是Cache又是架构中不可或缺的部分,因此,在讲解Cache的同时,将会提及到部分架构知识,关于架构部分,读者可以不用理解,或者直接跳过, 你只需关心Cache即可,具体的架构, ...

  8. Talk About AWS Aurora for MySQL max_connections parameter Calculation | 浅谈AWS Aurora for MySQL数据库中 max_connections参数的计算

    1. The Problem | 现象 When connect to the product environment database of my company, the Navicat show ...

  9. 浅谈DevExpress<三>:在GridView中加载动态图片

    今天的演示效果如下:在GridView中的下拉框中选中一种颜色,则后面的加载相应的图片,如下图: 1.

  10. 浅谈利用同步机制解决Java中的线程安全问题

    我们知道大多数程序都不会是单线程程序,单线程程序的功能非常有限,我们假设一下所有的程序都是单线程程序,那么会带来怎样的结果呢?假如淘宝是单线程程序,一直都只能一个一个用户去访问,你要在网上买东西还得等 ...

随机推荐

  1. 详解struts2中配置action的方法

    如何解决action太多的问题??我们因为需要不同的方法,所以往往建立很多不同的类,但是每个类中往往仅仅几行代码,不仅浪费了时间,而且配置起来也很繁琐,所以,建立一个共有的类,然后根据以下方式来操作, ...

  2. Zabbix漏洞汇总

    一.zabbix: zabbix是监控是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让 ...

  3. 网页头部的声明应该是用 lang="";

    我们经常需要用缩写的代码来表示一种语言,比如用en表示英语,用de表示德语.ISO 639就是规定语种代码的国际标准.最早的时候,ISO 639规定的代码是,用两个拉丁字母表示一种语言,这被称为ISO ...

  4. 微信小程序 --- 模板的使用

    由于微信小程序文件大小的限制,可以把一些公用的文件 单离出来形成模板,从而被各个模板引用: 定义模板第一种方式: 新建一个目录: 写入: <text>hello world</tex ...

  5. 次小生成树(poj1679)

    The Unique MST Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20737   Accepted: 7281 D ...

  6. Hibernate的状态,缓存和映射

    Hibernate的状态,缓存和映射 1.对象的状态 1.1.对象状态的概念和分类 在使用Hibernate操作数据库的时候,我们先创建了JavaBean对象,然后使用session来保存或者更新到数 ...

  7. 阿里云 elastic search 重启 过程

    阿里云 es 重启 elasticsearch  重启 过程 实例变更中   53.13%   准备ECS资源 已完成节点数:4/4, 进度:100%     准备容器服务 进度:100%     变 ...

  8. CentOS安装Nginx-1.6.2+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了pcre等基础组件,具体见<CentOS安装LNMP环境的基础 ...

  9. appfog 添加数据库支持

    1.PhpMyAdmin与app 在同一应用 1.cd进入应用所在的文件夹,输入 git clone git://github.com/appfog/af-php-myadmin.git 2.进入本地 ...

  10. 001-jpa基本概念以及基础注解

    一.什么是JPA JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. S ...