侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

RTP头简介

2022-07-10 星期日 / 0 评论 / 0 点赞 / 60 阅读 / 5507 字

参考:RFC3550_RTP协议中文版rfc3550RTP包主要由两部分组成,head和payload,head最小12个字节,可扩展。1 相关定义1.1 RTP 包(RTP packet)一种数据包

.


参考:

RFC3550_RTP协议中文版 
rfc3550


RTP包主要由两部分组成,head和payload,head最小12个字节,可扩展。

1 相关定义

1.1 RTP 包(RTP packet)

一种数据包,其组成部分有:一个固定 RTP 报头,一个可能为空的作用源(contributing sources)列表(见下文),以及负载数据。

1.2 RTP 负载(RTP payload)

通过 RTP 传输的包中的数据,例如,音频样本或压缩好的视频数据。

1.3 RTCP 包(RTCP packet)

一种控制包,其组成有两部分:一个类似 RTP 包的固定报头, 一个结构化的部分(该部分具体元素依不同 RTCP 包的类型而定)。

1.4 同步源(×××C,Synchronization source)

RTP 包流的源,用 RTP 报头中 32 位数值的×××C 标识符进行标识, 使其不依赖于网络地址。 一个同步源的所有包构成了相同计时和序列号空间的一部分, 这样接收方就可以把一个同步源的包放在一起, 来进行重放。举些同步源的例子,像来自同一信号源的包流的发送方,如麦克风、摄影机、RTP 混频器(见下文)就是同步源。一个同步源可能随着时间变化而改变其数据格式, 如音频编码。 ×××C 标识符是一个随机选取的值,它在特定的 RTP 会话中是全局唯一(globally unique)的(见章节8)。参与者并不需要在一个多媒体会议的所有 RTP 会话中,使用相同的 ×××C 标识符;×××C 标识符的绑定通过RTCP(见章节 6.5.1)。如果参与者在一个 RTP 会话中生成了多个流,例如来自多个摄影机,则每个摄影机都必须标识成单独的同步源。

1.5 终端系统(End system)

一种应用程序,它产生发送出的 RTP 包中内容,或者使用接收到的 RTP 包中内容。 在一个特定的 RTP 会话中, 一个终端系统可以扮演一个或多个同步源角色,但通常是一个。

1.6 作用源(CSRC,Contributing source )

若一个 RTP 包流的源,对由 RTP 混频器生成的组合流起了作用,则它就是一个作用源。


2 RTP头


前 12 个字节出现在每个 RTP 包中,仅仅在被混合器插入时,才出现 CSRC 识别符列表。这 
些域有以下意义:

  • 版本(V):2 比特 此域定义了 RTP 的版本。此协议定义的版本是 2。(值 1 被 RTP 草案版本 
    使用,值 0 用在最初"vat"语音工具使用的协议中。)


  • 填充(P):1 比特 若填料比特被设置,则此包包含一到多个附加在末端的填充比特,填充比 
    特不算作负载的一部分。 填充的最后一个字节指明可以忽略多少个填充比特。 填充可能用于某些 
    具有固定长度的加密算法,或者用于在底层数据单元中传输多个 RTP 包。


  • 扩展(X):1 比特 若设置扩展比特,固定头(仅)后面跟随一个头扩展。


  • CSRC 计数(CC):4 比特 CSRC 计数包含了跟在固定头后面 CSRC 识别符的数目。


  • 标志(M):1 比特 标志的解释由具体协议规定。它用来允许在比特流中标记重要的事件,如 
    帧边界。


  • 负载类型(PT):7 比特 此域定义了负载的格式,由具体应用决定其解释。协议可以规定负载 
    类型码和负载格式之间一个默认的匹配。 其他的负载类型码可以通过非 RTP 方法动态定义。 RTP 
    发送端在任意给定时间发出一个单独的 RTP 负载类型;此域不用来复用不同的媒体流。


  • 序列号(sequence number):16 比特 每发送一个 RTP 数据包,序列号加 1,接收端可 
    以据此检测丢包和重建包序列。 序列号的初始值是随机的(不可预测),以使即便在源本身不加密 
    时(有时包要通过翻译器,它会这样做),对加密算法泛知的普通文本***也会更加困难。


  • 时间戳(timestamp) 32 比特时间戳反映了 RTP 数据包中第一个字节的采样时间。时 
    钟频率依赖于负载数据格式,并在描述文件(profile)中进行描述。也可以通过 RTP 方法对负 
    载格式动态描述。时间戳可用来实现不同媒体流的同步


  • ×××C:32 比特 用以识别同步源。标识符被随机生成,以使在同一个 RTP 会话期中没有 
    任何两个同步源有相同的 ×××C 识别符。尽管多个源选择同一个 ×××C 识别符的概率很低,所 
    有 RTP 实现工具都必须准备检测和解决冲突。若一个源改变本身的源传输地址,必须选择新的 
    ×××C 识别符,以避免被当作一个环路源。

下面是抓包示例


.

广告 广告

评论区