Subject: [multipathtcp] Need clarification on data mapping

From: Rao Shoaib <[email-masked]>
Date: Tue, 07 Jul 2015 18:31:20 -0700

Hi,

I need clarification on following issues regarding data mapping in RFC 6824

1)

"The sender MUST keep data in its send buffer as long as the data has
  not been acknowledged at both connection level and on all subflows on
  which it has been sent."

Does an implementation has to verify acknowledgements on all flows or is 
a connection level ack on any subflow sufficient.

2)
" A mapping is fixed, in that the subflow sequence number is bound to 
the data sequence number after the mapping has been processed. A sender 
MUST NOT change this mapping after it has been declared;"

This does not disallow sending the same data sequence in future using a 
different subflow sequence number. Correct ?

Thanks,

Shoaib

---

From: Costin Raiciu <[email-masked]>
Date: Wed, 8 Jul 2015 11:40:52 +0300

> Does an implementation has to verify acknowledgements on all flows or is a connection level ack on any subflow sufficient. 

Actually, both. Before you release data from the sendbuffer you must:
1) have a connection level ack covering it (and this can come from any sub flow) and 
2) appropriate subflow ACKs for the subflows this data has been sent on.

1) is meant to protect against proactive ACKing by middleboxes on one sub flow.
2) ensures that the sender can always send the original segment on the subflow that lost it to avoid confusing middleboxes such as traffic normalizers that expect to see the same data in segments with the same sequence numbers. In other words, if on subflow 1 you have sent subflow SEQ 1 “Hello” you are not allowed to resend subflow SEQ 1 “ByeBye”, you must send Hello again if the ack has not arrived.

> 2)
> " A mapping is fixed, in that the subflow sequence number is bound to the data sequence number after the mapping has been processed. A sender MUST NOT change this mapping after it has been declared;”

This covers point (2) above

> This does not disallow sending the same data sequence in future using a different subflow sequence number. Correct ?

Exactly. You can take the same data (with the same connection level sequence number) and send it on a new sub flow where it will receive a new subflow sequence number.

Cheers.
Costin

> 
> Thanks,
> 
> Shoaib
> 
> 
> 
> 
> _______________________________________________
> multipathtcp mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/multipathtcp