包头域,也是首部字段值
用来使入分组(incoming packet)的对应首部与之相匹配, 因此又称为匹配字段。
在OpenFlow交换机中,既可以处理链路层的帧, 也可以处理网络层的IP分组和运输层的报文。
计数器
1.已经与该表项匹配的分组数量
2.该表项上次更新到现在经历的时间
动作
这是一组动作,例如,当分组匹配某个流表项时操作
1.把分组转发到指明的端口
2.丢弃该分组
3.把分组进行复制后再从多个端口转发出去
4.重写分组的首部字段
1.基于流的转发。
SDN控制的交换机分布在数据层面中,而分组的转发可以基于网络层、运输层和链路层协议数据单元中的首部字段值进行。
SDN的转发规则都精确规定在交换机中的流表中。所有交换机中的流表项,都是由SDN控制器进行计算、管理和安装的。
2.数据层面与控制层面分离
在传统的转发设备路由器中,其数据层面与控制层面都处在同一个设备中,因此二者耦合得非常紧密。
但在SDN中,则把这两个层面去耦合,使二者不在同一个设备中。
3.位于数据层面交换机之外的网络控制功能
SDN中的控制层面是用软件实现的,而且软件是处在不同的机器上,并且可能还远离这些网络交换。
SDN控制器维护准确的网络状态信息,
把这些信息提供给运行在控制层面的各种控制应用程序,
以及提供一些方法,使得这些应用程序能够对底层的许多网络设备进行监视、编程和控制。
4.可编程的网络
通过在控制层面的一些网络控制应用程序,使整个网络成为可编程的。
这些应用程序相当于SDN控制层面中的“大脑”
网络应用程序还可以进行接入控制,即决定哪些分组在进入某个交换机时就必须被阻挡住
最下面的一层是通信层
其任务是完成SDN控制器与受控的网络设备之间的通信。
此外,这些设备还必须能够向SDN控制器传送在本地观察到的事件
通信层与数据层面的接口叫作南向API接口。
中间的一层是网络范围的状态管理层
SDN控制层面若要做出任何最终的控制决定,就需要让控制器掌握全网的主机、链路、交换机,以及其他受SDN控制的设备。
交换机的流表中包含有计数器,而网络应用程序需要使用这些计数器的值。
由于控制层面的最终目的是确定各种被控设备的流表,因此控制器还需要维护这些流表的副本
最上面一层是到网络控制应用程序层的接口
这个API接口允许网络控制应用程序对状态管理层里面的网络状态和流表进行读写操作。
当状态变化的事件出现时,网络控制应用程序把得到的网络事件进行通告,并采取相应的动作,
目前已经出现了一些开放源代码控制器,或简称为开源控制器(Open Source Controller), 最有代表性的就是OpenDaylight和ONOS。