• Multipath TCP


    MPTCP的定义

    所谓MPTCP,即MultipaTH TCP(多路径TCP),是指与传统单路径TCP相比,在传输数据时使用多条链接路径去传输数据,以此来提高最大化资源利用率和增加冗余度。MP TCP是IETF(因特网工程项目组)正在标准化的一个工作。它作为传统TCP的一个扩展,是由IETF在2013年1月发布的一个规范。具体可以参考rfc 6824.

    MP tcp 的优势

    •1.明显提高了吞吐量。与传统TCP相比,由于mP tcp可以在两个端点之间同步的发送数据,因此明显提高了吞吐量。
    •2.明显提高了网络垂直切换的速度。对于移动用户来说,由于用户可能移入或移出Wi-fi以及移动网络,而mP tcp保持多种连接,因此 可以再多个网络中快速垂直切换。
    •3.在数据中心环境下,mP tcp也带来了效益。与传统Ethernet相比,它可以通过多个接口来平衡一个单tcp.
    •4.mP tcp 是一个传输层协议。与sctp(流控制传输协议)相比,SCTp需要应用程序支持,并且在一些实事事件中,可能会被中间件阻塞。相反,mpTCP是一个传输层协议,不需要应用层修改。而且使用的传统TCP数据包,现在大量的中间件都可以友好的支持。
    •5.失败连接时,更快速的反应。
     
    MP TCP存在的问题
    •1.MP TCP比传统TCP耗能。这对移动用户来说至关重要。
    •2.ISPs(互联网服务提供商)还没有对终端用户提供多播服务。
    •3.协议部署上海存在许多挑战。
    •4.MP TCp是一种贪婪式传播,这种贪婪方式对用户来说,可能会带来更大的消费。
    •5.mp TCP 因为没有考虑网络延迟与网络拥塞,可能不能充分利用带宽,并且不能保证按序到达,可能导致需要提高接收缓冲区。
    •6.MP TCp的拥塞控制,仍需改进。
    •7.多播仍不能保证负载平衡。
    Mp tcp中的关键词
    •1.路径 :发送者与接受者之间的一个连接序列
    •2.子流 :一个独自的TCp连接,这些连接构成一个MP TCp连接,子流的开始与终止与一个常规的TCp连接相同。
    •3.mp tcp :一个或者多个子流集合,通过它,两个主机可以通讯。
    •4.令牌 :一个主机中的一个路径中的一个独一无二的局部标示符。实际上,就是一个连接ID。
    MP TCP协议栈结构

    MP TCp虽然与传统TCP相比有许多优势,然而却比较耗能。基于此,论文<An Energy-aware Multipath-TCP-based Content Delivery Scheme in Heterogeneous Wireless Networks>提出了一种eMTCp算法,这种算法是在MP TCP上层的,因此无需修改基本MPTCP。实验通过LTE和wifi来研究的。实验结果,与单纯使用MPTCP,减少了14%的能耗,与传统TCP相比,增加了66%的吞吐量。

    1.子流状态检测器(SISD):不断检测wifi与LTE的状态,状态有两种,接收状态与空闲状态。

    2.卸载控制器:准备从LTE卸载到Wifi的流量。卸载量是根据LTE子流的拥塞窗口值和SISD的状态决定的

    基本的mp tcp是简单的把数据分成多个快,然后随机的选择路径进行数据传输。然而这种机制不能充分的利用带宽,原因是:1.传输数据时没有考虑网络拥塞。例如,如果path 1存在拥塞,则就算2,4已经到达,接受者依然需要等待1,3,5的到来,这一定程度上降低了网络的吞吐量,如果path2足够通常,这反而降低了吞吐量;2.而且不能保证数据的按序到达,排序问题也成为了接收缓冲区的一个瓶颈问题 3.假如发送者数据足够大,导致接收buffer满,然而前面的数据块还是没有到达,这就要不得不扩大接收缓冲区

    基于以上分析,《Improved Data Distribution for Multipath TCP Communication 》提出了一种ATLB方案:方案的核心思想是这样的,在每个数据块分发之前,通过评估队列延迟与网络路径延迟,来选择数据分发的路径。由于每次都选择最好的路径分发数据,因此可以保证数据到达时基本有序。计算公式如下:

     

    Score是路径i的评估分数,q是发送者的传送缓冲区的数据长度,srtt是平滑后的rtt,g是平滑后的吞吐量。

    问题:

    现实问题是,路径质量是不可预测的,如果变化比较大,评估将会十分的困难。

    α
    (0 < α < 1 )是一个常量,TPUTjTCP的吞吐量,它是每β毫秒不断测量的。在ATLBαβ的决定是由最近的每个路径的吞吐量决定的。从长期来看,如果吞吐量是稳定的,应该选择一个大一点的α,要不然应该小一点。
    β应该为两倍的RTT,以防快重传的发生

    •算法描述

       1.在LTE子流中检测TBX

       2.如果检测到,且stWiFi为空闲,则判断SWiFiW是否大于0,是的话就从LTE子流中卸载一部分数据到WiFi中

       3.如果stWiFi不是空闲,则判断SLTEW是否大于0,是的话,通过LTE发送数据

      4.否则,执行拥塞算法

    参数含义:

    1.SB-传输端缓冲区中没被发出的数据
    2.SWiFiW:WiFi的拥塞窗口大小
    3.SLTEW:LTE拥塞窗口大小
    4.S-从TCP接收缓冲区获得的数据大小
    5.stWiFi-当前WiFi状态
    6.Tbx-当LTE接口打算接收数据时的固定时间戳
     
     
     
  • 相关阅读:
    C# Ini配置文件
    C#日志写入
    GZFramework.DB.Core初始化
    httpHelper
    GZFramework代码生成器插件使用教程
    MVC部署IIS设置
    SignalR记录
    洛谷 P2360 地下城主
    洛谷 P1379 八数码难题(map && 双向bfs)
    洛谷 P1155 双栈排序
  • 原文地址:https://www.cnblogs.com/liuhg/p/multipathtcp.html
Copyright © 2020-2023  润新知