论文部分内容阅读
软件定义网络(SDN)是一种将控制与转发分离的革新的网络架构。SDN的集中式控制和可编程性使得网络管理灵活化、敏捷化成为可能。目前,SDN已经被越来越多的云服务提供商、电信运营商所采用。在实际应用中,因故障恢复、负载均衡等原因,SDN控制器经常需要更新数据平面的策略(如转发策略等)。然而,SDN控制与转发分离带来了新的挑战。由于SDN数据平面本质上是分布式的,不同交换机异步执行策略相关的规则更新,使得策略更新过程中会出现路由环路、链路拥塞等网络异常,进而导致丢包和长时延,明显降低了网络的服务质量。如何保证更新过程中的一致性是SDN面临的根本挑战之一。现有相关研究成果无法满足动态并发策略在一致性更新和快速更新方面的需求,其主要原因包括:(1)通配符匹配和最长前缀匹配的广泛使用导致策略间匹配域重叠现象十分普遍,进而导致并发策略无环路更新时待处理的临时状态数量呈指数级增长。(2)动态并发事件间的资源依赖关系导致后到达的事件必须等待当前事件完成。由于受策略规模的影响,当前更新事件的完成时间可达毫秒级乃至分钟级。对故障恢复、安全管理等应用来说这种长时延等待显然是不可接受的。 针对上述问题,本文重点研究了面向动态并发策略的快速一致性更新方法,解决了并发策略的完全无环路更新和快速无环路更新、动态并发事件的实时一致性更新三个方面的问题。通过基于单策略调度的完全无环路更新、基于跨策略环路特征分析的快速无环路更新和面向动态并发事件的规则级实时一致性更新等方法实现了网络动态更新过程中的零丢包和低时延,有效保证了网络服务质量。上述成果是基于SDN构建数据中心等网络以支持云计算等动态性强的新业务不可缺少的关键技术,对进一步推广SDN在实际网络中的部署具有重要价值和意义。本文的创新性主要体现在: (1)提出基于单策略调度的并发策略完全无环路更新方法 针对策略因匹配域重叠导致更新出现路由环路的问题,提出了基于单策略调度的完全无环路更新方法。目的是通过计算并发策略的阶段与阶段之间的路由依赖关系实现在多项式时间内的完全无环路更新。首先用3-SAT严格证明了在单策略调度基础上的并发策略无环路更新是NP-难的。进而提出了基于N叉树的启发式算法——Nary。基于关键规则和层次遍历组合并发策略的不同阶段来实现完全无环路更新。Nary是第一个完全实现并发策略无环路更新的多项式调度算法,完全解决了并发更新过程的单策略环路和因匹配域重叠而导致的跨策略环路问题。实验结果表明,相比已有的无环路更新方法,Nary在实现完全无环路的同时,还减少了90%以上的“单位轮”(即每轮只更新一条规则)。 (2)提出基于跨策略环路特征分析的并发策略快速无环路更新方法 针对集中式控制器与数据平面通信时延长导致并发策略更新时延长的问题,进一步提出了基于跨策略环路特征分析的快速无环路更新方法,从根本上避免更新过程中的跨策略环路。首先,分类分析了跨策略环路的特征以及它们对报文转发的影响。进而提出了避免跨策略环路的基本原则,并理论证明了原则的可行性和适用范围。最后,基于上述原则进一步提出了基于MILP的快速无环路更新算法——CBreaker。理论分析和实验结果表明,CBreaker可以解决94.5%的跨策略环路和100%的单策略环路。此外,相比其他无环路更新方法,可以将更新调度的轮数进一步降低16%~50%以上。 (3)提出面向动态并发事件的规则级实时一致性更新方法 针对控制器对动态并发事件一致性更新响应时延长的问题,提出了规则级的实时一致性调度方法RDScheduler。在规则层面实现策略之间、更新事件之间的无环路和无拥塞调度,避免在事件级和策略级调度而导致的不必要的等待时延。首先提出了规则级的无环路调度方法。然后,提出了基于交换机上的规则资源依赖图(L-RDG),计算用于数据平面自动协调的动态更新依赖图(DUDG)的无拥塞调度算法。最后,实现了面向动态并发事件的实时调度和增量更新机制。RDScheduler实现了动态并发事件在控制器上的零等待和实时响应。实验结果表明,相比最新的部分推迟更新的方法,针对Google的B4网络,使用RDScheduler可以将更新事件和更新策略的99th百分位时延分别降低105ms和162ms。