控制面与数据面分离的思想及其应用

这篇具有很好参考价值的文章主要介绍了控制面与数据面分离的思想及其应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

控制面与数据面是个网络方面的概念,但控制面与数据面分离的思想是非常有创造力并值得加以利用的。

缘起

云计算是个伟大的创造,它使得普通人能够透过网络享受到强大的计算能力,而且,这种计算能力是按需分配的,安全的,可靠的,灵活的。它重塑了社会的经济模式,它使整个社会的效能得到极大的提高。云计算已经成为了现代社会经济的基础设施,我们每个人,或多或少,都在享受着这个基础设施给我们带来的便利。

云计算通过将传统的IT资源池化,通过网络,以虚拟机的形式向各种各样的用户提供差异化的服务。计算的本质是将输入的信息进行处理得到特定的输出。信息从本质上说就是一堆有组织的结构化数据。网络的本质就是让这些数据从一个节点流向另外一个节点以进行处理、存储或者展示。一个数据包,从世界的这一端到世界的那一端,经过许许多多的网卡、集线器、网桥、交换机、路由器等。这些部署在世界上的网络设备将整个世界串成了一张巨网,也让每个数据包面对一个系列复杂的选择题。将每个数据包安全、高效的传递到目的地,让整个网络公平、高效、充分的运转是个尤其复杂的问题。

将这么一个问题简化,回归本质,就是两个问题:第一就是告诉数据包如何移动;第二就是无差错的移动数据包。就像我们要搬家,我们的任务就是告诉搬家公司我需要将什么东西走什么路径搬运到什么地方,剩下的就是搬家公司按照我们的信息进行搬运。所以网络上的每个数据转发节点,包含两方面的东西:第一就是决定数据搬运的方法和策略;第二就是进行数据转发。对应到我们的主题,这个数据搬运的方法和策略就是控制面,而数据转发就是数据面

最初,网络设备的设计比较单纯,仅仅为实现尽量公平的、快速的数据转发,具备非常有限的配置能力,或者完全不具备可编程的配置能力。这在云计算时代以前是没问题的,一切都运行得很好,多花点人力进行网络设备的维护没太多人在意。可是到了云计算时代,这样的网络设备就无法满足要求了。云计算时代网络的负载更趋多样化,点播,直播,购物节,网课,电话会议,视频电话… 加上物联网时代的到来,万事万物都连通到网络上,产生大量的数据。这些各式各样的网络负载对网络QoS的要求是不一样的,所以要求网络基本高度的弹性、灵活性、必要时能提供必要的可靠性和安全性。就像城市道路的发展一样,最开始城市人口不多,城市规模也小,一条窄窄的车道上面混合着私家车、公交车、摩托车、自行车甚至行人都没有多大问题。随着城市的发展,尤其是发展到像北上广深这种拥有两三千万人口的一线城市,原理的道路系统远远无法满足城市交通出行的要求。所以除了新建高架桥、立交桥、地铁等立体化交通基础设施,还需要升级交通指挥中心、提供潮汐车道、安装智慧摄像头,实现智慧路口、智慧交通等。在不同时段,比如上下班高峰期或者重要领导人访问或者重大事件发生的时候,能够快速的实施交通管制,进行拥塞管理等等。云计算时代的网络也一样,网络设备需要能够满足监控,安全,伸缩、可控的要求。

所以,软件定义的网络(SDN)是云计算发展到一定阶段的必然产物。它使得整个网络能够根据应用层特定负载、特定场景的需求进行配置或者说控制。在这么一个网络框架下,网络设备除了需要具备数据层面的功能,还需要具有控制层面的能力。而且这两种能力在实现上是分离的,在逻辑上是相关的,它们之间是一种松耦合关系。控制的能力独立于数据层之外,可以让网络有更好的兼容性,也可以有更好的可扩展性。

新架构往上提供统一(集中)的控制,往下要求网络设备能够被编程,实现管理控制接口。
控制面和数据面,虚拟化,云计算,网络,运维
这样,新架构通过抽象的接口解决传统网络架构里网络设备的多样性的问题。通过集中的控制解决传统网络架构无法自动化和动态调整的问题。

控制面与数据面分离的个人解读

抽象出控制面,并实现控制面与数据面的分离具有积极的意义。深刻地理解控制面与数据面分离的思想有助于我们更好的运用它们。

控制面是带外的、宏观的。

