MPTCP的定义
所谓MPTCP,即MultipaTH TCP(多路径TCP),是指与传统单路径TCP相比,在传输数据时使用多条链接路径去传输数据,以此来提高最大化资源利用率和增加冗余度。MP TCP是IETF(因特网工程项目组)正在标准化的一个工作。它作为传统TCP的一个扩展,是由IETF在2013年1月发布的一个规范。具体可以参考rfc 6824.
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 )是一个常量,TPUTj是TCP的吞吐量,它是每β毫秒不断测量的。在ATLB中α与β的决定是由最近的每个路径的吞吐量决定的。从长期来看,如果吞吐量是稳定的,应该选择一个大一点的α,要不然应该小一点。
β应该为两倍的RTT,以防快重传的发生
1.在LTE子流中检测TBX
2.如果检测到,且stWiFi为空闲,则判断SWiFiW是否大于0,是的话就从LTE子流中卸载一部分数据到WiFi中
3.如果stWiFi不是空闲,则判断SLTEW是否大于0,是的话,通过LTE发送数据
4.否则,执行拥塞算法
参数含义: