time4:it is about time

abstraction

介绍了TIME4, 利用精确地时间协调网络更新。定义了的更新场景,叫做flow swap。定义了lossless flow allocation 无损流分配问题,展示了一些需要频繁更新路径的场景。论文工作已经被ONF采纳,用于OPENFLOW1.5。

I. introduction

A. it is about time

同步时钟更新在各个网络中都是成熟的技术。PTP就是非常高精度的同步时钟,精度为1微秒。目前13个支持SDN的交换机中9个都支持PTP技术。
我们的工作,TIME4可以实现定时更新,本文也展示了一类更新场景使用精确时间是最好的选择。

B. the challenge of dynamic traffic engineering in SDN

集中式网络更新通常包含多个网络设备,需要降低临时混乱。SDN用于校园网,数据中心,广域网,运营商网络,移动网络。广域网和运营商网络要求低丢包率。移动网络要求对于视频和音频帧丢失率不超过10^ -4, 其他低优先级的包也不超过10^-3.
总之,所有的所有的网络都要求低丢包率

C. timed network update

如图1展示了一个更新场景,只有同时更新S1,S3才可以避免死锁。
本文我们展示了一个动态环境,流会不断的增加删除或者重路由,流交换( flow swap )不可避免。accuracy就是我们的解决方案,但是不可能所有的更新同时应用在所有交换机,有一个小的间隔,我们称之为调度错误。

在这里插入图片描述

D. related work

大量的工作研究流表更新,(1)找一个更新顺序序列,(2)两阶段等。然而这些方案对于死锁,资源等没有很好地解决方案,只是用于流更新一致性。
SWAN建议预留10-30%的链路空间缓解堵塞,B4提出临时降低一些或者所有流的带宽,他们可以解决资源问题,但是我们的方法可以优化这些解决方案。

E. contributions

  • 定义了一类更新场景,为流交换,展示了利用同步时钟进行同步更新,提供了更好的解决方案。
  • 展示了设计,实现,评估。
  • 我们的工作包含一个openflow协议扩展,已经被1.5应用。

II. the lossless flow allocation(LFA) problem

A. inevitable flow swap

本节讨论流交换的不可避免,而且没有策略可以避免这种场景出现。
我们的分析基于不可分割的流问题,如图2。
给一个有向图,源节点s,目标节点d, 定义两者的博弈: source (可以认为是攻击者)生成流,controller重新配置网络转发规则,达到尽量没有丢包。
我们的观点是:source有策略强制控制器进行流交换,也就是多个流同时进行更新的场景不可避免,体现我们的提出的定时更新的重要性。
在这里插入图片描述

B. model and definition

下面我们阐述lossless flow allocation(LFA)问题。source和controller之间的博弈,源不断增加或者删除流,控制器找出一条路径。源的目的是渐增的增加流,迫使控制器执行流交换。控制器的目的是找到一个路径减少丢包率。
我们展示源有策略实现迫使控制器进行流交换。

假设:1,每个流有固定的带宽。2. 控制器要降低丢包 3.流不可切分。

定义流:SDN中为共有一些属性:例如源目的地址等。本文我们将一个流看做是源和目的之间一个session。
网络可以表示为一个有向有权重无环图,G=(V,E,c)\color{red}{G = (V, E, c)}.

其中V = Vin U {s,d}, Vin表示中间的节点,{s,d} 表示源和目的节点。
所有的直接连着s的节点表示为O = {O1, O2, O3,}。
从源出发的边为无限容量,其余边容量为c, 文中简化,c= 1. 这样的一个图G就是LFA图。
从 S出发的流定义为F = {F1, F2, F3}每个流定义为Fi = (i, fi, ri); 其中i表示index, fi表示流带宽,ri表示控制器转发给的节点。

控制器维持转发功能Rcon: F×Vin ->Vin U {d}.

C. LFA 博弈

源策略Ss(F, Rcon) = (a, F)定义一组流的转发功能,(a, F)代表源的下一步a ∈{add, remove}
控制器策略Scon(Rcon, a, F) = U = {u1, u2, ……},U就是一组更新。
注意当流被移除,控制器更新很简单,我们主要讨论添加新流。
theorem1. 存在策略Ss, 迫使控制器不得不执行流交换。

证明:如图2b, 我们认为m为流入d的链路数量,
m = 1策略简单,先讨论m= 2。
两个边流入d,分别额为 e1和e2,下面给一个例子。
如果source生成四个流
F1 = (1,0.35,o1), F2 = (2,0.35,o1), F3 = (3,0.45,o2),  F4 = (4,0.45,o2) 
有两种情况。
 a. 控制器可能按照顺序e1为0.35和0.45,e2也是,
 然后source生成一个新流F5 = (5, 0.3, o1)只能移动0.35和0.45.
 出现场景流交换。
