计算机网络——26通用转发和SDN

news2024/11/17 3:57:35

通用转发和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:统一化各种网络设备提供的功能

设备matchaction
路由器最长前缀匹配通过一条链路转发
防火墙IP地址和TCP/UDP端口号允许或者禁止
交换机目标MAC地址转发或者泛洪
NATIP地址和端口号重写地址和端口号

目前几乎所有的设备都可以在这个匹配 + 行动模式框架进行描述,具体化为各种网络设备包括未来的网络设备

OpenFlow例子

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1552009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程创建方式、构造方法和线程属性

欢迎各位!!!推荐PC端观看 文章重点:学会五种线程的创造方式 目录 1.开启线程的五种方式 2.线程的构造方法 3.线程的属性及获取方法 1.开启线程的五种方式 创造线程的基本两步:(1)使用run方法…

C++取经之路(其二)——含数重载,引用。

含数重载: 函数重载是指:在c中,在同一作用域,函数名相同,形参列表不相同(参数个数,或类型,或顺序)不同,C语言不支持。 举几个例子: 1.参数类型不同 int Add(int left, int right)…

白盒测试、接口测试、自动化测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、什么是白盒测试 白盒测试是一种测试策略,这种策略允许我们检查程序的内部结构&…

NEO 学习之 MLE(最大似然估计)

文章目录 简单题目MLE 在不同的分布的运用正态分布指数分布均匀分布泊松分布 简单题目 此题问的是求丢色子,求得到偶数点的概率 求两次都得到硬币的背面的概率 拿球问题 符合的点数是 1,5,6 MLE 在不同的分布的运用 正态分布 对于给定的数据集 {1, 3, 4, 6, 7}&am…

linux:线程同步

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言线程同步条件变量接口简单示例pthread_cond_wait为什么要有mutex伪唤醒问题的解决 (if->while) 总结 前言 本文作为我对于线程同步知识总结 线程同步 同步&…

Appium设备交互API

设备交互API指的是操作设备系统中的一些固有功能,而非被测程序的功能,例如模拟来电,模拟发送短信,设置网络,切换横竖屏,APP操作,打开通知栏,录屏等。 模拟来电 make_gsm_call(phon…

大数据之scala

为什么学习scala spark是新一代内存级大数据计算框架,是大数据的重要内容 spark就是使用scala编写的,因此为了更好的学习spark,需要掌握scala这门语言 spark的兴起,带动scala语言的发展 scala发展历史 联邦理工学院的马丁 奥德…

走迷宫(BFS两种写法)

题目描述: 给定一个 nm 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、…

市场复盘总结 20240328

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 40% 最常用的…

2024 ccfcsp认证打卡 2023 03 02 垦田计划

import java.util.*;public class Main {public static void main(String[] args) {Scanner input new Scanner(System.in);int N 100100; // 定义一个较大的常数Nlong[] t new long[N]; // 存储任务的耗时long[] c new long[N]; // 存储每块区域投入资源的数量long[] c…

SpringCloud和SpringCloudAlibaba的区别

1、SpringCloud和SpringCloudAlibaba的区别 SpringCloudAlibaba实际上对我们的SpringCloud2.x和1.x实现拓展组件功能。 nacos是分布式配置中心分布式注册中心Eurekaconfig。 研发SpringCloudAlibaba目的是为了推广阿里的产品,如果使用了SpringCloudAlibaba,最好使…

什么?想让视频号小店领先同行,竟然这么简单!

大家好,我是电商小布。 视频号小店从推出到现在,逐渐也是被越来越多的人所熟知了。 虽然说当前市场内部的商家数量并不多,竞争力不大。 但是在入驻之后想要领先同行商家,产生更好的店铺数据,该怎么来做呢&#xff1…

18.字面量

文章目录 一、字面量二、区分技巧三、扩展: /t 制表符 一、字面量 在有些资料,会把字面量说成常量、字面值常量,这种叫法都不是很正确,最正确的叫法还是叫做:字面量。 作用:告诉程序员,数据在…

【智能算法改进】混沌映射策略--一网打尽

目录 1.引言2.混沌映射3.分布特征4.混沌映射函数调用5.改进智能算法 1.引言 基本种群初始化是在整个空间内随机分布,具有较高的随机性和分布不均匀性,会导致种群多样性缺乏,搜索效率低等问题。 许多学者利用混沌映射机制来增加种群的多样性&…

国内外主要气象卫星介绍

NOAA AVHRR介绍 美国NOAA极轨卫星从1970年12月第一颗发射以来,近40年连续发射了18颗,最新的NOAA-19也将在2009年发射升空。NOAA卫星共经历了5代,目前使用较多的为第五代NOAA卫星,包括NOAA-15—NOAA-18;作为备用的第四…

17.注释和关键字

文章目录 一、 注释二、关键字class关键字 我们之前写的HelloWorld案例写的比较简单,但随着课程渐渐深入,当我们写一些比较难的代码时,在刚开始写完时,你知道这段代码是什么意思,但是等过了几天,再次看这段…

GEC6818开机自动加载驱动与更改开发板的RTC时钟

GEC6818开机自动加载驱动与更改开发板的RTC时钟 本文主要涉及: 1.GEC6818开机自动加载驱动 2.更改开发板的RTC时钟 文章目录 GEC6818开机自动加载驱动与更改开发板的RTC时钟一、开机自动加载驱动或运行程序**STEP1:** 使用vi打开文件profile.命令如下**S…

LinkedIn 互联网架构扩展简史

LinkedIn成立于 2003 年,其目标是连接到您的网络以获得更好的工作机会。第一周只有 2,700 名会员。时间快进了很多年,LinkedIn 的产品组合、会员基础和服务器负载都取得了巨大的增长。 如今,LinkedIn 在全球运营,拥有超过 3.5 亿会…

Portainer的替代Dockge?又一个Docker Compose管理器?

Dockge:让Docker Compose管理触手可及,一图胜千言,轻松构建与管控您的容器服务栈!- 精选真开源,释放新价值。 概览 Docker,这一开放源代码的创新平台,旨在实现应用程序部署、扩展与运维的自动化…

术语技巧:如何格式化网页中的术语

术语是语言服务中的核心语言资产。快速处理英汉对照的术语是我们在翻译技术学习过程中需要掌握的必备技能。 通常,我们需要把在权威网站上收集到的术语放到word当中,调整正左右对齐的样式,便于打印学习或者转化为Excel表。 如何快速实现这一…