OpenFlow交换机的实现总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenFlow交换机的实现总结相关的知识,希望对你有一定的参考价值。
先粗略介绍,后续会逐渐完善。
OpenFlow交换机通过使用OpenFlow协议的安全通道与控制器进行通信。其具体实现如下示意图所示:
对于一个新到达的数据流,交换机通常的做法是,把该数据包发送给控制器,由控制器来决定数据包的下一步操作。至于已存在的,则会直接根据原有的发送路径,发往目的点。
根据上图,在实际中,交换机内部通常由两个表,一个是组表还有一个就是流表,组表目前只是初涉猎,暂不解释,后续补充。流表是由流条目构成,其结构可以抽象为下图:
也就是说,每个流表是由多个流条目组成的,而每个流条目对应的就是实际中的一种数据流(目前的理解),当数据流经过OpenFlow交换机的时候,交换机就会根据数据流所带的这些条目进行匹配,来决定对这些数据流的相应操作指示。因此,对于每个流条目,它也具有相应的报文结构,大致分为三个部分,如下所示:
一般而言为匹配字段、计数以及指示段三个部分组成。当一个流条目进入一个OpenFlow交换机后,会根据流表自身的优先级顺序决定匹配的先后次序,若匹配成功,则会执行相应的指示字段所对应的指示,对匹配成功的数据包进行下一步的操作;倘若匹配失败,则会基于交换机本身的配置,来处理流条目,比如发送给远程交换机,丢掉该数据包,或者继续发送给下一个流表,或者洪范广播等。
而对于流表之间的传递通道是用于表与表之间的通信,通常是以元数据的形式,将数据包发送给后续表(目前认为是优先级较低的表)来进行进一步处理和允许信息。当与匹配流条目关联的指令集不指定下一个表的时候,传递途径就会被关闭。在这一点上,数据包通常被修改并转发。
以上是关于OpenFlow交换机的实现总结的主要内容,如果未能解决你的问题,请参考以下文章