Re: [MMUSIC] RTSP and NATs

Jonathan Rosenberg <jdrosen@dynamicsoft.com> Mon, 03 February 2003 20:10 UTC

Received: from www1.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA19778 for <mmusic-archive@odin.ietf.org>; Mon, 3 Feb 2003 15:10:26 -0500 (EST)
Received: (from mailnull@localhost) by www1.ietf.org (8.11.6/8.11.6) id h13KFXo22138 for mmusic-archive@odin.ietf.org; Mon, 3 Feb 2003 15:15:33 -0500
Received: from ietf.org (odin.ietf.org [132.151.1.176]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h13KFXJ22135 for <mmusic-web-archive@optimus.ietf.org>; Mon, 3 Feb 2003 15:15:33 -0500
Received: from www1.ietf.org (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA19738 for <mmusic-web-archive@ietf.org>; Mon, 3 Feb 2003 15:09:54 -0500 (EST)
Received: from www1.ietf.org (localhost.localdomain [127.0.0.1]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h13KFGJ22125; Mon, 3 Feb 2003 15:15:16 -0500
Received: from ietf.org (odin.ietf.org [132.151.1.176]) by www1.ietf.org (8.11.6/8.11.6) with ESMTP id h13KE5J22033 for <mmusic@optimus.ietf.org>; Mon, 3 Feb 2003 15:14:05 -0500
Received: from mail3.dynamicsoft.com (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id PAA19600 for <mmusic@ietf.org>; Mon, 3 Feb 2003 15:08:26 -0500 (EST)
Received: from dynamicsoft.com ([63.113.46.54]) by mail3.dynamicsoft.com (8.12.1/8.12.1) with ESMTP id h13KC2YH014634; Mon, 3 Feb 2003 15:12:02 -0500 (EST)
Message-ID: <3E3ECD0D.8010601@dynamicsoft.com>
Date: Mon, 03 Feb 2003 15:11:57 -0500
From: Jonathan Rosenberg <jdrosen@dynamicsoft.com>
Organization: dynamicsoft
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Tom Marshall <tmarshall@real.com>
CC: Magnus Westerlund <magnus.westerlund@era.ericsson.se>, IETF MMUSIC WG <mmusic@ietf.org>
Subject: Re: [MMUSIC] RTSP and NATs
References: <3E3E982E.2010706@era.ericsson.se> <20030203181518.GA26315@real.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit
Sender: mmusic-admin@ietf.org
Errors-To: mmusic-admin@ietf.org
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Transfer-Encoding: 7bit

inline.

Tom Marshall wrote:
> On Mon, Feb 03, 2003 at 05:26:22PM +0100, Magnus Westerlund wrote:
> 
>>Hi,
>>
>>Here is a proposal to the RTSP spec for how to handle NATs using STUN. 
>>Please read and comment. It is planned to discuss NAT's on wednessday's 
>>RTSP telecon.
> 
> 
> I believe that a viable NAT traversal protocol should not require changes to
> the protocols that it supports.  If it is desired that RTSP and STUN work
> well together, I think the proper course of action is to modify the STUN
> draft to allow requests for consecutive blocks of mapped UDP ports required
> by RTSP and RTP.

No, that is impossible. You have misunderstood how STUN works.

STUN does not allocate the addresses. It merely tells the client what a 
regular, off the shelf NAT has allocated to a user. Since regular, 
off-the-shelf NATs do not know anything about RTP port pairings, two 
separate STUN requests will result in a nat allocating two bindings 
which are most likely not consecutive (or follow the odd/even rule). 
THis is dealt with through an SDP extension that allows a client to 
provide a specific address and port for SDP 
(http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp4nat-03.txt).


> 
> Regardless of STUN, it may be useful to have a mechanism for non-contiguous
> UDP port mappings.  I would argue in favor of a list based approach that has
> general applicability instead of an approach that is specific to RTP.  For
> example, the client_port attribute could use '/' to separate non-contiguous
> ports:
> 
> Transport: rtp/avp/udp;unicast;client_port=7834/23478

Well, I will take this opportunity to once more complain, as I have done 
at IETF meetings in the past, of the continued cost of repeating 
protocol development related to session initiation twice - once for SIP, 
and once for RTSP. We already have a way to do this representation in 
SDP for SIP. Seems like we need to repeat such design now for RTSP.


> 
> Having said that, here are my thoughts on STUN in general:
> 
> I am not in favor of STUN.  There are other NAT traversal protocols[1] which
> are already deployed and adding support for this one just muddies the waters
> further. 

There are many topologies in which UPnP will not work. These icnlude:

* cases where the residential nat doesnt support it
* cases where there are multiple nats in tandem, such as cable operators 
that nat their networks
* enterprises with multiple access points to the public Internet


> If someone were to propose a simple and complete solution for all
> NATs that everyone could get behind, that would be worth supporting.  STUN
> is, by its own admission, not a complete solution[2].

Heh. How about world peace while you are at it.

The problem is this. Experience has shown that solutions which ALWAYS 
work tend to be way too expensive in situations that are far more 
simpler solution will do. There is therefore a cost/generality curve 
with a highly non-linear behavior, which results in solutions being 
defined across this curve. STUN happens to be extremely cheap to do in 
the cases where it works. THe most general solution, which are 
media-relay types of solutions, are very expensive because of the need 
to route media through intermediaries.


> 
> The major focus of STUN seems to be the rapidly growing "NAT in a box" class
> of router devices that have proliferated around broadband and wireless. 
> Given the current lack of support for RTSP, why would we assume that vendors
> will be any more willing to support STUN? 

You have again misunderstood how stun works. STUN requires no support in 
NATs. A provider that wants to provide streaming media services using 
rtsp would deploy the stun server, NOT the ISP or IP access provider of 
the end user.


> If the vendors won't support it,
> then adding more Transport attributes creates more implementation headaches
> for ourselves with little or no benefit.  I think the best solution is to
> find out how to persuade the vendors to properly support RTSP.  It is really
> not much more difficult to support than, say, FTP.

I sinceerely doubt that.

What incentive has Linksys, Netgear, and the REAMS of other home nat 
boxes to support ALGs for RTSP? Are those companies the experts on RTSP? 
Surely not! The need to separate out applications from NATs and 
firewalls is central to the midcom working group and much of the other 
work going on in IETF.


ANYWAY, all of that said (just responding to this assault on STUN), I do 
not think STUN by itself is the right solution to RTSP nat traversal. 
THere are two options that are better.

OPTION 1: Symmtric RTP. See 
http://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp-comedia-04.txt. 
Effectively, the IP address/ports provided by the RTSP client are 
ignored by the server. The client sends RTP/RTCP packets to the server, 
and the server sends media back to the client at the source ip/port that 
the RTP/RTCP came from. Requires no changes to the RTSP protocol, except 
to recommend this method. No STUN support needed. Works through all NAT 
types. It will require the client to send keepalive packets if there is 
a pause in media.

NB: This ONLY works if the RTSP server is on the public Internet!!!!

OPTION 2: Coming Soon
I am working on a draft (out before the -00 deadline end of this month) 
that finally unifies all of the mess of nat traversal together - STUN, 
TURN, symmetric RTP. It has the property that it always results in the 
optimal media path, lowest latency, lowest cost, and highest probability 
of working (i.e., you hear media), compared to any other technique. In 
the case of the RTSP server running on the public Internet, it would end 
up working a lot like OPTION 1 above. But, it would also work in cases 
where that was not true, for example, a client connecting to a media 
server in another enterprise that is behind a nat.

More to come soon.


In fact, one might say that the best approach for nat traversal is not 
to document it in the RTSP revision itself, as there are multiple 
solutions in any case. We have done that for sip, documenting solutions 
in a separate document:

http://www.ietf.org/internet-drafts/draft-ietf-sipping-nat-scenarios-00.txt

Then there are other thigns coming like nsis. So, keeping this separate 
from RTSP itself is probably a good thing.

-Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
jdrosen@dynamicsoft.com                     FAX:   (973) 952-5050
http://www.jdrosen.net                      PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
mmusic mailing list
mmusic@ietf.org
https://www1.ietf.org/mailman/listinfo/mmusic