严格来说,控制面与数据面分离并不是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. golang中使用Shutdown特性对http服务进行优雅退出使用总结

    golang 程序启动一个 http 服务时,若服务被意外终止或中断,会让现有请求连接突然中断,未处理完成的任务也会出现不可预知的错误,这样即会造成服务硬终止:为了解决硬终止问题我们希望服务中断或退出 ...

  2. [Effective Java 读书笔记] 第二章 创建和销毁对象 第一条

    第二章  创建和销毁对象 第一条 使用静态工厂方法替代构造器,原因: 静态工厂方法可以有不同的名字,也就是说,构造器只能通过参数的不同来区分不同的目的,静态工厂在名字上就能表达不同的目的 静态工厂方法 ...

  3. 06-HTML

    今日知识 1. HTML基本语法 2. 特殊符号表示 3.总结 HTML 1. Hyper Text Mark Language 超文本标记语言 * 超文本: * 超文本是用超链接的方法,将各种不同空 ...

  4. 【机器学习】算法原理详细推导与实现(六):k-means算法

    [机器学习]算法原理详细推导与实现(六):k-means算法 之前几个章节都是介绍有监督学习,这个章解介绍无监督学习,这是一个被称为k-means的聚类算法,也叫做k均值聚类算法. 聚类算法 在讲监督 ...

  5. Qt 条件编译 arm windows linux 判断 跨平台

    如果代码里面有些判断需要不同的参数做判断: 办法:在pro文件里面做定义 方法1:直接定义一个宏:用的时候可以直接判断,这样做不好的地方是编译前需要重新切换一下宏 1)定义宏 DEFINES += _ ...

  6. Multicast

    Source Specific Multicast (SSM) The multicast that you are probably familiar with (PIM sparse and de ...

  7. Flutter Widgets 之 InkWell 和 Ink

    注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 InkWell InkWell组件在用户点击时出现&quo ...

  8. windows7安装.NET Framework 4.5.2 框架(迅雷下载链接)

    .NET Framework 4.5.2 框架 数据库安装windows7安装mysql时需要 迅雷下载链接: https://download.microsoft.com/download/E/2/ ...

  9. vuex目录配置

    vuex目录配置,即vue-cli开发时目录配置 项目结构 Vuex 并不限制你的代码结构.但是,它规定了一些需要遵守的规则: 应用层级的状态应该集中到单个 store 对象中. 提交 mutatio ...

  10. 【python基础语法】第8天作业练习题

    """ # 第一题: # 要求:请将数据读取出来,转换为以下格式 {'data0': '数据aaa', 'data1': '数据bbb', 'data2': '数据ccc ...