原有的基于TCP/IP协议都带有路由,流量管理的功能。这种路由、流量管理功能是协议内的带内的控制,也是微观的。而新的网络架构里面的控制面是独立于原理这些协议的,是宏观的。

控制面与数据面分离的实施
  1. 层间解耦:从系统的、全局的角度明确控制的要求,抽象出通用的一致的控制接口是实施控制面和数据面分离的关键。
  2. 通道解耦:从网络角度看,控制面需要预留一定的单独的带宽,可以使得网络管理员在病毒和攻击环境下依然提供正常的网络设备管理。
控制面与数据面分离不仅仅局限于网络层面

控制面与数据面分离的思想在很多地方都可以看到。在系统层面的策略和机制分离,虚拟化领域的中介透传(mediated pass-through)本质上都是控制面与数据面思想的一种体现。

控制面与数据面分离不仅仅局限于网络层面,数据包始于一个系统的应用层,经过网络,终于另外一个系统的应用层,要经历的不仅仅是网络,也要经过系统的软件栈(协议栈)。
控制面和数据面,虚拟化,云计算,网络,运维
系统层面的控制面和数据面分离就像一个公司内部建立了一个从执行人员到董事长的直通路径,能够极大地提高特定问题的处理和沟通效率。
控制面和数据面,虚拟化,云计算,网络,运维
系统层面的控制面和数据面分离能够有效地较少系统延时和开销,提升系统效率。
控制面和数据面,虚拟化,云计算,网络,运维

控制面与数据面分离的意义

更好地服务于网络QoS的动态调整,提升整体网络效率,使网络更智能。

控制面与数据面分离的应用

网络方面的应用
软件定义的网络(SDN)

控制面和数据面,虚拟化,云计算,网络,运维

  • 底层网络设备通过解耦实现简单化
  • 网络的管理通过集中控制器实现了全局化
  • 网络的运维通过SDN南向接口与协议实现的自动化
  • 网络的应用通过SDN北向接口与协议实现了更加弹性的人性化
数据平面开发套件(DPDK,Data Plane Development Kit)

DPDK 重载了网卡驱动,将数据包的控制平面和数据平面分离,驱动在收到数据包后不再硬中断通知 CPU,而是让数据包通过内核旁路的协议栈绕过了 Linux 内核协议栈,并通过零拷贝技术存入内存,这时应用层的程序就可以通过 DPDK 提供的接口读取数据包​。
控制面和数据面,虚拟化,云计算,网络,运维

虚拟化方面的应用
virtio

virtio作为一种通用的虚拟IO设备驱动模型,主要定义了两方面的标准模型和接口:控制面的设备配置和初始化数据面的数据传输
控制面和数据面,虚拟化,云计算,网络,运维

中介传递(mediated pass-through)

在虚拟化领域,GPU的虚拟化有多种方式,比如如图所示的GVT-s,GVT-d和GVT-g. 其中GVT-g实现了一种叫中介传递的虚拟化方法。通过mdev设备,让访问寄存器、配置这种低带宽配置面操作走trap-and-emulation的路径,而让帧缓存提交这种高带宽的数据面操作直接以DMA直通方式进行,既实现了GPU的高效访问又实现了GPU的共享。使得GPU的全虚拟化在效率和共享之间取得了一个非常好的平衡。
控制面和数据面,虚拟化,云计算,网络,运维文章来源地址https://www.toymoban.com/news/detail-805779.html

参考链接

  1. SDN网络数据平面与控制平面
  2. 数通-交换机的数据平面、控制平面、管理平面
  3. 网络通信中的“控制面”
  4. The Control Plane, Data Plane and Forwarding Plane in Networks
  5. CEF (Cisco Express Forwarding)
  6. Load Balancing Mechanisms in the Software Defined Networks: A Systematic and Comprehensive Review of the Literature
  7. 网络虚拟化——virtio
  8. DPDK — 数据平面开发技术
  9. IOMMU(七)-vfio and mdev
  10. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
  11. virtio+ovs转发原理和性能分析
  12. 深入理解编程艺术之策略与机制相分离

