网站开发学历要求/代理推广
通用转发和SDN
网络层功能:
- 转发: 对于从某个端口 到来的分组转发到合适的 输出端口
- 路由: 决定分组从源端 到目标端的路径
网络层
传统路由器的功能
每个路由器(Per Route)的控制平面 (传统)
- 每个路由器上都有实现路由算法元件(它们之间需要相互交互),形成传统IP实现方式的控制平面
- 控制平面式分布式的,由各个路由器的各自完成,难于管理
路由器的网络层功能:
- IP转发:对于到来的分组按照路由表决定如何转发,数据平面
- 路由:决定路径,计算路由表;处在控制平面
传统的网络设备
还有其他种类繁多网络设备(中间盒):
- 交换机;防火墙;NAT;IDS;负载均衡设备
- 未来:不断增加的需求和相应的网络设备
- 需要不同的设备去实现不同的网络功能
- 每台设备集成了控制平面和数据平面的功能
- 控制平面分布式地实现了各种控制平面功能
- 升级和部署网络设备非常困难
网络设备控制平面的实现方式特点
互联网网络设备:传统方式都是通过分布式,每台设备的方法来实现数据平面和控制平面功能
- 垂直集成:每台路由器或其他网络设备,包括:
- 硬件、在私有的操作系统;
- 互联网标准协议(IP, RIP, IS-IS, OSPF, BGP)的私有实现
- 从上到下都由一个厂商提供(代价大、被设备上“绑架”“)
- 每个设备都实现了数据平面和控制平面的事情
- 控制平面的功能是分布式实现的
- 设备基本上只能(分布式升级困难)按照固定方式工作, 控制逻辑固化。
- 不同的网络功能需要不同的 “middleboxes”:防火墙、负载均衡设备、NAT boxes, .
- (数据+控制平面)集成>(控制逻辑)分布->固化
- 代价大;升级困难;管理困难等
问题
- 垂直集成造成价格昂贵
- 不便于创新的生态(垄断)
- 分布式、固化设备功能造成网络设备种类繁多
- 无法改变路由等工作逻辑,无法实现流量工程等高级 特性
- 配置错误影响全网运行;升级和维护会涉及到全网设 备:管理困难
- 要增加新的网络功能,需要设计、实现以及部署新的 特定设备,设备种类繁多
- ~2005:开始重新思考网络控制平面的处理方式
- 集中:远程的控制器集中实现控制逻辑
- 远程:数据平面和控制平面的分离
SDN:逻辑上集中的控制平面
一个不同的(通常是远程)控制器和CA交互,控制器决定分组转发的逻辑(可编程),CA所在设备执行逻辑
SDN的主要思路
- 网络设备数据平面和控制平面分离
- 数据平面 - 分组交换机
- 将路由器、交换机和目前大多数网络设备的功能进一步抽象成:按照流表(由控制平面设置的控制逻辑)进行PDU(帧、分组)的动作(包括转发、丢弃、拷贝、泛洪、阻塞)
- 统一化设备功能:SDN交换机(分组交换机),执行控制逻辑
- 控制平面 - 控制器 + 网络应用
- 分离、集中
- 计算和下发控制逻辑:流表
SDN控制平面和数据平面分离的优势
- 水平集成控制平面的开放实现(而非私有实现),创造出好的产业状态,促进发展
- 分组交换机、控制器和各种控制逻辑网络应用APP可由不同厂商生产,专业化,引入竞争形成良好生态
- 集中式实现控制逻辑,网络管理容易
- 集中式控制器了解网络状况,编程简单,传统方式困难
- 避免路由器的误配置
- 基于流表的匹配 + 行动的工作方式允许“可编程的”分组交换机
- 实现流量工程等高级特性
- 在此框架下实现各种新型(未来)的网络设备
类比:主框架到PC的演变
流量工程:传统路由比较困难
Q: 网管如果需要u到z的流量走uvwz,x到z的流量走xwyz,怎么办?
A: 需要定义链路的代价,流量路由算法以此运算( IP路由面向目标,无法操作) (或者需要新的路由算法)!
Q: 如果网管需要将u到z的流量分成2路:uvwz 和uxyz ( 负载均衡),怎么办?(IP路由面向目标)
A: 无法完成(在原有体系下只有使用新的路由选择算法 ,而在全网部署新的路由算法是个大的事情)
Q:如果需要w对蓝色的和红色的流量采用不同的路由,怎么办?
A: 无法操作 (基于目标的转发,采用LS, DV 路由)
SDN特点
SDN架构
数据平面交换机
- 快速、简单、商业化交换设备,采用硬件实现通用转发功能
- 流表被控制器计算和安装
- 基于南向API,SDN控制器访问基于流的交换机
- 定义了哪些可以被控制哪些不能
- 定义了和控制器的协议
SDN控制器
- 维护网络状态信息
- 通过上面的北向API和网络应用交互
- 通过下面的南向API和网络交换机交互
- 逻辑上集中,但是在实现上通常由于性能、可拓展性、容错性以及鲁棒性采用分布式方法
控制应用
- 控制的大脑:采用下层提供的服务(SDN控制器提供的API),实现网络功能
- 路由器交换机
- 接入控制防火墙
- 负载均衡
- 其他功能
- 非绑定:可以被第三方提供,与控制器厂商以通常上不同,与分组交换机厂商也可以不同
流表
每个路由器包含一个流表(被逻辑上集中的控制器计算和分发)
OpenFlow
OpenFlow数据平面抽象
- 流:由分组(帧)头部字段所定义
- 通用转发:简单的分组处理规则
- 模式:将分组头部字段和流表进行匹配
- 行动:对于匹配上的分组,可以是丢弃、转发、修改、将匹配的分组发送给控制器
- 优先权Priority:几个模式匹配了,优先采用哪个,消除歧义
- 计数器Counters:#bytes 以及 #packets
流表的表项结构
例子:
OpenFlow抽象
match + action:统一化各种网络设备提供的功能
设备 | match | action |
---|---|---|
路由器 | 最长前缀匹配 | 通过一条链路转发 |
防火墙 | IP地址和TCP/UDP端口号 | 允许或者禁止 |
交换机 | 目标MAC地址 | 转发或者泛洪 |
NAT | IP地址和端口号 | 重写地址和端口号 |
目前几乎所有的设备都可以在这个匹配 + 行动模式框架进行描述,具体化为各种网络设备包括未来的网络设备
OpenFlow例子
相关文章:

