
MPTCP
jrunw
这个作者很懒,什么都没留下…
展开
-
MPTCP 理解
背景 随着技术的发展许多设备具有了多个网络接口,而TCP依然是一个单线路的协议,在TCP的通信过程中发端和收端都不能随意变换地址。我们可以利用多个网络接口的这一特性来改善性能和有效冗余。例如:你的手机同时连接WIFI信号和3G信号的时候,如果WIFI关掉,使用WIFI进行的TCP连接就会断开,而不能有效利用3G网络继续收发数据。而Multipath TCP可以在一条TCP链转载 2017-02-28 15:42:10 · 6125 阅读 · 0 评论 -
MPTCP 源码分析(七) 拥塞控制
简述 MPTCP的拥塞控制对TCP的拥塞控制的线性增加阶段进行了修改,而慢启动,快速重传、快速恢复都没有改变。每条子路径拥有自己的cwnd,MPTCP的拥塞算法主要关心cwnd的改变。 拥塞算法设计原则MPTCP的Throughput 要达到MPTCP中所有子路径中最好的一条路径MPTCP应该和普通TCP一样从共享资源中获得相同资源MPTCP中的流量将从拥塞的子转载 2017-04-18 10:22:54 · 892 阅读 · 0 评论 -
MPTCP高级配置
http://www.cnblogs.com/zhuting/p/5828988.htmlhttp://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCPhttp://multipath-tcp.org/pmwiki.php/Users/Tools本文引用了MPTCP Linux内核官网的MPTCP配置网页和工转载 2017-03-10 11:15:00 · 1144 阅读 · 0 评论 -
Ubuntu12.10编译MPTCP
准备工作1、操作系统:Ubuntu-12.10-desktop-i386(32位)或者Ubuntu-14.04-desktop-amd64 (64位)2、Mptcp源码:从官网下载 http://multipath-tcp.org/snapshots/我下载的是mptcp_2015_11_17.tar.gz安装系统编译mptcp源码1、安装操作系统,并安装好网卡驱动。网转载 2017-02-24 14:56:20 · 1171 阅读 · 0 评论 -
mptcp包结构
MPTCP包结构TCP/IP数据包MPTCP是常规TCP协议的扩展,想要了解MPTCP数据包,首先得了解常规的TCP包。如上图所示,为TCP/IP的数据包格式,TCP/IP数据包分为四大块:黄色的数据链路层头部,蓝色的IP头部,紫色TCP头部,还有最后的数据报内容。详细内容参考http://blog.youkuaiyun.com/alexander_xfl/article/details/转载 2017-02-24 10:00:30 · 734 阅读 · 0 评论 -
MPTCP 源码分析(六) 数据重发
简述 TCP使用定时器函数tcp_retransmit_timer进行数据重发,MPTCP需要重发数据的时候,不仅仅在原路径发送数据,而且会在另外一条子路径进行重发。这样考虑的原因是:考虑网络中间件设备的影响, 保证子路径上数据序列号的完整性。目前的版本0.89依然如此实现,以后应该会优化。 内核实现 MPTCP的结构如下图所示: 如上图所转载 2017-03-01 20:09:35 · 480 阅读 · 0 评论 -
MPTCP 源码分析(五) 接收端窗口值
简述: 在TCP协议中影响数据发送的三个因素分别为:发送端窗口值、接收端窗口值和拥塞窗口值。本文主要分析MPTCP中各个子路径对接收端窗口值rcv_wnd的处理。 接收端窗口值的初始化 根据《MPTCP 源码分析(二) 建立子路径》中描述服务端在发送完SYN/ACK并接收到ACK的时候建立新的sock。在内核实现中,针对连接请求分为两个步骤处理:转载 2017-03-01 17:24:41 · 598 阅读 · 0 评论 -
MPTCP 源码分析(四) 发送和接收数据
简述: MPTCP在发送数据方面和TCP的区别是可以从多条路径中选择一条路径来发送数据。MPTCP在接收数据方面与TCP的区别是子路径对无序包进行重排后,MPTCP的mpcb需要多所有子路径的包进行排序。查看图1可知。 +-------------------------------+转载 2017-03-01 16:24:33 · 725 阅读 · 0 评论 -
MPTCP 源码分析(三) 子路径选择
简述: 支持MPTCP的链路中存在多条子路径,因此在发送数据的时候需要选择最优路径来进行操作。MPTCP利用内核通知链对MPTCP中各子路径进行增加路径、删除路径、修改路径优先级的操作。MPTCP根据相应的策略进行路径选择。 路径选择的代码实现 路径选择的关键在于从多个子路径中选择其中一个进行数据的发送。此过程通过下面的函数实现:"n转载 2017-03-01 14:52:22 · 566 阅读 · 0 评论 -
MPTCP 源码分析(二) 建立子路径
简述 MPTCP在进行三次握手之后,客户端和服务端会进行地址信息的交换,让对方知道彼此未用的地址信息。当客户端知道服务端的地址后就可以建立其他子路径。三次握手和建立子路径的过程如图1: 图1关于Token、随机数R、以及HMAC(Hash-based Message Authentica转载 2017-03-01 14:37:09 · 475 阅读 · 0 评论 -
MPTCP 源码分析(一) MPTCP的三次握手
简述: MPTCP依然按照正常的TCP进行三次握手,只是在握手过程中增加了MPTCP特有的信息。 建立过程 三次握手过程如下图所示: 左边客户端发送的第一个SYN包携带有客户端自身的KEY,右边发送SYN/ACK的时候携带了自身的KEY,而最后左边的客户端发送最后一个ACK的时候携带着双方的KEY。MPTCP中关于MP_CAPABLE的定义如下:转载 2017-03-01 09:34:38 · 1169 阅读 · 0 评论 -
有用的连接
Multipath TCP with real Smartphone applications:https://dial.uclouvain.be/memoire/ucl/en/object/thesis:366/datastream/PDF_01/viewrfc6182:Architectural Guidelines for Multipath TCP Developmen转载 2017-03-10 11:29:37 · 240 阅读 · 0 评论