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

引子:

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

查找目的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相连的主机。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试面试会问哪些问题?

软件测试面试,一般会被问到下面这九类问题。 1、基础问题 2、Linux命令 3、数据库 4、功能测试 5、Python基础 6、接口测试 7、自动化测试 8、性能测试 9、人事问题 接下来,以上9类问题,我都会分别结合2个案例,附上答案&#xff0…

【gltf-pipeline】安装gltf-pipeline 进行文件格式转换

问题 想使用gltf-pipeline进行gltf和glb格式转换。简单记录一下安装过程。 解决 1、安装Node.js Node.js下载路径:https://nodejs.org/en 建议默认设置安装。 添加系统环境变量: 测试安装是否成功: 在cmd.exe中运行: no…

self.register_buffer方法使用解析(pytorch)

self.register_buffer就是pytorch框架用来保存不更新参数的方法。 列子如下: self.register_buffer("position_emb", torch.randn((5, 3)))第一个参数position_emb传入一个字符串,表示这组参数的名字,第二个就是tensor形式的参数…

虚拟机网络没有有效的ip配置

虚拟机网络没有有效的ip配置: 原因猜测:或许是之前使用的操作系统把网络给占了。 解决方法:点击虚拟机的 遍历->网络编辑器->移除不要的网络,然后添加网络。(下面的图就是我把虚拟网络全部移除,然后…

png怎么转jpg?这款图片转格式工具一学就会用

虽然png图片格式是一种无损压缩格式,但是png图片的内存大小也是比较大的,而且兼容性上也没有jpg图片好,许多平台推荐的也都是jpg格式,所以当我们需要把png转jpg格式的时候,就需要用到图片格式转换器,今天推…

【Qt绘制小猪】以建造者模式绘制小猪

效果 学以致用&#xff0c;使用设计模式之建造者模式绘制小猪。 代码 接口&#xff1a;申明绘制的步骤 PigBuilder.h #ifndef PIGBUILDER_H #define PIGBUILDER_H#include <QObject> #include <QPainter>class PigBuilder : public QObject {Q_OBJECT public:ex…

解密Elasticsearch:深入探究这款搜索和分析引擎

•开篇 最近使用Elasticsearch实现画像系统&#xff0c;实现的dmp的数据中台能力。同时调研了竞品的架构选型。以及重温了redis原理等。特此做一次es的总结和回顾。网上没看到有人用Elasticsearch来完成画像的。我来做第一次尝试。 背景说完&#xff0c;我们先思考一件事&…

计算机中丢失mfc140u.dll怎么解决

mfc140u.dll是一个Microsoft Visual C库文件&#xff0c;主要用于MFC&#xff08;Microsoft Foundation Class&#xff09;应用程序的开发。它包含了MFC应用程序所需的一些常用功能&#xff0c;如对话框、窗口、菜单等。当mfc140u.dll丢失时&#xff0c;可能会导致MFC应用程序无…

Android MotionLayout

MotionLayout exends ConstraintLayout(动画框架 过渡) View动画 API1 属性动画API11 过渡动画API18 root.width RootViewWidth TransitionManager.beginDelayedTransition(view) 过渡动画 可以改变其大小和流畅性 Fade 可以改变透明度 通过TrasitinManager管理 Go:动态替…

vue前端实现多个url下载并合并为zip文件

一、安装 npm install jszip npm install file-saver 二、引入 import axios from axios import JSZip from "jszip"; import FileSaver from "file-saver"; 三、核心代码 videoData:[/video/26519f026fc012521605563015227403.mp4,/video/f7b9cdae14…

数字通信和fpga概述——杜勇版本学习笔记

1数字通信处理流程 脉冲调制是每个数字通信系统中间必不可少的环节&#xff0c;通常是使用升余弦滚降滤波器来实现。 超外差接收机原理是利用本地产生的振荡波与输入信号混频&#xff0c;将输入信号频率变换为某个预先确定的频率的方法。超外差原理最早是由E.H.阿姆斯特朗于1…

2023年云计算发展趋势:生活的智能未来

目录 引言1 智能家居的崭新时代2 无人驾驶的崭新时代3 虚拟现实的扩展与改进4 人工智能的综合应用5 云计算的可持续性结语 引言 时光荏苒&#xff0c;科技的飞速发展已经成为当今社会的标志之一。在这个数字化时代&#xff0c;云计算已经成为推动技术革新和生活方式改变的关键…

软件测试|Python Faker库使用指南

简介 Faker是一个Python库&#xff0c;用于生成虚假&#xff08;假的&#xff09;数据&#xff0c;用于测试、填充数据库、生成模拟数据等目的。它可以快速生成各种类型的虚假数据&#xff0c;如姓名、地址、电子邮件、电话号码、日期等&#xff0c;非常适合在开发和测试过程中…

CSS实现鼠标移至图片上显示遮罩层及文字效果

效果图&#xff1a; 1、将遮罩层html代码与图片放在一个div 我是放在 .proBK里。 <div class"proBK"><img src"../../assets/image/taskPro.png" class"proImg"><div class"imgText"><h5>用户在线发布任务&l…

FreeRTOS学习笔记(二)

一、时间片调度 1、同等优先级任务轮流地享有相同的 CPU 时间(可设置)&#xff0c; 叫时间片&#xff0c;在FreeRTOS中&#xff0c;一个时间片就等于SysTick 中断周期 /* 任务一&#xff0c;实现LED0每500ms翻转一次 */ void task1( void * pvParameters ) {uint32_t task1_n…

Java算法(六):模拟评委打分案例 方法封装抽离实现 程序的节流处理

Java算法&#xff08;六&#xff09; 评委打分 需求&#xff1a; 在编程竞赛中&#xff0c;有 6 个评委为参赛选手打分&#xff0c;分数为 0 - 100 的整数分。 选手的最后得分为&#xff1a;去掉一个最高分和一个最低分后 的 4个评委的平均值。 注意程序的节流 package c…

Spring-循环依赖简述

什么是循环依赖 // A依赖了B class A {public B b; } ​ // B依赖了A class B {public A a; } ​ // 循环依赖 A a new A(); B b new B(); a.b b; b.a a; 对象之间的相互依赖很正常&#xff0c;但是在Spring中由于对象创建要经过Bean的生命周期&#xff0c;所以就有了循环…

【广州华锐互动】气象卫星监测AR互动教学软件为气象学习带来更多乐趣

由VR制作公司广州华锐互动开发的气象卫星监测AR互动教学软件是一款结合了增强现实(AR)技术与气象监测技术的教育软件。它通过直观、互动的方式&#xff0c;帮助学生更好地理解和掌握气象监测的基本知识和技能。本文将从气象卫星监测AR互动教学软件的应用场景、优势分析、实际意…

c#如何把字符串中的指定字符删除

可以使用以下四种方法&#xff1a; 一、使用关键字&#xff1a;Replace public string Replace(char oldChar,char newChar); 在对象中寻找oldChar&#xff0c;如果寻找到&#xff0c;就用newChar将oldChar替换掉。 1、实例代码&#xff1a; 2、执行结果&#xff1a; 二、Rem…

【CesiumJS入门】(11)加载LAS点云数据

前言 最近有两次投递简历以及面试都被问到了是否有三维点云数据处理相关的经验。然而我的岗位都没有和点云相关的工作任务&#xff0c;所以还是得自己加把劲呀。 本篇将从数据获取到加载来简易地介绍一个LAS点云数据的加载。 加载数据 首先&#xff0c;你得有一份LAS格式的…