b. 控制器分配e1为0.35和0.35, e2为0.45, 0.45,
source生成两个流F6,F7,带宽分别为0.2, 
将F6安排到e1后,需要交换0.35和0.45才可以分配F7.
出现场景流交换。
当m > 2, 我们先生成m-2个带宽为1的流,占据其他的链路,
问题降级为m=2.

理论1展示了2-swap,我们后边证明k-swap.


**theorem2. 交换机存在策略,迫使控制器进行K交换。**

证明:如果m是偶数,source生成m个流带宽0.35, m个流带宽0.45, m个流带宽0.2, 每个链路都有一个0.35,0.45 和0.2 的流。
之后移除m个0.2带宽的流,添加m/2个带宽为0.3的流。
按照理论1, 每个0.3流都会造成一个2-swap, 整个网络就是一个m/2-swap.

如果m是奇数,source先生成带宽为1的流,之后按照上述偶数产生m-1/2-swap.

本文主要讨论m=2的部分。

D. inpact of flow swap

定义矩阵表示流的超出额度oversubscription。
通过理论证明表示:流交换不仅仅不可避免,而且对整个网络有较大的影响力。

III. design and implementation

A. protocol design

  1. overview
    控制器设计一个执行时间发送给交换机,定义交换机执行命令的时间。
    time4需要控制器和交换机维持一个本地时钟,允许时间触发事件,本地时钟是同步的,我们可以使用现有的同步时钟,我们使用reversePTP.
  2. openflow time extension
    我们提出一个扩展,该扩展允许openflow控制器向交换机发出命令规定执行时间。
    我们使用Bound(一组openflow 消息, 可以看做一个单独的操作),我们的time extention定义为scheduled Bundles(一组命令在一个指定的时间执行)。
    我们使用Bundle消息实现TIme4有两个优点:
  • (1)不需要改变消息结构,增加time扩展。
  • (2)scheduled bundle允许取消命令。

图5展示了scheduled bundle 消息流程。
(1)控制器发送bundle open 消息给交换机
(2)控制器发送add message ,每个add massage封装一条openflow message, 例如flow_mod
(3)发送bundle close消息
(4)发送bundle commit消息,可选的带有一个执行时间Ts, 交换机将在预定的时间Ts执行命令。

在这里插入图片描述
bundle discard 消息 允许控制器不执行命令。bundle commit 消息发送之后,如果一个交换机发送error消息,控制器会发送discard消息给所有交换机,取消调度操作。

因此,当交换机收到bundle commit消息后后,交换机应该确定他是否有足够的资源执行这个命令。
同样定义了 bundle feature request消息,控制器询问交换机是否支持scheduled bundles.

  1. clock synchronization:reversePTP
    原有的PTP是一个单节点向其他节点分发自己的时间,reversePTP是所有的节点向master分发自己的时间,即交换机向控制器发送自己的时间。控制器可以得到自己的时钟和每个交换机时钟之间的偏差,offset(i)假设执行时间为Ts, 那么交换机i 的指令中执行时间为Ts+offset(i).
    两个好处
  • (1)控制器处理复杂算法,交换机只是发送自己的时间
  • (2)控制器可以追踪每个时钟的状态,初始同步完成,控制器就会知道。

B. prototype design and implementation

如图7为系统架构,黑色部分是作者自己的实现。
在这里插入图片描述

  • switch:交换机基于使用开源代码 CPQD opensoftswitch, 添加一个switch scheduling模块,当交换机收到控制器的scheduled bundle 消息,这个模块可以在预定的时间调度执行对应的指令,这个模块也可以处理收到的bundle feature request消息。

  • 并且交换机跑着一个reversePTP master, 发送交换机时间给控制器。

  • controller:控制器模块时间基于CPDQ DPCTL,这完全是个命令行工具,扩展DPCL 添加time extension 模块实现我们的需求。 新模块可以为bundle commit 指令定义一个执行时间,同样课发送bundle feature request消息。

  • 并且控制器运行着reversePTP,收到来了交换机的n个实例,按照偏移量计算命令执行时间。

IV. EVALUATION

未完待续。。。


注:本文介绍两篇论文:
【1】 T. Mizrahi and Y. Moses, “TIME4: Time for SDN,” technical report, arXiv preprint, 2016.
【2】Tal Mizrahi, Yoram Moses, “Software Defined Networks: It’s About Time”,IEEE INFOCOM 2016.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章