[AVTCORE] Comments on draft-petithuguenin-avtcore-rfc5764-mux-fixes

"Paul E. Jones" <paulej@packetizer.com> Sat, 20 December 2014 02:16 UTC

Return-Path: <paulej@packetizer.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D12721A8AA6 for <avt@ietfa.amsl.com>; Fri, 19 Dec 2014 18:16:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.012
X-Spam-Level:
X-Spam-Status: No, score=-2.012 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 FrvI8MPp8nJ7 for <avt@ietfa.amsl.com>; Fri, 19 Dec 2014 18:16:57 -0800 (PST)
Received: from dublin.packetizer.com (dublin.packetizer.com [75.101.130.125]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 23A5D1A3BA4 for <avt@ietf.org>; Fri, 19 Dec 2014 18:16:56 -0800 (PST)
Received: from [192.168.1.20] (cpe-098-027-048-015.nc.res.rr.com [98.27.48.15]) (authenticated bits=0) by dublin.packetizer.com (8.14.5/8.14.5) with ESMTP id sBK2GnCu009107 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Fri, 19 Dec 2014 21:16:50 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=packetizer.com; s=dublin; t=1419041810; bh=M1iKVB0M5pfCQD5/PjpZXSzhtx2bF5dXcsxr6oYsdG8=; h=From:To:Subject:Cc:Date:Message-Id:Reply-To:Mime-Version: Content-Type:Content-Transfer-Encoding; b=n0kJM854D+6vaANNeScsDTPhx5WfDjnHOmwkohw/7sGiw/myJ8JfIF9YMZ3YN6OjE 2HntTiu5HuQJm3/Lxc4WyzlXZ14Ofab/MflDVUguqjewSoJ4Gh4mdYZ9BhNwcJzc+z a6Vir7JBwudDZw7PAON89njjfSEcnV9xv5jsmSuA=
From: "Paul E. Jones" <paulej@packetizer.com>
To: "avt@ietf.org WG" <avt@ietf.org>
Date: Sat, 20 Dec 2014 02:17:05 +0000
Message-Id: <emae87c614-75dc-4c48-90e4-40873a3715a8@sydney>
User-Agent: eM_Client/6.0.21034.0
Mime-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: http://mailarchive.ietf.org/arch/msg/avt/a_8H5IYZoGlqurU2DKnGb38xhlE
Cc: marcph@getjive.com
Subject: [AVTCORE] Comments on draft-petithuguenin-avtcore-rfc5764-mux-fixes
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: "Paul E. Jones" <paulej@packetizer.com>
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 20 Dec 2014 02:16:59 -0000

AVT,

While the issues raised in the rfc5764-mix-fixes draft are valid, I'm 
curious if consideration has been given to address multiplexing more 
generally?  Years ago, if anyone suggested multiplexing STUN, DTLS, 
TURN, along with RTP and RTCP, it wouldn't have been met with much 
enthusiasm.  Now, we are multiplexing everything over a single port.  I 
appreciate the reason, but it feel like this is a delicate balancing act 
and it imposes restrictions on existing protocols and will impose 
restrictions on future protocols to allow this model to continue as-is.

Since multiplexing over a single port is now considered legitimate, why 
not allocate a code point (e.g., 0x04) to be one dedicated for 
multiplexing?  I'm not suggesting we change what is already defined, but 
rather to introduce a new code point explicitly intended to facilitate 
multiplexing in such a way as to avoid having the delicate balancing act 
of ensuring that values do not conflict.  Such a scheme could also be 
used to allow for multiple instances of the same protocol (e.g., 
multiple DTLS connections) to be multiplexed over the same port.  Taken 
to an extreme, it might be possible to allow multiple RTP sessions to be 
multiplexed over the same port.  (I'm not suggesting we go that far, but 
having that kind of flexibility would not hurt.)

My thinking is that if the first octet is 0x04, the receiver will then 
look at the following two octets to determine how to handle the packet.  
These two octets could be sub-divided into IANA-assigned protocol 
identifiers and dynamically allocated values.  Basically, we would have 
this:

      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      0x04     |      protocol_identifier      | muxed data 
follows  ...
      
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

When the next protocol to be multiplexed is defined, we could statically 
allocate a protocol_identifier value for the protocol.  We could also 
define SDP syntax that would allow these values to by advertised so that 
protocols could be safely muxed even without a static allocation.  So, 
if there was a desire to have two WebRTC Data Channels, for example, one 
(or both) might be multiplexed using this scheme.  Perhaps all packets 
related to the first might be identified by 0x048001 and the other might 
be identified by 0x048002.  You can imagine how the protocol_identifiers 
0x8001 and 0x8002 could be advertised in SDP easily enough.  DTLS is 
already used for two entirely different purposes (DTLS-SRTP and WebRTC 
Data Channels), which forces a violation of RFC 5764 Section 5.1.1.  For 
that and other reasons, I can see benefit in multiplexing DTLS-SRTP and 
the WebRTC Data Channel (SCTP/DTLS) as two DTLS sessions.

Has there been discussion on this or is there interest in this approach?

Paul