概述

SDP用来描述多媒体会话的应用层控制协议,为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。

  • 是一个基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围;SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。

  • SDP通常包含SIP会话发起协议的主体部分中。

  • SDP是在RFC 2327中定义的。SDP消息由一系列称为字段的行组成,其名称由单个小写字母缩写,并且以所需顺序来简化解析。

SDP协议的目标

SDP的作用是在多媒体会话中传达关于媒体流的信息,以帮助参与者加入或收集特定会话的信息。

  • SDP是一个短结构化文本描述。

  • 它传送会话的名称、地址,媒体,协议,编解码格式,定时及协议信息。

  • 临时参与者检查这些信息并决定是否加入会话,以及决定何时如何加入会话。

  • 该格式具有 = 形式的条目,其中定义唯一会话参数,为该参数提供的值。

  • SDP消息的一般形式是:x = parameter1 parameter2 … parameterN

  • 每行以单个小写字母开头,例如x,字母和=之间不能有空格,数值可以有多个,每个数值间用空格分隔。

SDP参数说明

如下(*表示可选)

v =(协议版本)
o =(所有者/创建者,会话ID)
s =(会话名称)
i = *(会话信息)
u = *(描述的URI)
e = *(电子邮件地址)
p = *(电话号码)
c = *(连接信息 - 如果包含在所有媒体中则不需要)
b = *(带宽信息)
z = *(时区调整)
k = *(加密密钥)
a = *(零个或多个会话属性行)

协议版本

v =字段包含SDP版本号, 因为SDP的当前版本是0,所以有效的SDP消息将始终以v = 0开始。

所有者/创建者,会话ID

o =字段包含有关会话发起者和会话ID的信息,用此字段唯一标识会话。

该字段包含:

o = username session-id version network-type address-type
username:包含发起方的登录名或主机。
session-id:是用于确保唯一性的网络时间协议(NTP)时间戳或随机数。
version:是一个数字字段,随着会话的变化而增加,也建议使用NTP时间戳。
network-type:是网络类型,对于Internet始终为IN。
address-type:为IPv4或IPv6地址6,以点分十进制形式或主机名。

会话名称与信息

s =字段是会话的名称, 它可以包含任何非零数字的字符。
可选的i =字段包含会话的信息, 它也可以包含任意数量的字符。

URI

可选的u =字段,数值为URI,它可以标识会话的更多信息。

电子邮件地址和电话号码

可选的e =字段,包含主机的电子邮件地址。
可选的p =字段,包含电话号码。

会话连接信息

c =字段,会话连接的信息。

该字段包含

c = network-type address-type connection-address
network-type:对于Internet,网络类型参数定义为IN。
address-type:地址类型,IPv4地址为IP4,IPv6地址为IP6。
connection-address:连接地址,是要发送媒体分组的IP地址或主机,其中可以是多播或单播。
如果组播,则connection-address字段包含:
connection-address = base-multicast-address / ttl / number-of-addresses
其中ttl是存活时间值,并且地址数量表示从基本多播地址开始包含多少个连续的多播地址。

带宽

可选b =字段,包含所需带宽的有关信息。 它的形式:
b = modifier:bandwidth - value

时间,重复次数和时区

t =字段,包含会话的开始时间,停止时间。
t =开始时间 停止时间

可选的r =字段,包含可以在NTP中或在天( d ),小时( h )或分钟( m )中指定的重复时间的有关信息。

可选的z =字段,包含时区偏移的有关信息。 如果发生的会话跨越从夏令时到标准时间的更改,则使用此字段,反之亦然。

媒体公告

可选的m =字段,包含媒体会话类型的有关信息。 该字段包含:

m =media(媒体类型) port(端口) transport format(传输格式列表)
media:可以是音频,视频,文本,应用程序,消息,图像或控件。 port:端口号。
transport format:包含所使用的传输协议或RTP配置文件。
格式列表包含有关媒体的更多信息,通常它会包含RTP音频视频中定义的媒体有效载荷类型。
例如:m = audio 45678 RTP/AVP 0 6 8 99

属性

可选a =字段,包含各媒体会话的属性。这个字段可用来为SDP提供更多的媒体信息,可以有一个或多个属性字段来列出每个媒体类型的有效载荷。

属性a在SDP中可以出现在会话层或媒体层。
在会话层表示共有,即在所有的媒体中都生效。
在媒体层表示只适用于当前媒体中。

SDP中可以包括会话层和媒体层属性。如果相同的属性在会话层和媒体层都出现,那么媒体层的属性会覆盖会话层的属性值。注意,connection连接数据字段也可以是会话层或媒体层。

一个完整SDP例子

下面是一个来自 RFC 2327的SDP例子:

v = 0
o = vvsip23982638 23982638 IN IP4 136.5.68.48
s = SDP Seminar
i = A Seminar on the session description protocol
u = http://www.vvsip.com/staff/M.Handley/sdp.03.ps
e = mjh@vvsip.com(Mark Handley)
c = IN IP4 224.2.17.12/127
t = 2873397496 2873404696
a = recvonly
m = audio 49170 RTP/AVP 0
m = video 51372 RTP/AVP 31
m = application 32416udp wb
a = orient:portrait

