Re: Some notes about WebRTC and QUIC

Bjorn Mellem <mellem@google.com> Tue, 23 April 2019 20:12 UTC

Return-Path: <mellem@google.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8E5BC12035B for <quic@ietfa.amsl.com>; Tue, 23 Apr 2019 13:12:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.511
X-Spam-Level:
X-Spam-Status: No, score=-15.511 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id m6awTjeUV0sF for <quic@ietfa.amsl.com>; Tue, 23 Apr 2019 13:12:33 -0700 (PDT)
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E73A6120357 for <quic@ietf.org>; Tue, 23 Apr 2019 13:12:32 -0700 (PDT)
Received: by mail-ot1-x332.google.com with SMTP id u15so14007172otq.10 for <quic@ietf.org>; Tue, 23 Apr 2019 13:12:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=CWKq4kS66dwm9tGbNBYoQI3bExz4bFY87yrkl5NBCdM=; b=vBwKGrEMnKf3cZfmq60PGEVeV6agUJL11gF9ltrLrMNRgNHmEGs0azbGgeYevTMTJP CZdXykyi56mjFxsAA7Vw7RQC6O4fOarTaFsfNXqrGBWi7b+GvHtCAkweKG+WA7S1cYrm tfC8VW0OP7spHIL5qUd9dRoC2c4PiManmAiZFESpIGwouA3i60ETN1KisIBZki5lVnj3 9YBezBr3V0aq3b7IHWsvAPBgGhF03ebt7XZJRkMiJLFD/oHGTF+LCXHTySmbvYIbrlHH 8FqQSX92VnJY4YhAnlaa8uMchIJxpN+ZDXYN6stzH+pHuSUIHPyZYTNq68kLZlPluFCh v5fw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=CWKq4kS66dwm9tGbNBYoQI3bExz4bFY87yrkl5NBCdM=; b=CB+3Ax84xCTNSL+ugQkhaaQaizzaVDLc7yd9Oe48QPEM3SGwzvBYilXtIh9itpVHzM aD6IGhJWQaXDQUnUG5TXI6NeGTDq+FCDCOfkeV/O2lNoE44+NsOnHSbWXEqn8Pn1EXIs bfBNbf76tnd+Um+BgUCW+Zg6zB6gm1sSiA6bdAP8MVvGOZU+eOaSOqxWGfvwsXvWR6B7 qwZIcwUlyoC9NiYRIRAiN6R+/aaqYuqiHK7pOjlHsx5l2Acl+FiMB0GxW9aGQpjTgGo3 uCVRyd8jhHTOOSGYJh3WKg6zIepN7HwBX3M1UUMIuGwo/2d0IVhZbnMRQjxLJyQLJiyy DfFA==
X-Gm-Message-State: APjAAAUgwgCQaMGuQxjjBGipgQ6rYFkcKCChdSXqPv40+Uq6sMi2QsTT WoZ1Hohgsf1Vvv5OmvTho7HoVYyJoQAnfko0gUNRxg==
X-Google-Smtp-Source: APXvYqx2+yOnRq21726u+2BQveh6FwWBpi78Iq4jm4ZuswNwckozEUA/Z/EbpRS0V4HeakKBMJOL3OVT8Bc3TPHij+8=
X-Received: by 2002:a05:6830:1192:: with SMTP id u18mr15992217otq.295.1556050351601; Tue, 23 Apr 2019 13:12:31 -0700 (PDT)
MIME-Version: 1.0
References: <CAKcm_gN+s6Mdu6WFxtX+FLv=-d4fxQu5cGC0xXiM2JEGEUyGSQ@mail.gmail.com> <HE1PR07MB4425FE3118F70781DB6C6668C2260@HE1PR07MB4425.eurprd07.prod.outlook.com> <CAKcm_gMxwPV1Y=O-fYio4ytM-pFLZ2vMteJWR-DusuAVA_HaDQ@mail.gmail.com> <HE1PR07MB4425B1C5CED6E6E4FEA68499C2230@HE1PR07MB4425.eurprd07.prod.outlook.com>
In-Reply-To: <HE1PR07MB4425B1C5CED6E6E4FEA68499C2230@HE1PR07MB4425.eurprd07.prod.outlook.com>
From: Bjorn Mellem <mellem@google.com>
Date: Tue, 23 Apr 2019 13:12:20 -0700
Message-ID: <CACcUHGPY8SL3bXScwwZvbv969qVEAKrzXp7BhhRN4X=J2Dd8TA@mail.gmail.com>
Subject: Re: Some notes about WebRTC and QUIC
To: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
Cc: Ian Swett <ianswett@google.com>, "Bob Briscoe (ietf@bobbriscoe.net)" <ietf@bobbriscoe.net>, IETF QUIC WG <quic@ietf.org>, Neal Cardwell <ncardwell@google.com>, Yuchung Cheng <ycheng@google.com>
Content-Type: multipart/alternative; boundary="00000000000076144005873834f2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/yqTSjoOlMpdvCAZm2TK6Io5T91I>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Apr 2019 20:12:35 -0000

SCReAM could be interesting to experiment with in WebRTC-over-QUIC.  The
aspect of managing RTP queues and prioritizing through weighted credit
scheduling could be helpful.  Thanks for raising this!

We had some problems with the ACK-clocked part of BBR in early experiments:
bumping up against the CWND caused sending freezes and delay spikes.
However, it might be solvable by keeping changes to media rate control in
sync with changes to the CWND and applying back-pressure based on local
queues (as SCReAM does).

More inline.

Bjorn

