计算机网络第4章-通用转发和SDN

news2024/11/23 7:34:18

引子:

在前面,我们将基于目的地转发的特征总结为两个步骤:

查找目的IP地址(匹配),然后将分组发送到有特定输出端口的交换结构(“动作”)。

但是这种转发特征会带来许多问题,列如很多中间盒都有自己特殊的硬件、软件和管理界面,这对

于网络管理员来说是大麻烦,为此人们设计出了一种新的转发结构:“通用转发”。并且将使用通用

转发的中间盒叫作:“分组交换机。”

通用转发

在通用转发中,一张“匹配加动作表”讲我们的基于目的地的转发表一般化了。

下图是一个位于每台分组交换机中的一张匹配加动作表,该表由远程控制器计算。

在这里,我们有必要了解一下OpenFlow标准,这是一个SDN革命的先驱标准。

我们主要探讨OpenFlow1.0.

其中,匹配加动作转发表在OpenFlow中称为:流表”。

1.首部字段值的集合

首部字段值的集合,在进入流表后会进行匹配。匹配不上的分组会被丢弃。

2.计数器集合

当分组与流表项匹配上后,就会更新计数器。

这些计数器可以包括已经与该表项匹配的分组数量。

当分组匹配流表项时所采取的动作集合

这些动作可能将分组转发到给定的输出端口,丢弃该分组、复制该分组和将它们发送到多个输出端

口,或重写所选的首部字段。

值得注意的是,流表本质上是一个API,通过这种抽象每台分组交换机的行为能够被编程,类似

的,网络范围的行为也能够被编程。

匹配

下图是一个匹配示意图:

上图显示了11个分组首部字段和入端口IP,该IP能够被OpenFlow1.0中的匹配加动作所匹配。

OpenFlow的匹配抽象允许对上面的三个层次协议的首部所选择的字段进行匹配。

需要注意的是:

OpenFlow也可以有通配符,例如在流表中IP地址128.119.*.*将匹配其地址的前16比特为128.119的

任何数据报所对应的地址字段。

同时,流表也具有优先权,优先权越高,选定的匹配和对应的动作将是其中有最高优先权的那个。

动作

对于流表项,其实都有零个或多个动作列表,这些动作决定了以用于流表项匹配的分组的处理。

但是如果以后有多个动作,它们在表中按以下规定的次序执行:

1.转发

一个入分组可以转发到一个特定的物理输出端口,广播到所有端口,或通过所选的端口集合进行多播。

该分组也可能被封装并发送到用于该设备的远程控制器,该控制器则可能对该分组采取某些动作,

也可能忽略这个分组。

2.丢弃

没有动作的流表项表明某个匹配的分组应当被丢弃。

3.修改字段

在分组被转发到所选的输出端口之前,分组首部10个字段中的值可以重写。

也就是上图(图4-29中显示的除IP协议字段外的所有第二、三、四层字段)中的值可以重写。

匹配加动作操作中的OpenFlow例子

下图是一个使用OpenFlow标准的网络图:

第一例子:简单转发

现在我们假定一个转发行为:“来自h5或h6发往h3或h4的分组从s3转发到s1,然后从s1转发到

S2(完全避免使用s2和s3之间的链路。)”

对于上面例子,在s1中的流表项将是下图:

同时s3中也会有一个流表项:

最后,还需要在s2中也有一个流表项用来完成例子,使得从s1到达的数据报转发到它们的目的主机

h3或者h4:

第二个例子:负载均衡

下面我们来考虑一个负载均衡的例子,其中来自h3发往10.1.*.*的数据报经过s1和s2之间的直接链

路转发,与此同时来自h4发送10.1.*.*的数据报也经过s2和s3转发,注意的这种行为将不能通过基

于IP的目的地转发取得,因此,此时的s2中的流表项如下图所示:

在s1中需要流表项将从s2收到的数据报转发到h1或h2,在s3中需要流表项将接口4上从s2收到的数

据报经过接口3转发到s1。

第三个例子:充当防火墙

例如s2仅希望接收来自与s3相连的主机所发送的流量:

如果在s2的流表中没有其他表项,仅有来自10.3.*.*的流量将被转发到与s2相连的主机。

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

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

相关文章

Codeforces Round 907 (Div. 2——ABC)

A.Sorting with Twos 题目 给定一个数组a,可执行操作如下: 1、选择一个非负整数m,要求 2、将数组中元素从1到m减去1 问,是否可以通过以上操作得到一个单调不增的数组序列。 输入 首行样例个数t, 每个样例首行数…

MySQL第七讲·怎么利用聚合函数实现高效地分组统计?

