严格来说,控制面与数据面分离并不是SDN的专利。从一个chassis角度看,传统路由器其实控制面和转发面也是分离的。Route-enginee和line card分别负责控制面板和转发面。但是传统网络的控制面和转发面并不分离,控制面都是reside每个设备之中,每个设备独立控制行为。而SDN做的恰恰是,把整个网络的控制面抽象出来,白壳只做转发。有点类似,把网络中所有路由器RE干的事情都集中在到一个控制器来做,路由器的线卡继续待在原地负责转发,退化成白壳。

就像导航软件对于交通的知道决策一样,导航软件把拥堵信息通告给驾驶员, 由驾驶员自行决定如何绕开拥堵时, 而大部分驾驶员会选择推荐的最短的不拥堵路径行进, 而这种分布式路径决策很可能会导致新的拥堵,这不是我们所期望的,通信网络也几乎面临相同的问题:
1.IP分组网络,基本原理就是全分布式路径决策;
2.分布式自主选路过程(每个网络设备通过一些路由协议收集网络拓扑,自主选择最短路径转发报文);
3.网络架构有极强的生存能力,网络本身能够全自治完成业务,但网络可控性受到限制;
4.多家厂商设备共同组网的通信网络,要满足设备间协议互通,导致网络支持新业务时间漫长,
5.部署新业务时,网络需要对数量众多的现网设备进行软件升级,对网络运维人员挑战巨大;
6.部署业务要逐个操作网络设备,并保持网络设备配置的一致性,以能协同完成网络业务,部署人员必须学习大量分布式控制协议的技术细节,增加了网络运维的难度,增加了运维成本。
SDN(Software Defined Network)
1.集中控制的网络,网络进行软件化,更好支持网络业务的自动化和自治,
2.简化网络的复杂度,向运维人员屏蔽了技术细节,降低了运维成本;
3.支持业务快速创新,满足快速部署业务的需求,提升业务创新发展速度;
4.集中控制,网络结构得到极大简化,调整网络行为时,不再需要去修改网络本身,只调整SDN内部的软件即可;

数据平面:
1)数据平面的首要工作是通过一系列链路级操作采集传入的数据分组,并执行基本的完整性检查。
2)接下来,数据平面将查找FIB表(FIB表已通过控制平面生成,并通过镜像复制到数据平面),识别数据分组的目的地址,这样的流程被称为快速数据分组处理。快速数据分组处理主要体现在不再需要每次都到控制平面进行查询匹配,从而有效节省了处理时间。
3)当报文不能匹配已有规则时,这些数据分组将会被发送到控制平面进行处理。数据平面的查表采用硬件查表和通用处理器查表两类技。
4)主要使用硬件查表技术的原因:
由于硬件查表具有更高的数据分组转发性能。当然,硬件转发的设计目标主要是针对数据分组维持线速转发,在设计时需要考虑多种因素,包括板卡和机架的空间、预算、电源利用率和吞吐量等,在这些因素条件下设计出来的数据平面会存在转发特点可扩展性的差别,例如,不同的转发表数、不同的转发表项数等。(中低性能需求的场景下,可以使用通用处理器进行查表,这样可以在定制功能时节约成本,)
5)为解决数据报文中的标签经过城域网后可能存在标签不一致问题:
SDN以网络设备的FIB表为界分割数据控制平面,其中交换设备只是一个轻量的、“哑”的数据平面,保留FIB和高速交换转发能力,而上层的控制决策全部由远端的统一控制器节点完成,在这个节点上,网络管理员可以看到网络的全局信息,并根据该信息做出优化的决策,
数据控制平面之间采用SDN南向接口协议相连接,这个协议将提供数据平面可编程性。
6)SDN的数据控制分离的特征主要体现在以下两个方面:
一是采用逻辑集中控制,对数据平面采用开放式接口。(即开放接口打乱了传统网络设备商的垄断地位,因此将面临巨大的阻力。)
7)SDN数控分离的优点:
全局集中控制和分布高速转发
灵活可编程与性能的平衡:FIB为分界线实际上降低了SDN的编程灵活性,但是没有暴露商用设备的高速转发实现细。
开放性和IT化:
数据控制分离在一定程度上可以降低网络设备和控制软件的成本。当前的网络设备是捆绑控制平面功能软件一起出售的,由于软件开发由网络设备公司完成,对用户不透明,因此网络设备及其控制平面软件的定价权完全掌握在少数公司手中,造成了总体价格高昂。在数据控制平面分离以后,尤其是使用开放的接口协议后,将会实现交换设备的制造与功能软件的开发相分离,这样可以实现模块的透明化,从而有效降低成本。虽然硬件价格降低后,相应的软件成本会增加,不过总体来说,IT 化将会是一个有效的节约成本的方案。
8)SND数控分离的不足:
可扩展性问题:这是SDN面临的最大问题,数据控制分离后,原来分布式的控制平面集中化了,即随着网络规模扩大,单个控制节点的服务能力极有可能会成为网络性能的瓶颈。因此控制架构的可扩展性是数据控制分离后的主要研究方向之一。
一致性问题:在传统网络中,网络状态一致性是由分布式协议保证的,
在SDN数据控制分离后,集中控制器需要负起这个责任,如何快速侦测到分布式网络节点的状态不一致性,并快速解决这类问题,也是数据控制分离后的主要研究方向之一。可用性问题:可用性是指网络无故障的时间占总时间的比例,传统网络设备是高可用的,
即发向控制平面的请求会实时得到响应,因此,网络比较稳定,但是在SDN数据控制分离后,控制平面网络的延迟可能会导致数据平面可用性问题。
————————————————
原文链接:https://blog.csdn.net/qq_43166593/article/details/92079736

