Re: [AVT] RE: [Ietf-behave] RTP in draft-ietf-behave-nat-00

Randell Jesup <rjesup@wgate.com> Wed, 10 November 2004 22:38 UTC

Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA12895 for <avt-archive@ietf.org>; Wed, 10 Nov 2004 17:38:10 -0500 (EST)
Received: from megatron.ietf.org ([132.151.6.71]) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CS17W-00015f-Fr for avt-archive@ietf.org; Wed, 10 Nov 2004 17:39:18 -0500
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CS0zT-0003GK-Or; Wed, 10 Nov 2004 17:30:59 -0500
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1CS0qK-0001T3-H9 for avt@megatron.ietf.org; Wed, 10 Nov 2004 17:21:32 -0500
Received: from ietf-mx.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id RAA11563 for <avt@ietf.org>; Wed, 10 Nov 2004 17:21:29 -0500 (EST)
Received: from pr-66-150-46-254.wgate.com ([66.150.46.254] helo=mail.tvol.net) by ietf-mx.ietf.org with esmtp (Exim 4.33) id 1CS0rI-0000l2-WC for avt@ietf.org; Wed, 10 Nov 2004 17:22:37 -0500
Received: from jesup.eng.tvol.net ([10.32.2.26]) by mail.tvol.net with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id WQKMY9JJ; Wed, 10 Nov 2004 17:20:31 -0500
To: Dan Wing <dwing@cisco.com>
Subject: Re: [AVT] RE: [Ietf-behave] RTP in draft-ietf-behave-nat-00
References: <LIECKHBKICJFBLOMPHNMOEENNLAA.dwing@cisco.com>
From: Randell Jesup <rjesup@wgate.com>
Date: Wed, 10 Nov 2004 17:26:12 -0500
In-Reply-To: <LIECKHBKICJFBLOMPHNMOEENNLAA.dwing@cisco.com>
Message-ID: <ybu654ds5mj.fsf@jesup.eng.tvol.net.jesup.eng.tvol.net>
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 5a9a1bd6c2d06a21d748b7d0070ddcb8
Cc: fluffy@cisco.com, ietf-behave@list.sipfoundry.org, Stephen Casner <casner@acm.org>, AVT WG <avt@ietf.org>, audet@nortelnetworks.com
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: Randell Jesup <rjesup@wgate.com>
List-Id: Audio/Video Transport Working Group <avt.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
Sender: avt-bounces@ietf.org
Errors-To: avt-bounces@ietf.org
X-Spam-Score: 0.0 (/)
X-Scan-Signature: 082a9cbf4d599f360ac7f815372a6a15

"Dan Wing" <dwing@cisco.com> writes:
>To your first point, I believe we resolved this, in a positive way, on the
>list; -00 doesn't yet reflect those changes.  We decided to require NATs
>to preserve even and odd port numbers when they create their UDP bindings,
>as this provides the best interoperability for RTP applications that
>don't/can't provide explicit signaling of their RTCP port.

        Ummm...

        And how will you "require" NATs to do this?  This would mean that
all NATs would need to map all UDP traffic to the same oddness (even->even,
odd->odd).  While sure, the NAT vendors _could_ write code this way (though
it may well break some current NAT-traversal code that tries to do
predictive mapping), there are millions of NATs out there that will never
implement this, and nothing to force new releases to do so.

        The even/odd port thing was (IMHO) a Bad Idea (in hindsight), I
assume meant to avoid having to figure out how to signal the number for the
second port - and even for that even/odd wasn't really needed, all you
needed was contiguous.  Other TCP/UDP protocols don't do these sorts of
things with port numbers (even/odd, or implied relationships between port
numbers) - it's much better to actually signal the ports to be used.

        We shouldn't compound it by "requiring" NATs maintain oddness
(after the horse is not only out of the barn, but 12 miles down the road).
We're apparently trying to avoid breaking "RTP applications that
don't/can't provide explicit signaling of their RTCP port" by putting a
requirement on NATs that will at best be phased in over years, and at worst
totally ignored, instead of requiring RTP applications to specify both RTP
and RTCP ports.  The effect will be that RTP applications that attempt to
rely on this NAT requirement will end up breaking in many situations, and
quite probably in unpredictable ways.  (For example, many NATs try to
maintain port numbers inside->outside, but if the port is in use will then
allocate other non-contiguous port numbers of different oddness.)

        The original idea (even/odd pairs) wasn't a good one, and was
somewhat at odds with normal techniques in TCP/UDP, and certainly at odds
with any sort of NAT concept.  (Note: just my opinion, of course)

        Of course, having a NAT preserve oddness (and contiguity!) will
improve the odds of an older RTP application working from behind it, so it
might be a *nice* thing to do in the NAT - but no one should be counting on
it, and it's yet another complication in NAT design and limitation that
could cause it to run out of ports (in a large corporate-style NAT).

>To your second, a reference to RFC3605 will be added to the 'application
>behavior' document, which will describe how applications should behave.
>The current BEHAVE document just describes how NATs should behave.

        If BEHAVE is how they "should" behave, then my objections are
lessened - though we need to make sure that people don't use this document
as an excuse not to specify the RTCP port.

-- 
Randell Jesup, Worldgate Communications, ex-Scala, ex-Amiga OS team
rjesup@wgate.com


_______________________________________________
Audio/Video Transport Working Group
avt@ietf.org
https://www1.ietf.org/mailman/listinfo/avt