mptcp的重传

 开头啰嗦几句,关于mptcp的研究主要有两种:拥塞控制和数据包调度。
 关于多径的拥塞控制算法有LIA,OLIA,BALIA,wVegas,可以称作是耦合式的拥塞控制。为什么要采用耦合式的拥塞控制,而不是在各个子流上采用原有的TCP的拥塞控制算法(RENO,CUBIC)呢。官话:考虑到网络中大部分是TCP流,MPTCP应该保有TCP友好的特性。更本质的原因在这里:若把单径的拥塞控制直接应用到多径的场景中,那就不用研究多径的拥塞控制了,怎么发论文呢?而在linux内核中实现的MPTCP,是可以使用单径的拥塞控制的(RENO,Cubic)。由于路径差异性,多径的传输会导致数据包的乱序到达,存在队头阻塞(head of line blocking)的现象,就是队头的数据包迟迟不到,而后面的数据包又不断到达,使得接收端的缓冲区占用不断增长。缓冲区的存在长度限制,当缓冲区溢出,新到的数据包就会被主动抛弃,引起非拥塞丢包。接收端检测到数据包丢包的后,拥塞控制为主动降窗,降低吞吐量。拥塞控制的降窗本身是为了缓解网络拥塞,而接收端缓冲区溢出的丢包,被误检为网络拥塞,从而影响MPTCP的吞吐量。这个问题就是MPTCP调度要解决的问题。关于数据包调度的算法,感兴趣的读者可以参考[1-4]。但是,我并没有看到这些文章的本质不同。一个简单的解决办就是配置较大的接收缓冲区。没有办法,为了发文章,很多人罔顾实际,胡诌一通。发文章的时候,曲线一个比一个高,效果总是比之前的要好。有人就实际测试了一把[7],发现这些调度算法之间的性能差异是很小的。其实[7]应该换个更好的名字:Packet Scheduling in Multipath TCP: Fundamentals, Lessons, and No Opportunity。
 而关于多径的拥塞控制,又需要那么点理论,基于TCP的流模型发现一个与前人不同的方法,又是一个很难的操作。啰嗦了这么多,就是关于MPTCP,发文章越来越难,研究生在选题的时候可以适当回避下这个领域。如果继续这个课题,最后的论文,怎么弄出效果比别人好的算法,就需要你去想些技巧了。
 MPTCP是怎么重传数据包呢?MPTCP在数据包丢失后,可以通过另外的另外的路径进行数据重传。但是这样就会导致原来的路径的数据包序号存在一个空洞,接收端就会不断地发送sack,通知发送端,某个sequence number的数据包没有收到。问题的解决方案,就是可以选择其他路径重传,但是也必须在原有路径上重传一份。这个处理方式在[5]里有描述:

3.3.6.  Reliability and Retransmissions

   The data sequence mapping allows senders to re-send data with the
   same data sequence number on a different subflow.  When doing this, a
   host MUST still retransmit the original data on the original subflow,
   in order to preserve the subflow integrity (middleboxes could replay
   old data, and/or could reject holes in subflows), and a receiver will
   ignore these retransmissions.  While this is clearly suboptimal, for
   compatibility reasons this is sensible behaviour.  Optimisations
   could be negotiated in future versions of this protocol.

[1] Accelerating Multipath Transport Through Balanced Subflow Completion
[2] STMS: Improving MPTCP Throughput Under Heterogeneous Networks
[3] QAware: A Cross-Layer Approach to MPTCP Scheduling
[4] Low-Latency Scheduling in MPTCP
[5] https://tools.ietf.org/html/draft-ietf-mptcp-multiaddressed-12
[6] MPTCP 源码分析(六) 数据重发
[7] Packet Scheduling in Multipath TCP: Fundamentals, Lessons, and Opportunities

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值