Openflow 协议通信流程解读前言接触了这么久的 SDN,Openflow 协议前前后后也读过好多遍,但是一直没有时间总结一下自己的一些见解。现在有时间了,就写一写自己对 Openflow 协议通信流程的一些理解。SDN 中 Switch 和 controller在 SDN 中很重要的两个实体是 Switch 跟 Controller。Controller 在网络中相当于上帝,可以知道网络中所有的消息,可以给交换机下发指令。Switch 就是一个实现 Controller 指令的实体,只不过这个交换机跟传统的交换机不一样,他的转发规则由流表指定,而流表由控制器发送。switch 组成与传统交换机的差异switch 组成switch 由一个 Secure Channel 和一个 flow table 组成,of1。3 之后 table 变成多级流表,有 256 级。而 of1.0 中 table 只在 table0 中.Secure Channel 是与控制器通信的模块,switch 和 controller 之间的连接时通过socket 连接实现。Flow table 里面存放这数据的转发规则,是 switch 的交换转发模块。数据进入switch 之后,在 table 中寻找对应的 flow 进行匹配,并执行相应的 action,若无匹配的flow 则产生 packet_in(后面有讲)of 中 sw 与传统交换机的差异匹配层次高达 4 层,可以匹配到端口,而传统交换机只是 2 层的设备.运行 of 协议,实现许多路由器的功能,比如组播.求补充!!(假如你知道,请告诉我,非常感谢!)openflow 的 switch 可以从以下方式获得实体 of 交换机,目前市场上有一些厂商已经制造出 of 交换机,但是普遍反映价格较贵!性能最好.在实体机上安装 OVS,OVS 可以使计算机变成一个 openflow 交换机。性能相对稳定。使用 mininet 模拟环境。可以搭建许多交换机,任意拓扑,搭建拓扑具体教程本博客有一篇.性能依赖虚拟机的性能。controller 组成控制器有许多种,不同的语言,如 python 写的 pox,ryu,如 java 写的 floodlight 等等.从功能层面 controller 分为以下几个模块:底层通信模块:openflow 中目前 controller 与 switch 之间使用的是 socket 连接,所以控制器底层的通信是 socket。openflow 协议。socket 收到的数据的处理规则需根据 openflow 协议去处理。上层应用:根据 openflow 协议处理后的数据,开发上层应用,比如 pox 中就l2_learning,l3_learning 等应用。更多的应用需要用户自己去开发。Openflow 通信流程以下教程环境为:minin...