OpenFlow协议初探——OpenFLow中的流和流表
OpenFlow交换机转发面由两部分组成:端口和流表。一个交换机可以有很多种端口,也可以有很多级流表。下图是思科提供的OpenFlow交换机总体架构。
可以将Controller Channel视为OpenFlow交换机和和OpenFlow控制器通信的端口。控制器告诉交换机,当数据报文从哪个端口进入,需要去查哪张流表,然后具体匹配到哪张流表项,并执行该流表项所规定的指令,转发或者丢弃。
下面来介绍OpenFlow中的Flow和Flow Table:
流:流这个概念在计算机网络领域十分常见。所谓的流就是在一段时间内经过同一个网络的一系列具有相同属性的顺序发送的报文集合。流是一个相对的概念,并没有绝对的定义。随着coflow等概念的引入,流调度这个问题在现有的研究中较为普遍。下面举个例子,例子来源[1],
主机A应用层FTP协议向主机B传输文件,该文件在网络层分为10万个报文,源IP为A,目的IP为B。传输层协议为TCP,源端口号2000,目的端口号21.
同一时间段,主机C应用层FTP协议向主机B传输文件,该文件在网络层分为20万个报文源IP为C,目的IP为B。传输层协议为TCP,源端口号3000,目的端口号21.
如果管理员只对目的IP是B、目的TCP端口号是21的报文感兴趣,那么这30万报文就是一条流,因为他们具有相同的感兴趣的属性。那么管理员如果还对源IP感兴趣的话,那么就是两条流。因为源