1、SDP简介
SDP(Session Description Protocol),会话描述协议。是描述流媒体初始化参数的格式,由IETF作为RFC 4566颁布。主要用于两个会话实体之间的媒体协商。
什么叫会话呢,比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。
那为什么要去发这个描述文本呢,主要是为了解决参与会话的各成员之间能力不对等的问题,如果参加本次通话的成员都支持高质量的通话,但是我们没有去进行协议,为了兼容性,使用的都是普通质量的通话格式,这样就很浪费资源了。所以SDP的作用还是很有必要的。
SDP 完全是一种会话描述格式,它不属于传输协议,它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。媒体协商这一块要用RTSP来实现。
2、SDP结构
SDP描述由许多文本行组成,文本行的格式为<类型>=<值>,<类型>是一个字母,<值>是结构化的文本串,其格式依<类型>而定。
<type>=<value>
3、SDP的文本信息
(1)会话名称和意图描述
- v = (协议版本)
- o = (所有者/创建者和会话标识符)
- s = (会话名称)
- i = * (会话信息)
- u = * (URI 描述)
- e = * (Email 地址)
- p = * (电话号码)
- c = * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
- b = * (带宽信息)
(2)时间描述
- t = (会话活动时间)
- r = * (0或多次重复次数)
(3)媒体描述
- m = (媒体名称和传输地址)
- i = * (媒体标题)
- c = * (连接信息 — 如果包含在会话层则该字段可选)
- b = * (带宽信息)
- k = * (加密密钥)
- a = * (0 个或多个会话属性行)
4、实例