MPTCP Question

Out of curiousity does the destination address have to be identical in order for MPTCP to work properly? For example, say I have a server that is accessible via both a local network address (when on the local network) and also via a proxy server (when remote to the local network) -- both destination addresses ultimately terminating on the same NIC. Is it possible to use MPTCP in that manner? I presume that the answer is no and MPTCP is more about taking multiple network interfaces and dealing with a single destination address, but it seems like it *could* support such a concept potentially.


Siri is the commonly cited example for MPTCP, but those requests are almost certainly being routed to a public facing server. How does HomeKit manage the transition from LTE to local Wifi for example? Or do all HomeKit requests route through a public facing server?


Thanks!

Accepted Reply

Out of curiousity does the destination address have to be identical in order for MPTCP to work properly?

Conceptually, a MPTCP connection is between two hosts, which is unlike a regular TCP connection which is between two addresses. As such, it’s theoretically possible to have multiple addresses on the server side and have the client create subflows to those addresses.

I’m not sure if this is practically possible given the current Apple implementation.

How does HomeKit manage the transition from LTE to local Wifi for example?

I don’t know, but the two alternatives you presented (MPTCP and always talking to a central server) are not the only options. Most apps handle situations like this at the application level.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Replies

Out of curiousity does the destination address have to be identical in order for MPTCP to work properly?

Conceptually, a MPTCP connection is between two hosts, which is unlike a regular TCP connection which is between two addresses. As such, it’s theoretically possible to have multiple addresses on the server side and have the client create subflows to those addresses.

I’m not sure if this is practically possible given the current Apple implementation.

How does HomeKit manage the transition from LTE to local Wifi for example?

I don’t know, but the two alternatives you presented (MPTCP and always talking to a central server) are not the only options. Most apps handle situations like this at the application level.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

"I don’t know, but the two alternatives you presented (MPTCP and always talking to a central server) are not the only options. Most apps handle situations like this at the application level."


Of course! But if a native framework / API can take care of those details on your behalf, why not take advantage?


Thanks Quinn.


(I don't seem to be able to quote previous conversations anymore?)