2. 国防科技大学 信息通信学院, 陕西 西安 710106;
3. 清华信息科学与技术国家实验室(筹), 北京 100084;
4. Department of Computer Science, University of Rochester, New York 14627, USA
2. College of Information and Communication, National University of Defense Technology, Xi'an 710106, China;
3. Tsinghua National Laboratory for Information Science and Technology(TNList), Beijing 100084, China;
4. Department of Computer Science, University of Rochester, New York 14627, USA
数据中心流量存在以用户访问为主的南北向流量和以数据备份、迁移为主的东西向流量.东西向流量主要在服务器之间产生, 并且与南北向流量的比率达到了4:1[1].服务器之间的数据备份、迁移容易产生大流, 并造成链路之间流量分布的不均衡, 从而产生拥塞, 使网络性能急剧下降.由于数据中心通常具有对称的拓扑结构, 使得节点对之间存在大量的冗余链路[2].充分利用这些冗余链路进行流量均衡, 是目前数据中心流量工程的主要方法.当前, 数据中心普遍采用ECMP这种静态的路由机制进行多路径传输, 可改善单路径路由由于“选路”集中而造成的拥塞问题, 同时能够做到故障链路的快速切换, 增强可靠性, 并能聚合链路带宽, 充分使用网络资源.为了应对数据中心流量高突发的动态特性, VL2[3]在上行链路中增加了随机选择核心节点的步骤, 但其选路本质上还是采用ECMP机制.这种静态路由策略存在的主要问题是:当链路中出现大流时, 会造成链路资源分配不公平.
在采用多路径传输的基础上, 动态的路由策略引入了链路状态监测机制, 克服了ECMP路由的不足.例如, 文献[4, 5]就是通过多路径权重的优化来自适应路由.DARD[6]在数据源端通过传输层MPTCP[7]协议进行多路径的流量均衡, 源端通过主动探测的方式来检测链路的拥塞情况.CONGA[8]扩展了数据包头字段, 增加了拥塞信息位来携带传输链路的拥塞信息, 并沿着传输路径逐跳更新, 数据包到达接收端后, 通过反馈回路将拥塞信息反馈到数据源端.以上的研究工作都是基于传统网络的分布式转发, 存在共性的问题是:由于缺乏对全局的信息掌握, 使得流量均衡不能做到全局最优.例如, VL2对核心交换机的随机选取都是在上行链路之间进行, 并未关注下行链路的拥塞状况.
基于SDN的集中控制方式通过对全局视图的网络管控, 能克服分布式转发的不足.基于SDN的流量工程具有以下优势:(1)通过对全局信息的网络管控, 针对网络资源的瓶颈处, 通过下发策略到节点设备动态地调整网络状态; (2)能够做到应用层信息全局的快速部署, 例如QoS、路由策略等, 不需要对每个节点交换设备进行配置; (3)具有可编程性, 能够对处于数据平面支持OpenFlow(OF)协议的交换机预编程以及根据控制器下发策略动态地重新编程; (4) OF交换机支持的多流表流水线使得对数据流的管理更加灵活和有效.这些优势使得SDN成为流量工程未来的一种发展趋势[9, 10], 并且相对于传统的分布式转发网络, 能够更精确地进行流量均衡.
数据中心归属单一运营商所有, 便于流量工程的统一部署, 天然符合SDN所需要的集中控制要求.文献[11]基于SDN的设计理念, 首次将NOX集中控制器应用到数据中心.MicroTE[12]通过在终端部署流量监测服务器对传输的流量进行预测, 当预测到的流量超过设定的阈值则触发控制器, 通过路由策略的更新进行细粒度的流量均衡; 否则, 依然采用ECMP路由机制进行转发.Hedera[13]和Mahout[14]提出了大流碰撞时的解决方案, 两者的相同点在于都是针对大流进行流量均衡, 而对小流的处理采用ECMP机制进行路由; 二者的主要区别在于监测大流的位置不同, 其中, Hedera通过控制器每隔5s对边缘层交换机进行抽样来监测大流; Mahout则是通过在终端操作系统中嵌入“夹层”来监测大流, 并以带内信号的方式通知控制器.当监测到大流后, 触发控制器数据流调度算法计算出合适的分流路径并下发到交换机.
Fastpass[15]是基于数据包粒度的流量均衡, 在控制器与主机之间, 通过设计新的通信协议“FCP”对数据包进行时隙以及路径的分配, 做到交换机“零缓存”来降低拥塞的发生.Fastpass在数据源端关闭了传统的TCP拥塞控制协议, 即不再使用TCP拥塞控制窗口来对发送速率进行限制, 通过这种方式提高网络吞吐量.Fastpass扩大了接收端的缓存来克服由于采用数据包粒度的流量均衡方式而产生接收端数据包乱序的问题.
数据中心采用集中控制方式的流量均衡, 通过对全局视图的网络管控, 克服了传统网络分布式转发只能做到局部最优的缺点.当前面临的挑战:
● 一是如何设计数据流调度策略, 既能简化部署、增强可扩展性, 又能解决在数据流迁移的过程中造成的数据流丢包以及接收端可能产生的数据包乱序问题.目前的研究工作中, 基于数据流粒度的均衡策略不可避免地会在大流的迁移过程中产生丢包, 并且可能造成接收端数据包乱序, 例如Hedera的GFF路由策略.基于包粒度的均衡策略为了克服接收端数据包乱序问题, 实现起来较为复杂, 对传输协议或者体系结构改动较多.例如, Fastpass除了设计新的通信协议外, 还对数据源端的传输控制协议进行了修改, 同时还需要增大接收端的缓存, 这些都增加了部署的复杂性, 可扩展性不高.
● 二是如何平衡控制平面开销与细粒度流量均衡之间的关系.例如, Hedera和Mahout当监测到大流并触发算法时, 需要为目标大流搜寻所有的有效传输路径, 寻找具有合适转发带宽的路径, 计算复杂度至少是O(n).虽然能够实施细粒度的负载均衡, 但同时也增大了相应的开销[16], 并且策略的时效性不能保证.
综上所述, 本文将基于SDN的设计理念, 通过重新定义数据流的传输时隙, 提出一种新的动态路由算法(flowlet-binned algorithm based on timeslot, 简称FLAT).本文的主要贡献点在于:(1)基于FLAT算法实现的流量工程方案, 以流量均衡为目标, 在数据流调度的过程中不会造成接收端数据包乱序的问题; (2)针对数据中心普遍部署的商用交换机浅缓存的特性, 提出新的算法机制防止缓存溢出; (3)在进行细粒度流量均衡的同时, 不会对目前普遍使用的TCP通信协议做任何改动, 易于部署, 具有可扩展性.最后, 通过原型系统的设计并在Mininet仿真平台中部署, 在基于FatTree拓扑上与ECMP以及Hedera中GFF路由机制相比较, 实验结果展示了FLAT能够适应网络瞬时的性能下降, 减少丢包率, 能够最大限度地减低拥塞链路产生的风险, 同时证明了在数据中心基于该算法的流量工程解决方案能够降低控制平面开销, 易于部署.
本文第1节对算法设计的关键技术进行分析.第2节实现FLAT算法并基于算法设计原型系统.第3节对FLAT实施过程中所产生的开销进行评估.第4节对FLAT进行仿真实验, 得出性能评价结果.第5节对本文进行总结并展望下一步研究工作.
1 算法关键技术分析本节将提出基于SDN/OF流量工程方案的应用层路由策略, 即基于时隙的流片装箱算法FLAT, 通过利用数据中心存在的冗余链路, 在实现细粒度流量均衡的同时, 能够保证数据流迁移过程中不产生丢包以及避免接收端数据包乱序.
1.1 传输时隙定义 1.1.1 数据流分割相对于单路径, 多路径路由能避免因为失效链路或者拥塞链路造成的数据包丢失, 更好地保障传输的可靠性.在SDN/OF框架下, 可以根据链路拥塞状态将数据流在节点对之间有效的多条路径上动态地进行分配, 使得网络中各链路的资源利用率趋于均衡.但是在数据流迁移的过程中, 不可避免地会产生丢包以及接收端数据包可能出现的乱序问题, 例如Hedera.如果只从流量均衡的角度来说, 基于数据包粒度的传输是完美的流量工程解决方案, 但由于传输链路之间不同的时延差, 导致接收端不可避免地出现数据包乱序.例如, Fastpass和DRB[17]都是在数据中心采用基于数据包粒度的流量均衡, 同时, 为了解决接收端数据包乱序的问题, 需要对TCP协议进行修改并提出新的控制协议, 同时还需要增大接收端缓存, 部署复杂, 可扩展性不高.
从以上分析可以看到, 无论是基于数据流粒度还是数据包粒度的流量均衡方式, 造成接收端数据包乱序的根本原因就是传输路径之间的时延差.如果相邻的两个数据包之间发送间隔大于传输路径之间的时延差值, 接收端就不会产生数据包乱序的问题.对此, 提出定理1并加以证明.
定理1.如果节点对之间存在多条可达路径, 只要相邻数据包发送间隔大于或者等于这些路径的时延差, 属于同一会话的数据包就可以任意选择不同的路径分别进行传输, 并且不会出现接收端数据包乱序问题.
证明:假设数据源和目的节点对之间存在n条传输路径Li, 其中, i∈[1, n], 并且传输链路具有相同的传输介质, 属于同一会话的2个相邻数据包分别为Pj-1, Pj, 且Pj-1序号小于Pj并分别沿路径Li-1和Li传输, 数据包到达目的节点的传输时间分别Tj-1和Tj.如果数据包到达目的节点的传输时间满足Tj-1≥Tj, 则定理得证.实际测得路径Li-1, Li当前传输时延分别为Di-1, Di(可以假设短时间内链路负载状态变化不大), 且连接数据源端的节点交换设备转发Pj和Pj+1数据包的发送间隔时间为δ, 并且设δ=|Di-Di-1|, 即数据包发送间隔时间用所选择路径的传输时延差值来表示, 则有Tj-1=Di-1, Tj=δ+Di.将多路径传输时间求差得到Tj-Tj-1=δ+Di-Di-1, 此时存在两种情况:如果Di-Di-1≤0, 则Tj-Tj-1=0, 说明2个数据包同时到达; 如果Di-Di-1 > 0, 则Tj-Tj-1 > 0.因此当δ=|Di-Di-1|时, 必然存在Tj-1≥Tj, 故定理得证.
1.1.2 时隙定义数据中心90%以上的数据流是TCP流, 根据TCP的流量与拥塞控制机制, 发送端要受到发送窗口的制约在单位时间内发送1个或多个报文段, 然后停止发送并等待接收端对已经发送的报文段进行确认.这段空闲时间段用Tw来表示.根据定理1, 当与δ值满足大于或者等于的关系时, 就可以对属于同一数据流的报文段在不同的路径上进行迁移而不会产生接收端数据包乱序问题.因此, 定义Tw作为数据流传输的一个单位时隙, 如果对链路中不同的会话的数据流进行染色, 如图 1所示(图中各数据流由水平方向的黑色虚线隔开, 表示沿着不同的路径传输), 同时对产生会话的时间轴以Tw为一个时隙单位划分为n个传输时隙, 如果能使相邻时隙内不出现属于同一色块的数据包, 就能保证属于同一会话的数据包在不同的路径上传输而不会出现接收端数据包乱序的问题.
1.2 数学模型
根据定理1, 重新定义数据流的传输时隙, 并且可以保证当数据流按照时隙分配在多条路径上传输时, 不会引起接收端数据包出现乱序的问题.然而, 数据流在实际传输过程中不一定按照定义的时隙到达, 例如图 1中, 第n-1个时隙内也会有属于同一会话数据流的黄色数据包出现, 就需要对这一个时隙内的数据包进行缓存并在下一个时隙进行转发.图 1中, 第n个时隙底部的黄色数据包就是第n-1个时隙内需要被缓存转发的数据包.为了实现FLAT, 需要对数据流的到达行为进行分析并建模.由于数据中心符合因为资源共享而导致大量信源叠加的事实, 所以采用排队论是对这种网络流量特性进行建模分析的主要方法之一.根据排队论相关理论, 通过测量与仿真, 文献[18]推测, 在链路带宽足够的情况下, TCP流的到达行为服从泊松分布.此外, 可以认为网络节点设备对数据流的转发, 即对数据包进入链路的服务时间, 服从指数分布, 因而以往的研究工作中, 比较常见的是采用M/M/1/∞排队模型进行建模[19].
当前, 数据中心普遍使用浅缓存的商用以太网交换机, 并且交换机通常采用共享缓存这种交换结构.在这种结构中, 所有的输入和输出端口都共享一个缓存模块, 所有需要经过交换机的数据都在缓存中存储转发, 一台交换机就可以抽象成一个服务窗口.此外, 可以认为交换机对数据流的转发, 即对数据包进入链路的服务时间, 服从指数分布.由于FLAT采用自定义的时隙传输数据, 为了满足定理1可能需要对某个时隙内的数据包进行缓存转发, 如果不对缓存队列进行优化处理, 就容易造成交换机缓存溢出而产生丢包.因此, 假设t时刻数据源端发现交换机缓存队长变小, 则增大数据包进入系统的概率; 反之则减小.数据流的到达率就不再是一个稳定值, 而是依赖t时刻缓存队列长度k的一个函数, 采用可变到达率的G/M/1/∞排队模型进行建模分析[20].用图 2描述一个具有可变到达率的数据流生灭过程.
以图 2为例, 其中假设缓存队列长度为k(k≥1), 并且数据流是以ak=1/a×k(a≥1)的概率进入排队系统, 最终可以得到稳态下的数据流到达概率分布函数:
${P_k} = \frac{{{\rho ^k}}}{{(k - 1)! \times {a^{k - 1}} \times (1 + \rho \times {e^{\rho /a}})}}$ | (1) |
其中, Pk即为t时刻队列长度处于K状态的概率分布, ρ为数据流的到达强度.
1.3 优化问题上一节提到数据中心普遍采用浅缓存的商用交换机, 因此FLAT设计中需要有防止缓存溢出的算法机制.通常, 交换机转发数据包的能力是固定不变的, 即排队系统服务速率μ不变, 通过上一节对数据流到达行为进行分析, 采用可变到达率的排队模型, 优化问题的目标就是最小化缓存队列的长度.根据FLAT算法的设计, 数据流i在t时刻一个Tw时隙内的队列应该由3部分构成:上一时隙未处理的队列、本时隙内新到达的队列以及本时隙能处理的队列.用Li(t-1)表示上一时隙未处理的队列, Lin(t)表示当前时隙内新到达队列, Lio(t)表示当前时隙内能处理的最大队列.t时刻, 数据流i在一个时隙内需要缓存的队列长度为
$ {{L}_{i}}\left( t \right)={{\left[ {{L}_{i}}\left( t-1 \right)+{{L}_{in}}\left( t \right)-{{L}_{io}}\left( t \right) \right]}^{+}} $ | (2) |
其中, 当前时隙能处理的最大队列长度是由交换机转发链路带宽Cl以及传输时隙值Tw共同决定, 即Lio(t)=Cl×Tw; 表达式[]+代表正值优化问题才有意义, 优化问题的目标函数即为
${\rm{Minimize}}\sum\nolimits_i {{L_i}(t)} $ | (3) |
对公式(2)进行推导:t=1, 即排队系统的起始时刻初始值Li(t-1)=Li(0)=0, 表示初始时刻时隙内并没有上一时隙缓存的队列, 因此Li(1)=Li(0)+Lin(1)-Lio(1)=Lin(1)-Lio(1);当t=2, Li(2)=Li(1)+Lin(2)-Lio(2)=Lin(1)+Lin(2)-Lio(1)- Lio(2);以此类推, 当t趋于无穷时可以得到:
$\mathop {\lim }\limits_{t \to \infty } {L_i}(t) = \sum\nolimits_1^\infty {[{L_{in}}(t) - {L_{io}}(t)]} $ | (4) |
当一个排队系统运转一段时间后, 系统的状态将独立于初始状态及经历的时间, 这时称系统处于稳定状态.排队论中主要研究系统处于稳定状态下的工作情况, 优化的目标函数即公式(4)可以变形为
$F({K_i}) = \sum\limits_{{K_i} = {L_{io}}}^\infty {({K_i} - {L_{io}}) \times {P_{_{Ki}}}} $ | (5) |
其中, Ki为当前队列长度, Pki即为公式(1), 将公式(1)代入并对公式(5)进行级数求和整理后得到:
$F({K_i}) = \sum\limits_{{K_i} = {L_{io}}}^\infty {({K_i} - {L_{io}}) \times {P_{_{Ki}}}} = \sum\limits_{{K_i} = {L_{io}}}^\infty {({K_i} - {L_{io}}) \times \frac{{{\rho ^k}}}{{(k - 1)! \times {a^{k - 1}} \times (1 + \rho \times {e^{\rho /a}})}}} = \\\frac{{\rho \times {e^{\rho /a}}}}{{(1 + \rho \times {e^{\rho /a}})}} \times (\rho /a + 1 - {L_{io}})$ | (6) |
其中, eρ/a的取值范围在(0, 2.7)之间, 用常数符号C1代替; 表示排队强度的参数ρ=λ/μ, 其到达率λ可以用一个
$F({r_i}) = \frac{{{C_1} \times C_2^2 \times r_i^2 + a \times (1 - {C_l} \times {T_w}) \times {r_i}}}{{a \times {C_1} \times {C_2} \times {r_i} + a}}$ | (7) |
优化问题总是伴随着约束条件, 首先是链路实际负载不能超过链路自身承载能力, 链路负载能力用Cl表示, 即
$\left. \begin{align} & \text{Minimize}\sum\nolimits_{i}{\frac{{{C}_{1}}\times C_{2}^{2}\times r_{i}^{2}+a\times (1-{{C}_{l}}\times {{T}_{w}})\times {{r}_{i}}}{a\times {{C}_{1}}\times {{C}_{2}}\times {{r}_{i}}+a}} \\ & \text{s}.\text{t}\text{.}\ \ r_{i}^{l}\le {{C}_{l}} \\ & ~~~~~\ \ {{r}_{i}}\ge 0 \\ \end{align} \right\}$ | (8) |
公式(8)属于非线性比式和的分式规划, 是一类全局优化问题, 求解该类优化问题已被证明属于NP-难问题[21], 这一类优化问题可以采用分支定界法进行求解.最终提出数据源端控制算法SRC(source rate control)对求解过程进行描述, 见算法1.
算法1. SRC.
1. T /*设定控制器轮询周期值*/
2. BT /*轮询周期内数据流传输字节值*/
3.
4.
5. C3=/a+1-Lio
6. if C3 < 0:
7. return null
8. else:
9. C1=random(0, 2.7) /*取值范围在(0, 2.7)之间*/
10.
11. 求解优化问题(8)获取更新后的源端速率ri
12.end if
算法1中, sampled_rtt表示时延抽样值, sampled_num表示抽样次数.
2 算法实现与原型系统设计本节将基于SDN/OF架构实现基于时隙的流片装箱算法FLAT, 并完成原型系统的设计.
2.1 FLAT算法实现前文中分析了FLAT算法设计的关键问题, 以定理1为设计原则定义数据流的传输时隙, 并提出FLAT的核心优化问题, 通过求解优化问题得到数据源端最佳的数据流发送速率, 来保证交换机不会因为缓存溢出而丢弃数据包.同时, 为了保证FLAT算法设计的可靠性, 将算法1定义为函数src(), 并作为FLAT算法实现的关键函数(算法2中第2行).
算法2. FLAT.
1. #function define
2. def src() /*源端速率控制函数*/
3. def checkFlat(flag) /*判断是否继续执行FLAT*/
4. #begin
5. flat_flag /*算法执行标志位*/
6. buffer_flag /*判断到达数据包是否需要缓存:1(true)表示缓存; 0(false)表示转发*/
7. buffer_dumped_flag /*判断缓存中是否存在待处理的数据包:1(true)表示不存在, 即已经处理完毕;
0(false)表示存在*/
8. flat_flag=true
9. buffer_flag=false
10.buffer_dumped_flag=false
11.while flat_flag==true:
12. Tw /*获取传输时隙值*/
13. src()
14. buffer_flat=true
15. sleep(Tw) /*缓存Tw时间长度, 即执行算法3中缓存函数*/
16. buffer_dumped_flag=false /*算法3(第13行)中被重新置为1(true)*/
17. buffer_flat=false
18. sleep(Tw) /*转发Tw时间长度, 即执行算法3中转发函数*/
19. checkFlat(flat_flag)
20.end while
21.#end
算法2中, 第11行~第20行描述了FLAT工作过程:当算法标志位flat_flag为真, 则表示FLAT被触发, 紧接着判断是否需要执行源端速率控制函数; 当缓存标志位buffer_flat为真, 则执行缓存函数并对到达的数据包进行缓存, 函数执行周期为一个传输时隙Tw(第15行), 并将buffer_dumped_flag标志位置为0, 即表示缓存中存在待处理的数据包并将在下一个转发时隙优先处理(第16行); 当缓存标志位buffer_flat为假, 则执行转发函数并优先处理上一个时隙缓存的数据包, 函数执行周期为一个传输时隙Tw(第18行); 算法第19行将判断一个循环周期(缓存和转发周期)结束后, 是否继续执行算法.FLAT算法的复杂度将在本文第3节具体分析.
由于当前的控制器只能提供s级的时钟粒度, 而FLAT算法设计中的转发与缓存函数, 需要到达μs级的时钟粒度, 为了保证FLAT算法执行的效率, 算法执行过程中的转发与缓存函数将通过扩展交换机中的转发模块来实现.算法3则具体实现了交换机处理FLAT数据包的过程, 包括缓存和转发两个动作.
算法3. FPP(FLAT packet processing).
1. #function definition
2. def output(pkt) /*数据包转发函数*/
3. def buffer(pkt, array) /*数据包缓存函数*/
4. #begin
5. array /*数据包缓存容器*/
6. while new_pkt:
7. if buffer_flat==true:
8. buffer(new_pkt, array)
9. else:
10. if buffer_dumped_flag==false: /*缓存中存在待处理的数据包*/
11. foreach pkt in array:
12. output(pkt)
13. buffer_dumped_flag=true
14. output(new_pkt)
15. end if
16. end if
17.end while
18.#end
其中, 算法第6行~第17行描述了算法工作过程:当数据包到达交换机时, 此时的缓存标志位如果为真, 则需要将该数据包缓存至array容器(第8行); 如果缓存标志位为假, 则先判断上一个时隙内是否有缓存的数据包并优先转发缓存的数据包(第10行~第12行), 同时将buffer_dumped_flag标志位重新置为1(第13行), 然后再转发新到达的数据包(第14行).
2.2 原型系统设计基于SDN/OpenFlow架构以实现FLAT算法为目标进行原型系统的设计, 系统由3个层面构成:应用层、中间层的控制器平台以及底层的交换机网络.中间层为应用层提供API接口用于应用程序检测网络状态、下发控制策略, 同时通过SSH安全通信协议与底层交换机网络建立连接.原型系统整体设计如图 3所示, 其中具有逻辑关系的功能模块用虚线连接表示.
2.2.1 应用层
属于原型系统架构中的最高层, 在应用层中用户可以自定义应用程序进而触发网络中的数据流定义事件.本文原型系统设计的应用层, 主要实现FLAT数据流调度算法, 并利用API接口与控制器实现通信, 通过控制器将其编译后发送至底层交换网络, 最终可以实现基于时隙传输的数据流调度算法, 完成流量工程的目标.
2.2.2 中间层属于系统架构中间层的控制器平台, 是SDN架构的核心组件.控制器通过对拓扑信息以及相关测量信息的收集为上层的应用程序提供相关的数据支持, 最终路由策略的实施通过流表, 由南向接口的安全连接通道下发到网络节点交换机, 交换机则根据流表进行转发实现应用层的目标.图 3中, 控制器平台通过3个功能模块完成以下任务.
(a) 拓扑信息收集模块通过向与其相连的交换机收集更新信息来发现网络拓扑.交换机可更新的信息包括发现邻居消息和每个邻居互联的链路状态消息, 通过与交换机信息的交互, 以形成全局的网络视图, 并向应用层模块提供所需的拓扑信息.
(b) 路径状态测量模块与底层网络的测量代理模块, 共同实现了FLAT基于时隙传输的主动测量架构.两模块通过虚线连接体现出功能模块的逻辑关系, 即由控制器测量模块触发路径传输时延的探测任务, 而底层交换机的测量代理模块负责封装探测包以及辨别探测包与普通数据包等任务.同时, 测量模块还能够支持OpenFlow自带的原生测量功能, 为控制器周期性轮询底层交换机以获取交换机相关的状态统计信息进行汇总、分析, 通过FLAT路由策略触发条件的判断(发现大流并且大流传输的链路负载超过设定的阈值), 并为算法触发后的计算提供所需的测量信息.FLAT策略的实现需要测量模块提供精准的路径传输时延信息, 其主动测量开销将在第3节进行评估.
(c) 流表更新模块属于控制器自带组件, 可驱动OpenFlow交换机依据控制器下发的路由转发规则进行流表的安装、更新以及删除操作, FLAT将利用该模块完成对底层交换机多传输路径流表的预安装.
2.2.3 底层网络属于系统架构最底层的交换机网络, 实现数据的转发任务并且执行转发任务的交换机均支持Openflow协议.OpenFlow交换机运行协议代理软件, 并通过SSH(secure shell)或TCP连接与控制器相连, 并进行流表的安装和分析.当前, 支持OpenFlow v1.3+的交换机都具有统计交换机状态信息的功能, 实质是交换机能够统计各个转发端口处理数据流的信息, 并可以对控制器周期发出的Read_State轮询消息进行响应并提交相关数据, 属于OpenFlow原生测量范畴.另外, FLAT策略的实施以及主动测量的实现还需要对底层网络的转发平面进行扩展, 即需要在交换机转发模块中扩展并实现算法3(FPP)以及测量代理模块.其中, 测量代理模块完成以下功能.
● 探测包封装操作:主要负责根据控制器下达的测量任务(由测量模块触发), 封装探测包能够区分出全局路径时延探测任务(全局探测)和FLAT路径时延探测任务(局部探测).限于篇幅, 这部分内容可参阅文献[22].
● 时间戳操作:主要负责为探测包打上时间戳.首先发送端根据测量任务为初始探测包打上时间戳, 探测包到达接收端后, 再打上时间戳标识到达时间.最后, 通过测量系统的探测包回收函数对到达时间和发送时间戳求差, 最终得到测量传输路径的时延值.通过将传输时延和定义的探测包生存时间相比较, 若比较结果发现传输时延小于定义的生存时间, 则探测包有效, 并对测量模块中的路径状态表进行相应的更新操作, 为应用层模块提供数据支撑; 否则, 丢弃探测包.
● 探测包转发操作:主要负责根据探测包携带的传输路径信息进行转发端口匹配操作, 并进行相关的端口转发.另外, 在定义的测量传输路径上, 交换机根据获取的探测包路径信息并与本地交换机信息匹配, 若不是探测包的目的端交换机, 则需要根据探测包携带的测量路径信息从相应的端口进行转发.
另外, 交换机将预先安装控制器下发的静态流表.以FatTree拓扑为例, 为每条数据流选择最多不超过k/2条不相交的传输路径(k为交换机级联端口数), 并且只有一条路径处于激活状态, 其余路径暂时休眠直到FLAT算法启动.如果在实际网络环境中部署, 还可以对转发路径采用“Shadow MACS”方案[23], 这样做的好处是能够降低控制器与交换机的通信开销.
3 开销评估数据中心采用集中控制方式的流量均衡, 面临的一项重要挑战就是如何在细粒度的均衡策略与策略实施所产生的相关开销之间进行取舍.首先, 控制器与交换机之间过于频繁的通信虽然能更准确地掌握网络状况, 更好地进行细粒度的负载均衡, 但是会产生巨大的开销, 甚至会造成两者之间通信链路的拥塞而导致控制器流表下发失败, 严重的状况下会使整个网络瘫痪; 其次, 下发过于庞大的转发流表也会造成数据平面开销增大, 尤其考虑到TCAM的容量和成本; 最后, 由于FLAT路由策略的实施还需要主动测量架构获取的精确测量信息作为支持, 然而主动测量必然会带来额外的测量开销.另外, 控制器的计算开销主要是由FLAT算法的复杂度来决定的, 由于算法中Tw的计算是基于对路径状态表的遍历, 而每条数据流选择最多不超过k/2条不相交的传输路径, 极限情况下的算法复杂度为O(n2), 属于多项式级的复杂度, 因此, 对FLAT实施过程中所产生的开销主要从控制平面、数据平面以及主动测量3个方面进行评估.
3.1 控制平面开销文献[13](Hedera)指出, 拥塞链路中的大小流碰撞是导致小流丢包以及网络性能下降的主要原因.对链路中产生的大流进行负载均衡, 能够有效提高网络性能以及避免拥塞发生, 同时, 对于数据中心来说, 能够降低控制平面与数据平面之间的通信开销.FLAT路由策略的实施同样针对网络中出现的大流并且只需要在边缘层交换机部署策略, 相对于以往的研究工作需要在大流传输路径上所有相关的交换机进行策略部署来说, 进一步降低了开销.
以FatTree(K=8)拓扑为例, 评估涉及到的参数设置如下:网络中主机服务器数量H=128;核心交换机数量Nc=16;汇聚层交换机数量Na=32;边缘层交换机数量Ne=32;每台边缘层交换机连接服务器主机数量He=4;每台主机每秒平均产生数据流F=20条; 流表中每条数据流平均生存时间T=60s;网络流量中大流出现的概率为P=0.01[14].以Hedera大流调度策略所产生的控制开销作为参照, 假设当前拓扑在1s内共产生大流H×F×P≈26条, 考虑极限情况即大流传输相关路径覆盖网络所有交换机, 控制器针对目标大流需要同时下发流表26×(Nc+Na+Ne)=2080, 而FLAT只需要下发流表26×Ne=832, 能节约60%的控制开销.
3.2 数据平面开销数据平面开销的主要考虑因素是下发流表的规模与TCAM容量的限制.TCAM是交换机实现快速转发的关键部分, 控制器下发的流表需要在TCAM安装, 由于TCAM受到功耗大和高成本的限制使得存储容量有限, TCAM内存溢出将使交换机转发能力降低, 影响网络整体性能.假设流表在TCAM的生存时间同样是60s, 一台边缘层交换机则需要同时安装流表He×F×T×P=48, 以PICA8交换机提供的TCAM最低存储流表容量2K为例, FLAT策略实施只需要消耗TCAM总存储容量的2.4%, 极大地节省了TCAM存储空间, 降低了数据平面的部署开销.
3.3 测量开销由于FLAT策略的执行需要实施主动测量为其提供精确的测量数据支撑, 然而主动测量必然会带来额外的测量开销, 因此同样需要对测量的开销进行评估.测量开销的评估需要考虑以下要素:探测包大小、探测包发包频率、传输链路带宽以及探测拓扑规模[24].其中, 针对本实验探测拓扑规模是由目的边缘层交换机数量以及测量的传输路径数量共同决定.首先提出测量开销评估公式, 如下所示:
$\frac{{probeSize \times {N_e} \times \tau }}{{probeSize \times {C_l}}} \times 100\% $ | (9) |
其中, probeSize表示探测包大小, Ne表示边缘层交换机数量, τ表示预设的多路径传输数量, probeFre表示探测包发送频率, Cl表示链路带宽.同样以K=8的胖树拓扑为例, 探测包基于单向时延测量传输路径, 各评估要素的大小计算如下.
probeSize:探测包大小构成包括以太网帧头+帧间隙=20bytes, IP报文头20bytes, UDP报文头8bytes, meas_ data数据元字段44bytes, 总共92bytes; Ne=32;τ=k/2=4;probeFre以局部探测的1s计数; 链路带宽假设为100Mbps.最终, 测量总开销为0.094%.
从测量评估结果来看, 基于FLAT实施的主动测量系统所产生的开销并不会对正常的数据通信产生影响.如果将探测的目标交换机数量提高1个数量级, 测量开销依然能够控制在1%以内, 因此在网络设备硬件条件允许下, 还可以进一步优化测量精度, 例如缩短探测包测量频率等.
4 仿真与评估仿真实验的目标是检验基于FLAT算法的原型系统是否能很好地解决数据中心的流量工程问题.前文中提到, 数据中心流量存在以用户访问、查询为主的南北流量和以备份、迁移为主的东西流量, 本次实验模拟以东西流量为主的场景, 因为数据的备份、迁移很容易产生大流, 而链路中大、小流的碰撞是造成网络拥塞的主要原因.本节将搭建Mininet+Floodlight仿真实验平台, 并在平台基础上测试FLAT, 通过与ECMP路由机制以及模拟Hedera中GFF的路由算法进行性能的比对, 体现FLAT的优越性.
4.1 仿真平台部署 4.1.1 仿真平台选择Mininet是基于Linux Container架构开发的进程虚拟化平台, 可以对基于OpenFlow, Open vSwitch(OVS)等各种协议进行开发验证, 支持SDN任意拓扑的网络结构, 并可以灵活地进行相关测试.在验证了设计的正确性后, 所有代码几乎可以无缝迁移到真实的硬件环境中.Mininet v2.0版本已经支持自定义网络拓扑, 通常采用的方法是使用Python类进行定义, 通过修改topo-2sw-2host.py文件中定义的MyTopo类, 可以使Mininet在启动时就能够通过参数选择新定义的拓扑.
Floodlight是一款基于java编写的开源的SDN控制器, 其中的Forwarding模块主要实现路径发现和在设备间的数据转发功能, 并且预置的Forwarding模块只支持单路径路由.由于本次实验中最关键的是要控制器实现多路径转发策略, 需要对Forwarding类进行扩展, 使其能够通过某种算法在现有的网络拓扑中寻找多条可用于数据流转发的路径, 从而能够将数据流按照某种路由策略分配到其中某些路径上进行转发, 避免拥塞链路的出现, 同时避免出现接收端数据包乱序的问题.在实际扩展过程中, 通过修改doForwarding方法, 将FLAT算法扩展到系统中实现上述功能.
平台运行的宿主机是戴尔OptiPlex9020, 配置有一个8核、3.4GHz主频的64位处理器, 10G内存, 并安装Ubuntu12.04版本操作系统.为了调试方便, 在这台宿主机上运行Mininet V2.0仿真平台, 并基于OVS v1.11搭建OpenFlow交换机网络; 同时运行Floodlight V0.9控制器以及支持Openflow协议的wireshark分析软件.当Mininet启动后, 通过调用Mininet.net包中的net函数net.addController(‘controller’, controller=RemoteController, ip=“127.0.0.1”, port=“6653”)建立与控制器之间的通信连接.
4.1.2 拓扑设计目前数据中心以服务器为核心的拓扑方案多采用FatTree拓扑[25], FatTree将交换机分为3层结构:边缘层、汇聚层和核心层.构建一个K叉树, 则具有K个POD(performance optimization datacenter), 每个POD包含K个交换机, 其中, K/2个属于边缘层交换机, 另外K/2属于汇聚层交换机; 边缘层、汇聚层每个交换机都具有K个端口, 其中, K/2个向下级联, K/2个向上级联; 核心层总共有(K/2)2个核心交换机, 每个交换机的K个端口分别连接到分属于K个POD的汇聚层交换机向上的级联口, 整个网络可以容纳K3/4个端主机.实验构建一个K=4的FatTree拓扑, 如图 4所示.
在实验拓扑中, 交换机核心层编号为S101~S104, 汇聚层编号为S201~S208, 接入层编号为S301~S308;终端主机编号为H01~H16.由于不同POD主机之间的通信都需要经过核心层交换机进行转发, 根据FatTree拓扑的对称特性, 在K=4叉树下很容易算出属于不同POD主机之间存在4条等价路径, 本次实验随机选取其中2条路径用作流量均衡, 真实地模拟数据流竞争带宽的场景.
4.2 实验参数设置 4.2.1 网络运行参数设置在实际部署FatTree这种多层拓扑的数据中心网络中, 汇聚层到核心层采用10G链路带宽, 其余采用1G链路带宽.但是对于Mininet仿真平台来说, 链路带宽按照以上设置将无法模拟实际的网络拥塞状况.因此, 在实验中所有链路带宽被设定为100Mbps.任意选取不同POD之间主机组成测试的源目节点对, 例如, 设定POD1和POD4之间H01~H13, H02~H14, H03~H15, H14~H16为4组源目主机对, 第1组为测试组, 后3组之间的数据传输作为背景流量, 以此类推.实验中, 将测试组主机注入流量逐步增大, 使瓶颈链路负载以固定步长从0增加到接近满载来进行网络性能方面的测试.为了更真实地模拟实际场景, 通过配置随机数产生器, 使每个数据源端在0~1s内由产生的随机数决定数据流开始传送的时刻, 同时, 也会加入UDP流量来模拟小流作为背景流量的场景.控制器每隔5s进行一次路由策略计算.
4.2.2 传输时隙值设置FLAT算法重新定义了数据流传输时隙, 时隙值是以不小于节点对之间有效的多条链路时延差为起点值, 如果时隙值与数据流传输时间间隔天然吻合, 就属于最佳情况; 否则, 无论偏差过大或者过小都将影响流量工程的实施效果.数据中心流量具有高突发性, 并且物理链路的高带宽低时延决定了数据流在传输过程中存在大量的因为等待接收端的确认ACK消息而暂停发送的空闲时间间隔, 这些空闲的时间间隔之间传输的数据包类似流片[26].文献[8]对一个包含30个机架的数据中心进行数据流特性分析, 其中每个机架能够提供4 500台虚拟主机并支持2 000个不同的企业级应用, 通过对150GB的数据进行抓包分析后得出结论, 即传输10MB的数据中500μs的发送间隔占整个传输过程的80%, 100μs占90%以上.因此, 本文实验当测得δ值小于100μs时, FLAT的传输时隙值Tw就设置为100μs; 当δ值大于100μs时, Tw就设置为500μs; 当δ值大于500μs时, 则以实际测量的路径时延差值作为传输时隙值.另外, 通过设置10μs、500μs这两个阈值, 也避免了由于传输路径时延差值的变化使得控制器过于频繁地更新路由转发策略, 并降低控制器与交换机之间的通信开销, 提高了路由转发策略执行的效率.
4.3 性能比较 4.3.1 实验对象的选择FLAT实验比较对象将选择实际网络中普遍支持部署的ECMP路由机制以及Hedera中的GFF路由算法. ECMP路由机制属于静态的路由算法, 是在计算出两节点间的多条可用路径后, 在可供选择的多条等价链路上平均的分配流量.相对于单路径路由, 该算法的优点是能够大幅度提高网络吞吐量, 缺点是并不会因为链路状态的变化而改变流量分配的比例.Hedera主要针对网络中出现大流的场景, 即当边缘层交换机监测到链路产生大流时, 触发大流调度算法, 其中的GFF路由算法就是当网络监测到大流产生的时候, 为该流线性的搜寻所有可能的有效路径.一旦发现合适的带宽链路即进行转发, 并更新该链路状态, 为一下次搜寻做准备.相对于ECMP, GFF能根据链路状态进行路由转发.针对每一种路由策略, 将根据不同阶段的链路负载值对每个POD进行4次实验采集数据, 获取16组有效数据来进行最后的均值计算, 以保证实验的准确性.
4.3.2 丢包率比较首先观察FLAT丢包率的表现, 实验结果如图 5所示.其中, 纵坐标表示丢包率, 横坐标表示链路负载.当链路负载超过某个阈值时, 网络性能将到达一个临界状态, 要么趋于稳定, 要么开始急剧恶化.为了更准确地描述网络性能随链路负载增大的变化, 后面的实验将以链路负载率达到90%为阈值, 同时将实验结果分为两个部分:一是链路负载低于90%并以15%步长增长的情况下实验目标值的变化, 二是负载高于90%并分别以5%和1%步长增长的情况下实验目标值的变化.实验观察到:图 5(a)随着链路负载逐渐增大, 采用多路径转发方式的丢包率明显比单路径转发要低; 当链路负载达到90%成为网络性能的临界点时, 观察图 5(b)可以看到, 此时丢包率稳定, 而单路径转发丢包率达到50%, 部署FLAT路由策略丢包率最低.实验结果表明:当链路负载逐渐增大并使瓶颈链路出现拥塞时, 单路径路由转发策略由于无法及时调整转发路径因而丢包率急剧增长; 多路径转发克服了单路径转发的不足, 由于ECMP属于静态路由策略, 相对于GFF和FLAT动态路由策略, 丢包率差距较明显; GFF在对数据流进行路径切换的过程中, 尤其是针对大流依然容易出现丢包的现象, 而FLAT克服了GFF的不足, 在实验过程中, 丢包率始终处于较低的水平并且保持平稳, 体现出FLAT路由策略的优越性.
4.3.3 吞吐量比较
网络吞吐量的比较测试结果如图 6所示.从图 6(a)观察到, 链路负载从15%开始, 4种路由转发策略除了FLAT以外, 吞吐量都开始下降, 整体波动较大; 从图 6(b)观察到, 链路负载达到90%以后, 吞吐量趋于稳定, 此时单路径路由转发吞吐量最低, FLAT路由策略下, 吞吐量最高.实验结果表明:当节点交换机采用FLAT路由策略进行部署时, 与使用ECMP以及GFF部署时相比, 网络吞吐量明显高于后两者.这种现象与丢包率测试结果相一致, 进一步验证了FLAT的优越性.
4.3.4 时延抖动比较
时延抖动也是衡量网络性能的重要指标, 实验结果如图 7所示, 4种路由策略均存在不同程度的时延抖动.出现这种现象的原因与目前数据中心主要采用TCP传输协议相关, 随着负载的增大, 链路出现拥塞时, 网络性能开始下降, 丢包率开始上升; 当数据源端进入TCP拥塞避免时, 丢包率又开始下降.如此反复, 是造成实验结果波动的原因, 这也是数据传输采用TCP拥塞控制机制所无法避免的.实验中, 单路径路由时延抖动振幅最大, 基于多路径传输的路由策略时延抖动振幅相对较小, 其中, 从图 7(a)观察到, GFF时延抖动振幅要大于ECMP和FLAT; 而图 7(b)中, FLAT时延抖动振幅却高于ECMP和GFF.实验结果表明:基于SDN架构的路由策略, 当到达交换机的数据包未匹配当前转发流表时, 将被发送到Floodlight控制器, 再由Forwarding模块进行路由策略的计算, 并向该路径所有OF交换机下发流表项, 后继属于同一条流的数据包就可以直接进行转发, 这个过程会对时延抖动产生影响.图 7(a)中, FLAT时延抖动振幅最小, ECMP次之.由于GFF是在出现大流之后触发流调度算法, 对小流依然采用ECMP路由方式, 因而GFF时延抖动振幅要大于ECMP.随着链路负载超过阈值, 如图 7(b)所示, 此时, FLAT时延抖动振幅较大.这是由于FLAT算法机制需要对某个时隙的数据包进行缓存转发, 当链路负载过大, 缓存的数据包增多, 同时, 向控制器请求流表转发的信号也将增多, 从而导致时延增大.当时延增大到某一值后, 交换机缓存队列长度也将超过阈值, 此时, FLAT将触发算法1, 通过控制源端发送速率, 时延将迅速回落, 体现出FLAT算法的优越性.
从以上的实验结果中可以得出结论:数据中心采用多路径路由, 能够明显改善单路径路由由于“选路”集中而造成的拥塞问题, 同时能够做到故障链路的快速切换, 并能聚合链路带宽, 充分使用网络资源.但是多路径路由在对数据流尤其是大流由于链路拥塞而进行迁移的过程中容易出现的丢包以及接收端数据包乱序的问题, FLAT算法机制很好地克服了数据流迁移过程中的丢包现象并保证接收端不会出现数据包乱序问题.通过与目前普遍采用的ECMP多路径路由机制以及GFF动态的多路径路由机制相比较, 以上实验结果能够体现出FLAT算法的优越性.
5 结束语本文针对数据中心采用多路径传输的路由机制进行流量均衡时, 在面对数据流尤其是大流的迁移过程中容易造成数据流丢包以及接收端乱序的问题, 在SDN的架构下, 提出了一种基于时隙传输的路由算法:FLAT.该算法通过集中控制的方式获取链路状态信息, 计算出合理的数据流传输时隙值, 在完成细粒度的流量均衡的同时, 能够避免在数据流迁移过程中的丢包以及接收端数据包乱序问题.通过Mininet仿真平台, 在基于FatTree网络拓扑上进行FLAT的仿真实验, 验证了FLAT在提高网络性能方面的优越表现.下一步工作将在真实的数据中心环境中对FLAT进行实际的部署以检验其有效性; 基于Mininet仿真平台进行的仿真实验, 其所有代码几乎可以无缝迁移到真实的硬件环境中, 这也为下一步工作奠定了坚实的基础.
[1] |
Yukihiro N, Kazuki H, Lee CH, Shinji K, Osamu S, Takeshi S. DomainFlow: Practical flow management method using multiple flow tables in commodity switches. In: Proc. of the 9th ACM Conf. on Emerging Networking Experiments and Technologies (CoNEXT 2013). New York: ACM Press, 2013. 399-404.http://dl.acm.org/citation.cfm?id=2535406 |
[2] |
Theophilus B, Aditya A, David AM. Network traffic characteristics of datacenter in the wild. In: Proc. of the 10th ACM SIGCOMM Conf. on Internet measurement (IMC 2010). New York: ACM Press, 2010. 267-280. |
[3] |
Albert G, James RH, Navendu J, Srikanth K, Kim C, Parantap L, Maltz DA, Patel P, Sengupta S. VL2:A scalable and flexible data center network. Communications of the ACM, 2011, 54(3): 95–104.
[doi:10.1145/1897852] |
[4] |
Zhou J, Malveeka T, Zhu M, Kabbani A, Poutievski L, Singh A, Vahdat A. WCMP: Weighted cost multipathing for improved fairness in data centers. In: Proc. of the 9th European Conf. on Computer Systems (EuroSys 2014). New York: ACM Press, 2014.http://dl.acm.org/citation.cfm?id=2592803 |
[5] |
Bharti S, Pattanaik KK. Dynamic distributed flow scheduling for effective link utilization in data center networks. Journal of High Speed Networks, 2014, 20(1): 1–10.
http://dl.acm.org/citation.cfm?id=2692191&preflayout=tabs |
[6] |
Wu X, Yang XW. DARD: Distributed adaptive routing for datacenter networks. In: Proc. of the 32nd IEEE Int'l Conf. on Distributed Computing Systems (ICDCS 2012). Piscataway: IEEE Press, 2012. 32-41.http://dl.acm.org/citation.cfm?id=2356243 |
[7] |
Ford A, Raiciu C, Handley M, Barre S, Iyengar J. Architectural guidelines for multipath TCP development. 2011. http://tools.ietf.org/html/rfc6182 |
[8] |
Mohammad A, Tom E, Sarang D, Vaidyanathan R, Chu K, Fingerhut A, The Lam V, Matus F, Pan R, Yadav N. CONGA: Distributed congestion aware load balancing for datacenters. In: Proc. of the 2014 ACM Conf. on SIGCOMM (SIGCOMM 2014). New York: ACM Press, 2014. 503-514.http://dl.acm.org/authorize?N71375 |
[9] |
Ian FA, Lee A, Wang P, Luo M, Chou W. A roadmap for traffic engineering in SDN-OpenFlow networks. Computer Networks, 2014, 71(1): 1–30.
http://dl.acm.org/citation.cfm?id=2664984 |
[10] |
Chen K, Hu CC, Zhang X, Zheng K, Chen Y, Vasilakos AV. Survey on routing in data centers:Insights and future directions. IEEE Network, 2011, 25(4): 6–10.
[doi:10.1109/MNET.2011.5958002] |
[11] |
Arsalan T, Martin C, Teemu K, Shenker S. Applying NoX to the datacenter. In: Proc. of the 8th ACM Workshop on Hot Topics in Networks (HotNets-Ⅷ). New York: ACM Press, 2009. 1-6.https://www.researchgate.net/publication/255601039_Applying_NOX_to_the_Datacenter |
[12] |
Theophilus B, Ashok A, Aditya A, Zhang M. MicroTE: Fine grained traffic engineering for data centers. In: Proc. of the 7th Conf. on Emerging Networking Experiments and Technologies (CoNEXT 2011). New York: ACM Press, 2011.http://dl.acm.org/citation.cfm?id=2079304 |
[13] |
Mohammad A, Sivasankar R, Barath R, Huang N, Vahdat A. Hedera: Dynamic flow scheduling for data-center networks. In: Proc. of the 7th USENIX Conf. on Networked Systems Design and Implementation (NSDI 2010). Berkeley: ACM Press, 2010.http://dl.acm.org/citation.cfm?id=1855711.1855730 |
[14] |
Andrew R, Wonho K, Praveen Y. Mahout: Low-Overhead datacenter traffic management using end-host-based elephant detection. In: Proc. of the IEEE INFOCOM 2011(INFOCOM 2011). Piscataway: IEEE Press, 2011. 1629-1637.http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=5934956 |
[15] |
Jonathan P, Amy O, Hari B, Shah D, Fugal H. Fastpass: A centralized zero-queue datacenter network. In: Proc. of the 2014 ACM Conf. on SIGCOMM (SIGCOMM 2014). Chicago: ACM Press, 2014. 307-318.https://www.researchgate.net/publication/266659974_Fastpass_A_Centralized_Zero-Queue_Datacenter_Network |
[16] |
Andrew R, Jeffrey C, Jean T, Yalagandula P. DevoFlow: Scaling flow management for high-performance networks. In: Proc. of the 2011 ACM Conf. on SIGCOMM (SIGCOMM 2011). New York: ACM Press, 2011. 254-265.https://dl.acm.org/citation.cfm?doid=2018436.2018466 |
[17] |
Cao J, Xia R, Yang P, Guo C, Lu G, Yuan L, Zheng Y, Wu H, Xiong Y, Maltz D. Per-Packet load-balanced, low-latency routing for clos-based data center networks. In: Proc. of the 7th Conf. on Emerging Networking Experiments and Technologies (CoNEXT 2013). New York: ACM Press, 2013. 49-60.http://doi.acm.org/10.1145/2535372.2535375 |
[18] |
Michele G, Renato L, Michela M, Marsan MA. Closed queueing network models of interacting long-lived TCP flows. IEEE/ACM Trans. on Networking, 2004, 12(2): 300–311.
[doi:10.1109/TNET.2004.826297] |
[19] |
Mishra B, Singh S, Joshi C. Modeling arrival rate and service rate for next generation network as an open queue using M/M/1 queue model. In: Proc. of the Int'l Conf. and Workshop on Emerging Trends in Technology (ICWET 2010). New York: Association for Computing Machiner Press, 2010. 401-405.http://dl.acm.org/citation.cfm?id=1741992 |
[20] |
Lu ZL.. Queuing Theory. 2nd ed. Beijing: Beijing University of Posts and Telecommunications Press, 2009.
|
[21] |
Siegfried S, Jianming S. Fractional programming:The sum-of-ratios case. Optimization Methods and Software, 2003, 18(2): 219–229.
[doi:10.1080/1055678031000105242] |
[22] |
Yang Y, Yang JH, Wen HS. Another SDDC(software defined data center)-oriented method and device for traffic balancing: China. 2016103261765, 2016(in Chinese). |
[23] |
Kanak A, Colin D, Eric R, Carter J. Shadow MACs: Scalable label-switching for commodity ethernet. In: Proc. of the 3rd Workshop on Hot Topics in Software Defined Networking (HotSDN 2014). New York: ACM Press, 2014. 157-162.http://dl.acm.org/authorize?N71392 |
[24] |
Naga K, Mukesh H, Changhoon K, Sivaraman A, Rexford J. HULA: Scalable load balancing using programmable data planes. In: Proc. of the Symp. on SDN Research (SOSR 2016). New York: ACM Press, 2016.http://dl.acm.org/citation.cfm?id=2890968 |
[25] |
Eric J, Deng P, Liu J, Liu J. A simulation and emulation study of SDN-based multipath routing for FAT-TREE data center networks. In: Proc. of the 2014 Winter Simulation Conf. (WSC 2014). Piscataway: IEEE Press, 2014. 3072-3083.http://dl.acm.org/citation.cfm?id=2693848.2694235 |
[26] |
Srikanth K, Dina K, Shantanu S, Berger A. Dynamic load balancing without packet reordering. ACM SIGCOMM Computer Communication Review, 2007, 37(2): 51–62.
[doi:10.1145/1232919] |
[20] |
陆传贲. 排队论. 第2版. 北京: 北京邮电大学出版社, 2009. |
[22] |
杨洋, 杨家海, 温皓森. 一种面向软件定义的数据中心流量均衡方法及装置: 中国. 2016103261765, 2016.
|