实验5 开源控制器实践——POX

news/2024/5/17 2:39:54/文章来源:https://www.cnblogs.com/hhhf/p/16754514.html

实验5 开源控制器实践——POX

基础实验

  1. hub
    image

分析:
由于在hub模式下,采取广播帧的模式,交换机每收到一帧,会向所有端口进行广播,因而h1发给h2的数据包在h3的端口也能监听到

  1. switch
    image

分析:
由于在自学习模式下,交换机会根据mac高速缓存信息进行发送数据包,因而在实验过程中,对于h1发给h2的数据包,h3只能捕捉到h1对h2的arp请求,并不能捕捉到数据包

  1. 流程图
    image

进阶实验

  1. 自定义一个POX模块SendFlowInSingle3
from pox.core import core
import pox.openflow.libopenflow_01 as ofclass SendFlowInSingle3(object):def __init__(self):core.openflow.addListeners(self)def _handle_ConnectionUp(self, event):msg = of.ofp_flow_mod()  msg.priority = 1msg.match.in_port = 1 msg.actions.append(of.ofp_action_output(port=2)) msg.actions.append(of.ofp_action_output(port=3)) event.connection.send(msg)msg = of.ofp_flow_mod()  msg.priority = 1msg.match.in_port = 2 msg.actions.append(of.ofp_action_output(port=1)) msg.actions.append(of.ofp_action_output(port=3))  event.connection.send(msg)msg = of.ofp_flow_mod() msg.priority = 1msg.match.in_port = 3  msg.actions.append(of.ofp_action_output(port=1))  msg.actions.append(of.ofp_action_output(port=2)) event.connection.send(msg)def launch():core.registerNew(SendFlowInSingle3)

结果:
image

  1. 硬超时功能
    2.1 利用1编写的代码,手工开启、断开、再开启
from pox.core import core
import pox.openflow.libopenflow_01 as ofclass SendPoxHardTimeOut(object):def __init__(self):core.openflow.addListeners(self)def _handle_ConnectionUp(self, event):msg = of.ofp_flow_mod()  msg.priority = 2msg.match.in_port = 1 msg.hard_timeout = 10event.connection.send(msg)msg = of.ofp_flow_mod()  msg.priority = 1msg.match.in_port = 1 msg.actions.append(of.ofp_action_output(port=2)) msg.actions.append(of.ofp_action_output(port=3)) event.connection.send(msg)msg = of.ofp_flow_mod()  msg.priority = 2msg.match.in_port = 2 msg.hard_timeout = 10event.connection.send(msg)msg = of.ofp_flow_mod()  msg.priority = 1msg.match.in_port = 2 msg.actions.append(of.ofp_action_output(port=1)) msg.actions.append(of.ofp_action_output(port=3))  event.connection.send(msg)msg = of.ofp_flow_mod()  msg.priority = 2msg.match.in_port = 3 msg.hard_timeout = 10event.connection.send(msg)msg = of.ofp_flow_mod() msg.priority = 1msg.match.in_port = 3  msg.actions.append(of.ofp_action_output(port=1))  msg.actions.append(of.ofp_action_output(port=2)) event.connection.send(msg)def launch():core.registerNew(SendPoxHardTimeOut)

image

2.2 直接运行SendPoxHardTimeOut
image

实验总结

本次实验主要学习POX控制器的使用方法,通过实验学习,我对比了集线器和交换机传输帧的区别,切实地感受到交换机自学习算法能够有效地减少广播风暴。并且,通过此次实验,我了解了如何通过编写代码实现硬实时功能、下发流表功能,颇有收获。

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

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

相关文章

设计模式解析---------------单例模式

单例模式定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式的使用场景 确保某个类只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种对象有且只能有一个。 单例模式的UML图 角色介绍&#xff1…

数字媒体概论——系统篇

一:需求分析 需求分析三大要素: 表达内容 -> 媒体种类面向人群 -> 交互方式使用方式 -> 硬件需求 例如:海洋馆需要一个可以展示海洋生物知识的媒体交互系统,可供多人同时观赏,主要面向儿童,这里…

计算机二级C语言题库(44套真题+刷题软件)第一套

刷题软件 gongzhonghao:露露IT 1、循环队列的存储空间为Q(1:100),初始状态为frontrear100。经过一系列正常的入队与退队操作后,frontrear99,则循环队列中的元素个数为( )。 A. 0或100 B. 1 C. 2 D. 99 本题考查知识点是循环队列。当队头和队尾指针指向同一个元素…

常见的图片格式介绍