计算机网络——26通用转发和SDN
通用转发和SDN 网络层功能: 转发: 对于从某个端口 到来的分组转发到合适的 输出端口路由: 决定分组从源端 到目标端的路径 网络层 传统路由器的功能 每个路由器(Per Route)的控制平面 (传统) 每个路由器上都有实…...

Modbus TCP协议介绍(ModbusTCP)
文章目录 理解Modbus TCP协议(Understanding Modbus TCP Protocol)简介(Introduction to Modbus TCP)历史背景(Historical Context)关键特性(Key Features) Modbus TCP协议结构&…...

【Java核心能力】一篇文章了解 ZooKeeper 底层运行原理
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…...

P2123皇后游戏
P2123皇后游戏 参考题解 #include <iostream> #include <algorithm> using namespace std;int T; int n; long long res;struct Person {int a,b,d; }p[20005];bool person_cmp(const Person& x,const Person& y) {if(x.d y.d){if(x.d < 0)return x.a …...

git之目前的主流版本
官方文档 简介 我们都知道,在开发过程中,版本控制是至关重要的。Git作为目前最为流行的版本控制系统,已经成为了开发者们的标配。出于好奇,本人对git目前主流几大版本(GitLab、GitHub、Gitee 和 GitCode)…...

PyQT5学习--新建窗体模板
目录 1 Dialog 2 Main Window 3 Widget Dialog 模板,基于 QDialog 类的窗体,具有一般对话框的特性,如可以模态显示、具有返回值等。 Main Window 模板,基于 QMainWindow 类的窗体,具有主窗口的特性,窗口…...

