Re: [AVTCORE] [EXTERNAL] Re: IP address/port number handling in "RTP-in-QUIC" encapsulation layer

Bernard Aboba <bernard.aboba@gmail.com> Mon, 16 May 2022 00:22 UTC

Return-Path: <bernard.aboba@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 5A487C26E8D3 for <avt@ietfa.amsl.com>; Sun, 15 May 2022 17:22:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.995
X-Spam-Level:
X-Spam-Status: No, score=-1.995 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_FROM=0.001, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 9Q103xrzMtEN for <avt@ietfa.amsl.com>; Sun, 15 May 2022 17:22:46 -0700 (PDT)
Received: from mail-vs1-xe33.google.com (mail-vs1-xe33.google.com [IPv6:2607:f8b0:4864:20::e33]) (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 23BF2C20D650 for <avt@ietf.org>; Sun, 15 May 2022 17:22:46 -0700 (PDT)
Received: by mail-vs1-xe33.google.com with SMTP id u205so13928527vsu.6 for <avt@ietf.org>; Sun, 15 May 2022 17:22:46 -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=PGiofw5Ic7o1w0dj7C3uX1YaIWEGsHBypwWlD7PbmeQ=; b=SjXnk2gN1vWzlCQS7pCLDj/e/Kkrs6mgOuOCSu1jtMe+FDx287y8xNPgoWZ7olN4Vl gGUl54woWh5yimtOhaaOnEzT8J0dAxEHwrrWYiQDzUjLjSQLkIP5j2ZqDp5dTULo22rv UB70dfPzcOnt8Pqg6ZludJHGpCeVLggqWNFbQdlx9c1XBQlFneabEfdjSqOARfDVnoVc P2dBRGbzV4G0uh4S5btkgQAFgwatZts/TtP8rrtNFwXoIy7Zc8vemluGEXSoSaHJkGKi eEcsvzfydeTh4dQRH6jWCy+wzvrWQ9izMPUVLeGNOblirmBpFz2we6vCyls4RsyKMEzk TgrA==
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=PGiofw5Ic7o1w0dj7C3uX1YaIWEGsHBypwWlD7PbmeQ=; b=zti90UiVdj+TUVeN1cS0Gv4cte1inFkLhZhmcRWsYBG/iT6GEzK4yGyPGRK8c6xSl1 ltOKiCQVB6x83KK3DcjL9ClsmeFjRvlJV3o3216x2sGCSGe19TAg+oi+xnuC2tKsdIvF y+NxSdksaqH7sKcKXSvz9Q+H4+/jbd2UJHmef+znRjmwf4uT+326K2uugNfqp1brHvUL snfAbEf0yv/Q3BICfFHRVi0/w3EWWbXEdOpcE7itlm4/vFgc4GciRPe7z/t+K9AGdKe/ JaU4N+TWyD75ElRNBnvYtDdDQMx81NbUf0KAc0+AwL8d0F/zEn6dkVQs4/SNWA5g+RLF metA==
X-Gm-Message-State: AOAM533L9QTs4bRGrsACAnxKI+3hK2YIv9p8obxXtXGoAzxBn0jgQh3Q oeVrOs6lReoF2To0sdbyVRVH/XtUDXOwkAESPlotf2Q+AjLIQw==
X-Google-Smtp-Source: ABdhPJxMm8g9kqPE2wKAIIACriHOPlYW9s6fa5oTkJW6SoigA2kQaArwQcIOLiAB3FS4j9+QQlaev8oGxe6J/MFcPto=
X-Received: by 2002:a05:6102:5ce:b0:32d:339:5cfb with SMTP id v14-20020a05610205ce00b0032d03395cfbmr5246488vsf.85.1652660563514; Sun, 15 May 2022 17:22:43 -0700 (PDT)
MIME-Version: 1.0
References: <CAKKJt-cqGP8cFPrZAa4k1kb2HYceRvK7vrzwTAGOyCy6Xdu20w@mail.gmail.com> <6A469FF3-F4F8-49BE-840C-C7FB7F3DDB18@csperkins.org> <BL1PR03MB5974BBB0CF4B8A131AF94694A5CC9@BL1PR03MB5974.namprd03.prod.outlook.com>
In-Reply-To: <BL1PR03MB5974BBB0CF4B8A131AF94694A5CC9@BL1PR03MB5974.namprd03.prod.outlook.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Sun, 15 May 2022 17:22:33 -0700
Message-ID: <CAOW+2duFwrVSu=sRkp_07udjQ3ZQbGgS33qR=f39Kg=i5UAB1g@mail.gmail.com>
To: "Asveren, Tolga" <tasveren@rbbn.com>
Cc: Colin Perkins <csp@csperkins.org>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, IETF AVTCore WG <avt@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d29a7505df1605e9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/npmK8MoPvUOd5bFNv4AqgqJ_Zx4>
Subject: Re: [AVTCORE] [EXTERNAL] Re: IP address/port number handling in "RTP-in-QUIC" encapsulation layer
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.34
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: Mon, 16 May 2022 00:22:50 -0000

Comments below:

   - Ability to use a single QUIC connection for multiple RTP streams
   sounds reasonable
      - There is no need to deal with transport layer issues, e.g. NAT
      traversal for each of them separately
      - Provides implicit bundling
      - Each RTP stream would map to a QUIC stream
         - This needs to be signaled in SDP

[BA] Why does RTP need to be transmitted over a reliable QUIC stream?
Can't RTP packets be transported in QUIC datagrams (no associated stream)?
 Even if an RTP stream is transmitted over a reliable stream, why does the
mapping of RTP streams to a specific QUIC stream need to be signaled?  APIs
such as WebTransport don't provide QUIC stream IDs, if only because of HTTP
proxies which can scrambled them, so such signaling might not be possible
or useful.

If the QUIC connection is viewed as a generalized transport by which
(multiple) RTP/RTCP streams are transported, to be de-multiplexed at the
receiver, might it not be possible for a single RTP stream be transmitted
over a combination of multiple streams and datagrams (e.g. base layer over
a single reliable stream, upper layers on datagrams or frame/stream)?
Not saying this is desirable necessarily, but wondering why it is
inherently impossible.


   - OTOH, this would cause all RTP streams to be treated the same from
      network perspective, e.g. prioritization


Why do all RTP streams (or portions of RTP streams) need to be treated the
same?  In SVC, it seems to me like it might be desirable to use
differential reliability (e.g. higher reliability for the base layer than
upper layers).


   - TCP fallback
      - QUIC may fallback to using TCP


[BA] In WebTransport, an HTTP/3 connection can fallback to HTTP/2. Note
that this need not be automatic (e.g. the application could choose to
handle the failure to establish an HTTP/3 connection in another manner).

   - I presume it would be up to the application to detect that, tear down
      the RTP session and create a new one with UDP
      - [BA] Presumably, a failure to establish a QUIC session would
      indicate that UDP transport is not possible, so "creating a new one with
      UDP" wouldn't be likely to succeed either.
   - Connection migration
      - Currently, QUIC support connection migration only for the client
      - *[BA] Why would QUIC connection migration be needed for P2P QUIC,
      when that is handled by ICE? In WebRTC data channel, connection migration
      is explicitly forbidden, because it was not needed. *
      - There are requests/proposals to allow server connection migration
      as well but I am not sure when -if at all- those would make
their way into
      QUIC
      - [BA] Again, why would this be needed for P2P QUIC?


On Sun, May 15, 2022 at 12:43 PM Asveren, Tolga <tasveren@rbbn.com> wrote:

> A few thoughts:
>
>    - Ability to use a single QUIC connection for multiple RTP streams
>    sounds reasonable
>       - There is no need to deal with transport layer issues, e.g. NAT
>       traversal for each of them separately
>       - Provides implicit bundling
>       - Each RTP stream would map to a QUIC stream
>          - This needs to be signaled in SDP
>       - OTOH, this would cause all RTP streams to be treated the same
>       from network perspective, e.g. prioritization
>    - TCP fallback
>       - QUIC may fallback to using TCP
>       - I presume it would be up to the application to detect that, tear
>       down the RTP session and create a new one with UDP
>    - Connection migration
>       - Currently, QUIC suppor5t connection migration only for the client
>       - There are requests/proposals to allow server connection migration
>       as well but I am not sure when -if at all- those would make their way into
>       QUIC
>       - Supporting use of separate QUIC connections in a unidirectional
>       way for a single RTP stream could be useful
>    - Using an already established QUIC connection for RTP sessions
>       - For example, the QUIC connection which was established for
>       signaling
>       - Motivation/drawback would be similar to the first point above
>
>
>
> Thanks,
>
> Tolga
>
> *From:* avt <avt-bounces@ietf.org> *On Behalf Of * Colin Perkins
> *Sent:* Thursday, May 12, 2022 8:08 AM
> *To:* Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
> *Cc:* IETF AVTCore WG <avt@ietf.org>
> *Subject:* [EXTERNAL] Re: [AVTCORE] IP address/port number handling in
> "RTP-in-QUIC" encapsulation layer
>
>
>
> Hi,
>
>
>
> I’d argue that RTP doesn’t care about IP addresses and ports; it just
> needs a way of separating out traffic intended for different sessions. The
> signalling cares.
>
>
>
> Colin
>
>
>
>
>
>
>
> On 12 May 2022, at 00:35, Spencer Dawkins at IETF <
> spencerdawkins.ietf@gmail.com> wrote:
>
>
>
> We've had some pretty interesting observations in
> https://github.com/SpencerDawkins/sdp-rtp-quic-issues/issues/4
> <https://clicktime.symantec.com/39XKnot2mRQ7buAdFxJ5MBH6Gi?u=https%3A%2F%2Fgithub.com%2FSpencerDawkins%2Fsdp-rtp-quic-issues%2Fissues%2F4>
> about our observation that RTP/RTCP knows about IP addresses and  port
> numbers, but QUIC applications only use IP addresses and port numbers when
> establishing connections, and after that, QUIC applications are using
> connection IDs, even if underlying IP addresses change because of NAT
> rebinding or the QUIC implementation itself performs connection migration.
>
>
>
> This is obviously part of a larger question about RTP-in-QUIC
> encapsulation layer functionality, but it's interesting now, because
>
>    - if an encapsulation layer can handle all the vagaries of ports and
>    IP addresses, the application doesn't have to
>    - if an application is talking to a single IP address/port number, the
>    encapsulation layer can continue to present that interface to the
>    application, no matter what else happens below the encapsulation layer.
>    - If the IP address/port numbers are "virtual", the underlying IP
>    addresses need not even be the same IP address family. If an application
>    thinks it's talking to an IPv4 endpoint even if the underlying network
>    supports IPv6, this could remove some impediments to IPv6 migration.
>    - If the QUIC connection ID is the same for all the m=lines, this
>    might provide bundling functionality as well.
>
> Obviously, this will require more thought (Suhas suggested "design
> session" in one of the comments), but does it seem interesting and/or
> useful?
>
>
>
> Best,
>
>
>
> Spencer
>
> _______________________________________________
> Audio/Video Transport Core Maintenance
> avt@ietf.org
>
> https://clicktime.symantec.com/39YMrvS54gYMD12Y92fhSpQ6Gi?u=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Favt
>
>
>
> Notice: This e-mail together with any attachments may contain information
> of Ribbon Communications Inc. and its Affiliates that is confidential
> and/or proprietary for the sole use of the intended recipient. Any review,
> disclosure, reliance or distribution by others or forwarding without
> express permission is strictly prohibited. If you are not the intended
> recipient, please notify the sender immediately and then delete all copies,
> including any attachments.
> _______________________________________________
> Audio/Video Transport Core Maintenance
> avt@ietf.org
> https://www.ietf.org/mailman/listinfo/avt
>