Just wondering if you have two ends mptcp enabled, and say client has 2 interfaces eth0 and eth1 if I understand correctly how mptcp works (depending on routing table) it will create 2 different subflows to server. If so can client send SYN on say eth0, and get a SYN-ACK on eth1 from server?

  • Did either answer help you? if so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer.
    – Ron Maupin
    Jul 16 '17 at 3:47

The client decides when to create subflows.

Each subflow has a seperate three-way handshake. When the client sends a syn from an IP address it expects to get the syn-ack sent back to that same IP address.

Once the subflows have been established data packets can be sent on different subflows as dictated by network performance and local policy (for example the client may consider different connections to have different costs).



In the SYN, the client does not provide any information about its other ip addresses, so the server only knows the ip address that was used as source of the SYN and so it can only respond to that ip address. Wikipedia has a nice article about how this works including this visual representation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.