SDN-数据控制分离
严格来说,控制面与数据面分离并不是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-数据控制分离的更多相关文章
- Javascript模板及其中的数据逻辑分离思想(MVC)
#Javascript模板及其中的数据逻辑分离思想 ##需求描述 项目数据库的题目表描述了70-120道题目,并且是会变化的,要根据数据库中的数据描述,比如,选择还是填空题,是不是重点题,题目总分是多 ...
- 软件定义网络基础---SDN数据平面
主要介绍SDN架构和转发模型 一:传统网络设备 (一)传统设备控制平面和数据平面 (二)数据平面的任务 数据平面对数据包的处理,主要通过查询由控制平面所生成的转发信息表来完成 (三)传统网络数据平面数 ...
- Oracle 函数 “数据控制,指定某些人只能查看他权限范围内的信息”
create or replace function work_plan_mask (p_schema VARCHAR2,p_table VARCHAR2) return Varchar2 AS -- ...
- MySQL 学习笔记(二):数据库更新、视图和数据控制
基础准备: 在 school 数据库下建立student.course.sc 三个表: create table student( Sno ) primary key, Sname ) unique, ...
- CentOS 7.6最小化安装(系统盘和数据盘分离安装)
CentOS 7.6最小化安装(系统盘和数据盘分离安装) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建虚拟机 鉴于大家使用的平台操作系统可能不尽相同,博主精力有限,仅演示 ...
- .NET+SqlServer 实现数据读写分离
如今,我们操作数据库一般用ORM框架 现在用.NET Core + EFCore + SqlServer 实现数据读写分离 介绍 为什么要读写分离? 降低数据库服务器的压力 如何实现读写分离? 1.一 ...
- SDN原理 控制层 Controller控制器
本文参照SDN原理视频而成:SDN原理 Controller 概念 从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展. 从整个SDN的架构来看,控制器 处在 ...
- YII2.O学习三 前后台用户数据表分离
之前我们完成了Advanced 模板安装,也完成了安装adminlte 后台模板,这一步是针对前端和后台用户使用不同的数据库表来管理,做到前后台用户分离的效果: 复制一张user数据表并重命名为adm ...
- Python3 实现数据读写分离设计
前言 首先读写分离可以保证数据库的稳定,简单的说就是当网站访问量大时,读写都在一个库,很有可能会出现脏数据的情况,如果采取阻塞似操作,那么用户体验就会变得更差. 而且目前大多数网站的读写是失衡的,以淘 ...
随机推荐
- spark 性能优化 数据倾斜 故障排除
版本:V2.0 第一章 Spark 性能调优 1.1 常规性能调优 1.1.1 常规性能调优一:最优资源配置 Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围 ...
- linux 手工释放内存 高内存 内存回收 方法思路
linux 跑的apache,apache工作模式有 Prefork.Worker和 Event 三种,分别是基于进程.线程.综合模式. 本文中使用的apache是 Event ...
- linux下的cron定时任务知识梳理
1 cron定时任务 1.1 cron介绍 为什么需要cron定时任务? 1)cron服务在安装完Linux系统后就默认就存在,主要用来定期执行命令或定期执行指定的应用程序; 2)cron服务默认情况 ...
- Iperf 网络性能测试
1.iperf安装 1.1将iperf_PC.rar工具解压放在默认的盘目录下即可,无需安装 1.2安装iperf for android 2.06.apk"到手机端. adb instal ...
- 浅谈.NET中AppDomain的理解
一.走进.NET AppDomain 天哪,.NET Framwork的CLR真是巧妙呢!随着越来越多的对.Net底层编程的了解,一些诸如架构,处理过程的复杂难懂的细节完全的让我叹服,所以呢,再次错过 ...
- vue路由--命名视图
有时候想同时(同级)展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar(侧导航) 和 main(主内容) 两个视图,这个时候命名视图就派上用场了.你可以在界面中拥有多个单独命名的视图, ...
- 现在连Linux都搞不懂,当初我要是这么学习操作系统就好了!
原创声明 本文首发于微信公众号[程序员黄小斜] 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 简介 学习编程,操作系统是你必须要掌握的基础知识,那么操作系统到底是什么呢? 这还 ...
- 聊聊spring之bean对象的实例化过程
在spring实例化 之前bean对象封装成 beanDefinition 对象 想了解详情的请参考上一篇文章 好了 我们聊聊 Bean 的实例化过程的几个重要角色 BeanDefinitionReg ...
- ES相关知识
ElkStack介绍 对于日志来说,最常见的需求就是收集.存储.查询.展示,开源社区正好有相对应的开源项目:logstash(收集).elasticsearch(存储+搜索).kibana(展示),我 ...
- MySQL安装详细步骤(附迅雷下载链接)
环境:windows10.64bit.mysql 8.0.19 迅雷下载链接8.0版本 https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-in ...