SDN-数据控制分离的更多相关文章

  1. Javascript模板及其中的数据逻辑分离思想(MVC)

    #Javascript模板及其中的数据逻辑分离思想 ##需求描述 项目数据库的题目表描述了70-120道题目,并且是会变化的,要根据数据库中的数据描述,比如,选择还是填空题,是不是重点题,题目总分是多 ...

  2. 软件定义网络基础---SDN数据平面

    主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...

  3. Oracle 函数 “数据控制,指定某些人只能查看他权限范围内的信息”

    create or replace function work_plan_mask (p_schema VARCHAR2,p_table VARCHAR2) return Varchar2 AS -- ...

  4. MySQL 学习笔记(二):数据库更新、视图和数据控制

    基础准备: 在 school 数据库下建立student.course.sc 三个表: create table student( Sno ) primary key, Sname ) unique, ...

  5. CentOS 7.6最小化安装(系统盘和数据盘分离安装)

    CentOS 7.6最小化安装(系统盘和数据盘分离安装) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建虚拟机 鉴于大家使用的平台操作系统可能不尽相同,博主精力有限,仅演示 ...

  6. .NET+SqlServer 实现数据读写分离

    如今,我们操作数据库一般用ORM框架 现在用.NET Core + EFCore + SqlServer 实现数据读写分离 介绍 为什么要读写分离? 降低数据库服务器的压力 如何实现读写分离? 1.一 ...

  7. SDN原理 控制层 Controller控制器

    本文参照SDN原理视频而成:SDN原理 Controller 概念 从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展. 从整个SDN的架构来看,控制器 处在 ...

  8. YII2.O学习三 前后台用户数据表分离

    之前我们完成了Advanced 模板安装,也完成了安装adminlte 后台模板,这一步是针对前端和后台用户使用不同的数据库表来管理,做到前后台用户分离的效果: 复制一张user数据表并重命名为adm ...

  9. Python3 实现数据读写分离设计

    前言 首先读写分离可以保证数据库的稳定,简单的说就是当网站访问量大时,读写都在一个库,很有可能会出现脏数据的情况,如果采取阻塞似操作,那么用户体验就会变得更差. 而且目前大多数网站的读写是失衡的,以淘 ...

随机推荐

  1. mysql 支持emoji表情

    在mysql插入emoji表情,出现错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8A' for column ' ...

  2. 《Head first设计模式》学习笔记

    1. 单例模式 2. 工厂模式 3. 抽象工厂 4. 策略模式 5. 观察者模式 6. 装饰者模式 7. 命令模式 8. 适配器模式 9. 外观模式 10. 模版方法模式 11. 迭代器模式 设计模式 ...

  3. H3C router cmd

    LAN转WAN:接口下port link-mode route windows CMD,本地连接5的链路本地地址经常有一个百分号加一个数字,该数字即接口索引,fe80::8c79:e4f9:f5a3: ...

  4. H5异步加载多图

    异步加载多图(可能没啥用,加载慢)(图片预加载,提前给浏览器缓存图片) 1. 用一个计数变量记录需要加载的图片个数 2. 用new Image()去加载,加载完给此对象的src赋值要加载的url路径( ...

  5. 珠峰-babel

    #### babel 翻译的require为了给node使用么.浏览器可以使用么.#### amd, cmd的规范.和实现原理.#### babel的三个核心包,什么使用使用.#### babel的几 ...

  6. http各个版本(1/1.1/2)对比

    参考的文章: 从理论到实践 全面理解HTTP/2 HTTP协议以及HTTP2.0/1.1/1.0区别 综合阐述http1.0/1.1/2和https 目录: http1.1 长连接 HTTP 1.1支 ...

  7. go每日新闻--2020-02-27

    go 语言中文网(每日资讯)_2020-02-27 一.Go 语言中文网 如何正确看待 Google 宣布 Fuchsia 操作系统没有选 Go 作为终端开发语言 Actor 还是 CSP?Go 中的 ...

  8. ASP.NET Core MVC的基础学习笔记

    最近由于“武汉肺炎”疫情在家办公,也没闲着,最近学习了一下asp.net core mvc的一些网页开发的的基础知识,话不多说直接上教程! 一.创建Web应用程序 1)创建新项目--->找到 “ ...

  9. 移动端rem.js

    rem 只与 html 的 font-size 有关,比如html{font-size: 16px} body{font-size: 62.5%},那么 1rem 还是 16px,与其他无关 在头部引 ...

  10. 嵌入式设备sqlite库移植和使用

    1]官网下载sqlite-autoconf-3300100.tar.gz,网址https://www.sqlite.org/download.html,2]解压:tar zxvf sqlite-aut ...