计算机网络——30SDN控制平面
SDN控制平面
SDN架构
数据平面交换机
- 快速、简单,商业化交换设备采用硬件实现通用转发功能
- 流表被控制器计算和安装
- 基于南向API,SDN控制器访问基于流的交换机
- 定义了哪些可以被控制哪些不能
- 也定义了和控制器的协议

SDN控制器(网络OS)
- 维护网络状态信息
- 通过上面的北向API和网络控制应用交互
- 通过下面的南向API和网络交换机交互
- 逻辑上集中,但是在实现上通常由于性能、可拓展性、容错性以及鲁棒性采用分布式方法实现

控制应用
网络控制应用:
- 控制的大脑:采用下层提供的服务(SDN控制器提供的API)实现网络功能
- 路由器、交换机
- 接入控制防火墙
- 负载均衡
- 其他功能
- 非绑定:可以被第三方提供,与控制器厂商以通常上不同,与分组交换机厂商也可以不同

SDN控制器里的原件

通信层:SDN控制器和SDN交换机之间进行通信
网络范围的状态管理层:网络链路、交互设备和服务的状态:分布式数据库
网络控制应用的界面层:抽象API
OpenFlow协议
- 控制器和SDN交换机交互的协议
- 采用TCP来交换报文
- 加密可选
- 3种OpenFlow报文类型
- 控制器 > 交换机
- 异步(交换机 > 控制器)
- 对称

控制器 - 交换机报文
一些关键的控制器到交换机的报文
- 特性:交换机查询交换机特性,交换机应答
- 配置:交换机查询/设置交换机的配置参数
- 修改状态:增加删除修改OpenFlow表中的流表
- packet-out:控制器可以将分组通过特定的端口发出
- 分组进入:将分组(和它的控制)传给控制器,见来自控制器的packet-out报文
- 流移除:在交换机上删除流表项
- 端口状态:通告控制器报文端口的变化
幸运的是,网络管理员不需要直接通过创建/发送流表来编程交换机,而是采用在控制器上的app自动运算和配置
控制 - 数据平面交互的例子

- S1, 经历了链路失效,采用OpenFlow报文通告控制器:端口状态报文
- SDN 控制器接收OpenFlow报文,更新链路状态信息
- Dijkstra路由算法应用被调用(前面注册过这个状态变化消息)
- Dijkstra路由算法访问控制器中的网络拓扑信息,链路状态信息计算新路由
- 链路状态路由app和SDN控制器中流表计算元件交互,计算出新的所需流表
- 控制器采用OpenFlow在交换机上安装新的需要更新的流表
OpenDaylight()ODL控制器

