Subject: Re: [Masque] Design Team for HTTP/3 Datagrams

From: David Schinazi <[email-masked]>
Date: Fri, 28 Jan 2022 10:26:44 -0800

Hi MASQUE Enthusiasts,

Over the past few months the design team has been hard at work figuring out
how best to design HTTP Datagrams to allow extensibility while minimizing
complexity. After many meetings, the design team has reached consensus on a
proposal, which has been written up as PRs against
draft-ietf-masque-h3-datagram and draft-ietf-masque-connect-udp:
https://github.com/ietf-wg-masque/draft-ietf-masque-h3-datagram/pull/135
https://github.com/ietf-wg-masque/draft-ietf-masque-connect-udp/pull/77
We're now bringing these back to the working group and asking you to
comment on them.

Here is a summary of the design components we have landed on as a design
team:
- the capsule protocol is a sequence of TLVs over the data stream, which
allows sending reliable end-to-end messages even in the presence of
intermediaries
- new methods and/or upgrade tokens can choose to use the capsule protocol
- we introduce a Capsule-Protocol HTTP header that allows endpoints to
inform intermediaries that the capsule protocol is in use
- CONNECT-UDP uses the capsule protocol
- HTTP Datagrams are associated with a currently open HTTP request stream
- HTTP Datagrams can be sent either using the QUIC DATAGRAM frame, or
inside a new DATAGRAM capsule (which means that HTTP Datagrams are
supported for all existing versions of HTTP)
- intermediaries can translate between different versions of HTTP
- extensibility has been moved up one layer: the concepts required were
removed from HTTP Datagrams and added to CONNECT-UDP
- CONNECT-UDP QUIC DATAGRAM frames start with a varint Quarter Stream ID
followed by a varint context ID
- context ID = 0 means that the rest of the datagram is a UDP payload
- other context IDs are dynamically allocated: implementations will hand
out available numbers to extensions as needed
- we introduce the concept of registering context IDs, which means
informing the peer of the semantics/format of the payload
- we have not yet defined how registration is performed, but suggest that
headers and capsules can be used for this - we'd like to discuss this point
with the WG after these PRs land

Please let us know what you think!

I'd like to personally thank the members of the design team (in no
particular order) for reaching consensus on this outcome: Alan Frindell,
Lucas Pardue, Mike Bishop, Martin Thomson, Victor Vasiliev, Eric Rescorla,
Alex Chernyakhovsky, Ben Schwartz, Tommy Pauly, and Marcus Ihlar.

Cheers,
David, design team enthusiast

On Mon, Nov 8, 2021 at 6:05 AM Christopher Wood <[email-masked]> wrote:

> Hi folks,
>
> At today's IETF 112 meeting, we had lots of discussion around HTTP
> datagrams and how they should be shaped, especially around extensibility.
> To help converge on technical details, we're forming a design team to sort
> out the points of contention in draft-ietf-masque-h3-dgram. David Schinazi
> will lead the team, and the chairs will help coordinate as needed. The goal
> is for this team to identify a proposal we can discuss during an interim
> meeting before IETF 113.
>
> If you'd like to participate on this team, please respond to this message
> or email the chairs directly ([email-masked]).
>
> Thanks,
> Chris and Eric
>
> --
> Masque mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/masque
>

---

From: Christopher Wood <[email-masked]>
Date: Fri, 28 Jan 2022 10:57:56 -0800

Thanks for the update, David! We are pleased to see that the Design Team has reached consensus. As proposed during its formation [1], we would like to schedule a one hour interim to discuss the output from the Design Team amongst the larger group. To that end, here is a Doodle poll for finding a time during the week of February 14:

   https://doodle.com/poll/y9vtrg5m96ipuwqk?utm_source=poll&utm_medium=link

Please fill it out at your earliest convenience. Based on that meeting, we will issue a consensus call to merge the proposed changes into the main WG documents ahead of IETF 113.

Thanks,
Chris, for the chairs

[1] https://mailarchive.ietf.org/arch/msg/masque/tRTh_MVhQ3xpb5iUtDc4-Mo-sfk/

> On Jan 28, 2022, at 10:26 AM, David Schinazi <[email-masked]> wrote:
> 
> Hi MASQUE Enthusiasts,
> 
> Over the past few months the design team has been hard at work figuring out how best to design HTTP Datagrams to allow extensibility while minimizing complexity. After many meetings, the design team has reached consensus on a proposal, which has been written up as PRs against draft-ietf-masque-h3-datagram and draft-ietf-masque-connect-udp:
> We're now bringing these back to the working group and asking you to comment on them.
> 
> Here is a summary of the design components we have landed on as a design team:
> - the capsule protocol is a sequence of TLVs over the data stream, which allows sending reliable end-to-end messages even in the presence of intermediaries
> - we introduce a Capsule-Protocol HTTP header that allows endpoints to inform intermediaries that the capsule protocol is in use
> - HTTP Datagrams can be sent either using the QUIC DATAGRAM frame, or inside a new DATAGRAM capsule (which means that HTTP Datagrams are supported for all existing versions of HTTP)
> - extensibility has been moved up one layer: the concepts required were removed from HTTP Datagrams and added to CONNECT-UDP
> - CONNECT-UDP QUIC DATAGRAM frames start with a varint Quarter Stream ID followed by a varint context ID
> - other context IDs are dynamically allocated: implementations will hand out available numbers to extensions as needed
> - we introduce the concept of registering context IDs, which means informing the peer of the semantics/format of the payload
> - we have not yet defined how registration is performed, but suggest that headers and capsules can be used for this - we'd like to discuss this point with the WG after these PRs land
> 
> I'd like to personally thank the members of the design team (in no particular order) for reaching consensus on this outcome: Alan Frindell, Lucas Pardue, Mike Bishop, Martin Thomson, Victor Vasiliev, Eric Rescorla, Alex Chernyakhovsky, Ben Schwartz, Tommy Pauly, and Marcus Ihlar.
> 
> Cheers,
> At today's IETF 112 meeting, we had lots of discussion around HTTP datagrams and how they should be shaped, especially around extensibility. To help converge on technical details, we're forming a design team to sort out the points of contention in draft-ietf-masque-h3-dgram. David Schinazi will lead the team, and the chairs will help coordinate as needed. The goal is for this team to identify a proposal we can discuss during an interim meeting before IETF 113. 
> 
> If you'd like to participate on this team, please respond to this message or email the chairs directly ([email-masked]).
> 
> Thanks,
> Chris and Eric
> 
> -- 
> Masque mailing list
> [email-masked]