Control of Packet-switch Network

我们已经讨论过中心控制网络的原理,但主要是以电话网络做模型的。现在我们来看看对于分组交换网络的控制是如何改进的。

Why Separate Control?

以前一直反复提到的“数据平面与控制平面分离”、“转发与控制分离”,那这么做的原因是为什么?

(老生常谈)

  • More rapid innovation.

控制逻辑与硬件不再是直接紧密联系在一起的,这有利于加速创新。

  • Network-wide view.

让控制器获得对整个网络的非常清晰的视野,使得网络管理者更加容易去推断网络的行为。

  • Flexiblity

最后,如果使用了单独的控制通道,那就可以引入单独分离的控制器,方便引入新的服务和应用。

Custom Control:IETF Forces (2003)

下面介绍三种控制分组交换网络的技术。

Forces Protocol,是第一个将控制通道从分组交换网络中分离出来的协议,最早标准化于2003年。协议允许许多控制元素(control element,CE)去控制传输元素(forwarding element,FE)。也就是说,交换机、各种 FE,由一个叫 forces interface 的标准化的控制通道来控制。在forces interface 之上,又有各种控制器来控制 FE 的具体行为。这也是有一点像 OpenFlow 的模型。但这种方法存在一个问题:需要采取由供应商提供的标准、并配置新硬件。引入新的控制时很困难。这些障碍与早期的一些工作遇到的障碍是一样的,例如 Active Network。

In some sence, forces looks a lot like OpenFlow but because it required new standardization, adoption and changes to the hardwares deployment, ultimately became very difficult.

Routing Control Platform (RCP) (2004)

RCP 在已有的传输协议上做出一点点小改进。每一个独立的网络拥有一个 RCP,由 RCP 来计算路由信息(而不是路由器),RCP 再使用已有的 BGP(边界网关协议)和其他的网络、路由器进行交流。这里的核心思想是由 RCP 来计算路由信息,计算完成后 RCP 将把信息推送给转发表(forwarding table)。路由器会认为好像还是在和路由器对话,但实质上是由 RCP 来完成计算路由,控制传输的工作。

对网络控制使用“带内协议”(in-band Protocol),可以使“控制”很有效地位于整个网络的中心。RCP 实际上还是使用了 BGP 作为传输协议,整个网络的控制都集中到了中心的一点上。这种方法就让配置新网络更加容易一些,但这种方法也被协议本身(BGP)所控制,RCP 能做的也就是控制 BGP 的路由,不能做到很灵活。实际上,网络管理者是想对更大范围的网络行为做到有效地控制。这种架构在实践中被证明是很有效的,尽管如此,和达到完全的控制平面分离相比,这种方法能达到的效果还是很有限的。

Customized Hardware:Ethane(2007)

在数据平面上使用定制的硬件可以让控制平面支持更多、更大范围的应用。

第一个关于此的项目叫做 Ethane。它为企业定义了一种网络架构,提供了一种粒度细致(fine-grained)的网络政策,主要是 Domain Controller。缺点是需要定制的硬件来支持 Ethane。

OpenFlow (2008)

有没有一种方法可以在现有的协议上运作,又不需要定制新的硬件?这个问题的答案就指向了OpenFlow。

OpenFlow 发挥现有硬件的能力,然后提供一个标准控制协议来控制硬件的行为。OpenFlow 中有一个分离的控制器与交换机流表进行交流,建立转发表交给交换机,来控制转发行为。因为大多数交换机都是自带流表的,OpenFlow 需要做到的就是让交换机的硬件提供商去为流表开发一个接口,那么控制器就可以指导、使用这些流表。

Summary

  • Control and data plane should be decoupled(去耦).

控制平面和数据平面是一定要分离的。垂直集成的控制和数据平面会让引进新的控制非常的困难。例如 forces。

  • Using existing protocols makes deployment easier, but constrain what can be done.

运用现有的协议,会让配置更容易,但会限制行为。例如 RCP 使得配置更容易了,但行为是限制在了BGP 之内。

  • Open hardware allows decoupling of control, can spur adoption.

这一点是 OpenFlow 相比于其他相似的解决方案非常有特色的一点,也是让 OpenFlow 相较其他解决方案更为成功的关键。