On Tue, Apr 23, 2019 at 1:45 AM Ingemar Johansson S <
ingemar.s.johansson@ericsson.com> wrote:

> Hi
>
>
>
> As additional input.
>
>
>
> I understand that GoogCC need these per packet timestamps as it estimates
> the link bandwidth based in interpacket arrival.
>
> SCReAM does however not benefit from this information as it is more
> “traditional” ACK-clocked in its design. However, being ACK-clocked it
> requires at least an ACK every RTT to keep a healthy self-clocking loop at
> high bitrates and that at-least-one-ACK-per-RTT  is actually to be seen as
> the absolute pain limit.
>

Interesting--so it needs more frequent ACKs but less data per ACK.  As
Ian's notes mentioned, one of the challenges we've had in WebRTC-over-QUIC
is tuning the ACK policy to control overhead (especially at low
bandwidth).  Since we're using GoogCC, we've mostly tuned it for less
frequent ACKs.

The real killer has been small ACK frames that aren't bundled with other
frames, as they contribute especially high UDP/IP overhead.

Scaling the frequency with bandwidth should help.  This is something that
WebRTC does with GoogCC as well.  We don't currently have that capability
in gQUIC, but it's the kind of ACK policy we're likely to end up wanting
from QUIC.

>
>
> As far as I can see there could be congestion control work that benefits
> from a more dense time stamp.
>
> BBR(v2) : I guess it is best if Neil or Yuchung outline what is needed in
> terms of timestamp for good BBR performance
>
> TCP Prague (paced chirp) : The paced chirp method can benefit from more
> dense timestamps. I guess Bob is the best to provide with input on this and
> how much time stamp information that is needed for good performance.
>
> Other work on congestion control ?
>

>
> /Ingemar
>
>
>
> *From:* Ian Swett <ianswett@google.com>
> *Sent:* den 19 april 2019 17:10
> *To:* Ingemar Johansson S <ingemar.s.johansson@ericsson.com>
> *Cc:* IETF QUIC WG <quic@ietf.org>
> *Subject:* Re: Some notes about WebRTC and QUIC
>
>
>
> Roberto, I was thinking per-connection ACK policies.
>
>
>
>
>
> Thanks Ingemar, that's great information.
>
>
>
> On Thu, Apr 18, 2019 at 3:18 AM Ingemar Johansson S <
> ingemar.s.johansson@ericsson.com> wrote:
>
> Hi
>
>
>
> And thanks for sharing the meeting notes. I believe that there are
> benefits with WebRTC over QUIC, especially the possibility to run a unified
> congestion control has some merit given simulation studies that I have run.
>
>
>
> For what it’s worth.. During the development of SCReAM (
> https://tools.ietf.org/html/rfc8298 ) I have collected some experience in
> how SCReAM works and what it requires in terms of feedback for optimal
> function. SCReAM is congestion control for RTP media, SCReAM has built in
> support for prioritization between media streams. The observant reader may
> make the observation that SCReAM resembles LEDBAT quite a lot and that is
> quite true, SCReAM however also adds the interaction with the media coders,
> stream queues and ECN/L4S support. Mixing small and large packets (voice,
> video) does not seem to be a problem in simulations, but sofar SCReAM has
> only been used for the transmission of video at bitrates ranging from
> ~200kbps to 50+Mbps.
>
> I don’t believe that it is possible to take SCReAM and put it as is into a
> WebRTC over QUIC solution but perhaps some ideas can be stolen.
>
>
>
>
>
> A few observations:
>
>
>
> Timestamps : A receive timestamp for each packet is not needed for the
> function of SCReAM. It is sufficient with a receive timestamp of the last
> received RTP packet.  The current implementation (
> https://github.com/EricssonResearch/scream
> <https://protect2.fireeye.com/url?k=593f7b92-05b470a8-593f3b09-86925ec6fd56-7ff6d8b56b340c6e&u=https://github.com/EricssonResearch/scream>)
> implements
> https://tools.ietf.org/html/draft-ietf-avtcore-cc-feedback-message-02 which
> reports timestamps per packet, the issue is that it increases the feedback
> size quite a lot. An earlier version of the SCReAM code generated feedback
> packets that were just 48bytes, the size with the new format is 128 bytes
> or even more.
>
>
>
> It's very nice to only need a receive timestamp from the last received RTP
> pacekt.  Currently, GoogCC is designed to require one timestamp for every
> RTP packet, which as you said greatly increases the size.
>
>
>
>
>
> ACK rates: A low bitrates it is possible with feedback as seldom as every
> 50-100ms, at higher bitrate more frequent feedback is required. For
> instance, at 50Mbps or beyond, feedback is transmitted roughly every 2ms.
>
>
>
> Stream scheduling and prioritization: SCReAM implements an RTP queue per
> media stream, something that is best referred to as a credit based
> scheduler picks RTP packets from the queues in a priority fashion (
> https://tools.ietf.org/html/rfc8298#page-24). This approach seems to work
> well according to tests we have done. The RTP queues are mostly empty but
> serves as shock absorbers for instance when link throughput drops quickly.
>
>
>
> Regards
>
> Ingemar
>
>
>
>
>
>
>
>
>
>
>
> *From:* Ian Swett <ianswett@google.com>
> *Sent:* den 17 april 2019 17:42
> *To:* IETF QUIC WG <quic@ietf.org>
> *Subject:* Some notes about WebRTC and QUIC
>
>
>
> When in Prague, I organized a small WebRTC over QUIC lunch to discuss what
> it might look like and what the goals are.
>
>
>
> Attached are some notes from the conversation.
>
>
>
> Thanks, Ian
>
>
>
>