A Little-Heralded New iOS 7 Feature: Multipath TCP
Olivier Bonaventure writes "Besides changes in UI, multitasking and other features that the press discusses, iOS7 also includes support for Multipath TCP. Multipath TCP is a major extension to TCP that is able to use different interfaces for the same connection. Until now, Multipath TCP has been mainly used by researchers with a modified Linux kernel. iOS7 changes that, with millions of Multipath-TCP enabled devices that can switch from 3G to WiFi without losing existing TCP connections. This is not yet the case on iOS7, which currently seems to only enable it for SIRI, but other use cases will likely appear in the future."
Maybe they can use this to speed up the lethargic Safari iOS 7 delivered. I had better performance in Safari from my iPhone 3G than I do with this slug on my 5.
Missed the whole, "Until now, Multipath TCP has been mainly used by researchers with a modified Linux kernel," part did ya?
An enigma, wrapped in a riddle, shrouded in bacon and cheese
How could Tim Cook forgot to present this feature ?
The headline says IOS7 has it, but the synopsis says that it doesn't yet.
The reality is that for Multipath TCP to work, both ends of the connect must be Multipath TCP capable. That is NOT the case in 99.999% of connections.
It seems that Apple has made Siri multipath TCP capable, ergo... What all this means to you or me is, not much, but hopefully a more reliable Siri connection and response. That means she might ask you if you want her to search the web for you more quickly than in the past.
I can understand that Apple wants to speed up Siri (the latency on Siri can be horrible, even over a fast WiFi connection), but why do it this way rather than enabling simultaneous client-side speech recognition a la Google Now (even in the Google app on iOS)?
Google's method allows the speech recognition process to appear instantaneous. On a Nexus 4, Google Now recognizes speech almost as fast as you can speak.
Siri on the other hand can often take several seconds to understand a request, even under iOS 7. To me, this more than anything else is what diminishes the user experience.
Multipath TCP is a very cool idea, but there are lots of barriers keeping people from really using it. Those barriers have jack shit to do with peoples' own computers, and everything to do with everyone else they want to talk to, whose machines aren't expecting a single conversation to be taking place with two different addresses.
If I could get away with it, I would be delighted to have my home router use several different ISPs, wrapped together. Sure, I can do that now, but not at the individual connection level.
Maybe because:
This is not yet the case on iOS7, which currently seems to only enable it for SIRI
If it's just for Siri, then at this point, it's still a highly technical feature that the user won't be able to see obvious benefits from. Apple generally won't present technical features in their Keynote unless they can explain how users will benefit.
Anybody know if IPv6 is any better in this regard?
-- hendrik
It is open source itself. troll.
http://multipath-tcp.org/pmwiki.php/Users/DoItYourself
Major extension to TCP, when you can already route a message through multiple paths over the internet?
Sounds more like a major extension to the kernel to me.
It seems to me that Siri is a bad use case for Multipath TCP. Siri transactions seem to be fast and short-lived. i.e. You wouldn't need a persistent connection that could service transitions between Wifi and 3G. So why use MultipathTCP on it?
For dummies, Cook presents, silence is the rest.
This seems like a very fundamental improvement to the Internet for handling mobility, and a popular product like the iPhone should really boost adoption. Cellular communication is defined by the ability to pair with the best of several available routers, and switch from one to the other without dropping the connection - this is essentially what makes a cellphone different than a plain old cordless phone. But there has always been this annoying disconnect between the cellular network and the Internet, and this sounds like a big step in that direction. If we want super-mobile devices, like dick-tracy wristwatches, they will only have enough power for short-range communication so they will need super-dense infrastructure of some sort, like dynamically pairing with the nearest available wifi or smartphone - migrating connections to the Nth degree.
meanwhile everyone with an iPhone is now enjoying the benefits of multipath tcp.
Obvious troll is obvious.
It does recognize you said "google" to start recognition, but assuming you pressed the button to start instead of that, it's all done on the server. Even on the Moto X, the processor just figures out that you said the trigger phrase, the recognition of the natural-language speech you say after that is all done on the server.
If you don't believe me, just try it when your phone only has an EDGE connection some time.
Google just has better feedback, they seem to have a better design.
http://lkml.org/lkml/2005/8/20/95
Um, they're still benefiting. Even if it's only in Siri.
And Apple gets a widespread beta test that no one knows about, but most people will participate in.
Theoretical at best. AT&T can't move from one tower to another without dropping a call, and that technology has been around forever.
I hope that this is implemented better than 99% of the software out there. This sounds like an excellent way of impersonating another device's connection. lol
I have run into issues with IOS devices appeared to be very "selfish" when trying to communicate. In one instance, the Netgear router at a vacation home was having problems and I traced it back to my iPad2 doing bunches of DHCP requests and exhausting the range. Another example is when we had issues with iPhones establishing, but not properly closing sessions when updating the mail client.
what UDP is for?
An example of an application that uses UDP is Mosh
http://mosh.mit.edu/
You can have various disconnections and reconnections (Since it's written by someone at MIT, say you're going in to the T @Davis and coming out at Kendall/MIT) and the connection with mosh looks like you never disconnected.
--
BMO
Android got offline speech recognition a while ago:
http://www.androidcentral.com/google-search-update-allows-third-party-developers-use-offline-speech-recognition
Shut up Ballmer!
Yes, it really actually is extremely hard. Even detecting when a TCP connection has died is extremely hard, and ends up coming down to "try to ping them every few seconds and see if it gets there" type hacks, which have high latency of detection.
Don't they get that anyway, every time they release a new iOS?
(And yes, I know, MS do the same thing with v1 of any of their Windows OS's - never trust 'em 'til SP1 comes out)
I say we take off and nuke it from orbit. It's the only way to be sure...
In cases where the NSA/five eyes hasn't compromised one of the two endpoints (or a spot close to an endpoint in the sense of multipath diversity), how much more difficult would multipathing make it to reconstruct the stream flowing through the connection?
The only thing I care about, WRT iOS, is whether I can lock the screen orientation. If I'm lying down while using my iPhone, I want to be in a position that I'm comfortable in, and not have to prop myself in one that will keep the screen oriented correctly.
Smooth transitioning from 802.11abgn to mobile networks would sure be nice. Granted, it's not all VoIP, but that would be awesome.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
I'd imagine they'll gradually add it to services they control such as maps, iMessage, FaceTime and lastly iCloud.
With that final addition it would probably be an added feature of iOS 8.0 or 9.0 and extended to developers. Once they pick it up and the idea becomes more widely known hopefully it'll spur adoption in Apache and web browsers.
It's real annoying when I'm in the passenger seat looking for directions and we drive past a McDonalds or Starbucks and my page loading stalls as it jumps on the known network. Or when leaving the house and it goes from wifi to cellular.
Cwm, fjord-bank glyphs vext quiz
I hope they also enable an apps to run in the background for more than 10 minutes (i.e. for an ssh tunnel over wifi)
Funny how old technology becomes new all over again. Multitasking, improved UI, and tcp protocol improvements? Sounds like it came straight out of the DOS era. :)
"use case"? sure it's not a literally disruptive monetizing use case for early adopters with a steep learning curve?
If a new protocol is needed at both ends of the connection why not use a less experimental and more capable one like SCTP? It is heavily used in telephony networks for SIGTRAN and is also supported by some servers for SIP and HTTP.
Wait, I know, because it's Apple!
This feature may be causing performance issues. Since upgrading to iOS 7 wifi connectivity has been crap. When I turn off wifi and just use LTE it's great. I just tested wifi without the cellular data connection active...and it's great! Both turned on at the same time? Timeouts and heavy lag for anything that needs an internet connection.
I know, MS do the same thing with v1 of ...
WTF cares what they do, and why drag them into this triumph/tragedy?
"Tongue tied and twisted, just an Earth bound misfit
Where it also helps is when you are connnect to both cellular and wifi, but one of them isn't actually responding. The multipath TCP will notice that traffic isn't flowing and try directing traffic over the other one. I believe (though I may be misremembering) it's also possible to use this technology to bond different network connections, so if you have 10Mbps over WiFi and 10Mbps over LTE, you could turn them into something comparable to a 20Mbps connection.
However, iOS 7 was announced at WWDC which is a conference for developers.
Surely this is exactly the technology you want your app developers using to enhance the experience of your mutual customers?
Backup not found: (A)bort (R)etry (P)anic
I think I get the mechanics of what goes on (switch from LTE to wifi without breaking the connection). Can anybody explain the significance, or how it would improve phone functionality and app functionality? I'm sure there's a killer application, but I don't see it.
Yeah, except (a) their isn't an indication from what I'm reading that Apple is opening up this tech for use by developers yet; (b) the keynote for the WWDC is still aimed at the non-technical; and (c) I'm pretty sure there was some mention of it when iOS was announced, because I knew that Apple was starting to use multipath TCP at the time (though I don't remember where I learned it).
Only the kernel (it has to set up "virtual" routers for wifi and mobile).
That doesn't solve the problem that the two interfaces have different IP addresses, in completely disparate networks.
No, no, I don't think StripedCow really comprehends the solution he's recommending, but it theoretically works.
Step 1: obtain a routable IP network (i.e. not 127.x.x.x, 169.254.x.x, 10.x.x.x, 172.16-31.x.x, or 192.168.x.x); if you go through ARIN, the smallest they will issue you is a /24, but since that's way more than you need, perhaps you can beg a subnet assignment from an employer, LUG, or who knows where, or pay for it from your ISP.
Step 2: obtain an AS number.
Step 3: run a "'virtual' router" speaking real BGP on your phone.
Your phone can now have the same IP address no matter how it's connected to the internet.
In theory, that should work. In practice, the whole BGP scheme the internet runs on is designed around relatively short and slow-changing (other than occasional drop-outs) paths to the backbone; I'm not at all sure how it would work out with you swapping from McDonalds WiFi+3G to 3G to 3G (connected to a different tower) to Starbucks WiFi+3G to 3G etc., and NAT will break things for sure. But the core idea isn't really wrong, StripedCow just doesn't understand the huge difference between the "router" sitting at his ISP's uplink and the "router" sitting on his DSL line, and doesn't get how evil-yet-prevalent NATting is.
Anyway, the simple answer is to use autossh to form a ssh connection to a host on the internet, and to reconnect automatically if it drops. Use a tun interface, you get vpn. Hopefully, you can set up MPTCP on that host, thus saving you a drop/reconnect every time your connection changes, but it'll work without (when you reconnect, the TCP connections should sync back up). Once you've got MPTCP to that host, you don't need it to the rest of the internet, because everything else only sees that host's IP, which of course doesn't change.
You certainly would use streaming audio in that situation... And you might check your phone when getting out of the car and send a message of some kind. Now that message fails to send because you interrupt the connection mid way through. Or it just does something else unexpected. An uninterrupted internet connection is pretty much always better than an interrupted one.
But the thing is, since mobile devices have so long been in that situation of often dropping/switching connections, almost any decently written application or function already does that, and will silently retry or reconnect. Sure, this is a more elegant solution in theory, but we already have solutions in practice.
I remember sigs. Oh, a simpler time!
I am getting to the point that I hate the free Wifi at McDonalds and Starbucks. In theory it is great, but because of their TOS page, it ends up blocking data from various apps when you drive past one. Constantly adding and removing the connection manually isn't the answer. On the other hand, I feel a bit rediculous complaining about a free service that I could just ignore and not have these issues.
There is no network. Been sitting here in Raleigh for 2 full years listening to them tell me they're 'improving' and 'rolling out' LTE. If anything it's gotten worse. Of course no data but now dialtone is an iffy thing.
meanwhile everyone with an iPhone is now enjoying the benefits of multipath tcp.
...on iPhone 4S or later (since earlier models won't run Siri, for whatever reason). My iPhone 4, for instance, won't enjoy the benefits of multipath TCP since only Siri uses it and Siri don't play in my sandbox.
Couldn't you just quickly turn off WiFI with the new Control Center?
Yes, but driving down the road with music streaming, the solution of spotting McDonald's and turning off WiFi, and turning it back on when you get out of range isn't really a viable solution.
There are a bunch of apps in the Play Store that can turn wifi on and off automatically. Llama can do it too, among many other things, and it's free.
"Those who consume the bulk of goods are those who make them. We must never forget this secret of our prosperity."
I run a vpn for a client of mine. We needed to change the lan subnet to a non conflicting one with most coffee shops and hotels. We chose 192.168.8.x. Unfortunately when trying to connect to the lan locally the iPhone running ios 7 refused to connect. The moment we used a common subnet (ie .0, .1 or .2) it connected immediately. It seems the ios 7 dhcp client may have some limitations built in. I can connect no problem with my Android.