软件定义网络SDN的研究进展(10)
发布时间:2021-06-06
发布时间:2021-06-06
SDN的研究进展
张朝昆等:软件定义网络(sDN)研究进展71而确保抽象策略转成可用规则的效率
圃圆圆龇器西蘧滴网网网
实时调度器
Fig.6用户级系统级Maplesystemcomponents
图6Maple系统组件
康奈尔大学与普林斯顿大学联合研究团队首先提出了Frenetic[62],与Nettle等语言类似,它也具有描述性和FRP特性.两者主要有3点不同:一是抽象层次,由于Frenetic是建立在NOX之上的语言,因此比Nettle抽象层次要高;二是Frenetic有查询语言和实时系统,这是Nettle所不具备的;三是Frenetic基于数据包,而Nettle基于事件流.NetCore[631增强了Frenetic的能力,包括增加通配符匹配处理模式、主动生成规则和通用的语法结构等.由于Frenetic和NetCore都采用模块并行组装方式,这要求每个模块(即服务,如接入控制等)都各自生成所需包的备份,造成一定的资源浪费.Pyretic[64】则采用了模块顺序组装方式,使得每个应用可以顺序处理,也有效地避免了潜在应用冲突发生的可能.为了增强这类接口语言的理论基础,2014年初,该团队提出利用Kleene代数理论作为检测的NetKAT[651语言,它改进了NetCore语言特性,可以利用数学理论验证配置的正确性,避免了网络配置潜在的问题.上述各类语言的对比情况见表4.
Table4Comparisonofinterfacelanguages
表4接口语言的对比
接El语言
NOX[”1描述性语言否
是
是
是
是
是
是
是FRP实现语言C++/Python抽象层次低较高较高高高高高高特点仅提供IP地址操作等低配置接El语言较早采用描述性语言和FRP的抽象语言之一,基于事件流多核Nettle与Frenetic采用包操作不同,采用事件流否Nettle侧McNettlet591Procera【601是Haskell是Haskell是FML[“1是Python否Haskell否Python否任意Frenetic㈣NetCore㈣Pyretic[“1NetKAT[651比Nettle语言更抽象,有查询语言,实时系统,基于数据包改进Frenetic,采用通配符匹配,主动生成规则等功能采用顺序组合模式扩展了Frenetic和NetCore增加Kleene代数理论
3.3控制层特性研究
控制层存在一致性、可用性和容错性等特性,而所提到的这3种特性的需求无法同时满足【671,达到三者之间的平衡,是今后的重要工作之一.多数情况下,科研人员是在一部分特性影响较小的前提下重点提升另一部分特性.因此,科研人员在对控制层特性研究中各有侧重.下面对控制层的一致性、可用性和容错性分别进行讨论.
1.一致性
集中控制是SDN区别于其他网络架构的核心优势之一,通过集中控制,用户可以获取全局网络视图,并根据全网信息对网络进行统一设计与部署,理论上保证了网络配置的一致性问题.然而,分布式控制器仍然具有潜在的不一致性问题.由于不同控制器的设计对网络一致性要求有所不同,严格保证分布式状态全局统一的控制器,将无法保证网络性能;反之,如果控制器能够快速响应请求,下发策略,则无法保证全局状态一致性.性能无明显影响的情况下,保证状态一致性成为了SDN设计中的关键问题【49。.并发策略同样会导致一致性问题,可由控制层将策略形成规则,并按两阶段提交方式【40J解决.为了避免数据