加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

数据中心内的负载均衡-MPTCP

发布时间:2018-09-14 10:12:17 所属栏目:业界 来源:SDNLAB
导读:9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维! 1. 为什么用MPTCP做负载均衡? (1)充分利用网络资源 以手机为例,手机包含两种上网方式,蜂窝移动数据网络(2G,3G,4G)和WIFI网络。我们希望在有WIFI的时候尽量使用WIFI,

MPTCP多个子流乱序问题
当我们使用MPTCP建立多条子流传输数据时,每条子流选择的路由路径可能不同,那么路径延迟也会不同。虽然发送端按序发送数据,但接收端接收到的数据可能产生乱序。既然TCP协议可以使用TCP报文头中的序号,将数据包排序,那么MPTCP是不是同样也可以利用数据包中的序号进行排序?这样是行不通的,因为每条路径上的中间件(防火墙等)可能只有一半的数据经过,它会发现这些包的TCP序号存在间隙,中间盒可能会丢掉这些无序的数据,让TCP重传中间这些空缺的数据。

MPTCP通过增加每个子流的包序列号来解决这个问题。这个时候每个数据包有2个序列号,一个是在TCP包头中的序列号,为子流的序列号;另一个是DSN(data sequence number)为所有传输数据的序列号,用于将各个子流的数据重排。那么使用MPTCP收包,首先使用子流序列号,将各个子流接收到的数据包进行重组,然后使用DSN对各个子流报文重组。

MPTCP拥塞控制
TCP的拥塞控制机制可以根据网络链路情况动态的调整发送速率,我们不再赘述TCP拥塞控制的具体过程。那么MPTCP建立多条TCP子流传输数据,和TCP的拥塞机制有了些许差别。
(1)MPTCP的拥塞控制要保证公平性,即使用MPTCP和使用TCP占用的带宽应该是相同的。
(2)使用MPTCP的性能至少要和传统的TCP相持平,或者更好。
(3)使用MPTCP应能提供有效的负载均衡,减少数据在拥塞链路上传输。

MPTCP的每条子流的拥塞控制机制(慢启动,拥塞避免,快重传)与TCP是相同的。收到ACK时,增加拥塞窗口。发生丢包时,减少拥塞窗口的一半。不同的是子流拥塞窗口的调节方式,MPTCP中每个子流都有单独的拥塞窗口,子流可以根据各自链路状况动态的调节拥塞窗口,但要限制在整个MPTCP会话的窗口总量范围内。子流拥塞窗口的调节方式如下所示:

子流发生丢包时,减少拥塞窗口的一半。

数据中心内的负载均衡-MPTCP

MPTCP性能
图5为An overview of Multipath TCP文章中利用亚马逊EC2数据中心的40台机器内对使用MPTCP做负载均衡进行的测试,实验对比了使用传统TCP,2个子流的MPTCP和4个子流的MPTCP的性能。可以看出使用MPTCP确实在一定程度上提高了吞吐量。

数据中心内的负载均衡-MPTCP

图5. 利用亚马逊EC2数据中心内的40台机器,对数据流使用TCP以及MPTCP不同子流的吞吐量测试

3.总结

在之前的文章中,曾介绍过数据中心内使用ECMP算法进行负载均衡,通过对数据包五元组哈希为流选择路径,实现负载均衡。但使用ECMP存在诸多缺陷:
(1)过于简单,没有拥塞控制机制,因此在网络存在拥塞的情况下,使用ECMP可能会加剧路径的拥塞。
(2)在非对称网络架构下,ECMP的负载均衡效果并不好。
(3)ECMP这种基于流的负载均衡,不适合在数据中心这种老鼠流、大象流并存的环境中。

本文介绍了使用MPTCP协议做负载均衡,通过建立多条TCP子流的方式使用多条路径传输数据。MPTCP可以提供有效的拥塞控制机制,而且切割数据流为多个子流解决,避免大象流这种流量大的数据流在一条链路上传输。其实,我们还可以对每条子流使用ECMP算法,利用哈希随机选择路径,提高负载均衡效果。

不过MPTCP也不是一个完美的负载均衡方案,MPTCP存在以下几个缺点:
(1)无法进行全局路径感知
如图6所示的网络拓扑中,L0到L1的流,若只根据L0下一跳的链路状态进行负载均衡,那么很可能在S2-L1这段链路上发生拥塞。

数据中心内的负载均衡-MPTCP

图6. 网络拓扑示例

(2)部署困难
要想使用MPTCP协议,需要在更改通信双方的协议栈,增加MPTCP协议,这为扩大MPTCP的使用范围带来的困难。

参考文献:
[1]. Ford A, Raiciu C, Handley M, et al. Tcp extensions for multipath operation with multiple addresses, January 2013[J]. RFC6824.
[2]. Bonaventure O, Handley M, Raiciu C. An overview of Multipath TCP[J]. ; login:, 2012, 37(5): 17.
[3]. Raiciu C, Barre S, Pluntke C, et al. Improving datacenter performance and robustness with multipath TCP[C]//ACM SIGCOMM Computer Communication Review. ACM, 2011, 41(4): 266-277.

【编辑推荐】

  1. 怎么运营大数据数据中心?数据中心建设现状简析及运营指标分析
  2. 机柜在数据中心机房有哪三大新用途?
  3. 数据中心为什么需要持续保持警惕和维护?
  4. 云计算数据中心安全体系架构浅析
  5. 参观数据中心,看明白这五点就够了!
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读