原文链接:https://blog.csdn.net/maijian/article/details/41744535

SDN的概念从提出到现在已经过了4年多了,但是关于SDN最基本的问题,“什么是SDN”的争论和探讨从来都没停止过,就像一些哲学家经常思考的“我是谁”,“我从哪里来”,“我要去哪里”一样。有人跟我说,越讨论越迷糊,有时候觉得清楚了,再跟不同的人讨论,又迷糊了。因为工作的关系,在过去一年的时间内,我到处去跟各个运营商,互联网公司,电商,设备商,普通企业,高校,研究所的不同人进行交流,曾经跟一个朋友自嘲说除了ONF的执行总裁Dan Pitt,可能我是世界上跟别人讲SDN讲得最多的了。在这个过程中我不断反思,不断归纳总结,现在我当然不敢说我的想法就一定是对的,但是我认为我有必要把我的看法分享出来,供大家参考,是否认同不要紧,但是希望能对大家所有启发。

我对SDN的认识可以分为四个阶段,最后一个阶段是在第三个阶段基础上的顿悟。

第一阶段。跟很多其他人一样,我最初接触SDN是从OpenFlow开始的,那个时候甚至都没去思考什么是SDN的问题,本能的就认为OpenFlow就是SDN,SDN就是Openflow,其实潜意识中,就是把SDN看作是一个具体的技术和协议,在将近有半年的时间里,都处于这种认识,因为那个时候还没有接触实际案例,也没有广泛去网上了解关于SDN的技术文章,这是最原始的第一阶段。实际上,就算是现在很多人嘴里面说SDN不等于Openflow,但是潜意识里面还会自觉不自觉地将SDN往Openflow靠拢。为什么呢?因为Openflow是大多数人唯一看得到的具体化的SDN的实现形式(实际上当然还有别的实现形式,但是很多人并没有看到或者看到了也没意识到)

第二阶段。后来随着对各种SDN产品了解和网上诸多技术文章的阅读,逐渐意识到,SDN只是一种架构,一种思想,具体的实现多种多样,OpenFlow只是其中一种。我自己总结出SDN的三个本质属性,认为只要符合控制跟转发分离、有开放的编程接口、集中式的控制就可以认为是SDN。基于这样一种理念,某个产品或者方案,哪怕没有使用Openflow,只要它符合这三个原则,也可以认为是SDN。比如Juniper的Open Contrail,不支持Openflow,但是也是SDN。在很长一段时间内,我都坚定不移地认为这是最符合SDN思想的定义。包括我开始写《深度解析SDN》那本书的期间,也是这样认为。

第三阶段。后来突然看到阿里巴巴推出了自己的SDN方案,在2013 GITC会议期间,我详细听了阿里巴巴专家的介绍,发现他们这种SDN跟我理解中的控制跟转发分离并不相同,他们自己也说他们的SDN不是大家一般所理解中的SDN,他们的SDN是通过软件控制脚本,让这些脚本向远程的交换机发送命令(不清楚是NetConf还是直接的命令行)来控制交换机,交换机上仍然运行了传统的二三层协议,控制跟转发并没有分离,分离的是管理和控制。刚看到这个方案的时候,我马上就问自己,这算不算SDN?我反复思考了这个问题,他们为什么要这么做,而不是使用更彻底的控制跟转发分离?我个人理解是他们网络中已经有了大量传统的交换机,他们不可能把这些交换机都替换掉,但是又想通过软件自动化来代替手动操作,所以就采取了这样一种折衷的做法。这种做法有没有价值?肯定是有,否则他们不会这么干。那算不算SDN?我一时陷入了迷茫。几经思考之后,我认为,其实SDN并没有确切的定义,只要能实现网络自动化,能够满足特定场景的需求,哪怕这种做法对别的用户没有意义,它也应该算SDN。只是从通用的角度来看,这种SDN灵活性比不上控制与转发分离的那种架构,但是不可否认的是,它能解决特定客户特定场景的需求。认识到这一点之后,我在对外宣讲的PPT中,将SDN定义归为三类,第一类是狭义SDN(等同于Openflow),第二类是广义SDN(控制与转发分离),第三类是超广义SDN(管理与控制分离)。而且我认为,第二类定义中的SDN,是最通用,最有价值的一种。

第四阶段。在跟中国电信研究院的专家们一次交流中,我讲了我对SDN的看法之后,研究院的王老师向我提出了一个问题:从SDN的字面意思来看,根本看不出控制与转发分离的意思,你怎么看这个问题?虽然我当时噼里啪啦讲了一堆,回答了这个问题。但是回来之后,我又深入的思考了一下王老师的这个问题,很惭愧,这么一个明显的问题,我之前居然都没去思考过。思考的过程中,我突然有种醍醐灌顶的感觉,就像佛语经常说的那样:看山是山->看山不是山->看山还是山。无论是控制与转发分离,还是管理与控制分离其实都不是SDN的本质定义,SDN的本质定义就是软件定义网络,也就是说希望应用软件可以参与对网络的控制管理,满足上层业务需求,通过自动化业务部署简化网络运维,这是SDN的核心诉求,控制与转发分离不是。但为了满足这种核心诉求,不分离控制与转发,比较难以做到,至少是不灵活。换句话说,控制与转发分离只是为了满足SDN的核心诉求的一种手段,如果某些场景中有别的手段可以满足,那也可以,比如管理与控制分离。

