数据中心内的负载均衡-MPTCP
副标题[/!--empirenews.page--]
9月15日技术沙龙 | 与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维!
1. 为什么用MPTCP做负载均衡? (1)充分利用网络资源 以手机为例,手机包含两种上网方式,蜂窝移动数据网络(2G,3G,4G)和WIFI网络。我们希望在有WIFI的时候尽量使用WIFI,这样可以节省成本,没有WIFI的时候自动切换到蜂窝移动网络,避免断连。同样在PC端,我们希望有线网卡和无线网卡可以同时上网,提高网速。但是使用TCP协议是无法实现上述功能的。 (2)提供可靠传输 MPTCP在协议栈中,位于TCP之上,利用建立TCP子流进行数据传输。TCP是面向连接的4层协议,它可以提供可靠传输,并且拥有拥塞控制机制。但是TCP的单路径传输的协议,即便网络上存在多条路径资源,也无法利用这些路径资源。因为TCP是通过四元组:{源IP,目的IP,源端口,目的端口} 唯一的确定一个连接,当四元组中的任一项发生变化时,会导致连接中断。因为应用程序使用TCP协议只能和单个四元组绑定,无法同时使用多个IP。使用MPTCP正好可以解决这个问题。 数据中心存在大量的路径资源,使用MPTCP可以更加充分地利用带宽资源,且提供可靠传输。数据中心最常使用的负载均衡算法为ECMP,通过根据数据流的五元组哈希,将这些数据均匀随机的分散到权重相等的路径上。这种随机选路负载均衡第一个问题是会产生哈希碰撞。如图一所示,红色路径与蓝色路径产生了碰撞。另一个问题是,用这种最优权重(如最短路径)的方法选出的路径,无法判断路径是否存在拥塞,很可能将流量继续发送到一个已经拥塞的链路上。而使用MPTCP进行数据中心的负载均衡,在利用多路径的同时,还可以对流量进行拥塞控制,避免产生拥塞,动态的将数据更多的发送到负载低的链路上。有效的提高负载均衡性能。 2.MPTCP(Multipath TCP)协议介绍 简单的说MPTCP是TCP的一个演进协议,MPTCP可以使TCP同时使用多条路径进行通信。MPTCP在协议栈上的位置如图2所示。MPTCP在2013年被正式定为标准,详细内容可参考RFC 6824 https://tools.ietf.org/html/rfc6824。 MPTCP在设计上的挑战 MPTCP会话建立过程 例如:我们可以同时利用手机的WIFI和4G使用两个IP来和WEB服务器建立MPTCP会话。但若WEB服务器只有1个IP地址,还可以建立MPTCP会话么?其实是可以的,WEB服务器可以使用不同的端口分别和手机的WIFI,4G建立连接。 建立MPTCP会话的过程:假设我手机选择用4G开启建立连接,过程如图3所示, 此时4G和WEB服务器建立了连接,手机和WEB服务器可以通过这个路径传输数据,那么如何添加WIFI和WEB服务器的路径呢?要想增加WIFI和WEB服务器的路径,首先要用WIFI和WEB服务器实现完整的建立连接过程,才可以使用WIFI与WEB服务器通信,如图4所示。这次连接和第一个4G与WEB服务器建立的连接是有区别的。 (编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |