会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。
会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。SDP 即用于将这种信息传输到接收端。SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。
SDP 的设计宗旨是通用性,它可以应用于大范围的网络环境和应用程序,而不仅仅局限于组播会话目录,但 SDP 不支持会话内容或媒体编码的协商。
在因特网组播骨干网(Mbone)中,会话目录工具被用于通告多媒体会议,并为参与者传送会议地址和参与者所需的会议特定工具信息,这由 SDP 完成。SDP 连接好会话后,传送足够的信息给会话参与者。SDP 信息发送利用了会话通知协议(SAP),它周期性地组播通知数据包到已知组播地址和端口处。这些信息是 UDP 数据包,其中包含 SAP 协议头和文本有效载荷(text payload)。这里文本有效载荷指的是 SDP 会话描述。此外信息也可以通过电子邮件或 WWW (World Wide Web) 进行发送。
SDP 文本信息包括:
- 会话名称和意图;
- 会话持续时间;
- 构成会话的媒体;
- 有关接收媒体的信息(地址等)。
协议结构
SDP 信息是文本信息,采用 UTF-8 编 码中的 ISO 10646 字符集。SDP 会话描述如下:(标注 * 符号的表示可选字段):
- v = (协议版本)
- o = (所有者/创建者和会话标识符)
- s = (会话名称)
- i = * (会话信息)
- u = * (URI 描述)
- e = * (Email 地址)
- p = * (电话号码)
- c = * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
- b = * (带宽信息)
一个或更多时间描述(如下所示):
- z = * (时间区域调整)
- k = * (加密密钥)
- a = * (0 个或多个会话属性行)
- 0个或多个媒体描述(如下所示)
时间描述
- t = (会话活动时间)
- r = * (0或多次重复次数)
媒体描述
- m = (媒体名称和传输地址)
- i = * (媒体标题)
- c = * (连接信息 — 如果包含在会话层则该字段可选)
- b = * (带宽信息)
- k = * (加密密钥)
- a = * (0 个或多个会话属性行)