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."
suck it, nerd.
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.
Let there be LIGHT !!
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.
Parmakhesabi.com
Anybody know if IPv6 is any better in this regard?
-- hendrik
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.
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
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
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 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 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.
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!
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.
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.