SDN的研究进展
张朝昆等:软件定义网络(sDN)研究进展67灵活性,成为目前研究的热点问题.
利用硬件处理数据,可以保证转发效率,但亟需解决处理规则不够灵活的问题.为了使硬件能够灵活解决数据层的转发规则匹配严格和动作集元素数量太少等限制性问题,Bosshart等人【32】针对数据平面转发提出了RMT模型.该模型实现了一个可重新配置的匹配表,它允许在流水线(pipeline)阶段支持任意宽度和深度的流表.重新配置数据层涉及4个方面:①允许随意替换或增加域定义;②允许指定流表的数量、拓扑、宽度和深度,仅仅受限于芯片的整体资源(如芯片内存大小等);③允许创建新动作;④可以随意将数据包放到不同的队列中,并指定发送端口.RMT模型如图2所示.从结构上看,理想的RMT模型是由解析器、多个逻辑匹配部件以及可配置输出队列组成.具体的可配置性体现在:通过修改解析器来增加域定义,修改逻辑匹配部件的匹配表来完成新域的匹配,修改逻辑匹配部件的动作集来实现新的动作,修改队列规则来产生新的队列.这样容易模拟网关、路由器和防火墙等设备,也能够使用多标记头或非标准的协议.所有更新操作是通过解析器来实现的,无需修改硬件,只需在芯片设计时留出可配置的接口即可,实现了硬件对数据的灵活处理.
逻辑阶段l逻辑阶段Ⅳ
l输入。
7---Ib流表头解析器
负载逻辑匹配部件逻辑匹配 -----_.部件—————斗重组输出队列分组厂—T]I..................J_J
Fig.2RMTmodel
图2RMT模型
作为另一种利用硬件灵活处理技术,FlowAdapter[33】采用交换机分层的方式来实现高效、灵活的多表流水线业务.FlowAdapter交换机分为3层:最上层是可以通过更新来支持任何新协议的软件数据平面,底层是相对固定但转发效率高的硬件数据平面,位于中部的FlowAdapter层负责软件数据平面和硬件数据平面之间的通信.当控制器下发规则时,软件数据平面将存储这些规则,形成M个阶段的流表.由于这些规则相对灵活,不能全部由交换机直接转化成相应转发动作,而硬件数据平面可以实现规则的高速匹配转发.因此可利用中间层FlowAdapter将两个数据平面中的规则进行无缝转换,即,将相对灵活的M阶段的流表转换成能够被硬件所识别的Ⅳ阶段的流表.为了达到转换目的,FlowAdapter首先检查软件数据平面的全部规则,然后根据完整的规则将M阶段的流表转换成l阶段流表,最后再将1阶段流表转换成Ⅳ阶段流表发送给硬件数据平面.通过这种无缝转换,理论上解决了传统交换机硬件与控制器之间多表流水线技术不兼容的问题.另外,FlowAdapter相对控制器完全透明,对FlowAdapter交换机的更新不会影响控制器的正常运行.
与利用硬件设计交换机的观点不同,虽然软件处理的速度低于硬件,但是软件方式可以最大限度地提升规则处理的灵活性,同时又能避免由于硬件自身内存较小、流表大小受刚34】、无法有效处理突发流等问题,因而同样受到学术界的关注.利用交换机CPU[”】处理转发规则,可以避免硬件灵活性差的问题.由于CPU处理数据包的能力变得越来越强【361,商用交换机很自然地也会采用这种更强的CPU.这样,在软件处理转发速度与硬件差别变小的同时,灵活处理转发规则的能力得到提升.进一步地,还可以采用NP的处理方式【37】.由于NP专门用来处理网络的各种任务,如数据包转发、路由查找和协议分析等,因此在网络处理方面,NP比CPU具有更高效的处理能力.无论采用CPU还是NP,应发挥处理方式灵活性的优势,同时尽量避免处理效率低而带来的影响.
此外,在数据平面中,哪些元素可以交给硬件处理,哪些元素可以交给软件处理,也是值得考虑的问题.例如,原本设计到硬件中的计数器功能并不合理【38】,而应当放置到CPU中处理,这样既可以保证计数器的灵活性,又能节省硬件空间,降低复杂度,同时还能够避免硬件计数的限制.