[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MMUSIC] RTSP and NATs
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