看到中文圈似乎讨论 iOS 7 的这个特性的还不多,于是我稍微研究了一下这个「Mutlipath TCP」,写点心得。过程是这样的:

Olivier Bonaventure 通过 Wireshark (一个网络数据包监控工具)发现了他升级了 iOS 7 的 iPad 在使用 Siri 的时候会建立 Mutlipath TCP 连接,由此断定 iOS 7 已经内置了 Mutlipath TCP 的支持。见《Apple seems to also believe in Multipath TCP

Mutlipath TCP,是一套基于当前 TCP/IP 协议的一个扩展,所谓扩展即是能兼容当前协议,又能带来不少新特性。那么 Multipath TCP 有什么特别之处呢?这里通过一个简单的例子来说明好了。

假如我手中的 iPhone 同时开启了 3G 和 WiFi 连接(大多数情况也是这样),这个时候我通过 App Store 更新一个 100M 的软件。按照以往的情况,App Store 的软件更新是会优先通过 WiFi 进行的,3G 在此刻是闲置状态。

但是在 Multipath TCP 的支援下,尽管只通过 App Store 更新一个软件,建立起了一个网络连接,但是它却可以同时利用 3G 和 WiFi 建立 Mutlpath 连接,通过多点优化网络下载,且互为备份。

假如这个时候 WiFi 断了,以前的情况是,App Store 更新中断,需要人工干预恢复或重新下载。而在 Mutlipath TCP 的优化下,只要 3G 没断,App Store 就能继续更新下载。除非 3G 也断了,才宣告此次连接失败。

总之,在 Multipath TCP 的支持下,终端设备可以同时利用多个网络设备达到优化网络连接速度、稳定性,一个网络的中断也不会影响全局,大大增强了设备的可移动性和连接可靠性。而在服务端,特别是数据中心层面,则可以利用 Multipath TCP 利用多个网络设置来大大增强网络的吞吐量。

可以说,Multipath TCP 就是 Internet 的未来。

那么,Multipath TCP 现在的发展状况如何呢?这可是一个大项目,研究并努力了5年,直到在2013年初才正式制定完成,不过很快相关的实现和利用都来了:

  • Linux 内核已经有了一个单独实现的 Multipath TCP 0.87,基于Linux 3.10,只是一个实验分支,不知道什么时候才会合并到主干;
  • iOS 7 是首个正式采用 Multipath TCP 的商用操作系统,在这里可以看到,Apple 拥抱和利用新技术是多么的迅速。另外 iPhone 5s 的 A7 64 位芯片也算是一项。

Multipath TCP 是可以预见的接下来 Internet 进化的一个新方向,虽然普通用户不会感受到它带来和变化,但是整个网络系统将在它的支援下更好地利用资源、更大的吞吐量以及带来更棒的可靠性。

参考:

https://imtx.me/archives/1852.html

揭开 iOS 7 之 Multipath TCP 的面纱(转)的更多相关文章

  1. 使用 Multipath TCP 为 iOS 创建备份连接(转)

    这篇文章的英文版如下: https://support.apple.com/en-us/HT201373 这里咱们采用苹果手机打开测试网站,发现没有检测到MPTCP,初步猜想可能需要打开什么设置,后续 ...

  2. Multipath TCP and load balancers

    Load balancers play a very important role in today’s Internet. Most Internet services are provided b ...

  3. Multipath TCP on iOS11 : A closer look at the TCP Options(转)

    Multipath TCP uses a variety of TCP options to use different paths simultaneously. Several Multipath ...

  4. Apple uses Multipath TCP

    http://blog.multipath-tcp.org/blog/html/2018/12/15/apple_and_multipath_tcp.html December 15, 2018 Ap ...

  5. 揭开GrowingIO无埋点的神秘面纱

    揭开GrowingIO无埋点的神秘面纱   早在研究用户行为分析的时候,就发现国内的GrowingIO在宣传无埋点技术,最近正好抽出时间来研究一下所谓的无埋点到底是什么样的. 我分六部分来分析一下无埋 ...

  6. Using MultiPath TCP to enhance home networks

    Over the last few months I’ve been playing with MultiPath TCP and in this post I will show how I use ...

  7. 揭开自然拼读法(Phonics)的神秘面纱

    揭开自然拼读法(Phonics)的神秘面纱 自然拼读法  (Phonics),是指看到一个单词,就可以根据英文字母在单词里的发音规律把这个单词读出来的一种方法.即从“字母发音-字母组合发音-单词-简单 ...

  8. iOS网络协议 HTTP/TCP/IP浅析

    一.TCP/IP协议       话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...

  9. iOS中 HTTP/Socket/TCP/IP通信协议具体解释 韩俊强的博客

    简介: // OSI(开放式系统互联), 由ISO(国际化标准组织)制定 // 1. 应用层 // 2. 表示层 // 3. 会话层 // 4. 传输层 // 5. 网络层 // 6. 数据链接层 / ...

随机推荐

  1. scp windows 和 linux 远程复制 (双向)

    一下命令在cmd中 从w -> l : scp D:\a.txt root@192.168.2.113:/home/a 从l -> w: scp root@192.168.2.113:/h ...

  2. Windows App开发之集合控件与数据绑定

    为ListView和GridView加入数据 ListView採用垂直堆叠得方式显示数据.而GridView则採用水平堆叠得方式. 长相的话嘛,它们都几乎相同. <Grid Name=" ...

  3. dubbo 实战1

    准备:先安装zookeeper,然后进入一下步骤 服务端 1.新建 maven项目 2.pom.xml 内容如下 <?xml version="1.0" encoding=& ...

  4. PE发送报文

    步骤: 1. 在 action 中使用发送报文,要指定报文在 router 端的交易名称 2. 如果使用 supe.execute(context) 来发送,不需要第一步 3. 配置从网银到 rout ...

  5. 一起学android之怎样卸载指定的 应用程序(25)

    效果图例如以下: 代码例如以下: public class MainActivity extends Activity { private Button btn_delete; @Override p ...

  6. 《UNIX 环境高级编程》编译环境的搭建( 运行本专栏代码必读 )

    第一步:搭建基本的编译环境 安装gcc, g++, bulid-essential等编译软件 第二步:下载本书示例源码包 可在这里下载 www.apuenook.com 第三步:解压下载到的包并放在用 ...

  7. 获取本地IP V4 出现::1

    获取本地IP V4 竟然得到  ::1 和 192.168.x.xxx 多出来一个::1???? 终于在网络找到答案,原来是禁用了IP V6 导致,重新勾选IP V6,或者卸载IP V6 都可以解决问 ...

  8. # Playables API(翻译)

        The Playables API provides a way to create tools, effects or other gameplay mechanisms by organi ...

  9. Comparison method violates its general contract! 异常原因

    项目运行期间出现Comparison method violates its general contract!异常,网上查阅了一下,原因还是比较明确的: Collections.sort(list, ...

  10. Timing breakdown phases explained

    https://developers.google.com/web/tools/chrome-devtools/network-performance/reference#timing-explana ...