近期高级网络课的小组任务是在老师给定的范围内自选方向主题研究并做展示报告。我们组选了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》一文中有较具体的解释。

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

參考

  • 什么是SDN(Software Defined Networking)? *
  • OpenFlow/SDN本质论
  • 软件定义网络(SDN):是什么,怎样工作,为什么重要
  • SDN:仍处于起步阶段
PS:欢迎訪问博客新家 http://biaobiaoqi.me

SDN:软件定义网络相关推荐

  1. 科普:SDN(软件定义网络)

    http://www.zdnet.com.cn/wiki-SDN SDN(软件定义网络) 软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean s ...

  2. SDN软件定义网络 学习笔记(4)--数据平面

    SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...

  3. SDN软件定义网络 学习笔记(3)--北向接口、东西向接口

    1. 北向接口 北向接口提供了 SDN 中开发者与控制器间的交互功能.从更为宽泛的角度考虑,北向接口在 SDN 控制器中的作用类似于命令行在传统NOS 中的作用,都是实现了网络管理者对网络的设计与管理 ...

  4. SDN软件定义网络之流表及其组成

    文章目录 SDN软件定义网络之流表 流表由三个组成部分组成--包头域.计数器.动作表 包头 计数器功能 动作表 交换机端口:物理.逻辑.保留 保留端口参数: 流表动作类型 数据包处理流程 版本更新流表 ...

  5. SDN软件定义网络概述,netperf,scapy网络命令简单使用。

    目录 SDN网络架构 SDN(面向网络架构) sdn控制器的三个主要角色: sdn关键特征: sdn网络架构的三层模型: sdn面临的挑战 可靠性问题: 解决方案: 开放能力: netperf命令 环 ...

  6. 关于SDN软件定义网络和NFV网络功能虚拟化

    1.SDN软件定义网络 在传统的网络中,各个转发节点(路由器.交换机)都是独立工作的,内部管理命令和接口也是厂商私有的,不对外开放.而SDN(Software Defined Networking)网 ...

  7. SDN软件定义网络 学习笔记(1)--基本概念

    SDN软件定义网络 学习笔记(1)--基本概念 1. 定义 2. 提出背景 3. 体系结构 1. 定义 软件定义网络(Software Defined Network,SDN),顾名思义,SDN 与传 ...

  8. SDN软件定义网络之SDN交换机物理设备

    文章目录 SDN软件定义网络之SDN交换机 交换芯片 芯片详解 主流芯片 交换机产品 物理交换机 虚拟交换机 设备选型主要考虑的参数 背板带宽 端口密度 端口速率 支持模块类型 带宽类型 其他 时延 ...

  9. SDN(软件定义网络)

    软件定义网络(Software Defined Network, SDN ),是由美国斯坦福大学clean slate研究组提出的一种新型网络创新架构,其核心技术OpenFlow通过将网络设备控制面与 ...

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

    前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想.只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这 ...

最新文章

  1. Tomcat漏洞说明与安全加固
  2. pdf 加深 扫描件_为什么PDF文档不能像Word文档一样随便编辑?如何免费将PDF转换为Word?...
  3. sqlserver2000 中文排序问题
  4. pca主成分分析_降维:主成分分析(PCA)
  5. oracle 查看 统计更新时间,oracle查看和更新统计表的信息
  6. android.mk 添加v7_Android.mk引入第三方jar包和so库文件的方法
  7. postgresql事务
  8. Exception Type: IntegrityError 数据完整性错误
  9. 配置管理系统和整体变更系统有什么区别与联系
  10. Linux 上的NetworkManager示例
  11. 绿色小巧的截图软件MyCatchScreen--程序员必备
  12. 一图看懂16个英语时态
  13. 2020 用html jQuery实现广告轮播图自动切换 滚动页面 鼠标悬浮下标且左右切换图片
  14. 【OpenCV】- 分水岭算法
  15. 判断一个数是否是素数的 n 多种方法
  16. php写抢红包,红包生成函数(微信抢红包)
  17. 维图PDMS切图软件
  18. win10分屏设置一边竖屏_win10两个显示器横屏和竖屏拓展
  19. UIResponder事件处理 _Lenny Kwok
  20. html中text函数,Excel中text函数的使用方法

热门文章

  1. 源码分析-GLSurfaceView的内部实现
  2. Spring4实战学习笔记
  3. ubuntu vsftpd虚拟用户配置/ubuntu12.04上搭建vsftpd服务示例linux
  4. C++11中std::addressof的使用
  5. 正则表达式简介及在C++11中的简单使用
  6. Dlib库中实现正脸人脸检测的测试代码
  7. 致那些还在创业之路上孤独前行的青年大学生们!
  8. github上好的c语言项目,2019 github热门项目
  9. dac生成信号频率取决于_DAC和AOC,谁将是数据通信领域最终赢家?
  10. java安装傻瓜_安装Java傻瓜式教程