News for hackers. Stuff that matters.
Re:Apple iOS 7 surprises as first with new multipath TCP con... by United857 on Thursday September 19, 2013 @08:13PM (#6415176)
I'm not a networking expert, but does this require system changes/support on the other end of the connection?
Re:Apple iOS 7 surprises as first with new multipath TCP con... by simon_vetter on Thursday September 19, 2013 @08:45PM (#6415312)
Yes, both endpoints will need to support it. Support for MPTCP is advertised through a TCP option during the setup phase of the connection.

One of three things can happen:

- Both endpoints support MPTCP and announce it through the MPTCP option : MPTCP will be used. Subflows will be set-up if possible (i.e. if additional addresses are present on at least one of the endpoint)

- One of the endpoints (say an ios7 device) supports it, but the other (say a webserver) doesn't : the server will ignore the MPTCP option (which it doesn't understand) and a normal, single path TCP connection will be used.

- None of the endpoints support it, thus no MPTCP option will be sent, normal TCP will be used.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by shawkinaw on Thursday September 19, 2013 @08:57PM (#6415349)
Perhaps this is why (according to the article) the usage in iOS is limited to Siri and navigation.
Re:Apple iOS 7 surprises as first with new multipath TCP con... by yalogin on Thursday September 19, 2013 @09:01PM (#6415366)
From what I read one of the main design decisions was to make sure the nodes along the route do not drop the packets which means it will be a TCP packet for all intents and purposes. So why should the other end change in this case?
Re:Apple iOS 7 surprises as first with new multipath TCP con... by delinka on Thursday September 19, 2013 @09:23PM (#6415436)
It's less about routing and more about connections. Typically, your client makes a single TCP connection for HTTP communication, all data requested on that connection is communicated on that connection. With a supporting server, multiple TCP connections can be used for the same HTTP connection. This doesn't help with transfer speed, but it improves TCP's ability to route around failure. One of your multiple TCP connections goes out, and another one (presumably on a different route) continues handling data transfer. With regular old TCP, the connection tends to fail and has to be re-established.

Pointless Pontification: since TCP was designed to route around failure, multi-connection TCP sounds to me like an adaptation of technology to the "demands of business." What I mean is network operators seem to want to centralize their networks to reduce costs instead of distributing them to make them robust, thus the technologists are attempting to work around this "failure."

Re:Apple iOS 7 surprises as first with new multipath TCP con... by songgao on Thursday September 19, 2013 @09:41PM (#6415502)
It doesn't make sure the nodes along the route do not drop the packets. Nodes along the route would see those packets as normal TCP packets (which is by design because in this way routers in between don't have to change). But both end are aware of MPTCP and they may use multiple path.

In this case, iOS is connecting to Siri server using both 4G and WiFi. They apparently go through different routers. This helps improve reliability when the device is at border of a WiFi coverage and is switching between 4G and WiFi back-and-forth. Using two path simultaneously would allow Siri to switch to the other route when one of them is showing significant packet loss.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by MichaelApproved on Thursday September 19, 2013 @11:41PM (#6415807)
When MPTCP is established, which IP address would be reported to the server software?
Re:Apple iOS 7 surprises as first with new multipath TCP con... by tedunangst on Friday September 20, 2013 @12:32AM (#6415931)
The first one.
Re:Apple iOS 7 surprises as first with new multipath TCP con... by jlmendezbonini on Thursday September 19, 2013 @08:43PM (#6415305)
No, I don't think so. Everything seems to imply that no modification is needed at the application layer.

Additionally, one of the researchers goals behind the technology is to support unmodified applications. Here's a presentation from the team's website http://multipath-tcp.org/data/MultipathTCP-netsys.pdf

Re:Apple iOS 7 surprises as first with new multipath TCP con... by songgao on Thursday September 19, 2013 @09:43PM (#6415507)
If iOS is exposing the API, I believe it should at least provide a parameter whether it should be a MPTCP or a classic TCP. Sometimes you don't need that reliable trasmission; using MPTCP would cause unnecessary cellular data usage.
Re:Apple iOS 7 surprises as first with new multipath TCP con... by lambda on Thursday September 19, 2013 @09:50PM (#6415528)
Multipath TCP could be used for smoothly handing over from the slower, more expensive, less-reliable cellular system, to the faster, cheaper, more reliable WiFi.

Without multipath TCP, you have to drop and restart each connection, which in some applications can cause hiccups, latency, or even complete loss of state.

Of course, all of this depends on server-side MPTCP support as well, which most systems don't ship with out of the box.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by songgao on Thursday September 19, 2013 @10:21PM (#6415634)
Right. What I'm saying is that, by keeping alive both path, you need to use some traffic. Although when there's WiFi available, you are primarily using WiFi, there are traffic going through cellular network in order to keep the path alive.
Re:Apple iOS 7 surprises as first with new multipath TCP con... by signa11 on Thursday September 19, 2013 @11:11PM (#6415751)
would be really cool if slower / more expensive connections could ultimately be drained, and the whole data transfer just switches over to a single more faster connection.

edit-1: note that this is not the same as subflow 'deletion' that would happen if an access mechanism was not available at all.

edit-2: section-3.4 of the mptcp paper indicates that FIN has a more limited 'no more data on this subflow' semantics. so, in theory it should be possible to do just that. would be so much better to not go the ANDSF route at all ;)

Re:Apple iOS 7 surprises as first with new multipath TCP con... by songgao on Thursday September 19, 2013 @11:59PM (#6415837)
Hey! I didn't go into that deep! So if FIN is used in a subflow, does it terminate that path? Is it possible to wake this path up again?
Re:Apple iOS 7 surprises as first with new multipath TCP con... by signa11 on Friday September 20, 2013 @12:23AM (#6415904)
the shorter answer first: i don't think there is any possibility of resurrecting a subflow once it is gone.

longer one: with mptcp, there needs to be some way to distinguish connection-teardown vs subflow-teardown. with, RST the subflow is terminated. FIN is more subtle (since it occupies the sequence space in normal tcp) however. FIN is handled via an explicit DATA-FIN within TCP option to indicate the end of data-sequence-space (which maps subflow sequence numbers to data sequence numbers in TCP options). gracefully terminating a connection, thus involves sending DATA-FIN on all subflows together with a FIN.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by acdha on Friday September 20, 2013 @07:50AM (#6417119)
> to the faster, cheaper, more reliable WiFi

This is far from universally true and a wonderful illustration of why multipath is great: I frequently see wifi where the back link is down or behind a payment gateway, requiring me to turn off wifi to get a reliable connection. This is sadly common at conferences where the venue skimped on AP placement and left entire rooms at max range or with inadequate backhaul.

The true beauty of MPTCP is that you don't need to make assumptions and hope — instead we can let the kernel sort things out based on the current environment.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by mesocyclone on Friday September 20, 2013 @12:32AM (#6415934)
Cellular mobile units are likely to have a short dwell time on any particular WiFi if they are in a moving vehicle. Can the underlying connections be initialized quickly enough for this case?
Re:Apple iOS 7 surprises as first with new multipath TCP con... by signa11 on Thursday September 19, 2013 @09:25PM (#6415449)
apllications use just the socket api for their interactions with the n/w stack. there is no change there, and hence the "unmodified applications" part.

from the mptcp paper, we have the following :

In brief, here is how MPTCP works. MPTCP is nego- tiated via new TCP options in SYN packets, and the end- points exchange connection identifiers; these are used later to add new paths—subflows—to an existing con- nection. Subflows resemble TCP flows on the wire, but they all share a single send and receive buffer at the end- points. MPTCP uses per subflow sequence numbers to detect losses and drive retransmissions, and connection- level sequence numbers to allow reordering at the re- ceiver. Connection-level acknowledgements are used to implement proper flow control.

so yes, both endpoints need to support mptcp for this to work.

Re:Apple iOS 7 surprises as first with new multipath TCP con... by spetsnaz on Thursday September 19, 2013 @09:27PM (#6415453)
Here is a video where they show it running, droping wifi and network connections.

http://www.youtube.com/watch?v=VWN0ctPi5cw

Re:Apple iOS 7 surprises as first with new multipath TCP con... by simon_vetter on Thursday September 19, 2013 @08:47PM (#6415319)
It will, however, require changes at the kernel level.