In-order (data sequencing)

  • Two-level sequencing (Reason p.53)
    • TCP subflows maintain their own sequence number (SEQ)
    • Additional data sequence number (DSN) is introduced in MPTCP
  • 32 or 64 bits DSN
    • Both supported! Depending on flags

Reliable (ACK and retransmission)

  • Packet loss
    Fast retransmit on the same subflow as original transmission.
  • Timeout
    Re-evaluate whether the segment can be retransmitted over another subflow.
  • Subflow failure
    All unAcked data are retransmitted using other available paths.

Flow control (rbuf management)

  • Shared receiving window (Reason p.61)
    If middleboxes change window field,
    • Use largest window received at MPTCP level
    • Use received window over each subflow to cope with flow control imposed by the middlebox

Congestion control

  • Coupled congestion control (Reason p.101)
    • For each loss on path r,

    • For each non-duplicated ack on path r,

Scheduling

Mobility

Middleboxes

  • Some middleboxes combine or split segments, even changes SEQ in SYN to ensure randomness
    • Solution
      MPTCP also carries the mapping between DSN and SEQ (e.g. DSN 0 -> SEQ 123) and the length of the packet
  • Some middleboxes even change the content of packet
    • E.g. ALG for a NAT
    • Solution
      MPTCP includes its own checksum, if content modification is detected on specific path, MPTCP will send RST to that path and use other available path.
    • Disadvantage
      Checksum calculation causes performance degradation

Notes

  • MPTCP uses TCP header option: MPTCP (30).
  • MPTCP is composed of 1+ regular TCP subflows. (Reason p.41)

TODO

  • p.48
  • p.171