Re: [Dart] HTA's Last Call review - drart-dscp-rtp-02

"Black, David" <> Sat, 23 August 2014 01:09 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id B55F11A02FE for <>; Fri, 22 Aug 2014 18:09:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.968
X-Spam-Status: No, score=-4.968 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.668, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id KN7iGiustDLF for <>; Fri, 22 Aug 2014 18:09:56 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 64DE41A0258 for <>; Fri, 22 Aug 2014 18:09:56 -0700 (PDT)
Received: from ( []) by (Sentrion-MTA-4.3.0/Sentrion-MTA-4.3.0) with ESMTP id s7N19pkm014308 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 22 Aug 2014 21:09:52 -0400
X-DKIM: OpenDKIM Filter v2.4.3 s7N19pkm014308
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed;; s=jan2013; t=1408756192; bh=00IIlpwsPVMl172ExcASebasbW0=; h=From:To:CC:Date:Subject:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=GGQTXozcJ8zc76l5Ikcj5hpOPCUmUBT1PPTVpjARgimayHbkFaVPwZ+l+NWxMC/kg Gg3DA0tldVIkhzS0WNEKrsetxNADcH1HhAUxE/feb525euAP8Bc/bM92EvE3K2ATYv t6e2VJpuOCvMTOmcUN79xmWxRL3q/3vA9W8RwO1k=
X-DKIM: OpenDKIM Filter v2.4.3 s7N19pkm014308
Received: from ( []) by (RSA Interceptor); Fri, 22 Aug 2014 21:09:38 -0400
Received: from ( []) by (Sentrion-MTA-4.3.0/Sentrion-MTA-4.3.0) with ESMTP id s7N19de8023342 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 22 Aug 2014 21:09:42 -0400
Received: from ([]) by ([]) with mapi; Fri, 22 Aug 2014 21:09:39 -0400
From: "Black, David" <>
To: Harald Alvestrand <>, "" <>
Date: Fri, 22 Aug 2014 21:09:38 -0400
Thread-Topic: [Dart] HTA's Last Call review - drart-dscp-rtp-02
Thread-Index: Ac++D5lUIUoIk5vHRs+QsOwtNywGBgAVs8NA
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_8D3D17ACE214DC429325B2B98F3AE712077BB42AA0MX15Acorpemcc_"
MIME-Version: 1.0
X-RSA-Classifications: public
Cc: "Black, David" <>
Subject: Re: [Dart] HTA's Last Call review - drart-dscp-rtp-02
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "\"DiffServ Applied to RTP Transports discussion list\"" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 23 Aug 2014 01:10:00 -0000


Thank you for carefully reviewing this draft.  Comments/responses are inline at DLB>.

I’m about to post a -03 version which is not completely done.


From: Dart [] On Behalf Of Harald Alvestrand
Sent: Friday, August 22, 2014 9:47 AM
Subject: [Dart] HTA's Last Call review - drart-dscp-rtp-02

Last Call review - drat-ietf-dart-dscp-rtp-02!<>


Summary: This document is not ready for IETF Last Call, but close.

The recommendations are reasonable and reasonably argued, but the precision and specificity of the language needs to be tightened up before publication.

The below addresses some specific concerns.

Section 2

nit: “communication in real-time” -> “communication in real time”

nit: The complex example needs to mention that there may be non-media streams; suggest “there may be multiple media and non-media streams”.

DLB> Fixed both.


Reference to SSRC for reference clock is wrong - “an RTP stream may contain multiple source streams that use the same reference clock (SSRC)” - this should be “clock, identified by the same CNAME”. The SSRC has to be different for each RTP stream in an RTP session. (The naming choice here is confusing….)

DLB> The text refers to a single RTP stream that contains multiple source streams, but only one SSRC.

DLB> Are you sure that this needs to change to CNAME from SSRC?  I’d prefer not to introduce the CNAME

DLB> concept if it’s not necessary.

The section needs to mention that RTP can be carried over a non-datagram protocol such as TCP, but that this document does not say more about this - just to show that its omission is deliberate, not accidental.

(In fact 5.3 discusses TCP-encapsulated RTP. So it’s appropriate to mention it here.)

DLB> Done.

STUN is not an encapsulation protocol, so should be omitted from the “encapsulated via STUN” sentence. TURN is. STUN packets are, however, multiplexed with the RTP packets.

DLB> Agree, see text in separate message.

Agree that the UDP stream is not unidirectional.

