Session Description Protocol (SDP)
May 20, 2023
Session Description Protocol (SDP) is a protocol used to describe multimedia sessions for the purpose of setting up, modifying and tearing down communication sessions between endpoints on a network. SDP is a text-based format that allows multimedia applications to exchange information about the characteristics of media streams such as codecs, bitrates, frame rates, and transport protocols. SDP is used in a variety of applications including Voice over IP (VoIP), video conferencing, and streaming media.
Purpose of SDP
The purpose of SDP is to facilitate communication between multimedia endpoints by providing a standard way to describe session information. This information includes the type of media being transmitted, the media format and encoding, the transport mechanism being used, the network addresses of the endpoints, and various other session parameters. By providing a standard format for this information, SDP enables multimedia applications to interoperate seamlessly across different networks, protocols, and devices.
SDP is commonly used in VoIP and video conferencing applications to describe the characteristics of audio and video streams. For example, an SDP message might include information about the type of codec being used, the bitrate and sampling rate of the audio stream, and the resolution and frame rate of the video stream. This information is used by the endpoints to negotiate the best possible connection between them, taking into account factors such as network bandwidth, latency, and jitter.
SDP is also used in streaming media applications to describe the format and encoding of media files, as well as the transport mechanism being used to deliver the media. In this context, SDP is used to specify the location of the media file, its format (e.g. MPEG-4, H.264), and the transport protocol being used to deliver the media (e.g. HTTP, RTP). This information is used by the client to establish a connection to the media server and to begin streaming the media content.
Usage of SDP
SDP messages are typically exchanged between multimedia endpoints during the session establishment phase. The endpoints exchange a series of SDP messages, each containing information about the session characteristics, until they agree on a set of parameters that are acceptable to both parties. This process is known as session negotiation and is typically performed using a signaling protocol such as SIP or H.323.
SDP messages are typically sent as part of a larger signaling message, such as an INVITE message in SIP or a SETUP message in H.323. The SDP message is included as a payload in the signaling message and is used by the receiving endpoint to determine the characteristics of the session being established. Once both endpoints have exchanged SDP messages and agreed on the session parameters, they can begin transmitting media.
SDP is a highly flexible protocol that can be used with a wide range of transport protocols and codecs. This flexibility allows multimedia applications to interoperate with a wide range of devices and networks, making it a widely adopted standard for session negotiation in the multimedia industry.
SDP messages are structured as a series of lines, each containing a specific type of session information. The first line of the message is the SDP version number, followed by a series of information lines that describe the session parameters. The information lines are grouped into several sections, each containing information about a specific aspect of the session, such as the media streams being transmitted or the network addresses of the endpoints.
The following table shows an example of an SDP message and its various components:
|u=||URI of description|
|z=||Time zone adjustments|
Each line in an SDP message begins with a single-letter identifier that specifies the type of information being provided. For example, the
v= line indicates the protocol version number, while the
o= line provides information about the originator of the session. The
m= line is used to describe the media being transmitted, including its type (e.g. audio, video), format (e.g. H.264, AAC), and transport protocol (e.g. RTP, RTCP).