SDN的深入思考(1):SDN的核心本质到底是什么?的更多相关文章

  1. SDN/NFV趋势思考点滴

    一.为什么控制器.网管OSS融合? 1.云化是趋势:传统网络架构管理规模达到瓶颈:微服务架构通过扩充多实例解决管理规模问题.2.NFV是趋势:设备运营商传统网元在云化,以软件形式提供VNF:3.运维体 ...

  2. 腾讯游戏DBA团队的发展自白

    BA这个岗位跟仓管员很像,就是每天给别人发点货,别人在你这儿放点货,DBA工作就是把货尽快给送出去或者让人家尽快放进来.当然,还有一份重要的工作,就是让仓库里摆放的货物尽可能整齐,这也是仓管员的本职工 ...

  3. 如何成为优秀的技术Leader

    技术主管,又叫技术经理,英文一般是 Tech Leader ,简称 TL.随着工作经验的不断积累,能力的不断提升,每个人都有机会成为 Team Leader. 然而在机会到来前,我们必须提前做好准备, ...

  4. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)

    深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编   ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...

  5. SDN概述:简介、工具、环境部署

    一.前言: 本文初步接触 SDN 的相关概念.需要依次完成下面几项任务: SDN 简介 SDN 工具 SDN 环境部署 推荐阅读 推荐阅读下述内容: Ethane 项目,openflow 的基础 op ...

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

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

  7. The Road to SDN: An Intellectual History of Programmable Networks

    文章名称:The Road to SDN: An Intellectual History of Programmable Networks 文章来源:Feamster N , Rexford J , ...

  8. 【论文】The Road to SDN: An Intellectual History of Programmable Networks

    目录 ABSTRACT: 1 Introduction: 2 The Road to SDN: 2.1 Active Networking Technology push and use pull I ...

  9. 解读SDN的东西、南北向接口

    北向接口(Northbound Interface)是为厂家或运营商进行接入和管理网络的接口,即向上提供的接口. 南向接口(Southbound Interface)是提供对其他厂家网元的管理功能,支 ...

随机推荐

  1. 洛谷P1179 【数字统计】

    题目传送门 此题题意十分明确:就是让我们统计在[L , R]区间内的数字2出现的次数. 然后我们再看一看此题的数据范围:1≤L≤R≤100000,所以用n log n的复杂度是可以过的. 1.解题思路 ...

  2. 详解Java8的日期和时间API

    详解Java8的日期和时间API 在JDK1.0的时候,Java引入了java.util.Date来处理日期和时间:在JDK1.1的时候又引入了功能更强大的java.util.Calendar,但是C ...

  3. VS2015中使用qt开发客户端,QPluginLoader加载dll为null的解决办法

    1,问题重现: 使用vs2015开发一款qt软件,使用了QPluginLoader动态加载插件的方式,调试的时候,发现dll模块没有加载进来,debug发现QPluginLoader的instance ...

  4. vuex 状态管理 入门

    vuex是什么 是一个对 数据状态实现集中式管理 的工具.可以解决组件之间传递的问题 多组件共享状态(变量),有一个数据好多组件都用 组件数大于2,任何一个组件修改其他组件都要改变 实现组件通信 St ...

  5. TFT液晶显示屏之绘图板应用

    应用范例: 使用 TOPWAY Smart LCD (HMT043FC-1C) 绘图板应用 第一步建立工程 ① 开TOPWAY TML Graphic Editor 2017 V1.04软件, 点击菜 ...

  6. JavaScript节流与防抖函数封装

    js节流与防抖函数封装 常见应用场景: window的 resize 和 scroll 事件: 文字输入时的 keyup 事件: 元素拖拽.移动时的 mousemove 事件: 防抖 定义:多次触发事 ...

  7. Python——格式输出,基本数据

    一.问题点(有待解决) 1.Python中只有浮点数,20和20.0是否一样? from decimal import Decimal  a = Decimal('1.3') round() 参考文章 ...

  8. Flume 自定义拦截器 多行读取日志+截断

    前言: Flume百度定义如下: Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,F ...

  9. 在webform中使用ajax

    如果你用过Asp.net webform, 说明你也算是.NET 开发的老兵了.WEBform应该是2011-2013左右,当时还用visual studio 2005. visual studio ...

  10. html5之table嵌入form表单布局(务必注意:table标签必须在form表单内部,不能再form表单外部!)

    切记:用table标签来布局form表单元素,table标签必须放在form表单内部,否则可能会出现各种bug 原文地址:https://blog.csdn.net/weixin_43343144/a ...