DLB> Agree, and picked up Colin’s suggested change here.


STUN/TURN paragraph sits oddly here. It seems to belong outside the “reasons for multiplexing” flow. Perhaps move it to the beginning of the section?

Again, STUN description needs tuning; STUN is used also for enabling communication without a relay server, by exchanging publicly-visible IP addresses and ports.

DLB> Ok, I see “sits oddly”.  I’ve moved this text into Section 2.1 and adjusted it - see the -03 draft when it’s posted.


“receiving the audio packets ahead of the video is not useful” -> “is not very useful” - the next sentence gives a reason why it is somewhat useful.

DLB> Changed to “significantly ahead” and changed next sentence to be about reliability instead of timing (early).

5.1 Diffserv, Reordering and Transport Protocols

The paragraph “Reordering also affects other forms of congestion control” is wrong. The content is OK, but the intro is not - it is the differential treatment (including drop probability) that creates problems for RMCAT, not (just) the reordering.

DLB> I don’t think so.  If RMCAT can’t cope with a video stream that uses multiple PHBs from an AF class, something is wrong.

DLB> I’ll tag this as an open issue in the draft - could you start a separate thread that includes the RMCAT WG to sort this

DLB> out?

DCCP is sensitive to differential treatment, since it does congestion control, so description of it as “problem free” is wrong.

DLB> Yup, serious thinko by yours truly, see other message on that specific topic for new text.

I think there are considerations coming from reordering (which affect protocols with immediate feedback, such as ACK-based protocols), and there are consdierations from diferential treatment (guessing wrong about what’s affected by a queue). The former applies to TCP; the latter applies to TCP, SCTP, DCCP, and (probably) whatever RMCAT comes to. These two should be separated.

DLB> I’m not sure that I understand what you’re asking for, and I’m not sure whether I agree.  I believe that SCTP is

DLB> TCP-like in being ACK-based, DCCP is covered by text in the other message on that topic, and “whatever RMCAT comes to”

DLB> is speculative (although the draft does have text on Michael Welzl’s concern about coupled congestion controllers that

DLB> don’t use measurements to detect bottlenecks).

DLB> Is there specific text on this topic that can be identified as wrong or misleading and proposed alternative text?

5.2 DiffServ, reordering and real time communication

The last paragraph of the section is somewhat misleading - network packet reordering done for *whatever* reason has no upper bound. If the authors think that packet reordering is more likely to be problematic with different DSCPs than with the same DSCP, that’s what they should say.

DLB> Ok, paragraph now reads:

   Network packet reordering has no effective upper bound, and can exceed the size of any reasonable

   jitter buffer. In practice, the size of jitter buffers for replay is limited by external factors

   such as the amount of time that a human is willing to wait for replay to start.  Use of different

   DSCPs that allow reordering is more likely to cause reordering problems than use of a single DSCP

   or set of DSCPs that does not allow reordering.

The reference to RTCP multi-stream optimization seems completely wrong. The grouping into RTCP reporting groups is about receiver SSRCs that see the same set of packets, not about grouping reports about different SSRC together. (unless I’ve misunderstood something). When not using multi-stream optimization, these SSRCs send duplicate reports.

DLB> The DART draft text does not mention SSRCs, and appears to be consistent with Section 3 and the first paragraph

DLB> of Section 3.1 of draft-ietf-avtcore-rtp-multi-stream-optimisation-03.  The point is that any use of different DSCPs

DLB> for different RTP streams breaks the (twice-stated) requirement in that AVTCORE draft for an identical view of the

DLB> network conditions” across the RTP streams involved, each of which has its own SSRC.

DLB> I don’t think the current DART draft text is actually wrong, but I’d welcome editing suggestions that improve clarity.

6. Guidelines

The word “requirements” seems at odds with the headline “guidelines”.

DLB> Fixed.

The word “session” is used several times without explanation - “RTCP session”, “reliable transport protoocol session”. From context, I guess “flow” or “connection” would be more appropriate.

DLB> RTCP text will be fixed when open issue is resolved on list.

I wonder if the first requirement can be phrased in the positive? For instance:

* Within a single RTP stream, should use a single PHB and DSCP, or a set of PHBs and DSCPs that do not allow reordering, for instance a single AF class.

DLB> Done, Ben also noticed this.

All in all, the document's recommendations are clear and reasonable, but the document can be improved.

DLB> Thank you.


Surveillance is pervasive. Go Dark.