quicwg / multipath

In-progress version of draft-ietf-quic-multipath
Other
51 stars 18 forks source link

The spec doesn't say enough about DPLPMTUD or max_udp_payload_size #326

Open LPardue opened 6 months ago

LPardue commented 6 months ago

see https://datatracker.ietf.org/doc/html/rfc9000#name-datagram-packetization-laye and https://datatracker.ietf.org/doc/html/rfc9000#section-18.2

The maximum UDP payload size parameter is an integer value that limits the size of UDP payloads that the endpoint is willing to receive. UDP datagrams with payloads larger than this limit are not likely to be processed by the receiver.

The default for this parameter is the maximum permitted UDP payload of 65527. Values below 1200 are invalid.

This limit does act as an additional constraint on datagram size in the same way as the path MTU, but it is a property of the endpoint and not the path; see Section 14. It is expected that this is the space an endpoint dedicates to holding incoming packets.

I expect this document to say more about path MTU discovery than is written in https://quicwg.org/multipath/draft-ietf-quic-multipath.html#section-7.6. Especially that the max_udp_payload_size TP applies to all paths and could have unintended consequences for multipath PMTUD.

mirjak commented 4 months ago

The text above that you cited explicitly say that max_udp_payload_size is an endpoint property and not a path property. I don't think we need/should restate that.

What else should it say about MTU discovery? (Note this is now section 8.6)

mirjak commented 3 months ago

@LPardue any further comments or can we close this issue?

LPardue commented 2 months ago

ok I can agree about max_udp_payload_size.

I think it might help to reference QUIC PMTUD section a little more though. For example, to call out that where multipath says

Note that in the last scenario, it still remains possible to have multiple paths over the connection, given that a path is not only defined by the IP addresses being used, but also the port numbers. In particular, the client can use one or several ports per IP address and the server can listen on one or several ports per IP address.

and where https://datatracker.ietf.org/doc/html/rfc9000#section-14.3 says

QUIC endpoints implementing DPLPMTUD maintain a DPLPMTUD Maximum Packet Size (MPS) (Section 4.4 of [DPLPMTUD]) for each combination of local and remote IP addresses. This corresponds to the maximum datagram size.

that these things are entirely compatible. As such, a multipath sender can share the MPS across IP tuples for different paths

mirjak commented 2 months ago

@LPardue do you want to propose a PR?

mirjak commented 4 days ago

@LPardue please have a look at PR #441. I didn't add a reference in the intro as you proposed above, as I don't think it is necessary to discuss PMTUD directly in the intro. However I added a reference in the implementation guidance where we discuss MTU differences. Does that work for you?