到了这里,关于控制面与数据面分离的思想及其应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】STL 算法概念和分类 ( STL 算法头文件 | STL 算法思想 - 数据与算法分离 | STL 算法 迭代器 | STL 算法 操作对象 | STL 算法分类 )

    标准模板库 STL 算法 都定义在 algorithm , numeric 和 functional 三个头文件中 ; 使用 STL 标准模板库 算法时 , 导入上述 3 个头文件 , 导入时根据需求导入即可 , 不必都导入 ; algorithm 头文件 是 3 个 STL 算法头文件中 包含算法最多的一个 , 包含常用的 : 比较算法、交换算法、查找算法

    2024年01月21日
    浏览(42)
  • 机器人感知与控制关键技术及其智能制造应用

    源自:自动化学报       作者:王耀南 江一鸣 姜娇 张辉 谭浩然 彭伟星 吴昊天  曾凯 智能机器人在服务国家重大需求, 引领国民经济发展和保障国防安全中起到重要作用, 被誉为“制造业皇冠顶端的明珠”. 随着新一轮工业革命的到来, 世界主要工业国家都开始加快机器人

    2024年02月09日
    浏览(54)
  • 云计算虚拟化技术分析及其演进路线

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)是一种新的计算方式,它把计算能力从中心服务器扩展到一系列网络端点上。随着云计算的发展,越来越多的人将注意力集中在如何利用云资源来提高效率、节约成本以及加强竞争力上。因此,云计算技术的最新研究也就

    2024年02月08日
    浏览(36)
  • 构建强大的Python后端分离应用:使用Token实现安全身份验证和权限控制

    使用Python构建一个强大的后端分离应用,通过使用Token实现安全的身份验证和灵活的权限控制。 什么是前后端分离: 前后端分离是一种软件架构模式,它将应用程序的前端(用户界面)和后端(业务逻辑和数据处理)分离开发和部署。在前后端分离架构中,前端和后端是独立

    2024年02月03日
    浏览(56)
  • 哈希思想应用【C++】(位图,布隆过滤器,海量数据处理面试题)

       目录 一,位图 1. 位图概念 2.实现 3. 测试题 位图的优缺点 二,布隆过滤器 1). 布隆过滤器提出 2). 概念 3). 布隆过滤器的查找 4). 布隆过滤器删除(了解) 5). 布隆过滤器优点 6). 布隆过滤器缺陷 三,海量数据面试题 1)哈希切割 我们首先由一道面试题来理解位图 给40亿个不

    2024年02月04日
    浏览(36)
  • 开源免费虚拟化KVM的部署及其虚拟机资源变更、快照、克隆等常见运维操作

    实践说明:基于RHEL9(AlmaLinux9.1)部署,同类系统(CentOS9,RockyLinux9等)适用,但适用场景是不限于此的。 文档说明:本文档旨在帮助快速应用KVM虚拟化技术,重在实践操作,提供了简要参考。 文档形成时期:2021-2023年 因系统或软件版本不同,构建部署可能略有差异,但本文未做细

    2024年02月02日
    浏览(43)
  • 基于Matlab自抗扰控制器及其PID控制(附上完整源码+数据)

    自抗扰控制器(Active Disturbance Rejection Control, ADRC)是一种新型的控制策略,它具有强大的抗干扰能力和良好的控制性能。与传统的PID控制器相比,ADRC能够更好地抑制系统的干扰,提高控制系统的稳定性和鲁棒性。 在ADRC中,核心思想是引入一个扰动观测器(Disturbance Observer,

    2024年02月16日
    浏览(37)
  • 数据库应用:Mycat实现读写分离

    目录 一、理论 1.Mycat 2.Mycat安装启动 3.Mycat搭建读写分离 4.垂直分库 5.水平分表 6.Mycat高可用 7.Mycat安全设置 8.Mycat监控工具 二、实验 1.Mycat读写分离 2.Mycat监控安装 三、问题 1.Mycat命令无法补全 2.Mycat启动失败 3.zookeeper启动报错 四、总结 (1)概念 MyCAT是一款由阿里Cobar演变而来

    2024年02月15日
    浏览(33)
  • 论数据湖技术及其应用

    论数据湖技术及其应用 2020年6月,我所在的公司中标某银行数据湖平台搭建项目1.0,该项目周期为2年,总投资为5000万人民币,通过该项目,搭建该银行数据湖建设项目,实现该银行所有业务数据以及用户行为日志入湖,为银行在投资理财、金融、贷款等方面提供精准营销,

    2024年02月09日
    浏览(28)
  • 数据结构 图及其应用

    一、要求 1.设计并验证如下算法:图采用邻接矩阵表示,实现无向图的深度优先搜索与有向图的广度优先搜索。 2.设计并验证如下算法:带权图采用邻接表表示,实现无向图的广度优先搜索与有向图的深度优先搜索。 二、代码 1. 运行结果    2.   运行结果:    

    2024年02月04日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包