跳到主要内容

4. 要求和建议 (Requirements and Recommendations)

SDP的目的是传达多媒体会话中媒体流的信息,以允许会话描述的接收者参与会话.SDP主要用于互联网络,尽管它足够通用,可以描述其他网络环境中的会议.媒体流可以是多对多的.会话不需要持续活跃.

到目前为止,基于互联网的多播会话与许多其他形式的会议不同之处在于,任何接收流量的人都可以加入会话(除非会话流量被加密).在这样的环境中,SDP有两个主要目的.它是传达会话存在的一种方式,也是传达足够信息以启用加入和参与会话的一种方式.在单播环境中,只有后一个目的可能相关.

SDP会话描述包括以下内容:

  • 会话名称和目的
  • 会话活跃的时间
  • 组成会话的媒体
  • 接收这些媒体所需的信息 (地址, 端口, 格式等)

由于参与会话所需的资源可能有限,一些附加信息也可能是需要的:

  • 关于会话使用的带宽的信息
  • 负责会话的人的联系信息

一般来说,SDP必须传达足够的信息以使应用程序能够加入会话(加密密钥可能是例外),并向可能需要知道的任何非参与者通告将要使用的资源.(后一个特性主要在SDP与多播会话通告协议一起使用时有用.)

4.1 媒体和传输信息 (Media and Transport Information)

SDP会话描述包括以下媒体信息:

  • 媒体类型 (视频, 音频等)
  • 传输协议(RTP/UDP/IP, H.320等)
  • 媒体格式 (H.261 视频, MPEG 视频等)

除了媒体格式和传输协议之外,SDP还传达地址和端口详情.对于IP多播会话,这些包括:

  • 媒体的多播组地址
  • 媒体的传输端口

这个地址和端口是多播流的目标地址和目标端口, 无论是发送, 接收还是两者兼有.

对于单播IP会话,传达以下内容:

  • 媒体的远程地址
  • 媒体的远程传输端口

这个地址和端口的语义取决于定义的媒体和传输协议. 默认情况下, 这应该是发送数据的远程地址和远程端口. 某些媒体类型可能会重新定义此行为, 但这不推荐, 因为它会使实现复杂化 (包括必须解析地址以打开网络地址转换 (NAT) 或防火墙针孔的中间设备).

4.2 时间信息 (Timing Information)

会话在时间上可以是有界的或无界的.无论它们是否有界,它们可能仅在特定时间活跃.SDP可以传达:

  • 限定会话的任意开始和停止时间列表
  • 对于每个界限,重复时间,例如"每周三上午10点持续一小时"

这些时间信息是全局一致的,与本地时区或夏令时无关(参见第5.9节).

4.3 私有会话 (Private Sessions)

可以创建公共会话和私有会话.SDP本身不区分这些;私有会话通常通过在分发期间加密会话描述来传达.如何执行加密的详情取决于用于传达SDP的机制;目前为使用SAP [14] 和 SIP [15] 传输的SDP定义了机制,将来可能会定义其他机制.

如果会话通告是私有的,则可以使用该私有通告来传达解码会议中每个媒体所需的加密密钥,包括足够的信息以了解每个媒体使用哪种加密方案.

4.4 获取关于会话的更多信息 (Obtaining Further Information about a Session)

会话描述应该传达足够的信息以决定是否参与会话.SDP可能以统一资源标识符 (Uniform Resource Identifiers, URIs) 的形式包含关于会话的更多信息的附加指针.

4.5 分类 (Categorisation)

当SAP或任何其他通告机制正在分发许多会话描述时,可能需要从那些不感兴趣的会话通告中过滤感兴趣的会话通告.SDP支持能够自动化的会话分类机制("a=cat:" 属性;参见第6节).

4.6 国际化 (Internationalisation)

SDP规范建议使用UTF-8编码 [5] 中的ISO 10646字符集,以允许表示许多不同的语言.然而,为了协助紧凑表示,SDP还允许在需要时使用其他字符集,如ISO 8859-1.国际化仅适用于自由文本字段(会话名称和背景信息),而不适用于整个SDP.