Software Defined Networking(Week 2, part 3)的更多相关文章

  1. Software Defined Networking(Week 1)

    前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...

  2. Software Defined Networking For Dummies, Cisco Special Edition

    从接触SDN开始,不论是硬件还是软件,一直都是从具体的点开始,慢慢的勾勒出自己认为的SDN的样子,相信读完这本思科出的关于SDN的书会对其有新的认识 这本书的名字就是Software Defined ...

  3. Improving Network Management with Software Defined Networking

    Name of article:Improving Network Management with  Software Defined Networking Origin of the article ...

  4. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  5. Software Defined Networking(Week 2, part 2)

    History of SDN 1.3 - 1.4 课程地址 Network Virtualization 网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想.我们先讨论何为网络 ...

  6. Software Defined Networking(Week 2, part 1)

    History of SDN 1.1 - 1.2 本节讨论从上世纪八十年代时到现在为止出现的SDN的思想和发展历史.了解历史,可以明白技术后面的成因以及一些原则,并从架构上去大致掌握.了解一些主旨. ...

  7. A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges

    将机器学习用到SDN中的综述:研究的问题和挑战 从流量分类.路由优化.服务质量(Qos)/体验质量(QoE)预测.资源管理和安全性的角度,回顾了机器学习算法如何应用于SDN领域. 相关知识 在SDN中 ...

  8. Software Defined Networking(Week 3, part 1)

    Control and Data Plane Seperation 课程地址 Overview 今天正式地学习一个控制与数据平面分离.学习完本节,应该要掌握何为控制和数据平面,了解它们的功能以及好处, ...

  9. RFIDler - An open source Software Defined RFID Reader/Writer/Emulator

    https://www.kickstarter.com/projects/1708444109/rfidler-a-software-defined-rfid-reader-writer-emul h ...

随机推荐

  1. Scala的映射和元组操作

    映射和元组操作 构造Map // 构造一个不可变的MAP映射,类似与key -> value这样的组合叫做对偶 val score = Map("Jack" -> 12 ...

  2. 小技巧textbox的行数

    没什么技术含量,但如果不知道则实现起来很麻烦. c#中textbox.lines只记录回车的数量,并不是真正的总行数,如何得到呢,请使用: int 总行数 = this.textBox1.GetLin ...

  3. how browser works

    https://developers.google.com/speed/articles/reflow http://blog.letitialew.com/post/30425074101/repa ...

  4. Google官方网页载入速度检测工具PageSpeed Insights 使用教程

    相信有接触前端开发的大神们都听说过Google官方的PageSpeed Tools,这个网页载入速度检测工具有在线版本也有一个 Chrome 扩展,叫PageSpeed Insights,在此之前,J ...

  5. kruskal重构树

    kruskal重构树 kruskal重构树,顾名思义,是在kruskal的时候顺便搞出来的一棵重构树,具体地说是一个堆. 先说说这个东西是怎么搞出来的吧:默认事先把边按边权从小到大排序,在kruska ...

  6. P3707 [SDOI2017]相关分析

    P3707 [SDOI2017]相关分析 线段树裸题?但是真的很麻烦QAQ 题目给的式子是什么不用管,大力拆开,就是\(\frac{\sum x_iy_i-\overline xy_i-\overli ...

  7. 使用Sublime Text 3作为React Native的开发IDE

    1.下载安装Sublime 3 Sublime 3的下载地址:http://www.sublimetext.com/3 选相应的平台进行下载,安装. 2.安装Package Control 默认的Su ...

  8. C#数组 修改

    今天咱们了解下C#中的数组 后面会讲到集合.泛型集合 咱们分开来讲,免得出现混乱 讲完这三个,咱们再汇总一下,看看有什共同点和不同点 定义一个数组: ]; , , , , , , , , , }; 两 ...

  9. pycharm专业版激活码

    K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  10. python爬虫之解析库正则表达式

    上次说到了requests库的获取,然而这只是开始,你获取了网页的源代码,但是这并不是我们的目的,我们的目的是解析链接里面的信息,比如各种属性  @href  @class span  抑或是p节点里 ...