ONF成立两年之际,SDN开始得到业界的广泛认同,尤其是从IT真正走入了CT,而CT的网络类型五花八门,这使得SDN的应用场景急剧增长,大有无所不能之势。

业界目前所推的SDN无非两种

方式一是原生的斯坦福/ONF推崇的OpenFlow完全控制的网络架构

方式二是部分厂商推出的设备可编程的架构


方式二的优缺点:

优点:

后者设备的本地控制面仍然要运行传统的协议,可编程是附加的能力,当应用崩溃后,原有设备/网络仍然可以继续正常运行。这一架构的优点看起来很明显,避免了控制面本身故障的问题。

缺点:

  • 首先设备本身的复杂度实际上是增加了,门槛继续加高,不利于新兴的设备厂商的参与;
  • 其次既然部分由传统控制面控制,部分由应用程序控制就需要额外的控制仲裁规则,比如基于OpenFlow Hybrid模式下端口的划分、路由器RIB的合成规则或者增加额外的流分类器等等,这使得可编程性受到限制,客户未必能够操纵所有的转发面状态,使得其实际上更适合于特定的应用优化;

方式一的优缺点:

优点:

是转发面可以彻底简单化,受控转发,在全局的控制面控制下可以做到完全自动化部署、配置和维护

缺点:

  • 目前的硬件不能很好地支持OF1.1+的抽象模型,只能由控制面适配ASIC本身的能力,业务支持受限于特定硬件,所以Nicira选择在vSwitch上支持OpenFlow。
  • 集中控制面的问题,控制面本身的可靠性可以通过分布式技术解决,主要是控制平面本身的时延、可靠性问题,时延随距离增加线性增加,而可靠性则下降更为迅速,关键设备必须要通过双网双平面的方式保证,这使得控制本身的成本大大增加。我们有理由相信Pure OpenFlow的方式更适合于地理上相对较近的网络,比如企业网、数据中心和运营商接入网络。地理跨度更大的网络往往用基于网管接口的方式更加合适。

转发设备芯片,目前速度最快的ASICNPFPGA多核以及纯软转发的x86均有,其处理单元组织可以分为

  • Pipeline
  • SMP/NUMA

pipeline优缺点:

优点:

结构分工明确、可以按Pipeline环节的功能设计进行优化,同样的芯片面积可以做到更高的转发速度

缺点:

需要分解转发逻辑到相应的流水线上,灵活度受限;

SMP优缺点:

优点:

方式编程简单、灵活

缺点:

开销稍高

说到底,灵活和成本是互换的。对于Switch ASIC这样的流水线长度、键值类型和操作都固化特定的芯片而言,控制面很难统一控制不同的设备,比如说我按业务分解到查目的MAC表打上MPLS标签,但是ASIC MAC表只支持打VLAN标签,那么就玩不转了。比较理想的模式转发面Match和Action最好都是可以由控制面定义

比如在数据中心中,主要是端口分类表MAC转发表L3交换表和L3前缀表,那么我就初始化成4个Flowtable三个HASH的,一个BST(二叉树查找表)或TCAM(TCAM具有查找速度快、操作简单的优点,但同时它也具有3个明显的缺点:成本高、功耗大和路由更新复杂。)的即可(此处为说明简化成4张表),那么在运营商网络可能需要增加MPLS、IPv6等表,而这些表对Action的支持是均质的,那么控制器软件就不需要分别和多家多种设备做两两互通测试,真正做到产业链的开放。在这种芯片结构下,大的TCAM不是必须的,除非应用要求进行大量通配表查找,比如大量包含通配的流调度。Nick Mckeown ONS 2013上演讲所提的芯片就是此种类型,其声称增加芯片面积、功耗不到15%,如果属实,那么其一旦商用,将对产业产生真正的颠覆作用,所谓SDN将转发设备简化、开放化的愿景主要依赖于此种芯片。

