draft-ietf-mmusic-sdp-tcpmedia-00.txt dialout.net, inc. david yon tcp-based media transport in sdp
TRANSCRIPT
draft-ietf-mmusic-sdp-tcpmedia-00.txt
Dialout.Net, Inc.
David Yon
TCP-Based Media Transport in SDP
David Yon - Dialout.Net, Inc.2
Problem: SDP optimized for connectionless media (RTP, UDP, etc.).
Until recently there was no way to describe TCP-based media.
TCP has been added, but connection setup is missing.
Objectives: Allow endpoints to negotiate TCP connection setup.
Enable ALPs to predict and accommodate endpoint behavior.
Approach: Add new attributes to describe TCP connection setup.
Problem and Objectives
David Yon - Dialout.Net, Inc.3
Who Connects?
10.1.1.1 10.1.1.2
c=IN IP4 10.1.1.2/127
m=data 54111 TCP
c=IN IP4 10.1.1.1/127
m=data 54321 TCP
??
Problem:
Each endpoint advertises a port number, but do not specify which endpoint should initiate the TCP connection.
David Yon - Dialout.Net, Inc.4
The direction Attribute:
a=direction:active Endpoint will initiate connection
a=direction:passive Endpoint will accept the connection
a=direction:both Endpoint offers to do either or both
Solution: A New SDP Attribute
David Yon - Dialout.Net, Inc.5
Describe the Connection
10.0.1.1 10.1.1.2
c=IN IP4 10.1.1.2/127
m=data 54111 TCP
a=direction:passive
c=IN IP4 10.0.1.1/127
m=data 9 TCP
a=direction:active
Firewall
Unambiguous:
Because it is behind a firewall, the left endpoint insists on initiating the connection. Because the setup procedure is completely specified in SDP, an Application Level Proxy knows how the endpoints will behave without requiring detailed knowledge of the heuristics of the media protocol being used.
David Yon - Dialout.Net, Inc.6
Details
Endpoints specifying active must also specify port 9 (discard)
Local endpoint specifying both has three possible outcomes:
If remote endpoint specified active, then both==passive.
If remote endpoint specified passive, then both==active.
If remote endpoint specified both, then both sides initiate and accept.
If direction is omitted, both is assumed.
Endpoint specifying active or both may optionally specify a source port.
David Yon - Dialout.Net, Inc.7
Source Port
TCP-based services typically listen on a single port number.
A single IP address can host more than one logical endpoint.
Background:
The Problem:
How does an endpoint with a fixed port number for incoming connections differentiate between two incoming connections, sourced at the same IP address, but from two different logical endpoints?
David Yon - Dialout.Net, Inc.8
Source Port Example
10.0.1.1 10.1.1.2
c=IN IP4 10.1.1.2/127
m=data 2392 TCP
a=direction:passive
c=IN IP4 10.0.1.1/127
m=data 9 TCP
a=direction:active 4312
Firewall
c=IN IP4 10.0.1.1/127
m=data 9 TCP
a=direction:active 4313
c=IN IP4 10.1.1.2/127
m=data 2392 TCP
a=direction:passive
Unambiguous:
Because each logical endpoint on the left specified a different source port, the server on the right can bind each incoming connection to a session.
David Yon - Dialout.Net, Inc.9
Futures
Remaining Issues Is direction:both as a default the best approach? (T.38) Should SSL/TLS be added to this draft or treated separately?
Proposed Next Steps Standards Track
David Yon - Dialout.Net, Inc.10
Thank You!