http://www.sdnap.com/sdnap-post/3859.html

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的深入思考(2):SDN如何落地。

作者新浪微博:@盛科张卫峰,微信ID:zwf-zyy,SDN qq群#苏州盛科-卫峰。版权归作者有需要转载请自行联系作者。

SDN的深入思考(1):SDN的核心本质到底是什么?相关推荐

  1. 中国联通SDN/NFV的思考与实践

    为什么80%的码农都做不了架构师?>>>    编者按:2015中国SDN/NFV大会在北京召开,本次大会围绕SDN/NFV展开讨论,来自运营商.服务提供商等业界巨头纷纷参与此次大会 ...

  2. 百度SDN实践与思考

    为什么80%的码农都做不了架构师?>>>    编者按:2015中国SDN/NFV大会在北京召开,本次大会围绕SDN/NFV展开讨论,来自运营商.服务提供商等业界巨头纷纷参与此次大会 ...

  3. 中国电信云计算及SDx联合技术开发实验室执行主任王峰:中国电信SDN/NFV实践-从边缘到核心...

    2016年6月1-2日,"2016全球SDNFV技术大会"在北京盛大召开.作为连续举办三届的SDN/NFV技术与产业盛会,本届大会着眼于SDN /NFV的实践应用与部署,从SDN/ ...

  4. SDN网络下有哪些SDN交换机选择?

    随着SDN技术的发展,SDN网络架构迎来了历史性的变革,SDN被认为是下一代网络变革的重要方向.而SDN交换机作为一款高性能,高密度的下一代交换机,为SDN大规模的商用部署和下一代网络技术的创新应用, ...

  5. SDN:简述对各类SDN交换机的认识

    SDN:简述对各类SDN交换机的认识 按照SDN交换机所支持的南向协议来看,SDN交换机可分为纯SDN交换机(仅支持OpenFlow协议).混合交换机(支持 Open Flow协议和传统网络协议).自 ...

  6. SDN实验(六)——SDN流量监控

    SDN实验(六)--SDN流量监控 一.流量监控原理 二.代码实现 (一)代码 (二)讲解 三.实验演示 (一)开启Ryu (二)开启Mininet (三)Ryu显示结果 四.扩展 一.流量监控原理 ...

  7. 用户运营的核心本质是什么?分级、分类、分阶段

    ---- / BEGIN / ---- 长久以来,人们对于用户运营这个岗位有诸多的看法和误解,甚至有过些许争论. 比如: 有的人认为:促进产品的用户增长.留存.活跃,都是用户运营工作的范畴内--这样想 ...

  8. 测试的核心价值到底是什么?

    今年对很多人来说是特别艰难的一年,疫情.裁员.股票缩水.经济下行-各种负面消息接踵而至,身边的小伙伴也离开了不少.即便是留着的人,也略显焦虑,生怕哪天就被"组织优化"了.相对产品. ...

  9. SDN:简述对各类SDN控制器的认识

    当前,SDN控制器已经比较成熟,种类也相当繁多,而且活跃的一些控制器项目还在不断发展之中,如 Open Daylight项目不到一年就发布一个新的版本. SDN控制器分为开源控制器和商业控制器. 有些 ...

最新文章

  1. (附下载地址)制作RPM包(星际译王词典包)
  2. python学起来难不难-python很难学?学起来很吃力,想放弃?看别人是怎样学习的...
  3. GDCM:gdcm::Validate的测试程序
  4. 2.数据结构笔记学习--线性表基本操作
  5. 【转】构建Android平台Google Map应用
  6. Node.JS第二讲笔记
  7. 伺服电机停的时候会冲一下_造成伺服电机抖动的原因竟然是它!内附解决方法...
  8. DB2 客户端下载地址
  9. 新点软件怎么导入清单_新点造价软件的QDZ招投标清单使用说明
  10. 估计四川长虹的beta系数
  11. 二维码是如何设计出来的?
  12. Vue--解决官网网站404的问题
  13. 苏宁门店数字化白皮书发布 行业数字化进程将再提速
  14. ffmpeg视频特效
  15. 最简单的python使用ddddocr模块在线识别验证码后登录
  16. linux——dmidecode
  17. 看雪4-ReeHY-main-2017
  18. 定义申请OMA LwM2M Model Object
  19. 什么是RNN?一文看懂强大的循环神经网络(Recurrent Neural Network, RNN)
  20. Centos 6.9中修复文件系统

热门文章

  1. Jenkins+Docker+Spring+Java项目持续集成(单机版)
  2. 4个有助于保护网站免受劫持的方法
  3. c#中的反射的高级语法_Kubernetes第3部分中的seccomp新语法以及一些高级主题
  4. 基于物理的渲染PBR(一):pbr的基础理论和推导
  5. oracle是ascii码,ascii码chr(9),chr(10),chr(13)在oracle中的用法
  6. 思维模型 黄金圈法则
  7. 赏金猎人系列-如何测试sso相关的漏洞
  8. 脑洞 博弈 E. Competitive Seagulls 2017 ACM Arabella Collegiate Programming Contest
  9. 如何编写 Runkeeper 一样的 app(2)
  10. Flash打开其他外部EXE软件