Re: [rmcat] "Soup Nazi" RTP Congestion Control
Kevin Gross <kevin.gross@avanw.com> Tue, 28 May 2013 19:52 UTC
Return-Path: <kevin.gross@avanw.com>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CF0D11E8101 for <rmcat@ietfa.amsl.com>; Tue, 28 May 2013 12:52:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.186
X-Spam-Level:
X-Spam-Status: No, score=0.186 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FH_RELAY_NODNS=1.451, FM_FORGED_GMAIL=0.622, HELO_MISMATCH_NET=0.611, HTML_MESSAGE=0.001, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nBTo+NXH9999 for <rmcat@ietfa.amsl.com>; Tue, 28 May 2013 12:52:04 -0700 (PDT)
Received: from qmta05.emeryville.ca.mail.comcast.net (qmta05.emeryville.ca.mail.comcast.net [IPv6:2001:558:fe2d:43:76:96:30:48]) by ietfa.amsl.com (Postfix) with ESMTP id A8E2111E80D5 for <rmcat@ietf.org>; Tue, 28 May 2013 12:52:01 -0700 (PDT)
Received: from omta18.emeryville.ca.mail.comcast.net ([76.96.30.74]) by qmta05.emeryville.ca.mail.comcast.net with comcast id hVp31l0091bwxycA5Xs19u; Tue, 28 May 2013 19:52:01 +0000
Received: from mail-ie0-f178.google.com ([209.85.223.178]) by omta18.emeryville.ca.mail.comcast.net with comcast id hXq01l00K3rZRp58eXq0Cz; Tue, 28 May 2013 19:50:01 +0000
Received: by mail-ie0-f178.google.com with SMTP id f4so6464650iea.37 for <rmcat@ietf.org>; Tue, 28 May 2013 12:50:00 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gtncxHUG/TqSt+XU2GqjV5AmJq0gJNbTv4PwZH4egMk=; b=E85YCbw4CwjPMo7k3dC5yT1CrKUDKfE68xYTuLbyhRpDO+/7zi9GuqRiSFQ5SSamNV EU+EVnB7or+dn8hnD/BEf6irEP/7cFU1VaFA8scsjT5XT3zyzPEochKsfiDqC5irm636 S/xuzoh/dxMOZJ2/chgUpkNI7Nw1Uz4pu57zAPw+Xxca8RxPJQ3JVml8pwbqmQfrsrPM OHzXk/RqK10nQc5Jhtxzr90aIHedF4XNUcs1vusFK5GQAQwZORjO4jK+KHpOogj7Zzlg JitPmZUzmLG1U+VQI5VIuoKXpdmPCxojIM5XFKJbSA4NqD+CAMI0JUMg6DCNhpmt05gJ iKhA==
MIME-Version: 1.0
X-Received: by 10.50.126.1 with SMTP id mu1mr7903545igb.5.1369770600007; Tue, 28 May 2013 12:50:00 -0700 (PDT)
Received: by 10.50.65.69 with HTTP; Tue, 28 May 2013 12:49:59 -0700 (PDT)
In-Reply-To: <8C48B86A895913448548E6D15DA7553B8FADD8@xmb-rcd-x09.cisco.com>
References: <CACrWU7MCcA87wcnUiOrsm1rPiGVhjFmiA6q=_dMGRLvG+ECDSA@mail.gmail.com> <CALw1_Q3EVeg5UEVMyBUrx4tGKkAz+BgtshkOyjA4HbQF7bxb=w@mail.gmail.com> <8C48B86A895913448548E6D15DA7553B8FADD8@xmb-rcd-x09.cisco.com>
Date: Tue, 28 May 2013 13:49:59 -0600
Message-ID: <CALw1_Q3qdPqj0+A2xuxOCMUT0DZAtxeucz9C3bm1USDpawy2-A@mail.gmail.com>
From: Kevin Gross <kevin.gross@avanw.com>
To: "Fred Baker (fred)" <fred@cisco.com>
Content-Type: multipart/alternative; boundary="047d7b1637b709a60404ddcc92b2"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1369770721; bh=gtncxHUG/TqSt+XU2GqjV5AmJq0gJNbTv4PwZH4egMk=; h=Received:Received:Received:MIME-Version:Received:Date:Message-ID: Subject:From:To:Content-Type; b=O9jtI1nKYMngVeYDC8uTOE2cwPdwn8P1wx/LdIYW9T0MqV0N9npkoyLiTKu8t1+cU eisWKVXEb24HtpRaCaY66vVPYkiJh4xK7ziRJPfw59GqLvMljdp6VQ5Wedx47FOR6I xJif7wbv4AIjFsPIekq5obNmTpQw/SCRmnGBdIk7sMGaWruM4DWOgohZFc/JyXRVcp mUNT0ka9PYg3kImxwZb+F6rdmFBHgnv50PU88GwWB1yHlCE7LGHLH1ozXSmUvWr3Mi 0kDYfsOc3UbAhryE7wqH76+eUHRDSZ207fgpiqbunFgeMJiROgIqpr5TmYrZ6sg4nW AcT2hpabWnYoQ==
Cc: Dan Weber <dan@marketsoup.com>, rmcat WG <rmcat@ietf.org>
Subject: Re: [rmcat] "Soup Nazi" RTP Congestion Control
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rmcat>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 May 2013 19:52:10 -0000
We should definitely keep AQM (including ECN) in mind in this work but I don't think this is the right place to have a PIE vs CoDel discussion. Kevin Gross +1-303-447-0517 Media Network Consultant AVA Networks - www.AVAnw.com <http://www.avanw.com/>, www.X192.org On Tue, May 28, 2013 at 1:16 PM, Fred Baker (fred) <fred@cisco.com> wrote: > > On May 28, 2013, at 11:40 AM, Kevin Gross <kevin.gross@avanw.com> wrote: > > I don't know where you get the idea that codel drops packets in bursts. > It drops one packet per "interval". "Interval" starts at 100 ms and is > reduced slowly (71, 58, 50, 45 ms...) until congestion abates. Codel is > effective on TCP flows because the loss happens promptly, not because the > loss is substantial. > > Codel is designed to be applied on a per-hop basis. I don't see how it > can be applied at a receiver for an end-to-end connection as you are > apparently proposing and still behave as generally intended by its > inventors. > > > I was scratching my head on that as well. > > In context, you would do well to also consider PIE: > > http://tools.ietf.org/html/draft-pan-tsvwg-pie > "PIE: A Lightweight Control Scheme To Address the Bufferbloat Problem", > Rong Pan, Preethi Natarajan, Chiara Piglione, Mythili Prabhu, 10-Dec-12 > > It has the same caveat, of being designed to operate hop by hop. CoDel > specifically talks about dropping, and Van will tell you he's not fond of > ECN, but IMHO it could be applied to ECN as well. The PIE draft explicitly > mentions ECN marking as a possibility. That would feed into > > https://tools.ietf.org/html/rfc6679 > 6679 Explicit Congestion Notification (ECN) for RTP over UDP. M. > Westerlund, I. Johansson, C. Perkins, P. O'Hanlon, K. Carlberg. > August 2012. (Format: TXT=148560 bytes) (Status: PROPOSED STANDARD) > > In short, ECN is intended to trigger a TCP/SCTP sender to reduce its > effective window a bit. RFC 3168 says "do the same thing you would in the > event of loss", which for loss-triggered TCPs (newReno, CUBIC) means to > either set it to some value (used to be one), multiply it by some > fractional value (1/2, 7/8, or whatever), or reset it to the last value > that didn't result in such a trigger. I would expect that in the RTP > context it might insert some form of seder traffic shaping/pacing (if one > presumes that a codec has certain mean and maximum rates, it might default > to allowing the sender to send at its maximum rate, and might when told to > reduce the rate in the direction of the mean - and if the mean is still too > quick, ask the application to reduce its rate by changing codecs). > > > Kevin Gross > +1-303-447-0517 > Media Network Consultant > AVA Networks - www.AVAnw.com <http://www.avanw.com/>, www.X192.org<http://www.x192.org/> > > > On Sat, May 25, 2013 at 5:04 PM, Dan Weber <dan@marketsoup.com> wrote: > >> Hi guys, >> >> I've been reviewing CoDel, and it's clear how it works reasonably well >> for TCP. It's only slightly more complicated than an implementation using >> a fixed timestamp per packet expiration. The minor difference occurs when >> it goes into its dropping state which uses a square root scaling factor for >> the time based on the number of previously dropped packets in a sequence. >> This takes advantage of a known behavior of TCP congestion control >> algorithms which expect congestion to happen in large bursts. >> >> When applied to RTP unknowingly, the behavior could be pretty disastrous >> on video content. Although I doubt it's any worse than actual competing >> content with no AQM, a particular case does stand out. When CoDel is in >> place where there is no competing traffic and the RTP sender bursts the >> wire without pacing in respect to maximum stream bitrate, CoDel is likely >> to burst drop packets because of overflow on the queue time. I think *this >> behavior is extremely desirable*. This will bring awareness to all >> vendors and implementors that their implementations were working despite >> the fact that they were improper. >> >> This kind of behavior can be enhanced and augmented in a way that can be >> used to expedite the implementation of effective RTP Congestion Control. >> If we were to implement *receiver side CoDel* *for dropping "frames" or >> "messages" of RTP packets on new implementations*, we could become the >> "Soup Nazi" and start effectively identifying improper implementations as >> well as rendering them inoperable. *If implemented by one of the major >> WebRTC browser implementations, *a *chain reaction may develop that >> forces implementation of RTP congestion control up the pipeline*. If >> useful feedback is delivered back to the sender, which really needs to be >> net translated to *frames processed and frames dropped*, an application >> with its encoder could reasonably adjust. *This may solve fairness >> related problems because the receiver could identify if the sender >> overflowed the queues by evaluating actual arrival time compared with frame >> presentation time (converted RTP timestamps).* If the receiver enforces >> this constraint, fairness on RTP streams is effectively in force because >> implementations are rendered inoperable, and it works safely within the >> scope of CoDel. This implies that TCP would be only at most affected in >> the same way that another TCP stream would. >> >> And finally this leads to my suggested solution for sender side >> congestion control. Based on my assumption that CoDel implementation for >> AQM is on the horizon across routers in the next 5 to 10 years, a >> reasonable suggestion for RTP Congestion control may lead to CoDel over >> CoDel. An enhanced version of CoDel for implementation in the RTP stack >> (or at the codec encapsulation layer) provides clear frame demarcation and >> packet mapping (frame no == packets n..m), and drops entire frames based >> on: an assumption (or determination) of targeted maximum bandwidth and >> (optional, but highly recommended) some form of ECN. Notifications are >> then provided back to the application as to which frames were dropped, and >> the application can make the decision on how it seeks to change its >> behavior if at all [This combines well with the receiver based >> notification. If it chooses not to, the RTP stack enforces "fairness" by >> degrading the application performance in full units. A good implementation >> of this should *use FEC to maintain a constant bitrate despite the >> variations of the bitrate in the underlying stream. *While it does use >> more bandwidth than *immediately necessary* it provides great stability >> for the stream in *cooperation with both long lived TCP streams and >> short lived bursty streams*. It also *prevents unfair competition from >> TCP*. In addition, it *provides additional resiliency for handling >> intermittent packets loss* from WiFi and other wireless/cellular >> transmissions. >> >> I think the benefits of this solution outweigh any other that has been >> proposed, and solves many of the difficult challenges presented. While I >> have not yet build a full working model, It should work in at least as many >> places as CoDel works, and much research has been done and continues to be >> done on how well CoDel handles fairness. >> >> I would love to hear everyone's thoughts on this. Please send me your >> feedback. >> >> Thanks, >> Dan >> > > > > - Make things as simple as possible, but not simpler. > Albert Einstein > > >
- [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Kevin Gross
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Fred Baker (fred)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Kevin Gross
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Fred Baker (fred)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Kevin Gross
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Ali C. Begen (abegen)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Michael Ramalho (mramalho)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Zaheduzzaman Sarker
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Dan Weber
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Mo Zanaty (mzanaty)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Ali C. Begen (abegen)
- Re: [rmcat] "Soup Nazi" RTP Congestion Control Kevin Gross