近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告。我们组选了sdn。原以为这东西会是工业界无人问津的概念化产品,Google了一下却发现事实上sdn挺火的,因为它可能带来的可扩展性,一些大互联网企业也在開始涉足相关的研发,比方Google呵Facebook。这里简要的梳理下我对SDN概念性的认识。

背景

虚拟化的大趋势

近年来,大数据、云计算兴起,虚拟化技术的重要性越发突出。提到虚拟化,不得不提的是计算机行业里的一句老话:

计算机世界的绝大部分问题都能够通过分层的方法来解决

事实上虚拟化也能够理解成一种分层的思想。就拿云计算这个应用场景来说,虚拟化的技术就是在原有的硬件-操作系统-用户层次中,增添了虚拟机这么一层,变成了硬件-虚拟机-操作系统-用户,用虚拟机来管理硬件资源,添加了动态调整硬件资源的语义。

纵观计算机的发展历程,各方面都能够看到通过添加类似的虚拟化层次来提高生产效率的案例。比方高级语言之于汇编,比方图形界面之于命令行。这样的加入层次的解决方式,总是能让问题得到更清晰的解决。

网络虚拟化

网络经历了数十年的发展,现在在人们的生产、生活中发挥着巨大的作用。全球的网络拓扑结构结构错综复杂,有很多的自制系统组成。数据包从中国的一台PC机发出,訪问到美国的主机,需经过一系列的路由、转发,而经由的网络拓扑节点由层层网关、路由器支配,难于控制。一些组织,在架设自身的可扩展、大规模网络环境时,也相同遇到了拓扑结构复杂、难于维护的问题。

假设能剥离开网络的物理拓扑结构,将网络资源虚拟化,隐藏物理结构的复杂性,统一的进行逻辑层的管理控制,就能满足多变的网络需求了。

SDN和OpenFlow就是一个这种解决方式。

OpenFlow和SDN

