Software Defined Networking(Week 2, part 1)

History of SDN 1.1 - 1.2

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

课程地址

SDN的四个历史阶段

  • 背后的支持技术的不断发展。例如可编程数据平面,控制平面和数据平面分离

  • 控制平面和数据平面分离的细节和历史缘由

  • 为特定的、不同的数据平面开发控制通道。

  • 有了控制通道和数据平面的分离的思想之后,在一些特定的标准中,又有了两者间的某种重合。

接下来的内容我们会先讨论支持SDN思想背后的那些网络技术的发展过程。

Evolution of Supporting Technologies(1980s)

下面讨论的是中心网络控制(Central Network Control)思想的起源。Central Network Control 的思想并不是一开始就有的,特别是在早期的网络实现中,控制平面和数据平面是集合到同一个通道,一起操作的。

in-band signaling

有一种技术,或者可以说是一种范式,称为in-band signaling(带内发信),这是一个控制和数据集合在一起的例子。(Control and Data together)

In telecommunications, in-band signaling is the sending of control information within the same band or channel used for voice or video. This is in contrast to out-of-band signaling which is sent over a different channel, or even over a separate network. In-band signals may often be heard by telephony participants, while out-of-band signals are inaccessible to the user.

在使用电话网络的情况下,数据和控制信息都是通过同一个信道传输的。传输使用特定的频率来清理中继线(trunk line),或者用特定的脉冲来路由定向通讯目标,使用这样的方法来取得对通信的控制。同时,传输数据也是用的同一个信道。总之这种方法的优点就是带来了简易性。但也有坏处,使得网络本身变得十分脆弱,以及安全性较差。

Network Control Point

Central Network Control 思想最早可以追溯到上世纪八十年代,AT&T, 美国电话电报公司(American Telephone and Telegraph Company)采取的一种技术手段——Network Control Point,网络控制点,这也是一种沿用至今的技术。

这种技术就对上面的 in-band signaling 尝试做出改进。它尝试从信号、声音、数据中把对传输的“控制”分离出来,这样做是为了有利于让它发展更多的服务业务。具体的理念是:让所有的信号都经过这个 NCP ,NCP 来完成控制的工作,比方说与数据库进行交换数据,处理一些辅助信息等等。

这种尝试中心控制的概念带来了一些好处,例如,人们可以根据特定的需求来配置一些特定的设备,而且相较以往,为了实现新服务而更新设备的速度也变得更快了。还有,消除了 in-band signaling 的概念减少了配置网络的开销。因为相对于 in-band signaling 来说,这种新的思路能够让网络的管理者更清楚到底网络里面在运作着什么样的功能,这样不仅他们去配置网络的时间能够减少,还有利于更快、更准确配置网络资源。除此之外,还有一点非常重要的是,当人们想要在已有的网络上添加新的服务时,中心控制的思想能够让我们非常方便地实现我们想要的目标。新的服务和各种应用,能够非常容易的在此基础上建立。

简言之,Central Control 有最重要的两点好处。

  • 将整个网络看成一个大的“广义节点”,管理者可以直接地、很清楚地观察自己网络的情况。

  • 将数据、基础设施、服务的发展独立开来。例如,我们可以在已有的数据和基础设施上应用新的服务,而不用换掉所有的网络设备。

Programmability in Networks:Active Networks(1990s)

这里讨论的是网络可编程性,最早可追溯至90年代的Active Network(活跃网络)思想。我们会讨论什么是 Active Network,以及它的目的是什么,背后驱动着 Active Network 的技术有哪些,以及它和 SDN 的关联。

What is Active Networks

Active networking is a communication pattern that allows packets flowing through a telecommunications network to dynamically modify the operation of the network.......Active networking allows the possibility of highly tailored and rapid "real-time" changes to the underlying network operation.

翻译:活跃网络是一种沟通模式,它允许数据包流经一个电信网络动态修改网络的操作

活跃网络允许高度定制的可能性和快速“实时”更改底层网络操作。

老师给了个定义:

Networks where switches perform custom computations on packets.

也说的是数据包运行执行自定义的计算or工作。

例子:

  • 在每个路由器中追踪各个 packet 活动的 Trace program。

  • middlebox,例如防火墙(Firewall)、代理服务器(proxy),应用程序服务等等。

