Decoupled from IP, TCP is at last able to support multihomed hosts
queue.acm.org
queue.acm.org
Specifically, I can't wait till I can actually use my phone as I'm walking away from a Wi-Fi hotspot (which is very common).
Edit: As noted in another comment, Apple apparently adopted MPTCP for Siri in iOS7! http://support.apple.com/kb/HT5977 Now we just have to wait for every server on the internet to support it. :-/
I don't think it's enabled for apps, at least my default. You may have to pass special options when creating the connections in your app.
Disclaimer: I'm one of the authors of MPTCP.
I have to disagree that it makes sense to cripple APIs and give preferential treatment to certain software. If the support is there, give developers an API to use it!
Also, good job on MPTCP - it's awesome :)
EDIT: I'm being downvoted, but I'd really love to hear a justification for why it makes sense for apple to restrict features to use in apple-developed software only.
But I'd guess they're concerned that deploying MPTCP could cause problems with middleboxes in some environments. Siri is a good way to test the water. First, they own the servers, so they can ensure there's no problem on their end. Second, Siri isn't mission-critical in the way IMAP or HTTP would be, so if there is a problem, it's less of a PR disaster for them.
Personally, I'd also prefer to see an API that developers can use to enable it, but I'm OK with them taking it slow at first. Every cellular and WiFi network on the planet got to see how their middleboxes handle MPTCP, so having them test the water like this makes life so much easier for anyone else later.
You'd of course need to install the software on your outside server that will forward packets for you, but a DO droplet would be great for that. It'd also work for the case where your router is your server and you shift between wired and wireless.
I was wondering why SCTP [1] never took off. It sounds like a shoe-in for HTTP and other web-based protocols. All the application level protocols that must come up with a mechanism for communicating the length of the payload... Why not have that built into the transport protocol? Of course you do have streaming to deal with, but streaming can still be solved with SCTP same as what we do now in HTTP: say this is a stream, so the client keeps reading.
Then I saw it: NAT. Fucking NAT strikes again. Once IPv6 takes over [2], I hope to never speak those three letters in that sequence again.
[1] http://en.wikipedia.org/wiki/Stream_Control_Transmission_Pro...
https://www.usenix.org/conference/nsdi11/design-implementati...
https://www.usenix.org/conference/nsdi12/technical-sessions/...
Others: http://multipath-tcp.org/pmwiki.php/Researchers/References
I wonder if they've considered what happens with this for hosts that are very multihomed. If you have two hosts that each have 25 addresses, do you actually want 625 subflows? Or do you want to countenance the possibility that only one address on each host is fast and you didn't create a subflow between them because you didn't try every possibility?
Bonding wouldn't require SigmaVPN, just the regular Linux tooling and driver/kernel support.
[0] https://play.google.com/store/apps/details?id=com.frozenrive...
Maybe tinc-vpn would be an option though.
No bonding on Android, since there's No App For That (at least I know of none?). Doing that in a terminal, on a phone, is really the last thing I'd like to play with.
Or did I misunderstand your second suggestion?
I'm using it to bond two 4G interfaces (Verizon + Clearwire) on the train at this very moment. Need to remember to bring a USB wifi adapter next time so I can add the Amtrak wifi to the mix!
edit: No linux support though. :/
iOS7, released on September 18, 2013 is the first large scale commercial deployment of Multipath TCP - http://perso.uclouvain.be/olivier.bonaventure/blog/html/2013...
The Net Neutrality situation is worse than I thought.
Of course, as part of my job, I manage several of these boxes. I flagged these concerns when they were bought, but was overruled. So I guess we're relying on the good graces of the vendor to update their software to support MPTCP and any future modifications, otherwise these boxes become expensive doorstops.
edit: typo
Sure, you could design some new protocol. Except that it could never actually work in practice---the infrastructure will see to that. Instead, it's better to treat a TCP connection with a fixed port of 80 (or 443, if you're so inclined) as precious and slather on some more bandaids until it stops not working at all.
http://www.pps.univ-paris-diderot.fr/~boutier/source-specifi...
TCP multihoming would work for most protocols/apps out there.
Well - at least Multipath TCP spared us from solving that use-case with generalized BPG usage on mobile devices. Too bad, it could have been fun - in a way...
BGP on mobile devices would never have been fun and never worked. If each mobile host that came online required BGP around the world to update it's FIB we'd be in a world of hurt (partially because you can't aggregate host routes as you don't know where they're originating transit from). The more routes you add to BGP the worse BGP becomes from a maintainability perspective.
TL;DR Don't mention BGP on mobile devices as fun to any network engineer unless you're using the reference as a bad joke.