你好,我是安然无虞。 文章目录 聚合函数:怎么高效地进行分组统计?sum( )avg( ) & max( ) & min( )count( ) 聚合函数:怎么高效地进行分组统计? MySQL中有5种聚合函数较为常用,分别是求和函数sum(…

面试官:说说Redis的SDS底层实现原理

文章目录 前言面试开始1、说说Redis基本类型有哪些2、String类型常用于什么场景3、String类型采用什么数据结构4、继续深入讲讲SDS实现细节5、你说说SDS和C语言字符串的区别5.1、SDS获取长度时间复杂度更低5.2、SDS杜绝缓冲区溢出5.3、SDS减少字符串内存重分配次数5.4、SDS二进…

pytest全局变量的使用

这里重新阐述下PageObject设计模式: PageObject设计模式是selenium自动化最成熟,最受欢迎的一种模式,这里用pytest同样适用 这里直接提供代码: 全局变量 conftest.py """ conftest.py 全局变量,主要实…

基于Java+SpringBoot+LayUI仓库管理系统

一.项目介绍 本项目是使用JavaSpringBoot开发,可以实现仓库的注册、登录,登录后可进入系统,进行客户管理、供应商管理、商品管理、商品退货查询管理、登录日志及退出等几大模块。系统界面采用传统的后台管理界面,界面简单、直观。…

2023年“走红军走过的路”徒步穿越系列活动(大通湖站)盛大开赛!

“蟹”逅红色大通湖 徒步秋色水波中 ——“中国体育彩票” 2023年“走红军走过的路”徒步穿越系列活动(大通湖站)暨大通湖半程马拉松盛大开赛! 11月5日上午8:30,2023年“走红军走过的路”徒步穿越系列活动(大通湖站&…

数据结构-Prim算法构造无向图的最小生成树

引子: 无向图如果是一个网,那么它的所有的生成树中必有一颗生成树的边的权值之和是最小的,我们称 这颗权值和最小的树为:“最小生成树”(MST)。 其中,一棵树的代价就是树中所有权值之和。 而…

幂等最佳实践

1、什么是幂等? 根据百度百科解释: “幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数&…

删除word最后一页之后的空白页

最近编辑word比较多,有时最后一页(最后一页内容还有可能是表格)之后,还有一页空白页,单独按下backspace、del都删不掉,很让人着急。 经过查询有几种方法: (1)点击选中空…

kubernetes(5) 续4

目录 volumes emptyDir卷 hostpath卷 nfs卷 持久卷 storageclass statefulset控制器 mysql主从部署 volumes emptyDir卷 [rootk8s2 volumes]# vim emptydir.yaml apiVersion: v1 kind: Pod metadata:name: vol1 spec:containers:- image: busyboxplusname: vm1command: ["…

pyqt5的组合式部件制作(一)

以多选一的选择器为例,来实践一下工程实用级别的组合式部件设计。自己之前做的自定义的组合式部件,结构不够简单优化,在实际的工程里面,使用部件的过程比较繁琐。所以,这里来做一个优化的实验。 之所以做这个组合部件&…

DevChat:开源AI编程助手的全面解析

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

【场景方案】前端如何结合GPT提升我们的开发效率,个人经验总结,不定期更新~

文章目录 AI模型的选择提问的方式很重要心里建设提问方法论设立角色从总体到局部步骤拆分,循序渐进举例子说明主动让他联系上文不要太纠结提问的方式 网址推荐尾巴 不说废话,没有铺垫,直接开始讲重点 AI模型的选择 首先咱们要选择一个适合的…

3-知识补充-HTTP协议

3-知识补充-HTTP协议 文章目录 3-知识补充-HTTP协议HTTP协议基础什么是HTTP?HTTP协议的会话方式HTTP1.0和HTTP1.1的区别 请求和响应报文报文的格式报文解析实例-请求百度官网请求报文-GET请求请求报文-POST请求-学习用-非请求百度官网响应报文 响应状态码有代表性的…

第八章认识Express框架

目录 Express模块化路由 基本概述 基本使用 基本构建 案例项目 Express接收请求参数 基本概述 基本类别 Express接收GET请求参数 Express接收POST请求参数 Express接收路由参数 Express模块化路由 基本概述 在Express中,路由是指确定应用程序如何响应对…

功率放大器的工作原理及选购技巧

功率放大器是电子设备中非常重要的组成部分之一,它的主要功能是将输入信号的功率进行放大,以驱动高功率负载。在各种应用领域中,如音频放大器、无线电频率放大器、射频功率放大器等,功率放大器都发挥着非常重要的作用。下面将介绍…

Kubernetes二进制搭建

目录 一、K8S的架构 二、K8S创建Pod资源的工作流程 三、K8S资源对象和资源配置信息 K8S资源对象 K8S资源配置信息 四、K8S的的三种网络和三种接口 三种网络: 三种节点: 五、etcd 集群 etcd 的特点: 六、flannel flannel方案 K8S …

指令手册术语缩写

指令手册术语缩写 1 指令汇总表中的操作码列(不带VEX前缀的指令)2 指令汇总表中的操作码列(带有VEX前缀的指令)3 操作码汇总表中的指令列 本文属于《 X86指令基础系列教程》之一,欢迎查看其它文章。 1 指令汇总表中的操作码列(不带VEX前缀的指令) 2 指令汇总表中的…

阿里云安全恶意程序检测(速通三)

阿里云安全恶意程序检测 特征工程进阶与方案优化pivot特征构建pivot特征pivot特征构建时间pivot特征构建细节特点 业务理解和结果分析结合模型理解业务多分类问题预测结果分析 特征工程进阶基于LightGBM模型验证模型结果分析模型测试 优化技巧与解决方案升级内存管理控制加速数…

【配置】如何在打包Spring Boot项目时按需使用日常、测试、预发、正式环境的配置文件

文章目录 前言1. 创建5个配置文件2. 在pom.xml文件中如下配置3. 在application.properties中加入环境变量 前言 在我们开发项目的时候,一般有四套环境:日常、测试、预发、正式。日常环境作为我们开发环境;测试环境给测试同学测试功能&#x…