Re: [AVTCORE] Review of draft-engelbart-rtp-over-quic (David Schinazi)

Lucas Pardue <lucaspardue.24.7@gmail.com> Thu, 02 June 2022 09:48 UTC

Return-Path: <lucaspardue.24.7@gmail.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 32745C14CF05 for <avt@ietfa.amsl.com>; Thu, 2 Jun 2022 02:48:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.853
X-Spam-Level:
X-Spam-Status: No, score=-1.853 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cAoBRgq4Z8PR for <avt@ietfa.amsl.com>; Thu, 2 Jun 2022 02:48:55 -0700 (PDT)
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B6D7C14F6E7 for <avt@ietf.org>; Thu, 2 Jun 2022 02:48:55 -0700 (PDT)
Received: by mail-qk1-x72c.google.com with SMTP id k6so216555qkf.4 for <avt@ietf.org>; Thu, 02 Jun 2022 02:48:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=67BBChvEqMt545ZYd1miu79G1+lfoq4iCIZMGjx1b0Q=; b=er2Ao/hp97FFHxDsd6dcN/TnPAynUw8sMch3wrE4Ukog8iHEHUpaDyCZLC+rrUR+GM 1Tmy9KRUDoy5I5kDwn15ogFSTRJvenGOouRSC0rm48AF44kd8cKHedA7mPvmQJgITGsM HCxI7ILD80DMMU8FXJcRSP+PFOHrsqkTjDQ5O/pbE+2dIbVowB+x1Dor8qcWfuHC3Vu3 RrS2IH4OabnF8FazqLHvJ2ItOPyZu9IfVEaI3F/2sANmVv7Hi9twOmTShocNO0j/ehs/ sW7uAeXSaoEzW3SmXdnhy+TzTXu0HP+7RgDvJzYL+Jhhz+ZuwTJwRWv0U64Z1xj23cwK ZREA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=67BBChvEqMt545ZYd1miu79G1+lfoq4iCIZMGjx1b0Q=; b=RQ5f5He1wLd4YcNw7m6pC5kVXAsDCmNp7PtJYeYXxtMKgXpAOEApID+LiFWkOZ5JZ2 CID5USB+GZ3a/QrXPngJDF5BBdemu63f4kOcSyBjI+f0IC0Avx7ZRiDr+YIYjwd1x3pW dEO5fhCOsBeSgJ84jBmoFypbB112O+y1bBcIvT5PHh/SKnNLaCljJuFrcF8MUD4WzoqQ z8/jG9QukEYsHvijYijmBkKvPVX9JxvzCJhtK+cHCJGgtcG7XnZ+XjCBx2vvyELWaeF6 IZTW+fSZUI3Np2MlI7tHpIFYqqYMAxlWR/emtZgnz0tTus6LS8xOnuWjUnqE2LBUTa7i JSyg==
X-Gm-Message-State: AOAM530w/UmiIm9fD254YkpYIAdWDIiQWLjhI8Dn+BCAM6Ln8glr7es+ F+Ze7DpaggDhI+9w+3IPqazBHXeisE8l9PIt3RQIZlAR
X-Google-Smtp-Source: ABdhPJxbfAcN6B1BJclV3sR0dZB+i/g91XFUGcZgOA0trxDz911pADjbEyBdra+nHZtFMZQzXorl/w4x76XUOPrv0wM=
X-Received: by 2002:a37:b882:0:b0:6a6:8b1d:f60a with SMTP id i124-20020a37b882000000b006a68b1df60amr244867qkf.5.1654163334013; Thu, 02 Jun 2022 02:48:54 -0700 (PDT)
MIME-Version: 1.0
References: <CAOW+2duZuSb_w2jAARmPYq0O0b4fYGtMtbPWAYxZDf8r-q=Cng@mail.gmail.com> <a75e4d70-b11e-d5a0-ce19-ce90bf8f2a84@in.tum.de> <CALGR9oY2jQuKvE_ES=_kb7XoQ6KCoxJtoyc0VdAZ4P-L4QT3Gg@mail.gmail.com> <CAPDSy+5Yud2rU4-0jA2UnuKwaX6TGiof6QHECDvaRosHd1sdsA@mail.gmail.com> <CAOW+2dsx-+jFiUgoAE3Rx1EB_f+=stXo9X2xeXw111jrR9Jn_Q@mail.gmail.com> <CAPDSy+4hvJ7icFtT3sgjAs4SBEKQ9E1LEDOYZ2fLbi60W_=+sg@mail.gmail.com> <CAOW+2dui5pBbyvxW+Af9AWjbKc7ROyZSBmt0MuKGSk0-oYzg6Q@mail.gmail.com> <CAPDSy+4COC-yyn0eDrYKYiDD6nCFUHA6kR+8FRzcKT82xA-8Og@mail.gmail.com> <1fcdc9a3-027a-a675-d850-84777d881c9a@in.tum.de>
In-Reply-To: <1fcdc9a3-027a-a675-d850-84777d881c9a@in.tum.de>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Thu, 02 Jun 2022 10:48:44 +0100
Message-ID: <CALGR9oYELJh9_vcaXSON81U_k6qAUA-=gSMcU0xNRsBaszWW3A@mail.gmail.com>
To: Joerg Ott <ott@in.tum.de>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, Bernard Aboba <bernard.aboba@gmail.com>, IETF AVTCore WG <avt@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000eca96a05e073e968"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/GASzXchpPRLPTTwkYlI7njq71C8>
Subject: Re: [AVTCORE] Review of draft-engelbart-rtp-over-quic (David Schinazi)
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Jun 2022 09:48:59 -0000

