OPENFLOW协议协议分析实践

news2025/8/10 13:33:35

一、基本要求
1.搭建下图所示拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。用抓包软件获取控制器与交换机之间的通信数据。


2.查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程,画出相关交互图或流程图。
hello
控制器6633端口(我最高能支持OpenFlow 1.0) ---> 交换机37244端口

交换机37244端口(我最高能支持OpenFlow 1.0) ---> 控制器6633端口

于是双方建立连接,并使用OpenFlow 1.0
Features Request / Set Conig
控制器6633端口(我需要你的特征信息) ---> 交换机37244端口

控制器6633端口(请按照我给你的flag和max bytes of packet进行配置) ---> 交换机37244端口

Port_Status
当交换机端口发生变化时,告知控制器相应的端口状态。
Features Reply
交换机37244端口(这是我的特征信息,请查收) ---> 控制器6633端口

Packet_in
有两种情况:
• 交换机查找流表,发现没有匹配条目时
• 有匹配条目但是对应的action是OUTPUT=CONTROLLER时
交换机37244端口(有数据包进来,请指示)--- 控制器6633端口

Flow_mod
控制器通过6633端口向交换机37244端口、交换机35336端口
下发流表项,指导数据的转发处理

Packet_out
控制器6633端口(请按照我给你的action进行处理) ---> 交换机37244端口

OpenFlow协议中交换机与控制器的消息交互过程

3.回答问题:交换机与控制器建立通信时是使用TCP协议还是UDP协议?
回答:TCP协议
4.个人总结:
本次实验学习分析openflow协议,基本上了解学习了openflow协议的工作方式以及发包流程,并且学习了这些协议的源代码数据结构,进一步加强了对openflow协议工作方式以及工作流程的理解了,了解了在这个协议之下交换机以及控制器进行交流分享数据的方式,对数据交互有了更深的理解。
同时,在刚开始使用wireshark抓包时发现无法看到hello协议的包,才了解到hello在构建拓扑结构的时候才会发出。之后又找不到flow_mod的包,了解到flow_mod在下发流表的时候才会发出,对发到的顺序以及控制器与交换机之间的沟通顺序有了更深刻的理解。

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! !   

原文链接:https://www.cnblogs.com/212006134xjt/p/16757209.html

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

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

相关文章

【后端】HTTP4

