作业
链接:http://www.cnblogs.com/zhudanhong/p/8005948.html
1.列举openflow1.0的12元组?
2.openflow多级流表机制的优点?
openflow1.0支持多流表的机制,但是只能允许一个匹配一个流表项。一个包首先匹配流表0,如果没有就去前进到有流表项的流表进行匹配。如果同时存在多个匹配的流表项,也只会有一个流表项被最终匹配(选择根据:如果优秀级不同,选择优先级高的;如果优先级相同,由交换机具体实现来选择一个)。在openflow1.0我好像没有看到多级流表有什么特别的优点。
然后看到书中有说openflow1.1开始,支持多个流表项匹配的处理流水线,再结合老师上课所讲的,我理解的是:在有多级流表且支持多流表项匹配的条件下,原先一个包含复杂条件的流表项,可以分解成一个个简单的流表项,然后存放在不同流表中,然后通过跳转流表的形式来进行组合。
通过上述的理解的话,我觉得可能有以下优点:
- 如果一个数据包进行匹配会占用流表这个资源的话,将流表分成多级流表,让多个数据包同时使用流表这个资源,可以以流水线的方式进行并行的匹配,数据包匹配的速度加快
- 同时如果一个数据包有a,b,c多个匹配关键字,而且每个关键字有2中选择的话,要想构造匹配所有数据包情况,一级流表就需要2 * 2 * 2 = 8个流表项。而有多级流表的话,每个流表处理一个关键字的匹配,通过流表跳转进行组合,只需要 1 * 2 + 1 * 2 +1 * 2 = 6个流表项,减少了流表项个数
- 也可以以更合理的方式组织流表,进行模块化流表。看《图解openflow》开头,作者也是提到了一点:
到时候一些可以通用的匹配可以由前人写成开源的匹配流表库,我只要在他们最后跳转的流表项,补充上自己的流表,就可以快速的进行开发了。