其实可编程和可配置之间的界限是比较模糊的,如果采用NetFlow统计流量,用NetConf、命令行下配置策略实现流量工程到底是叫配置还是编程?我个人认为这一点区别并不重要,关键是转发面正常运行是否依赖于外部实体的实时响应,如果是,则外部实体(控制面)的可靠性就是和设备处于同一标准,可以称之为控制面,否则就是网管。在完全控制和部分可编程之间也不存在绝对的界限,比如可以将传统控制面路由协议全部关闭,外部由应用控制RIB,当然这和pure OpenFlow方案相比多花了一些冤枉钱。

SDN的两种方式分析相关推荐

  1. Wps 2013 拼音标注两种方式分析

    Wps 2013 拼音标注两种方式分析 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...

  2. 如何计算机车启动牵引力,高中物理机车启动的两种方式分析

    机动车启动问题在高中物理中是一个非常重要的难点问题,它涉及力与运动的关系.能量与功的关系.分析这类问题能培养学生解决实际问题的能力. 上述分析过程中忽略了力.速度与加速度的关系.物体所受的合外力F合决 ...

  3. SAP License:获利分析的两种方式比较

    1.基于成本核算和基于帐户的获利分析比较 CO-PA模块有两种获利分析,基于帐户和基于成本的获利分析,两者联系与区别.利弊如何? a.costing-base采用value field,可对应到cos ...

  4. Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比 标签: AndroidAsyncTaskThreadPool异步加载view 2 ...

  5. android asynctask源码分析,Android通过Handler与AsyncTask两种方式动态更新ListView(附源码)...

    本文实例讲述了Android通过Handler与AsyncTask两种方式动态更新ListView的方法.分享给大家供大家参考,具体如下: 有时候我们需要修改已经生成的列表,添加或者修改数据,noti ...

  6. Android通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    在加载大量数据的时候,经常会用到异步加载,所谓异步加载,就是把耗时的工作放到子线程里执行,当数据加载完毕的时候再到主线程进行UI刷新.在数据量非常大的情况下,我们通常会使用两种技术来进行异步加载,一是 ...

  7. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  8. VS Code - Debugger for Chrome调试JavaScript的两种方式

    VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrom ...

  9. kubernetes创建资源的两种方式

    一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令行的方式直接创建,比如: kubectl run httpd-app --image ...

最新文章

  1. 计算机网络工程应用,计算机网络工程网络命令的应用
  2. 用c语言实现去bmp图片的背景,菲律宾博牛网-官方网站
  3. 可以ping通 但ssh: connect to host 192.168.0.2 port 22: Connection refused
  4. Python3 Flask+nginx+Gunicorn部署(上)
  5. 张一鸣活捉上班摸鱼员工遭怒怼:不爽退群啊!
  6. web myeclipse为什么连接不上css_Web技巧 (03)
  7. Node.js Unix/Linux NVM
  8. cad插入块_软件CAD | 块amp;点工具
  9. win7便笺重启计算机后还有吗,win7里的便签功能关机重启电脑后还有吗?
  10. 食品行业SCM供应链管理平台促进供需协同,赋能产业发展
  11. 计算机毕业设计ssm高校物资捐赠管理系统0e45o系统+程序+源码+lw+远程部署
  12. 【贝尔链创始人Vincent: 区块链不仅是技术革命 更是认知革命】
  13. 1997年小学生计算机知识竞赛,2019年中小学优秀传统文化知识竞赛试题(小学组)97题附全答案...
  14. Docker常用命令(基础)
  15. CMD命令行高级教程精选合编合集
  16. 史上最牛二分查找,不服来战
  17. 如何打造高绩效的研发团队
  18. 债务大爆发,中国30%家庭不堪一击!
  19. 川信计算机组装维护,凉山州中学生技能大赛信息技术类竞赛总结
  20. 关于SurfaceView

热门文章

  1. ROS2机器人操作系统简介2021英文字幕版本
  2. 如何获取广告服务流量变现数据,助力广告效果分析?
  3. 常见的信息安全相关SCI期刊
  4. centos 如何查看操作系统是哪个版本
  5. gdb x命令_Coresight及GDB使用介绍 - 大海在倾听
  6. vue 实现电子签名功能 支持生成图片
  7. iOS release版本
  8. Matlab中repmat函数使用方法
  9. csgo准星设置代码_csgo准星设置指令
  10. 读我们的学科——计算机专业学习浅谈