回顾一下之前学习的内容 通过之前的学习,我们大致了解了HTTP请求响应的报文格式 HTTP请求 (1)首行(方法 URL 版本号) (2)请求头 header (3)空行 (4&a…

计算机网络(第六弹) --- 与 HTTP 有关的八个问题

当我们用浏览器打开一个网页时基本上都是基于 HTTP 协议来进行传输的, 其实用 APP 来打开一个界面看到的 APP 中的内容大概率也是基于 HTTP 协议传输的, 因此 HTTP 对于网络而言的重要性不言而喻!   HTTP 这个协议在传输层主要是基于 TCP 来实现的, TCP 是传输字节流的协议, 只…

客户生命周期管理的五个最佳实践

每个优秀的客户服务人员都知道,业务不仅仅是完成一次性交易。优秀的企业与客户建立互惠互利的关系,相当于提高了客户的终身价值。换句话说,他们确保客户长时间留下来。本文将讨论客户生命周期管理的一些最佳实践。 1、与潜在客户和客户进行个…

业务数据分析-Excel必须掌握的7个操作技巧(二)

Excel必须掌握的7个操作技巧1、定位2、选择性粘贴3、快速填充4、查找与替换5、分列与合并6、去除重复项7、日期格式规范1、定位 如何快速定位到不连续的空值,填充为0 1.在任意空单元格里复制0 2.选中数据区域CtrlA 3.CtrlG 4.选择【定位条件】 5.选择【空值】 6.Ct…

如何使用Docker安装Kibana

(一)、概述 Kibana是一款开源的数据分析和可视化Web平台,用于对 Elasticsearch 索引中的数据进行搜索、查看、修改、添加和删除操作。 (二)、安装 1、Docker环境 视频教程:https://www.bilibili.com/vi…

ifconfig 查看 etcd 使用的 IP 是否存在

在该节点上 ping 其他节点 IP,测试是否 ping 通。 如果 ping 不通,执行步骤(1)(2),检查该节点网络、IP 配置、防火墙配置等。 如果 ping 通,执行步骤(3)确认…

ceph delete pool

参考: Pools — Ceph Documentation 前言:网上的写的乱七八糟不是你抄我就是我抄你 写的完全瞎扯 简直看不下去 官网截图: #准备 1.查看pool名称 ceph osd lspools #创建一个pool用于做测试/设置分类 ceph osd pool create pool-demo 6 6 cep…

供销社物资仓库管理系统-RFID供销社物资管理系统

1、建设背景 1.1项目目标 目前,许多仓储管理主要是基于相应规范的手工作业及电脑半自动化管理实现的,其弊病显而易见,即需要投入大量人力进行规范物品的放置、定期整理盘点以及出入库登记等工作,这使得仓储管理问题十分繁琐&…

Ubuntu下MySql数据库报1055报错

问题描述 在运行Ubuntu下数据库时执行group by 时报错,但在Windows下没有问题 报错内容 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘exercise_8.1.sc.student_id’ which is not functionally dependent…

十一、Mysql常见的show命令及information_schema.tables视图说明

Mysql常见的show命令及information_schema.tables视图说明十一、Mysql常见的show命令及information_schema.tables视图说明一、常见的show命令二、information_schema.tables视图说明1、information_schema.tables视图的结构说明2、information_schema.tables视图的案例说明3、…

【现代密码学原理实验】——CrypTool2与OpenSSL的使用(学习笔记)

📖 前言:本期我们将使用两个密码学常用工具来实现与分析前面所学的理论知识。 目录🕒 1. 工具介绍🕘 1.1 CrypTool 2🕘 1.2 OpenSSL🕤 1.2.1 常用指令语法🕤 1.2.2 Dgst 指令语法🕒…

c++/VS XP系统 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll解决方案

项目情况: 调用第三方网络库(hv库),在win7/8/10等系统都运行正常,在XP系统提示“ 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll” 产生原因: 第三方网络库(hv库)使用到了wsap…

PDF转OFD ~java实现

PDF转OFD ~java实现 上篇文章记录了一下我第一次对接“超阅云”实现了ofd转pdf功能,想了想,还是再写一篇pdf转ofd的实现,其实对接的API基本一样,如果你是第一次看,建议先看看上一篇文章-“ofd转pdf” ———————…

Web前端——用CSS的常用样式制作一个炫酷的按钮

文章目录笔记:CSS的常用样式炫酷按钮效果实现笔记:CSS的常用样式 边框以及弧度样式 border-width:边框的线条宽度。 border-style:边框的样式,例如 solid实现 dotted 点线 dashed 虚线… border-color:边框…

Docker -- 01实践:使用Docker 快速安装Jenkins

使用Docker 快速安装Jenkins1. Docker install2. Jenkins install3. User Guide1.1 Big Data -- Postgres3. User Guide1.1 Big Data -- PostgresJenkins Website: https://www.jenkins.io/. 1. Docker install Docker 安装和基础知识 Docker install: https://blog.csdn.net/w…

TS学习笔记 类型标签 联合类型 枚举类型 泛型 类型别名

个人理解总结: js天生没有编译和类型检查的束缚 灵活好上手 结合项目使用时也可以做到热更新提升开发体验。 (需要编译的JAVA以前开发DEBUG很麻烦但现在有了容器编排技术,也可以实现类似效果) TS是JS的超集,添加了类型标注,不能直…

vulnhub靶机corrosion1

靶机下载地址:Corrosion: 1 ~ VulnHub Kail IP:192.168.174.128 Corrosion ip:192.168.174.133 思路: 靶机端口扫描,ssh日志反弹shell,linpeas脚本扫描,备份文件发现密码,爆破zi…

医疗器械设计时需要注意的事项

伴随着医疗器械的增加,经市场评估的医疗器械产品也趋向多样化,医疗器械设计也非常重要,下面小编就带大家了解一下开展医疗器械设计时需要注意什么? 说到医疗器械,相信大家都很熟悉。医疗器械有很多种,包括一类医疗器械…

【C++位图】1. 快速查找某个数据是否在一个集合中 2. 排序(全部插入,遍历一遍) 3. 求两个集合的交集、并集等

目录 问题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 2.简单实现一个位图 3.如何利用位图求两个集合的交集、并集 问题:给40亿个不重复的无符号整数,没排过序…

Golang入门笔记(14)—— 错误处理

来一个除以0的异常,代码如下: package mainimport "fmt"func main() {fmt.Println("before")divNum()fmt.Println("after") }func divNum() {num1 : 10num2 : 0result : num1 / num2fmt.Println(result) } console 异常&…