wiki - A middlebox or network appliance is a computer networking device that transforms, inspects, filters, or otherwise manipulates traffic for purposes other than packet forwarding. Common examples of middleboxes include firewalls, which filter unwanted or malicious traffic, and network address translators, which modify packets' source and destination addresses.

这些都是对网络中的 packet 进行定制的操作的行为。我们可以认为 middlebox 就是 Active Networks 比较现代的一种体现方法。

Origination

Active Networks 的思想来源于1994-1995年间美国国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA)所做的一些研究。当时研究人员讨论现有网络体制存在的一些问题。例如想要在现有的庞大的框架下应用新的技术十分的困难;好几层的协议层使得网络不堪重负、多余操作很多、运行效率低、运行效果差;配置新设备也十分困难,等等。

Motivation for Active Networks

  • 让创新提速。

    • 互联网的革新很依赖于各种配件的统一。设计一个一致的结构是非常非常重要的。
    • 对于重大革新,从提出原型到成功实现往往需要花费十几年的时间。
  • 引入 Active Node 概念。允许路由器下载新的服务到它的设施上。

    • 这样可以启发更多的用户主导型创新。

这里的主旨是:packet 不仅携带要传输的信息,还携带可能对这些信息进行的操作或者程序。这种 Active Routers 可以和原有的路由器共存。这种可编程的交换机就可以对数据进行额外的操作。

两种实现方法

  • Capsules("integrated")

这是一种比较极端的方法,也就是每个要发送的 packet 都带有一段程序。网络中的 “Active Node” 会对 packet 中携带的信息和代码进行评价,然后将其分配给可编程交换机or路由器上的某个执行环境。

  • Programmable Switches("discrete")

这第二种方法相比第一种来说更常见,也基本上就是SDN的模式。在这种方法中,强调的是由可编程的交换机保存 packet 中的代码,根据其代码,执行不同的操作。packet 会根据其 head field information 来分配到合适的代码区域。

What Happened to Active Networks?

这项技术已经早在二十年前被提出来,为什么我们不能够更早一点实现这项技术呢?

  • Time was off

    • no clear applications.
    • hardware support wasn't cheap.
  • Some missteps

    • security.
    • End-user as programer(vs. network operator)
    • interoperability

时机不是特别好,在当时,对于这种概念(可编程性)没有很明确的应用程序,例如现在对于SDN来说特别重要的数据中心(data center)的概念在当时是没有的。还有就是当时的硬件支持所需要的花费并不便宜。而现在,我们有了更多的可以支持可编程数据平面的硬件支持选择,例如TCAMs,FPGA,等等。

在这些技术的发展进程中也走了一些弯路。例如当时非常注重安全性问题,想方设法开发新的编程语言来实现安全编程。可是由于太过注重这方面,却忽略了我们的初衷——为网络提供可编程性。无论是用哪种实现方法,我们的目的都是要为基础设施提供灵活的可编程性。

当时的想法是把 End-user(终端用户)作为Programmer,而不是SDN所强调的Network operator。

  • In contrast: OpenFlow
    • simple firmware upgrade.
    • switch hardware support the basics.

当时还为了使 Active Networks 与当时现有的网络设计和配置相互协同工作做了许多考虑。但OpenFlow在这点上与之前的做法截然相反。

OpenFlow essentially punted that, they did a very good job at grappling with backwards compatibility and existing switch hardware.

OpenFlow抛弃了之前的那一套做法,而是采取了向后兼容性的策略,所以说OpenFlow是推倒重来的设计。有效地推动了固件升级来支持OpenFlow,现在许多的硬件都已支持。

Legacy

  • Programmable functions in network to enable innovation.

为网络提供可编程性的功能,方便网络创新。在这一点上, SDN 的思路和愿望可以说是和 Active Networks 是一样的。

  • Demultiplexing programs on packet.

packet 中的 code 可以存储在可编程的交换机中,然后根据 code 中的信息将 packet 多路分用,分配到正确的区域中去。这一点是很重要的,也是来源于 Active Network。

  • Paying attention to middleboxes.

对 middlebox 投入了大量关注和研究,动机之一是为了不同的 middlebox 的扩散,但有实现一个统一的架构的愿景。

Active networks pay a lot attention to middleboxes. One of the motivations for Active networks was the proliferation of different kinds of middleboxes and vision of unifying architecture.

posted @ 2017-03-25 11:33  畅畅1  阅读(340)  评论(0编辑  收藏  举报