实验3:OpenFlow协议分析实践

实验报告

基本要求

/home/用户名/学号/lab3/目录下的拓扑文件

wireshark抓包的结果截图

1.hello (首先互相发送hello消息互相协商openflow协议版本)

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

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

2.FEATURES_REQUEST(控制器获取交换机的ID、缓冲区数量、端口等特性)

3.SET_CONFIG (控制器用来配置交换机发送的数据包)

4.PORT_STATUS(交换机端口发生变化时,告知控制器相应的端口状态)

5.FEATURES_REPLY (交换机对控制器回应其想要的特性)

6.PACKET_IN (当流表中没有关于新到达流的数据包或者即使有关于新到达流的流规则但其行为是发往控制器的时候,交换机向控制器发送Packet In消息。)

7.FLOW_MOD

  • 控制器6633端口向交换机45390端口下发流表,指导数据的转发处理

  • 控制器6633端口向交换机45392端口下发流表,指导数据的转发处理

8.PACKET_OUT (Packet Out消息是控制器指定的某个数据包的处理方法。)

交换机与控制器的消息交互过程

交换机与控制器建立通信时是使用TCP协议还是UDP协议?

答:使用TCP协议。

进阶要求

1.HELLO

2.FEATURES_REQUEST(与HELLO相同)

3.SET_CONFIG

4.PORT_STATUS

5.FEATURES_REPLY

6.PACKET_IN
(1)交换机查找流表,发现没有匹配条目时
(2)有匹配条目时但是对应的action时OUTPUT=CONTROLLER

7.PACKET_OUT

8.FLOW_MOD

个人总结

这次实验主要就是用 wireshark 进行抓包,分析并了解OpenFlow协议的数据包交互过程与机制。这次更偏向于理论知识的学习,但也复习了上一次wireshark的使用,对wireshark的各项功能有了更加深刻的理解,大致也了解了switch和controller之间消息交互的方式。
实验过程一开始没有找到hello的包,原来是要先运行wireshark,再构建拓扑。实验过程要细心一些,看PPT也要细致一些!
进阶的时候,通过网上查找关于OpenFlow协议的相关代码和参数对应关系,让我对OpenFlow协议有了更深刻更形象的认识。知其然知其所以然!

posted @ 2022-09-27 19:23  zjq12  阅读(102)  评论(0)    收藏  举报