Re: [rtcweb] DSCP marking for STUN packets

Simon Perreault <> Tue, 11 March 2014 14:02 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id D4C3E1A045C for <>; Tue, 11 Mar 2014 07:02:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.448
X-Spam-Status: No, score=-2.448 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.547, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id AhHomlgZvQ3P for <>; Tue, 11 Mar 2014 07:02:27 -0700 (PDT)
Received: from ( [IPv6:2620:0:230:8000::2]) by (Postfix) with ESMTP id 3CDEC1A0423 for <>; Tue, 11 Mar 2014 07:02:27 -0700 (PDT)
Received: from (unknown [IPv6:2620:0:230:c000:d5d1:ac74:fa48:a37a]) by (Postfix) with ESMTPSA id 46C0C403F8 for <>; Tue, 11 Mar 2014 10:02:21 -0400 (EDT)
Message-ID: <>
Date: Tue, 11 Mar 2014 10:02:20 -0400
From: Simon Perreault <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
References: <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Subject: Re: [rtcweb] DSCP marking for STUN packets
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 11 Mar 2014 14:02:29 -0000

Le 2014-03-10 16:57, James Polk a écrit :
> At 12:16 AM 3/10/2014, Justin Uberti wrote:
>> I think that the existing guidance should be sufficient in
>> non-multiplexing cases (i.e. BUNDLE). For consent checks, I think the
>> same DSCP markings as any other ICE connectivity checks should be
>> used; for ICE-for-SCTP checks, the same DSCP markings as media packets
>> (i.e. the SCTP traffic) should be used.
>> If multiplexing is being performed, the connectivity checks probably
>> should use the highest DSCP value being used by the multiplexed media.
> why is (seemingly) everyone's default position "use the highest DSCP
> available" for signaling packets?
> You just need to make sure the packets aren't starved or dropped by/at
> congestion points.

The underlying principle is that connectivity checks need to *check
connectivity* (duh!). That's why you use the same DSCP as the media.
Connectivity is affected by the DSCP. For example some DSCPs could be
filtered, or could be placed in a low-priority queue and get dropped
such that connectivity fails.

>From this principle follows this conclusion: on a given 5-tuple, if your
media uses different DSCPs, you need to check connectivity for all those
DSCPs. That is, you would send multiple connectivity checks, one for
each DSCPs in the set used on this 5-tuple. Yeah, it sucks, so we might
need an alternative heuristic: try the lowest-priority DSCP, and assume
that if that one works, the higher-priority ones should work as well.
(Note that Justin suggested the contrary.)

What you want to avoid is STUN packets getting through but not the
corresponding media. That is an unworkable situation. The reverse is not
ideal either (you think you have no connectivity when in fact you do),
but at least ICE can work around it (by picking a different candidate).

DTN made easy, lean, and smart -->
NAT64/DNS64 open-source        -->
STUN/TURN server               -->