Hi Joerg,

Responding to one aspect in line:


On Thu, 2 Jun 2022, 09:40 Joerg Ott, <ott@in.tum.de> wrote:

> [ oops, sorry, David, my Thunderbird autocompletion seems to have too
> good a memory :-) ]
>
> Let us try to disentangle this so that we don't accidentally talk past
> each other.
>
> A quick note before I continue: the main point of the discussion right
> now appears to be about multiplexing RTP and non-RTP sessions within a
> single QUIC connection and what the implications of this would be.  We
> don't feel strongly about going either way, we just try to understand
> what is feasible and what is not.  And then write this down clearly in
> line with what the WG wants.
>
> The main contention in this thread appears to be about if it would be
> even possible to signal a mix of protocols on top of a single QUIC
> connection because the ALPN would need to identify which protocol to
> run on top.
>
> Now:
>
> It is well understood that an ALPN is needed to identify a connection's
> target "instance" and thus indicate the protocol to be carried on top,
> be it h3 or something else.
>

I'd disagree a little with that interpretation. The ALPN token, by my
operating knowledge, denotes the specific pairing of an application
protocol bound to a secure protocol. For instance, there isn't a generic
"http" ALPN that can be used across TLS and QUIC, but rather each version
of HTTP describes a wire format and how it is expected to be mapped on to
the layer beneath it. That gives us "h2" and "h3", that are used
unambiguously.

One might argue that it should be obvious what the app:security binding is
at the point when the ALPN extension is exchanged - the security handshake.
However, we've unfortunately decided in the IETF to use ALPN tokens in
other places outside the handshake, such as the Alt-Svc header, the SVCB
[2], the ALPN header [3], and possibly more.


> The reason I brought up the -- admittedly simplistic -- p2p vs. c-s
> dichotomy is that, in client-server interactions, we signal the protocol
> to be used with the initial contact to the server in the first packet we
> send.  That is, the semantics of the application protocol are derived
> exclusively from the (IANA-registered or otherwise uniquely defined
> ALPN).
>
> In contrast, in the p2p real-time multimedia case, we usually do have an
> established signaling channel (SIP/SDP, HTTPS/SDP, whatever) via which
> the two endpoint negotiate which transports they want to use and how to
> use those.  That is, a complex SDP specification could clearly determine
> how many QUIC (or other) connections to open and how to use those and it
> could also define which ALPN to use for this very setup.  Whether this
> would be ephemeral ALPN or whether one would define (just for the sake
> of example) "rtp" (for a single RTP session), "rtp-mux" (for multiple
> multiplexed RTP sessions), and "rtp-udp-mux" (for mixed RTP and non-RTP
> sessions) would be up to be defined.  So, we could have well-defined
> ALPNs if needed and we would of course expect the QUIC library to ensure
> that ALPNs are checked and handled properly.  Your favorite quic_bind ()
> would be parameterized accordingly.  It seems that RFC 8833 defines an
> ALPN ("webrtc") for both RTP and data channels (in this case muxed in
> DTLS records) as one example for multiple protocols on top.
>

QUIC requires authenticated application protocol negotiation. So even if
you have an out of band mechanism like SDP, each QUIC handshake needs
something in band to support that.

For the reasons I set out above, I would discourage people from defining
new generic ALPN tokens, or to overload an existing one to cover usage of
an application protocol over QUIC. For example, avoid using "rtp", "webrtc"
etc to mean anything special if it were seen in a QUIC handshake.

Where we do agree though is that an ALPN token can be used to clearly
express an application mapping over QUIC that allows multiple concurrent
application protocols in the same QUIC connection. The document defining
that ALPN token is then required to explain exactly how that wire format
works.



> We do not expect a particular QUIC library to infer any semantics or
> protocol behavior from the ALPN used.
>

I agree here, a transport library has no business snooping on that.


> I may be missing the obvious but this wouldn't seem to be at odds with
> what both Lukas and you said.
>
> Finally about the tight integration: the draft doesn't assume but allows
> such.  You may have an integrated design, you may have a very expressive
> "API" to gain access to QUIC stats (as we are gradually describing in
> more detail), or you may have a fairly standard QUIC library without
> such access and do your own RTP/RTCP stats on top.
>
> Jörg
>


Cheers
Lucas

[1] https://www.rfc-editor.org/rfc/rfc7838.html
[2]
https://www.ietf.org/archive/id/draft-ietf-dnsop-svcb-https-10.html#section-7.1
[3] https://datatracker.ietf.org/doc/html/rfc7639

>