企业产品网络安全建设日志0328
文章目录 Actuator再次暴露域名上线基线检查初见效果WAF更新遇波折301跳转推进中 Actuator再次暴露 为了验证挖f的拦截效果,自己随手拼了个Actuator,结果可以访问到公司的actuator。。 据称是某网关更换新组件后未做防御,已要求全部做防御&a…...

QT(C++)-error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”
1、项目场景: 在VS中采用QT(C)调试时,出现error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”错误 2、解决方案: 在“解决方案资源管理器”中选中出现此类BUG的项目,右键-…...

【 MyBatis 】| 关于多表联查返回 List 集合只查到一条的 BUG
目录 一. 🦁 写在前面二. 🦁 探索过程2.1 开端 —— 开始写 bug2.2 发展 —— bug 完成2.3 高潮 —— bug探究2.4 结局 —— 效果展示 三. 🦁 写在最后 一. 🦁 写在前面 今天又是 BUG 气满满的一天,一个 xxxMapper.xm…...

PL/SQL的词法单元
目录 字符集 标识符 分隔符 注释 oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 PL/SQL块中的每一条语句都必须以分号结束。 一个SQL语句可以跨多行,但分号表示该语句的结束:一行中也可以有多条 SQL语句&…...

第三十二天-PythonWeb主流框架-Django框架
目录 1.介绍 发展历史 介绍 2.使用 1.安装 2.创建项目 3.项目结构 4.启动 3.开发流程 1.设置ip可访问 2.创建模块 3.第一个页面 4.视图 5.include()参数 6.url与视图的关系 7.响应内容 4.视图处理业务逻辑 1.响应html 2.获取url参数 3.从文件响应html内容 …...

利用python搭建临时文件传输服务
场景 如果想从一台服务器上传输文件又多种方法,其中常见的是利用scp进行传输,但是需要知道服务器的账号密码才能进行传输,但有时候我们并不知道账号密码,这个时候我们就可以通过python -m SimpleHTTPServer 命令进行传输文件 启…...

详解 WebWorker 的概念、使用场景、示例
前言 提到 WebWorker,可能有些小伙伴比较陌生,不知道是做什么的,甚至不知道使用场景,今天这篇文章就带大家一起简单了解一下什么是 webworker! 概念 WebWorker 实际上是运行在浏览器后台的一个单独的线程,因此可以执行一些耗时的操作而不会阻塞主线程。WebWorker 通过…...

IOS面试题编程机制 6-10
6. 如何理解MVVM设计模式?MVVM即 Model-View-ViewModel 1.View主要用于界面呈现,与用户输入设备进行交互 2.ViewModel是MVVM架构中最重要的部分,ViewModel中包含属性,方法,事件,属性验证等逻辑,负责View与Model之间的通讯 3.Model就是我们常说的数据模型,用于数据的构造…...

seleniumui自动化实例-邮箱登录
1.登录163邮箱源码: from selenium import webdriver driver webdriver.Firefox() driver.get("http://www.163.com") driver.find_element_by_id("id").clear() driver.find_element_by_id("id").send_keys("用户名")…...

力扣练习 3.27
121. 买卖股票的最佳时机 贪婪思想:力争在最低成本买入,最高利润卖出。 [7,1,5,3,6,4] 可以先假设在第一天买入和卖出,这时最低成本是7,最大利润是7-70 然后假设在第二天买入和卖出,成本就是1,利润也是0 第…...

C 指向指针的指针
指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。 一个指向指针的指针变量…...

通俗易懂:新生代、老年代和永久代/元空间的具体含义是什么?
在Java虚拟机(JVM)的内存管理中,堆内存通常被划分为几个不同的区域,以便更有效地管理和回收内存。以下是新生代(Young Generation)、老年代(Old Generation)和永久代/元空间…...

