软件定义网络基础---OpenFlow流表

一:流表

(一)流的概念

我们把同一时间经过同一网络中,具有某种共同特征或属性的数据,抽象为一个流
比如:我们将访问同一个地址的数据视为一个流
流一般是由网络管理员定义的,可以根据不同的流执行不同的策略,
在OpenFlow中,数据都是作为流进行处理的。
所以流表就是针对特定流的策略表项的集合,负责数据包的查找和转发
一张流表包含了一系列的流表项flow entries

(二)流表项组成 (包头域、计数器、动作表3个)

(三)包头域

(四)计数器 

 

 (五)动作表

动作表用于指示交换机,在收到匹配的数据包后应该如何进行处理

动作分类

OpenFlow端口类型 

动作转发,与交换机的端口直接相关。OpenFlow交换机的端口是交换机传递数据包的网络接口。
交换机通过接口和其他交换机建立逻辑连接

物理端口、逻辑端口不做介绍

流表动作列表 

二:数据包

(一)数据包的处理流程

其中匹配表按照优先级进行排序,从高到低
如果匹配成功,对应计数器进行更新并去执行相应动作
如果表项没有对应的动作执行,则数据包将会被丢弃
如果没有找到匹配的表项,则封装数据包转发给控制器

(二)包头解析匹配流程

包头解析是为了得到数据分组的12元组(包头域)

1.初始化包头
2.根据以太网类型得到VLAN或三层IP的信息
3.根据IP分组头中的协议类型,确定是TCP/UDP/ICMP协议
4.得到四层的TCP/UDP的源目的端口号或者ICMP类型和编码

三:后续版本的变化

(一)流表项结构的变化

(二)1.3版本中的组表和计量表 

 

 

posted @ 2020-01-23 15:09  星火撩原  阅读(821)  评论(0编辑  收藏  举报