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? c=IN IP /127 m=data TCP c=IN IP /127 m=data 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 c=IN IP /127 m=data TCP a=direction:passive c=IN IP /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 c=IN IP /127 m=data 2392 TCP a=direction:passive c=IN IP /127 m=data 9 TCP a=direction:active 4312 Firewall c=IN IP /127 m=data 9 TCP a=direction:active 4313 c=IN IP /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!