Re: [Dart] Commentary on draft-york-00

Dan York <> Thu, 12 June 2014 13:37 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 52A131B2A1C for <>; Thu, 12 Jun 2014 06:37:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yeQhZ2yUk7An for <>; Thu, 12 Jun 2014 06:37:32 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id ADE3A1A0086 for <>; Thu, 12 Jun 2014 06:37:31 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.954.9; Thu, 12 Jun 2014 13:37:29 +0000
Received: from ([]) by ([]) with mapi id 15.00.0954.000; Thu, 12 Jun 2014 13:37:29 +0000
From: Dan York <>
To: Harald Alvestrand <>
Thread-Topic: [Dart] Commentary on draft-york-00
Thread-Index: AQHPhjy9xRFOEIZVUES0uV+hBtb+2ZttenGA
Date: Thu, 12 Jun 2014 13:37:28 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: [2604:6000:9fc0:53:801e:5527:2cfe:8df6]
x-microsoft-antispam: BL:0; ACTION:Default; RISK:Low; SCL:0; SPMLVL:NotSpam; PCL:0; RULEID:
x-forefront-prvs: 02408926C4
x-forefront-antispam-report: SFV:NSPM; SFS:(428001)(377454003)(24454002)(52604005)(189002)(199002)(164054003)(15975445006)(87936001)(85852003)(4396001)(86362001)(74662001)(64706001)(99286001)(74502001)(31966008)(77982001)(20776003)(46102001)(83072002)(92726001)(92566001)(79102001)(15395725005)(16236675004)(33656002)(2656002)(82746002)(76482001)(15202345003)(81542001)(19580405001)(83322001)(21056001)(19580395003)(76176999)(54356999)(36756003)(50986999)(83716003)(80022001)(99396002)(101416001)(81342001)(104396001)(3826002); DIR:OUT; SFP:; SCL:1; SRVR:BLUPR06MB241;; FPR:; MLV:sfv; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (: does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is );
Content-Type: multipart/alternative; boundary="_000_4919258032A14B0A851CD139745D97A7isocorg_"
MIME-Version: 1.0
Cc: "" <>
Subject: Re: [Dart] Commentary on draft-york-00
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: Thu, 12 Jun 2014 13:37:35 -0000


Thank you for all the editorial nits and other readability suggestions.  I'll incorporate those as I make a readability pass through the document.  I agree that a paragraph around the impact of packet re-ordering on RTCWEB would be useful and I can work on something using your bullets as a base.

I will leave responses to your other points to members of the author team who are more knowledgable in those areas than I.


Dan York
Senior Content Strategist, Internet Society<>   +1-802-735-1624
Skype: danyork

On Jun 12, 2014, at 8:49 AM, Harald Alvestrand <<>>

This message contains running notes made during my initial review of draft-york-dart-dscp-rtp-00.
Apologies for lack of organization; it seems better to get them out soon than to polish them.

2 Background

"any one or more modalities" -> "one or more modalities" would read better.

"RTP defines the mechanism by which real-time data is transmitted" seems like an overreach. "RTP defines a common encapsulation format and handling rules for real-time data transmitted over the Internet" would be more appropriate.

"With most applications, a single..." - this is true for legacy. It seems likely not to remain true.

The definition of "media flow" needs to be in a "definitions" section. It's too important to be hiding in the "background" section - see much other mail.

"SCTP ... can be multiplexed with one or more RTP sessions". Actually we can only multiplex SCTP with a single RTP session. There have been proposals that would allow multiplexing of multiple RTP sessions (each containing multiple media flows) over a single 5-tuple, but these were not accepted.

The mention of MediaStream should be removed from bullet 1. It just confuses.

In bullet 2, only one RTP session can be multiplexed with another transport protocol (again).

The last paragraph is where distinguishing between <some kind of media related name> and <RTP packet flow> is very desirable. As it stands now, it seems simple, but when you start asking what all these flows "are", more precisely, it gets very confusing.

2.1 DiffServ

bullet 1, first list: grammar nit - "classify traffic and setting bits" -> "classify traffic and set bits"

"In this context, "forwarding behavior" is a general - for example" .... is a general what, exactly?

"to allocates resources" -> "to allocate resources"

Nit: the all-zero DSCP seems to have only five zeroes.

2.2 Diffserv PHBs

do you want to mention what the difference between the 4 AF classes is? Is it just isolation, or is there a ranking between them (in theory or in practice)?

2.3 Diffserv and transport protocols

The last paragraph is true but irrelevant - we're not using UDP here, we're using other protocols carried inside UDP. And the stuff that's carried inside UDP may be sensitive to reordering or may be insensitive to reordering - we just can't tell purely from the fact that it's UDP.

Suggest deleting the paragraph.

IMPORTANT: There is a huge missing section here - which is about sensitivity of real time communications to packet reordering.

I'm not sure how much can be said here, but I think this is quite complex:

- Packet reordering may lead to spurious NACK generation and unneeded retransmission, just as for the data flow case. How sensitive it is to that depends on timers.

- Packet reordering that can be accomodated within an existing jitter buffer will not lead to any quality issues.

- Packet reordering that causes jitter buffers to extend is bad news for delay sensitive communication, such as interactive conversations. Interactive implementations may choose to discard late data - but this is a matter of meeting the deadline, not a matter of whether it's reordered.
For replay of recorded media, it doesn't matter much.

- Packet loss is dealt with differently on interactive media than on reliable data delivery: Instead of retransmissing all lost data, one finds a reference point that new data can be based on, and continues to transmit media relative to that. One does not attempt to recover lost frames that are history.
How that affects this discussion ... I'm not too sure.

2.4 DSCP remarking

The discussion of token-bucket-based remarkers leaves me a bit confused.
To me, it's obvious (?) that token-bucket-based remarkers would operate in color-blind mode on a network boundary, and in color-sensitive mode only when they had assurance that incoming markings were already indicating color. Thus, flows from an end-user system should only hit color-blind remarkers; the real question is: will a color-blind remarker use the incoming DSCP codepoint to decide which of a group of remarking treatments it chooses for the packets?

It seems to me that the section should tell me, and it doesn't.

3 RTP Multiplexing Background

Repeating the story about "only one RTP session per 5-tuple, please"....

4 Recommendations

As discussed above, the first SHOULD NOT (reordering within a media flow) is not sufficiently founded in discussion of media properties. Reordering may be a problem, or it may not be a problem.

I don't see any issues with the other recommendations (the second seems like an obvious thing to say, for well documented reasons; the three others seem like no-ops from a practical standpoint).

Thanks for getting this out the door!

Dart mailing list<>