Some more comments on the proposed MP design

On protocol violations:


quote:


"If an endpoint receives MP frames from packets of other encryption
levels, it MAY return MP_PROTOCOL_VIOLATION as a connection error and
close the connection."


I think it is important to use strict MUST on easily detectable protocol
violations to ensure interop and security.

Also, to my previous point on path sequence numbers as IV source:

What is the motivation for using the same key on all paths? Is it
considered a resource constraint to have more keys? Considering a server
might have 10K+ connections, and perhaps 1.3 paths per connections (wild
guess), it doesn’t seem to much of an overhead.

In addition, having separate keys avoids the sync issues mentioned in the
document. As it stands, failure on one active path can block key update.
This sounds like an accidental or intentional attack vector, although I’m
not sure that it is.

On the document format:

I think the discussion on application influence is good, but maybe isolate
that discussion a bit. It seems that stream priorities are part of the MP
design, which isn’t really the case, even if it is relevant to MP
applications.

On QoE:
Maybe it is good to leave the interpretation open to applications, but it
makes it more difficult to design a protocol layer on top. Is it the
intention that, for example, a QUIC-MP video protocol is designed which
then documents how to interpret QoE? If so, does this need to be in the MP
protocol, or could it be in a control stream created by the app level
protocol? In other words, I’m not sure wha the value is at the transport
level if it doesn’t affect the transport layer directly (unless of course I
am missing something).

ACK_MP frame:
If this is an extension to QUIC-v1 it makes sense (and this seems to be the
case). If it is intended as a new protocol version, maybe replace the
regular ACK frame to avoid protocol bloat? I can see the counter argument
that a new frame ID makes it easier to reuse v1 implementations, but
protocol bloat is a concern as well.

The scheduling section has an example mentioning one of the two paths. I’m
sure this a left-over since there could be more than two active paths as I
understand.

Path state:
I do not understand this well enough, but I’m a bit concerned about one
endpoint dictating the behaviour of the other regarding priorities etc. It
seems like this could easily be abused, and perhaps this is also better
done in an application level protocol?

The text is not very clear about the client and the servers role in path
negotiation. It seems that that it follows he QUIC-v1 async design due to
relying on the v1 PATH packets. So presumably this also places constraints
on who can send path state updates.

If MP was to become more symmetric, I wonder if there is a natural
evolution from here, or the proposed design is just digging the async
design hole deeper, so to speak. Note that async MP is useful in its own
right.



Mikkel

On 14 December 2020 at 10.38.58, Mikkel Fahnøe Jørgensen ([email protected])
wrote:

Would it be practical to lift the 32-bit constraint on the CID sequence
number?

Even if it probably is enough for most use cases I find it unfortunate to
introduce a new constraint here because if affects design decisions
elsewhere in stack.

For example, it could be required that a key is updated at least once in
every 2^31 sequence numbers, or the IV could be hashed and use a
sufficiently frequent key update.


On 14 December 2020 at 07.14.07, Yanmei Liu ([email protected])
wrote:

Hi all,

Here is an updated version of the draft which was posted in the mailing
list last Friday. Please check this link:
https://tools.ietf.org/html/draft-liu-multipath-quic-01
Regarding the questions in the mailing list for the previous version:
1. We have fixed the IANA registry problem in the new version. Thanks Lucas
for pointing out this problem.
2. We currently use Github for editing, and we prefer discussions on the
mailing list, so we removed the Github link in this draft.

This version merges our draft and Christian’s draft, and here are some of
the key features:

* Re-use as much as possible mechanisms of QUIC-v1, which has
supported connection migration and path validation.

* To avoid the risk of packets being dropped by middleboxes (which
may only support QUIC-v1), use the same packet header formats as
QUIC V1.

* Endpoints need a Path Identifier for each different path which is
used to track states of packets. As we want to keep the packet
header formats unchanged [QUIC-TRANSPORT], Connection IDs (and the
sequence number of Connection IDs) would be a good choice of Path
Identifier.

* For the convenience of packet loss detection and recovery,
endpoints use a different packet number space for each Path
Identifier.

* Congestion Control, RTT measurements and PMTU discovery should be
per-path (following [QUIC-TRANSPORT])

Thanks Jana and Kazuho for reviewing the proposal.

We would like to know how people think about the draft, and all feedbacks
and suggestions are welcome!


Thanks,
Yanmei



------------------------------------------------------------------
From: internet-drafts <[email protected]>
Date: 2020年12月14日(星期一) 12:36

To:安勍(莳逸) <[email protected]>; "Ma, Yunfei"
<[email protected]>; 刘彦梅(喵吉) <[email protected]>;
Christian Huitema <[email protected]>; 李振宇 <[email protected]>

Subject: New Version Notification for draft-liu-multipath-quic-01.txt


A new version of I-D, draft-liu-multipath-quic-01.txt
has been successfully submitted by Yanmei Liu and posted to the
IETF repository.

Name:  draft-liu-multipath-quic
Revision: 01
Title:  Multipath Extension for QUIC
Document date: 2020-12-14
Group:  Individual Submission
Pages:  18
URL:
https://www.ietf.org/archive/id/draft-liu-multipath-quic-01.txt
Status:         https://datatracker.ietf.org/doc/draft-liu-multipath-quic/
Htmlized:
https://datatracker.ietf.org/doc/html/draft-liu-multipath-quic
Htmlized:       https://tools.ietf.org/html/draft-liu-multipath-quic-01
Diff:
https://www.ietf.org/rfcdiff?url2=draft-liu-multipath-quic-01

Abstract:
   This document specifies multipath extension for the QUIC protocol to
   enable the simultaneous usage of multiple paths for a single
   connection.  The extension is compliant with the single-path QUIC
   design.  The design principle is to support multipath by adding
   limited extension to [QUIC-TRANSPORT].




Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

The IETF Secretariat

Reply via email to