RFC 4566 - Session Description Protocol (SDP)
Media session description and negotiation protocol
What is SDP?
Session Description Protocol (SDP) is a format for describing multimedia communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP is used extensively in VoIP, video conferencing, and WebRTC applications.
Key Components
Session Information
Session name, description, and timing information.
Media Description
Audio, video, and data stream specifications.
Network Information
Connection addresses and transport protocols.
Codec Negotiation
Supported media formats and encoding parameters.
SDP Structure
Session-level
v= Version
o= Origin
s= Session Name
c= Connection Information
t= Timing Information
Media-level
m= Media Description
a= Attributes
c= Connection (if different)
b= Bandwidth
Example SDP
v=0
o=alice 2890844526 2890844527 IN IP4 host.atlanta.com
s=Session Description
c=IN IP4 host.atlanta.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000
Common SDP Attributes
- rtpmap: Maps payload type to encoding name and parameters
- fmtp: Format-specific parameters for media codecs
- sendrecv/sendonly/recvonly: Media direction indicators
- candidate: ICE candidate information for WebRTC
- fingerprint: DTLS certificate fingerprint
- setup: DTLS connection role (active/passive)
- mid: Media stream identification
- group: Media stream grouping and bundling
Supported Media Types
Audio
Voice codecs like G.711, G.722, Opus, AAC
Video
Video codecs like H.264, H.265, VP8, VP9, AV1
Application
Data channels, whiteboard, file transfer
Text
Real-time text communication (T.140)
Applications
- WebRTC: Browser-based real-time communication
- SIP: Session Initiation Protocol for VoIP
- RTSP: Real-Time Streaming Protocol for media streaming
- Multicast: Session announcement for multicast sessions
- Video Conferencing: Multi-party communication systems
- IPTV: Internet Protocol television services