论文部分内容阅读
软件定义网络凭借其可编程性为网络负载均衡提供了一种出色的解决方案。然而软件定义网络中现有的网络编程语言(Frenetic、Procera、Flog等)均基于事件流模型,侧重于描述事件发生和动作执行的因果关系,而非动作执行的方式,这样无法反映出负载均衡策略的本质——基于选择执行动作,从而不适用于负载均衡策略的表达。针对这种情况,本文设计了一种能够自然表达负载均衡策略的网络编程语言LOBA,在传统语言所具备的谓词和动作基础上引入了选择器,能够基于谓词所描述的流进行选择,选择结果用于在流上执行动作。作为LOBA应用的开发、运行平台,本文还设计实现了基于网络操作系统的应用框架LOBAFX。LOBA语言的主要特点包括:(I)允许高层次地表达负载均衡策略而不必理会底层细节;(II)模块化、组合式的程序构造;(III)保持语法一致性的同时实现可扩展性。本文的主要工作包括:(I)设计了网络编程语言LOBA和若干内建网络原语;(II)设计了应用框架LOBAFX的整体架构和组件;(III)实现了LOBA语言和LOBAFX框架。最后本文通过若干有现实意义的实验场景证明了:(I)本文研究工作具备实用价值;(II)LOBA语言设计的科学性,仅需不到15行代码即可描述复杂的负载均衡场景;(III)LOBAFX框架的高效性,系统延迟相比直接基于网络操作系统的实现增加不超过10%。