Centos7.9备份mysql数据库
1. 备份 备份shell脚本 [rootiZoqvrzbtnzd6kZ local]# vi mysql_backup.sh #!/bin/bash #设置MySQL登录信息 MYSQL_USER"root" MYSQL_PASSWORD"**********" MYSQL_DATABASE"ubox" BACKUP_DIR"/usr/local/mysql_backup" MONTH"…...

Automatic Prompt Engineering
让大模型自己生成prompt,生成提示(prompt)存在两种不同的操作方式。第一种方式是在文本空间中进行,这种提示以离散的文本形式存在。第二种方式是将提示抽象成一个向量,在特征空间中进行操作,这种提示是抽象…...

Spring高级面试题-2024
Spring 框架中都用到了哪些设计模式? 1. 简单工厂: ○ BeanFactory:Spring的BeanFactory充当工厂,负责根据配置信息创建Bean实例。它是一种工厂模式的应用,根据指定的类名或ID创建Bean对象。2. 工厂方法ÿ…...

用BSP优化3D渲染
3D渲染引擎设计者面临的最大问题之一是可见性计算:只必须绘制可见的墙壁和物体,并且必须以正确的顺序绘制它们(应该在远处的墙壁前面绘制近墙) 。 更重要的是,对于游戏等应用程序来说,开发能够快速渲染场景…...

Composer常见错误解决
Composer 是 PHP 社区广泛使用的一个依赖管理工具,它帮助开发者定义、管理和安装项目所需的库。在使用 Composer 的过程中,可能会遇到各种错误和问题。以下是一些常见的 Composer 错误及其解决方法: 1. 内存限制错误 错误信息:P…...

amazon中sns的使用
使用网页配置订阅 创建主题>使用标准>自定义名称>其他默认 点击创建即可 创建订阅 订阅策略配置(不配置,会推送给多个人,除非你每个都创建主题) 注意: 可以你可以随便写,后面的值只能是对象&am…...

web前端面试题----->VUE
Vue的数据双向绑定是通过Vue的响应式系统实现的。具体原理: 1. Vue会在初始化时对数据对象进行遍历,使用Object.defineProperty方法将每个属性转化为getter、setter。这样在访问或修改数据时,Vue能够监听到数据的变化。 2. 当数据发生变化时…...

计算机领域热门技术词汇
文章目录 计算机领域热门技术词汇1、机器学习 machine learning2、神经网络 neural network3、深度学习 deep learning4、自然语言处理 natural language processing5、计算机视觉 computer vision6、大数据 big data7、数据挖掘 data mining(DM)8、云计…...

jsp指令和动作
1.page指令:描述页面信息 pageENcoding:软件编码 contentType:浏览器编码 2.include指令:将多个网页合成一个网页,静态包含网页 问题:1.在网页源代码中,会形成错误的多遍代码,将主页面代码和…...

手撕算法-最小覆盖子串
描述 分析 滑动窗口。 参考力扣官方的题解思路 本问题要求我们返回字符串 s 中包含字符串 t 的全部字符的最小窗口。我们称包含 t 的全部字母的窗口为「可行」窗口。 我们可以用滑动窗口的思想解决这个问题。在滑动窗口类型的问题中都会有两个指针,一个用于「延伸…...

TrOCR—基于Transformer的OCR入门
导 读 本文主要介绍TrOCR:基于Transformer的OCR入门。 背景介绍 多年来,光学字符识别 (OCR) 出现了多项创新。它对零售、医疗保健、银行和许多其他行业的影响是巨大的。尽管有着悠久的历史和多种最先进的模型,研究人员仍在不断创新。与深…...

WIN使用LPD协议来共享打印机含统信UOS
打开“控制面板”,“程序和功能”,“启动或关闭Windows功能”,下拉找到“打印和文件服务”,勾选“LPD打印服务”和“LPR端口监视器”。确定之后重启电脑,共享主机和其它需要添加共享打印机的都开启功能和重启。 一、启…...