OpenFlow起源于斯坦福的Ethane项目。该项目试图通过一个集中式的控制器,让网络管理员能够方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。受到此项目的启示,斯坦福的老师和学生将Ethane的设计更一般化,将传统网络设备的数据转发(data plane)和路由控制(control plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置。2008年,他们提出了OpenFlow的概念。

这样的分布式的实现方式,让控制平面能够和转发平面物理的分离开,控制平面全然能够执行在运算能力更强的server上,而不是路由器。OpenFlow协议则是分离的两者之间的通信协议。关于OpenFlow的技术细节,《虚拟化的逆袭:OpenFlow和SDN》一文中有简明介绍。

基于OpenFlow为网络带来的可编程的特性,有研究人员提出了SDN即Software Defined Network(2009年)。在这个概念中,网络中全部的网络设备被视为被管理的资源,以此抽象出一个网络操作系统(Network OS)的概念,这个网络操作系统一方面抽象了底层网络设备的详细细节,同一时候还为上层应用提供了统一的管理视图和编程接口。SDN的架构细节,參见《SDN是生意
OpenFlow是技术》

SDN和OpenFlow的关系,就像互联网之于TCP/IP协议栈。OpenFlow是SDN的核心协议,用于控制转发面设备的控制转发。而SDN是上层的变成界面。

有观点觉得,『OpenFlow是技术,SDN是生意』。近期对SDN唱衰的报道也证明了这桩『生意』的前途未仆。

SDN的发展

在云计算飞速发展的同一时候,SDN也喧嚣尘上。Google,Facebook等大公司也结成了产业联盟,来推动其发展。

但其现状也并不是一片明朗:

依据IDC的研究结果显示,在2013年,整个企业网络行业的市场价值为420亿美元,当中将近一半来自2-3层网络交换机市场。SDN仅仅能产生约37亿美元的价值(8.8%),并且要到2016年才干达到这个数字。与早前的预測相比,IDC的预測数字有所添加,但从整个网络行业来看,SDN仍然相去甚远。

一方面,SDN的性能还有待改善,还有一方面,因为SDN的统一平台的思想,会带来硬件设备的同质化,威胁到厂商的利益,将会面临来自厂商锁定的阻力。《理性看待SDN》一文中有较具体的解释。

尽管虚拟化能解放生产力,是大势所趋,但就像功耗更大的复杂指令集在市场上战胜了精简指令集一样,市场是残酷的。仅仅能期待开源和开放的脚步不要停下。

參考


PS:欢迎訪问博客新家
http://biaobiaoqi.me

SDN:软件定义网络的更多相关文章

  1. openflow 和 sdn (软件定义网络) 原理和教程

    OpenFlow概述 OpenFlow简介 通俗的讲,OpenFlow是使用类似于API进程配置网络交换机的协议.OpenFlow的思路很简单,网络设备维护一个FlowTable并且只按照FlowTa ...

  2. 《SDN软件定义网络从入门到精通》导论课

    http://mp.weixin.qq.com/s?__biz=MjM5MTM3MzIzMg==&mid=209513316&idx=1&sn=e5dbd9a2ccccb88d ...

  3. SDN前瞻 该来的来了!SDN 软件定义网络

    SDDC:Software Defined Data Center 软件定义数据中心,全数据中心软件化. 在我们接触SDN概念之前,服务器虚拟化,软件虚拟化技术已经是非常成熟了.如果网络能够被虚拟化, ...

  4. SDN 软件定义网络----学习1

    原文地址https://www.infoq.cn/article/sdn-and-cloud-network 1.1,什么是 SDN? 什么是 SDN?SDN 的官方解释上提出了 SDN 的三个特性: ...

  5. [Virtualization][SDN] 讲的很好的SDN软件定义网络视频课程

    51CTO的免费课程,开始以为是扯蛋的,后来看了一下,讲的很好.注册一下,免费的. 只看了导论,挺好的. http://edu.51cto.com/course/course_id-4466.html

  6. DevOps之软件定义网络SDN

    唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <软件定义网络SDN(Software Defined Network)> 关于软 ...

  7. 软件定义网络(Software Defined Network,SDN)简介

    SDN的三大关键要素 第一关键要素是转发与控制分离,这使得网络交换机的数据转发变得更加简单.快速:同时,控制变成了网络操作系统中一个相对集中的逻辑功能. 第二个关键要素是OpenFlow协议,它向交换 ...

  8. 《软件定义网络:SDN与OpenFlow解析》

    <软件定义网络:SDN与OpenFlow解析> 基本信息 原书名:SDN: Software Defined Networks 原出版社: O'Reilly Media 作者: (美)Th ...

  9. SDN前瞻 软件定义网络的一些概念

    SDN的核心:可编程性 SDN的思想:SOA面向服务 面向服务的体系结构(service-oriented architecture SOA) 使网络连接的大量计算机易于合作,以 服务 而不是人工交互 ...

随机推荐

  1. 『重构--改善既有代码的设计』读书笔记----Hide Delegate

    所谓委托关系,就是一个类对于另一个类来说纯粹作为接口转发,即客户通过一个委托类去调用另一个对象.直白的委托关系就是委托类直接返回出目标类给客户调用,这个关系很麻烦,因为委托关系的变动就会影响客户端的代 ...

  2. javascript中的基本数据类型

    在javascipt中有五大基本数据类型,列表如下: 1.数字 他们又又包括(正负整数,浮点数)十进制数,十六进制数与八进制数,指数和特殊数值NaN,(Infinity,-Infinity)正负无穷 ...

  3. 知识备忘phpcms 简单解析一 数据表字段

    PHPCMS V9帮助中心 数据结构 phpcms v9 数据... phpcms v9 数据... PHPSSO 数据库结... phpcms v9 数据表结构 在线版 PHPCMS V9 数据结构 ...

  4. openerp binary filed import export

    1: user  xmlrpc 2: use csv file to export import but want to change the csv model field_size_limit

  5. 修改app名字

    一张图说明问题 如果没有成功clean一下,或者卸载掉原有的重新生成一下 如果要修改路径名和工程名有个复杂的方法 http://blog.sina.com.cn/s/blog_a42013280101 ...

  6. 转:PHP开发者应了解的24个库

    原文来自于:http://blog.jobbole.com/54201/ 作为一个PHP开发者,现在是一个令人激动的时刻.每天有许许多多有用的库分发出来,在Github上很容易发现和使用这些库.下面是 ...

  7. 关于float与double

    //float与double的范围和精度 1. 范围 float和double的范围是由指数的位数来决定的. // float的指数位有8位,而double的指数位有11位,分布如下:// float ...

  8. ubuntu 解压rar

    Ubuntu下解压rar文件的方法 一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简单的,只需要两个步骤 ...

  9. Automated Telephone Exchange

    Time Limit: 3000MS Memory limit: 65536K 题目描述In St Petersburg phone numbers are formatted as “XXX–XX– ...

  10. IBM Websphere 说明文档

    http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Finfo%2F ...