常见的图片格式介绍 图片(Picture)包括图形、图像。图形(Graph)是矢量图(Vector Drawn),图像(Image)是位图(Bitmap)。 图片(Picture…

【老板要我啥都会】|前端升全栈之项目使用express重构项目(下篇)

前言 承接上一篇文章,《前端升全栈之项目使用express重构项目(上篇)》,我们继续讲解下一篇的项目使用express重构项目完整的下一篇(主要是国庆,需要放松,所以该文章分为上下篇,请大…

2022年Webpack 5初学者完整指南

2022年Webpack 5初学者完整指南 从基础到高级学习 Webpack 5!将 Webpack 与 JS、CSS、NPM、模块联合和微前端一起使用 课程英文名:Webpack 5 in 2022 The Complete Guide For Beginners 此视频教程共2.5小时,中英双语字幕,画质…

都这麽大了还不快了解防病毒网关?

目录 一、思考 二、实验 1、实验拓扑 2、配置过程(网页端配置) 三、总结 1. 什么是恶意软件? 2. 恶意软件有哪些特征? 3. 恶意软件的可分为那几类? 4. 恶意软件的免杀技术有哪些? 5. 反病毒技术…

OceanBase 从0到1数据库内核实战教程学习笔记 - 3.OceanBase基础架构和开发技巧

这篇文章主要介绍王泽林老师分享的 《OceanBase 的基础架构和开发技巧》。如果您看过第一篇文章的对应视频,会发现整个系列主要分为 MiniOB 和 OceanBase 两个系列,本篇文章就是 OceanBase 系列的开篇,所以文章中会有很多 OceanBase 的概念和…

Java类的成员方法的创建以及调用|在使用时有何意义|附运行方式及题目

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝 🥇博主昵称:Jovy. 🍟博客主页…

遥感航拍影像25篇CVPR39个数据集

摘要 本文讲解了39个数据集,关于高空卫星图和低空无人机航拍图像。 本文汇总了25篇CVPR2020年和2021年的论文。 本文详细介绍了这25篇论文的任务是什么,难点是什么,场景是什么。 同时,本文在需要的地方解释了一些卫星图和航拍…

Vue学习第35天——模拟项目上线基本流程

一、打包 将.vue文件生成为.html、.css、.js文件 npm run build执行完之后,会在项目中生成一个dist文件(执行的速度取决于项目的大小以及电脑的配置) 二、创建服务器 没有后端服务器,这里我们使用node.js express 搭建一个服…

(附源码)计算机毕业设计ssm餐厅管理系统

毕设帮助,指导,本源码分享,调试部署(见文末) 4.1.2系统的主要的功能结构 餐厅管理系统的主要功能的结构如图4-1所示。 图4-1系统功能结构图 4.2系统设计 4.2.1数据表E-R图 菜谱信息属性图如图4-2所示。 图4-2菜谱信息实体属性图 账单信息…

3、数据类型中的数据位置,stograge、memory、calldata

数据位置 所有的复杂类型,即 数组 和 结构 类型,都有一个额外属性,“数据位置”,说明数据是保存在 内存memory 中还是 存储storage 中。 根据上下文不同,大多数时候数据有默认的位置,但也可以通过在类型名后增加关键字 storage 或 memory 进行修改。 函数参数(包括返回的…

Day11 栈和队列

150. 逆波兰表达式求值 解法一:将计算部分抽象成一个函数,使代码更加简洁,避免了很多冗余操作。对比下面解法二(我自己写的),此解法(参考别人的)的代码更加精简。核心思想都是利用栈…

Linux学习 -- Shell面试题练习

1、使用Linux命令查询file1中空行所在的行号 awk /^$/ {print NR} file1 // 使用正则表达式^$ 来表示空行 2、使用Linux命令计算文件a.txt的第二列的和并输出 张三 40 李四 50 王五20 cat a.txt | awk -F " " {sum$2} END {print sum} 3、Shell脚本中如何检查一个文…

欧拉函数的power

在算数基本定理中有 $ N = p_{1}^{a1} p_{2}^{a2} p_{3}^{a3} ..... p_{k}^{ak} $ wuw在y总的课中是用了容斥原理进行推导得到了 $ \phi(x) = N * (1 - \frac{1}{p1}) * (1 - \frac{1}{p2}) * .... * ( 1 - \frac{1}{pk}) $ 所以就可以得到依靠该公式得出的欧拉公式的算法 #in…

基本语法

输入输出输入: 输出:字符串: System.out.println("hello world!"); 字符串+数值 System.out.println("a =" + 8);import java.util.Scanner; //Scanner 是一个简单的文本扫描器public class MyInput {public static void main(String[] Args) {Scanne…

cat笔记

0.学习目标 能够知道什么是CAT能够搭建CAT服务端环境能够进行CAT客户端的集成能够使用CAT监控界面进行服务监控能够完成CAT和常用框架集成了解CAT告警配置了解CAT客户端和服务端原理 1.CAT入门 在这一部分我们主要介绍以下3部分内容: 什么是调用链监控 什么是CA…

【虚幻引擎UE】UE5 阴影异常与优化解决方案合集

一、消除阴影锯齿 异常效果: 模型锯齿状阴影。 解决方案: ① 确定打开虚拟阴影贴图。 虚拟阴影贴图(VSM)是一种全新的阴影贴图方法,可以提供稳定的高分辨率阴影。通过与虚幻引擎5的Nanite虚拟几何体、Lumen全局光照和…

Seata安装

文章目录一、下载二、MySQL配置三、Nacos配置四、启动参考一、下载 从Seata下载地址下载 https://github.com/seata/seata/releases 这里下载的是seata-server-1.5.2.tar.gz 解压: tar -xvf seata-server-1.5.2.tar.gz修改配置:conf/application.ym…