SDP协议扩展

有许多的SDP扩展定义。常见的总结在下表中:

【SIP教程】 SDP(Session Description Protocol)会话描述协议相关推荐

  1. SDP: Session Description Protocol(会话描述协议) (RFC2327)

    SDP: SessionDescription Protocol(会话描述协议) (RFC2327) 1概述 SDP也是MMUSIC工作组的一个产品,在MBONE内容中用得很多.其目的就是在媒体会话中 ...

  2. SDP(Session Description Protocol)模型介绍(RFC3264)

    SDP(Session Description Protocol)模型介绍 如果有哪里描述有误,或不准确,欢迎各位网友指正,可以及时讨论并修正. 情态动词术语解释: "MUST", ...

  3. 流媒体专家(3)rtsp内嵌的会话描述协议sdp

    文章目录 一 概述 二 sdp规格 三 各个字段的描述 1. Version(必选) 2.origion(必选) 3.Session Name(必选) 4.Connection Data(可选) 5. ...

  4. SDP: 会话描述协议(Session Description Protocol)

    会话描述协议(SDP)为会话通知.会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述. 会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息.SDP 即用于将这种信息传输到接收 ...

  5. 网络流媒体--SDP会话描述协议(RFC-4566)

    1.SDP协议简介 SDP(Session Description Protocol)是为了描述多媒体会话而设计的,主要用来描述会话通告,会话邀请或者其他形式的多媒体会话初始化.为了初始化多媒体会话, ...

  6. 会话描述协议---SDP协议【详解】

    目录 一.SDP协议简介 二.SDP协议格式 三.会话描述参数 1.Version(必选) 2.origion(必选) 3.Session Name(必选) 4.Connection Data(可选) ...

  7. WebRTC学习笔记五 SDP(Session Description Protocol)

    SDP里面内容虽然很多,但是条理很清楚.SDP值为字符串,通过换行符生成一行一行的SDP报文,所有行可分为三类:全局行.音频行.视频行 v - Version,版本,版本,应等于0 o - Origi ...

  8. sip篇——SDP、RTP、RTCP协议

    sip作为互联网中的一个网络会话协议,管理整个会话过程,自然也支持过程中需要的一些网络传输协议.sip是应用层协议,想要在网络中进行信息传递,就避免不了与网络中各层的协议产生关联,用户代理发送的请求或 ...

  9. 音视频SDP协议详解(描述会话的协议)

    前言 ①SDP协议是会话描述协议(Session Description Protocol)的缩写,是一种会话描述格式,一种描述流媒体初始化参数的格式,为描述多媒体数据而设计. 文末卡片领取音视频免费 ...

最新文章

  1. 微信小程序之wx:if视图层的条件渲染
  2. JavaWeb之过滤器(Filter)
  3. oracle 12c undo,Oracle 12C新特性-临时UNDO段(Temporary Undo Segments) | 信春哥,系统稳,闭眼上线不回滚!...
  4. ios view 切上部分圆角_ios – 具有圆角的UIView:如何正确剪辑子视图?
  5. python数字判断规则_判断Python输入是否为数字、字符(包括正则表达式)-阿里云开发者社区...
  6. poj 3522(最小生成树应用)
  7. FastJSON的依赖
  8. [重磅] 如何更好地实现服务调用和消息推送
  9. 海量个人信息被泄漏 央视首次曝光智能呼叫机器人
  10. mybatis多数据源配置_随笔:springboot+mybatis 配置双数据源
  11. 第一次发现国产剧能这么“好笑”,谢谢您嘞!!
  12. button是块级元素吗_前端面试必知必会的十点,你都知道吗?
  13. Spring Data JPA 概述 与 快速入门(操作 mysql 数据)
  14. 华人AI学者大盘点:清华培养了最多的高层次人才,韩家炜、吴恩达论文被引数“登顶”
  15. python动态爱心代码_python如何动态绘制爱心 python动态绘制爱心代码示例
  16. 安装黑苹果先判断你的电脑硬件是否有驱动支持
  17. eclipse快捷方式打不开解决方法
  18. 清除Mac电脑缓存的方法,非常实用哦
  19. vue run dev报错 缺少package.json文件
  20. 论文中的 w.r.t. 和 i.e. 是什么意思

热门文章

  1. 计算机协会玩游戏策划案,计算机协会的社团策划书
  2. 仿抖音底部菜单响应式html代码十分酷炫
  3. java火车票订票系统 论文_毕业设计(论文)-基于JAVA的火车票售票系统.doc
  4. 基于人脸的常见表情识别——模型搭建、训练与测试¶
  5. 万邦京东获取推荐商品列表 API
  6. 消费互联网、产业互联网、工业互联网、能源互联网的关键区别是什么?智慧城市、智慧园区、智慧交通、智慧水务、智能电网、智慧工厂中都需要的关键技术是什么?
  7. win10激活 错误代码0x80070424
  8. 2014、2015年国家级虚拟仿真实验教学中心入选名单
  9. 培养自己的核心竞争力
  10. 【2023秋招】9月京东校招题目