- ODL Lithium 控制器
- 网络应用可以在SDN 控制内或者外面
- 服务抽象层SAL:和内部以及外部的应用以及服务进行交互
- 控制应用和控制器分离(应用app在控制器外部)
- 意图框架:服务的高级规范:描述什么而不是如何
- 相当多的重点聚焦在分布式核心上,以提高服务的可靠性,性能的可扩展性
SDN面临的挑战
- 强化控制平面:可信、可靠、性能可扩展性、安全的分布式系统
- 对于失效的鲁棒性: 利用为控制平面可靠分布式系统的强大理论
- 可信任,安全:从开始就进行铸造
- 网络、协议要满足特殊任务的需求,例如实时性,超高可靠性、超高安全性
- 要满足互联网络范围内的扩展性而不是仅仅在一个AS的内部部署,全网部署
相关文章:
计算机网络——30SDN控制平面
SDN控制平面 SDN架构 数据平面交换机 快速、简单,商业化交换设备采用硬件实现通用转发功能流表被控制器计算和安装基于南向API,SDN控制器访问基于流的交换机 定义了哪些可以被控制哪些不能 也定义了和控制器的协议 SDN控制器(网络OS&#…...
Obsidian插件-高亮块(Admonition)
在插件市场里面搜索Admonition并安装插件,就可以使用高亮块了。 添加高亮块 用法稍微有一些不同。按照下面的格式,输入Markdown就可以创建一个高亮块。 内容内容内容输入*ad-*会出现相应的类型可以选择...
jHipster 之 webflux-前端用EventSource处理sse变成了批量处理而非实时处理
现象: const eventSource new EventSource(API_URL5);eventSource.onmessage streamEvent > {console.log(a message is come in--------->);const content streamEvent.data;console.log(Received content: content);};前端用EventSource 处理webflux的…...
原型链-(前端面试 2024 版)
来讲一讲原型链 原型链只存在于函数之中 四个规则 1、引用类型,都具有对象特性,即可自由扩展属性。 2、引用类型,都有一个隐式原型 __proto__ 属性,属性值是一个普通的对象。 3、引用类型,隐式原型 __proto__ 的属…...
网络套接字补充——UDP网络编程
五、UDP网络编程 1.对于服务器使用智能指针维护生命周期;2.创建UDP套接字;3.绑定端口号,包括设置服务器端口号和IP地址,端口号一般是2字节使用uint16_t,而IP地址用户习惯使用点分十进制格式所以传入的是string类型…...
自动化测试 —— Pytest fixture及conftest详解
前言 fixture是在测试函数运行前后,由pytest执行的外壳函数。fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集、配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest的精髓所在,类似u…...
Scala第十四章节(隐式转换、隐式参数以及获取列表元素平均值的案例)
章节目标 掌握隐式转换相关内容掌握隐式参数相关内容掌握获取列表元素平均值的案例 1.隐式转换和隐式参数介绍 隐式转换和隐式参数是Scala中非常有特色的功能,也是Java等其他编程语言没有的功能。我们可以很方便地利用 隐式转换来丰富现有类的功能。在后续编写Ak…...
VsCode的json文件不允许注释的解决办法
右下角找到注释点进去 输入Files: Associations搜索出此项 改为项为*.json值为jsonc保存即可 然后会发现VsCode的json文件就允许注释了...
利用图像识别进行疾病诊断
利用图像识别进行疾病诊断是人工智能和机器学习技术在医疗领域的一个重要应用。图像识别技术可以通过分析医学影像(如X光片、CT扫描、MRI、超声波图像等)来辅助医生诊断疾病。以下是图像识别在疾病诊断中的关键步骤和挑战: 数据收集与预处理…...
大数据学习-2024/3/28-excel文件的读写操作
借助第三方模块:inxlrd,xlwt pip 第三方模块包管理工具 –> winr --> cmd --> 打开操作系统 –> python --> 查看默认的解释器版本 --> exit() –> pip list --> 查看第三方模块的列表 pip36 list --> 查看3.6版本安装的第三方模块列表 –> pip[…...
k8s 如何获取加入节点命名
当k8s集群初始化成功的时候,就会出现 加入节点 的命令如下: 但是如果忘记了就需要找回这条命令了。 kubeadm join 的命令格式如下:kubeadm join --token <token> --discovery-token-ca-cert-hash sha256:<hash>--token 令牌--…...
黑群晖基于docker配置frp内网穿透
前言 我的黑群晖需要设置一下内网穿透来外地访问,虽然zerotier的p2p组网已经很不错了,但是这个毕竟有一定的局限性,比如我是ios的国区id就下载不了zerotier的app,组网不了 1.下载镜像 选择第一个镜像 2.映射文件 配置frpc.ini&a…...
多线程基础:线程通信内容补充
多线程基础:线程通信内容补充 文章目录 多线程基础:线程通信内容补充前言一、wait(), notify(), notifyAll()二、join()三、Lock 和 Condition四、并发集合和原子变量1、并发集合2、原子变量 总结 前言 前文内容中讲了线程通信的内容,但是不…...
使用Jenkins打包时执行失败,但手动执行没有问题如ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
具体错误信息如: Error output: Plugin not found, cannot call UAC::_ Error in macro _UAC_MakeLL_Cmp on macroline 2 Error in macro _UAC_IsInnerInstance on macroline 1 Error in macro _If on macroline 9 Error in macro FUNCTION_INSTALL_MODE_PAGE_FUNC…...
OpenCV图像滤波、边缘检测
OpenCV图像滤波 一、引言 在数字图像处理中,滤波是一种重要的技术,用于消除图像中的噪声、改善图像质量或提取特定信息。OpenCV(开源计算机视觉库)提供了丰富的滤波函数,可以方便地对图像进行各种滤波操作。本文将介…...
前端项目在本地localhost可以调取到拍照或麦克风等设备,但是在局域网内IP+端口号访问项目时访问不到设备
前端项目在本地localhost可以调取到拍照或麦克风等设备,但是在局域网内IP端口号访问项目时访问不到设备,调取navigation.mediaDevices时本科可以获取到mediaDevices列表,局域网内ip端口访问时获取不到mediaDevices。 原因: 存在…...
flutter生成二维码并截图保存到图库
引入库:flutter_screenutil、image_gallery_saver、qr_flutter弹窗布局 import dart:async; import dart:typed_data; import package/generated/l10n.dart; import package:jade/configs/PathConfig.dart; import package:jade/utils/ImageWaterMarkUtil.dart; im…...
EasyExcel Converter实现java对象和excel单元格转换
在EasyExcel中,Converter接口用于定义如何在Java对象和Excel单元格之间进行转换。 也就是说EasyExcel可以根据数据库中的值来填充Excel中对应的文本内容。 比如数据库1,2,3可以填充到excel中:男,女,其他 使用easyExcel的之前&a…...
stamac Ethernet DTS配置
目录 Demo 配置 compatible reg interrupts & interrupt-names phy-mode phy-handle Snps,reset-gpio...
Svg Flow Editor 原生svg流程图编辑器(四)
系列文章 Svg Flow Editor 原生svg流程图编辑器(一) Svg Flow Editor 原生svg流程图编辑器(二) Svg Flow Editor 原生svg流程图编辑器(三) Svg Flow Editor 原生svg流程图编辑器(四…...
Axure RP中文语言包终极指南:从英文界面到完美汉化的三步解决方案
Axure RP中文语言包终极指南:从英文界面到完美汉化的三步解决方案 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn Ax…...
AUTOSAR ECU资源模板:硬件描述与工程实践
1. AUTOSAR ECU资源模板的核心价值解析在汽车电子系统开发领域,AUTOSAR(汽车开放系统架构)已经成为行业公认的标准框架。作为这个框架中的关键组成部分,ECU资源模板在实现软硬件解耦方面发挥着不可替代的作用。这个模板本质上是一…...
Lobe CLI 工具箱:AI 应用开发者的高效命令行助手
1. 项目概述:一个为AI应用开发者量身打造的命令行工具箱 如果你正在使用 LobeChat 或者其他基于 Lobe SDK 的 AI 应用进行开发,并且经常在终端里敲打各种命令来处理模型管理、会话导出、配置同步这些琐碎但又必不可少的任务,那么你很可能已经…...
OpenClaw Auto Backup:基于Git的自动化数据备份与版本管理实战
1. 项目概述与核心价值最近在整理服务器上的项目文件和开发环境时,我又一次遇到了那个老问题:数据备份。手动执行git add . && git commit -m “update” && git push不仅繁琐,还容易忘记。对于需要备份多个目录,…...
智慧图书书脊识别分割数据集labelme格式2100张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):2100标注数量(json文件个数):2100标注类别数:1标注类别名称:["book"]每个类别标注的框数:book …...
第70篇:Vibe Coding时代:AI Coding 平台运维手册,解决 Agent 上线后故障排查没有 SOP 的问题
第70篇:Vibe Coding时代:AI Coding 平台运维手册,解决 Agent 上线后故障排查没有 SOP 的问题 一、问题场景:Agent 平台上线了,但一出问题大家都不知道怎么查 当 AI Coding Agent 进入团队使用后,常见故障会越来越多: 1. 用户说任务一直不动 2. 任务状态卡在 RUNNING 3…...
CFD热分析中绝热传热系数与叠加核函数原理及应用
1. CFD热分析中的绝热传热系数与叠加核函数原理剖析在电子设备热管理领域,随着功率密度的不断提升,传统的热设计方法已难以满足精度和效率的双重要求。绝热传热系数(Adiabatic Heat Transfer Coefficient, AHTC)与叠加核函数(Superposition Kernel Funct…...
新手避坑指南:Unity工程里这6个文件夹,一个都别乱动(含ProjectSettings详解)
Unity工程目录安全手册:新手必须掌握的6个核心文件夹管理法则 刚接触Unity开发时,面对工程目录里那些神秘的文件夹,你是否曾犹豫过"这个能删吗?那个能改吗?"——我完全理解这种困惑。三年前接手第一个商业项…...
如何用DownKyi实现B站视频自由:5个实用场景与解决方案
如何用DownKyi实现B站视频自由:5个实用场景与解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#…...
AgentPulse:为AI编码助手打造macOS刘海信息中心,提升开发效率
1. 项目概述:为AI编码助手打造一个macOS“灵动岛”如果你和我一样,日常开发中重度依赖Claude Code、Cursor这类AI编码助手,那你一定对下面这个场景不陌生:你正专注地在终端里写代码,突然一个权限请求弹出来,…...
