[rtcweb] 5 tuples and rmcat-cc-requirements-01
Dave Taht <dave.taht@gmail.com> Mon, 30 December 2013 00:02 UTC
Return-Path: <dave.taht@gmail.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF89B1AE330; Sun, 29 Dec 2013 16:02:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.7
X-Spam-Level:
X-Spam-Status: No, score=0.7 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
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 xZOc6SZSUCdZ; Sun, 29 Dec 2013 16:02:15 -0800 (PST)
Received: from mail-we0-x231.google.com (mail-we0-x231.google.com [IPv6:2a00:1450:400c:c03::231]) by ietfa.amsl.com (Postfix) with ESMTP id 052301AE0A7; Sun, 29 Dec 2013 16:02:14 -0800 (PST)
Received: by mail-we0-f177.google.com with SMTP id u56so9542371wes.22 for <multiple recipients>; Sun, 29 Dec 2013 16:02:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=If5vyYo9jPzxDKONGfxPPawc89EJdKaCA68e7fV5WE8=; b=JeC5hsZqy/Ab2BuKg4nYQPtBv1XZvEh0/52BrDJAr5oY4rMmSarS+jW4VgKBjE+Nov jqc1e+hCTmImedSUJpPu6qdsx+R9f+Kqg2B1gklgWq1F44imGhGSWoTyJHTd+CMBw9DR ZkIZ6bmoURNKfsVjCrpu8TRH7byJRkN3wqNZOO31A5v2uE7+bzwMFdSVaAqD9bvISYxS B27qWkmQKIpzXp/YWFgd68KMuacUktQBvZQaGxf0WgXyDR7pDAcmoGM3zPT/lL7IbOa7 7DzkOPQpr4HoNT2vUDYV80EOrRN3/can+T5k37k+T+l6S1IPEcsPY7Iu1w9oroC1GRHh I6ZQ==
MIME-Version: 1.0
X-Received: by 10.180.198.43 with SMTP id iz11mr41849974wic.0.1388361728931; Sun, 29 Dec 2013 16:02:08 -0800 (PST)
Received: by 10.217.123.69 with HTTP; Sun, 29 Dec 2013 16:02:08 -0800 (PST)
Date: Sun, 29 Dec 2013 16:02:08 -0800
Message-ID: <CAA93jw7FDddn2n23fm=rdUsDyGakNfyLkJDgNjoC43fSc4GnSA@mail.gmail.com>
From: Dave Taht <dave.taht@gmail.com>
To: "rmcat@ietf.org" <rmcat@ietf.org>, rtcweb@ietf.org
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Subject: [rtcweb] 5 tuples and rmcat-cc-requirements-01
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Dec 2013 00:02:18 -0000
I finally had a chance to read over http://tools.ietf.org/html/draft-ietf-rmcat-cc-requirements-01 and also work at reproducing some of the difficulties present in the current implementation of chrome in light of the two papers presented at the last ietf on google congestion control. I went through tons of tests and packet captures that pretty much reproduced the legion of problems documented in https://speakerdeck.com/vr000m/evaluating-googles-congestion-control-for-webrtc and the other paper presented at ietf... and also fed webrtc traffic through the fq_codel and pie queue management systems (with pretty good results). I have tons of captures from each experiment if anyone wants them. So, I have some comments on this requirements document. (I'm new to paying attention on rmcat, so a few of my questions are probably answered by some document I haven't read yet. Steers appreciated. for all I know I'm on the wrong mailing lists too. Sorry) In particular, the flows I was looking at multiplexed voice and video on the same 5 tuple. I am curious as to the justification for this, as voice (without silence suppression) is isochronous and video is not. (is silence suppression used in webrtc?) To me, multiplexing these two very different flows on the same ports is not a good idea except under extreme port pressure, and not useful in ipv6 or in non-natted environments at all. Even in a natted environment, saving a single port is a false savings as (for example) dns lookups punch dozens of holes through nat on a regular basis. Requiring that in most or all cases these two flow types be on unique 5 tuples would give smarter queue management techniques on routers (like sfq, or sqf (deployed at FT), or fq_codel (deployed at free.fr)), a fighting chance. In particular it gives voice much higher probability for drop-and-delay free behavior, and analyzing the delta in drops and delay between a separate voice tuple and video tuple could provide insight as to the congestion in the system. In current implementations, is it possible to force flows onto different tuples? What are the other flaws in suggesting or requiring a different tuple? (note I'm not suggesting bulk data traffic get unique 5 tuples per flow) Some comments on section 3 A. If possible, it should also share information and adaptation with other non-RTP flows between the same endpoints, such as a WebRTC data channel I might argue that looking at the traffic on the whole browser would be good. The browser deprioritizing background web page loads while a webrtc session is active would be useful in the presence of congestion. B. The most correlated bandwidth usage would be with other flows on the same 5-tuple, but there may be use in coordinating measurement and control of the local link(s). As I note above you can get more congestion information from a pair of flows than one. C. Use of information about previous flows, especially on the same 5-tuple, may be useful input to the algorithm, especially to startup performance of a new flow. A 4 tuple may also provide insight, or even two (ip to ip) 4B. When additional input signals such as ECN are available, they should be utilized if possible. I would not mind seeing an implementation that negotiated ECN, but it is out of scope on this document. Is it discussed elsewhere, or implemented elsewhere? Is an ipv6 version of webrtc implemented anywhere? I am under the impression it can be made to work in freeswitch... 6. Flows managed by this algorithm and flows competed against at a bottleneck may have different DSCP markings depending on the type of traffic. A particular bottleneck or section of the network path may or may not honor these markings. And in fact, may not preserve them. It would be good to be aware if they are being preserved in both directions and mark appropriately, and also to probe if packets with particular classifications are being dropped or treated weirdly. This includes detecting for e2e ECN awareness. A. In WebRTC, a division of packets into 4 classes is envisioned in order of priority: faster-than-audio, audio, video, best-effort, and bulk-transfer. Typically the flows managed by this algorithm would be audio or video in that heirarchy, and feedback flows would be faster-than-audio. faster-than-audio? RTCP Signalling? what? I still have to think about RTCP signalling as it's very hard to pick out of the data I have, if it's even in there. 10. The algorithm should quickly adapt to initial network conditions at the start of a flow. This should occur both if the initial bandwidth is above or below the bottleneck bandwidth. The algorithm I looked over has particularly bad behavior on taking back bandwidth after it has been used up by another flow, taking many seconds to ramp up. I like the idea of periodically probing to ratchet up to a higher rate, with a slow-start-like burst (a higher resolution frame sent in parallel with lower rate data). But in terms of the requirements, adding a The algorithm should quickly recover from a loss in bandwidth, recovering voice first, if possible. -- Dave Täht Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html
- [rtcweb] 5 tuples and rmcat-cc-requirements-01 Dave Taht
- Re: [rtcweb] [rmcat] 5 tuples and rmcat-cc-requir… Michael Welzl
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Martin Thomson
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Harald Alvestrand
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Stefan Håkansson LK
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Eric Rescorla
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Stefan Håkansson LK
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Harald Alvestrand
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Eric Rescorla
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Harald Alvestrand
- Re: [rtcweb] 5 tuples and rmcat-cc-requirements-01 Martin Thomson