揭开 iOS 7 之 Multipath TCP 的面纱

看到中文圈似乎讨论 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 进化的一个新方向,虽然普通用户不会感受到它带来和变化,但是整个网络系统将在它的支援下更好地利用资源、更大的吞吐量以及带来更棒的可靠性。

参考:

<推广> 本站架设于 Linode 东京机房,同时使用 云梯 进行科学上网

17 Comments

  1. Jason

    "互为备份"是指在有wifi的情况下3g也要跑流量么?

  2. benno

    3g更新app 伤不起 不适合中国的网络资费

  3. Mutlipath TCP好东西啊,有了Mutlipath TCP双网关路由器就真正能发挥作用了

  4. spin6lock

    比较期待mac os有这个功能,可以用以太网网卡和wifi融合上网

  5. 这个只是一个技术,并没有规定wifi的时候必须跑3G,看系统和应用怎么处理了,比如网页的话可以打开,但是电影的话就关闭算了,或者这个可以用在多个wifi的情况下,也可以加速。
    就算没上MCTCP,没wifi的时候,蜂窝数据也会顶上的,你可以设置里面选择有wifi的时候不使用蜂窝的,或者网页才使用蜂窝数据。
    其实就算是wifi也不一定是免费的,比如运营商的wifi就是走流量或者时间的,这个android考虑比较周到,可以设置哪些wifi是移动热点,这样可以限制下载。

  6. fai

    可以說apple用新東西, 另一個說法就是用未成熟的技術...
    如果是android 先用, 一定會被說成未成熟就用.

  7. 感觉像 SCTP 的部分特性被移植到 TCP 了。

  8. 今后看一下,流量使用有没有因为mutipath技术和增加的趋势!

  9. burn

    话说名字是TCP,那UDP能用吗?去看看去

  10. gary.guo

    长见识了,第一次听说 Mutlipath TCP

  11. chris.zhang

    记得在iOS5下,同时开着3G+WIFI下载APP,这时出门买菜,没有WIFI了,3G会完成APP下载的

  12. tkiller

    呵呵,要是3g流量大幅度超标你的套餐,就等着老老实实的掏钱吧!
    对于懂的人来说这是一件不好不坏的事情,对于广大的不懂ios的装ber来说,这绝对是噩梦的功能,掏钱必须的,老外那里是无限流量,此功能根本就适用于天朝,小白慎用!!!

    • Dragon Ming

      谁说无限流量了...老外这里流量一样贵的要死(算上汇率比国内贵三倍以上妥妥的)。无限流量是有,70刀一个月就算是本地居民都没几个去办的...

  13. zop7er

    用5S第一天就感受到多路TCP的优势了。
    在又wifi的环境下载app.
    出去接了个电话,3G流量跑了500M。
    才充的100瞬间没有了

  14. jxm

    带mptcp的手机可不可以连接多个wifi啊

Leave a Comment