近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告。我们组选了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. .net软件工程师面试题(参考答案)

    一.填空题(每空1分,共12分) 1面向对象的语言具有__封装______性.__继承_______性.__多态______性. 2能用foreach遍历访问的对象需要实现 ____Ienumerab ...

  2. 我的css reset

    @charset "utf-8"; /*reset*/ body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,f ...

  3. 理解CSS Clip属性及用法

    应用Clip属性实现的一个简单效果图: 样式写法: .my-element { position: absolute; clip: rect(10px  350px  170px  0); /* IE ...

  4. jQuery在on绑定事件时,使用Function.prototype.bind上下文,只能用off(event)解绑函数,否则可能导致事件叠加

    因为一个bind函数,未解绑成功导致事件叠加,搞了一下午. keyup事件绑定: this.$document.on('keyup', this.keyUp.bind(this)); 原解绑函数: t ...

  5. “layout_”下划线开头的属性

    观看幕课网的视频的收获 “layout_”下划线开头的属性都是交给父容器去处理的属性,如: android:layout_width="match_parent" android: ...

  6. 粗谈CGI

    先看看 维基百科上面关于 CGI的介绍http://zh.wikipedia.org/wiki/%E9%80%9A%E7%94%A8%E7%BD%91%E5%85%B3%E6%8E%A5%E5%8F% ...

  7. bt种子文件文件结构

      估计80%以上接触互联网的人都知道bt是什么东西,任何一个用bt下载的人都知道这样一个概念,种子.bt种子就是记录了p2p对等网络中tracker, nodes, files等信息,也就是说,这个 ...

  8. 工作总结:MFC调用Windows自带新建、保存对话框代码

    保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...

  9. java interface

  10. TControl.WMLButtonUp的inherited的作用——是为了给子类控件新的处理消息的机会

    意外注意到这个小细节: procedure TControl.WMLButtonUp(var Message: TWMLButtonUp); begin inherited; // 注意,如果是直接点 ...