`
ericbaner
  • 浏览: 177060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RTP协议

阅读更多

RTP 协议
RTP
协议
实时传输协议 RTP 提供了实时信息的端对端传输业务 , 如交互的语音和图象 ; 这些业务包括负载类型识别 , 序列编号 , 加入时间标志 , 传输监视 . 典型的应用是在 UDP 层上传输 RTP , 以利用它的复用和总和检测业务 .
RTP
包括两个紧密相关的部分 :
-
实时传输协议 (RTP), 传输有实时特性的信息 ;
- RTP
控制协议 (RTCP), 监视业务质量和传输对话中成员的信息 .
RTP
包头
RTP
头有以下格式 :
0 1 2 3
0 1 23 4 5 6 7 89 0 1 2 3 45 6 7 8 90 1 2 34 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC |M| PT |
序列号 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
时间标志 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
同步源 (SSRC) 识别符 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
有贡献源 (CSRC) 识别符 |
| ... ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 负载类型 ; 此域不用来复用不同的媒体流 .
序列号 :16 比特 每发送一个 RTP 数据包 , 序列号加一 , 接收机可以据此检测包损和重建包序列 . 序列号的初始值是随机的 ( 不可预测 ), 以使即便在源本身不加密时 ( 有时包要通过翻译器 , 它会这样做 ), 对加密算法泛知的普通文本攻击也会更加困难 .
时间标志 :32 比特 时间标志反映了 RTP 数据包中第一个比特的抽样瞬间 . 抽样瞬间必须由随时间单调和线形增长的时钟得到 , 以进行同步和抖动计算 . 时钟的分辨率必须满足要求的同步准确度 , 足以进行包到达抖动测量 . 时钟频率与作为负载传输的数据格式独立 , 在协议中或定义此格式的负载类型说明中静态定义 , 也可以在通过非 RTP 方法定义的负载格式中动态说明 . RTP 包周期性生成 , 可以使用由抽样时钟确定的额定抽样瞬间 , 而不是读系统时钟 . 例如 , 对于固定速率语音 , 时间标志钟可以每个抽样周期加 1. 若语音设备从输入设备读取覆盖 160 个抽样周期的数据块 , 对于每个这样的数据块 , 时间标志增加 160, 无论此块被发送还是被静音压缩 .
时间标志的起始值是随机的 , 如同序列号 . 多个连续的 RTP 包可能由同样的时间标志 , 若他们在逻辑上同时产生 . 如属于同一个图象帧 . 若数据没有按照抽样的
顺序发送 , 连续的 RTP 包可以包含不单调的时间标志 , MPEG 交织图象帧 .
SSRC:32
比特 SSRC 域用以识别同步源 . 标识符被随机生成 , 以使在同一个 RTP 会话期中没有任何两个同步源有相同的 SSRC 识别符 . 尽管多个源选择同一个 SSRC 识别符的概率很低 , 所有 RTP 实现工具都必须准备检测和解决冲突 . 若一个源改变本身的源传输地址 , 必须选择新的 SSRC 识别符 , 以避免被当作一个环路源 .
CSRC
列表 :0 15 , 每项 32 比特 CSRC 列表识别在此包中负载的有贡献源 . 识别符的数目在 CC 域中给定 . 若有贡献源多于 15 , 仅识别 15 .CSRC 识别符由混合器插入 , 用有贡献源的 SSRC 识别符 . 例如语音包 , 混合产生新包的所有源的 SSRC 标识符都被陈列 , 以期在接收机处正确指示交谈者 .
RTP
头扩展
RTP
提供扩展机制以允许实现个性化 : 某些新的与负载格式独立的功能要求的附加信息在 RTP 数据数据包头中传输 . 设计此方法可以使其它没有扩展的交互运行忽略此头扩展 .RTP 头扩展的格式如下图所示 .
0 1 2 3
0 1 2 34 5 6 78 9 0 1 2 3 4 56 7 8 90 1 23 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
由协议定义 | 长度 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
头扩展 |
| ... ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
RTP 头中的扩展比特位置 1, 则一个长度可变的头扩展部分被加到 RTP 固定头之后 ,. 头扩展包含 16 比特的长度域 , 指示扩展项中 32 比特字的个数 , 不包括 4 个字节扩展头 ( 因此零是有效值 ).RTP 固定头之后只允许有一个头扩展 . 为允许多个互操作实现独立生成不同的头扩展 , 或某种特定实现有多种不同的头扩展 , 扩展项的前 16 比特用以识别标识符或参数 . 16 比特的格式由具体实现的上层协议定义 . 基本的 RTP 说明并不定义任何头扩展本身 .


分享到:
评论

相关推荐

    基于RTP协议的远程视频监控系统中数据传输的实现.pdf

    ### 基于RTP协议的远程视频监控系统中数据传输的实现 #### 一、引言 随着信息技术的发展,远程视频监控系统已成为现代社会中不可或缺的一部分。这些系统不仅用于安全监控,还在教育、医疗、交通等多个领域发挥着...

    rtp协议客户端实现 java

    在Java环境中实现RTP协议客户端,需要理解RTP协议的基本原理,掌握网络编程和多媒体处理的相关知识。下面将详细阐述RTP协议以及如何用Java实现一个RTP客户端,实现视频播放。 一、RTP协议概述 1. RTP协议的结构:...

    基于RTP协议的实时语音传输性能优化研究

    ### 基于RTP协议的实时语音传输性能优化研究 #### 一、RTP协议构成及性能分析 RTP(Real-Time Transport Protocol)是一种专为互联网上的多媒体数据流设计的传输协议,其核心功能在于提供时间信息和基础的错误校正...

    基于rtp协议的程序实例(vs2008)

    在本实例中,我们探讨的是如何在Visual Studio 2008环境下开发一个基于RTP协议的程序。让我们深入了解一下RTP协议以及如何在VS2008中实现它。 RTP协议主要由IETF定义,在RFC 3550文档中进行了详述。它的设计目标是...

    使用RTP协议发送H264数据包

    本文将深入探讨如何使用RTP协议发送H264数据包,并结合VLC播放器进行解码播放。 首先,RTP(Real-time Transport Protocol)是一种应用层协议,设计目的是为了支持实时数据传输,如音视频流媒体。RTP通常与RTCP...

    rtp协议中文版.pdf

    ### RTP协议中文版知识点概述 #### 1. 引言 - **RTP协议简介**:RTP(Real-Time Transport Protocol)是一种旨在提供端到端的网络传输功能的协议,适用于传输实时数据如音频、视频等。它并不保证服务质量(QoS),...

    最新的rtp协议(包含C原始代码和java原始代码)

    RTP协议的核心特性包括: 1. **时间戳**:每个RTP数据包都包含一个时间戳,用于指示数据包中的媒体数据的采样时间,有助于接收端正确地同步和播放数据。 2. **序列号**:序列号用于标识数据包的顺序,以便在乱序或...

    rtsp rtp协议文档

    很好学习rtsp、rtp协议以及其状态机的PPT文档

    一个rtp 协议打报接报的DEMO

    这个DEMO是用C语言编写的,用于演示RTP协议的基本操作,包括发送和接收报文。 RTP协议的核心概念: 1. **报文结构**:RTP报文由固定头部和可选的扩展头部以及负载数据组成。头部包含序列号、时间戳、同步源标识符...

    基于RTP协议的实时视频监控系统的实现[1]

    ### 基于RTP协议的实时视频监控系统的实现 #### 一、引言 随着数字化时代的来临,视频监控技术正朝着更为智能化、网络化的方向发展。基于此背景,研究和开发一种高效的实时视频监控系统变得尤为重要。本文介绍了一...

    RTP.rar_RTP 中文_rtp_rtp 协议_rtp协议

    在RTP协议分析中文文档中,我们可以深入理解RTP协议的核心概念和工作原理。RTP的设计目标是为了提供一种灵活且高效的方式,以支持多种类型的数据格式,并能在不可靠的网络环境下保证服务质量。它并不负责建立或维护...

    rfc3550 rtp协议中文版

    RTP 协议中文版 RTP(Real-time Transport Protocol)是一种实时传输协议,用于在 IP 网络上传输实时数据,如音频、视频或仿真数据。RTP 协议提供了端对端的网络传输功能,适合应用程序传输实时数据。RTP 协议没有...

    RTP协议分析

    RTP协议由IETF(Internet Engineering Task Force)在RFC 3550中定义,旨在为IP网络上的实时数据流提供一种高效、可靠的传输机制。RTP设计的目标是能够适应不同网络环境,支持多种媒体类型,并且允许快速错误恢复,...

    RTP协议中文版

    RTP协议,中文版,方便大家熟悉RTP协议

    RTP协议详解

    ### RTP协议详解 #### 一、RTP协议背景 随着互联网技术的发展,流媒体(Streaming)作为一种新兴技术逐渐成为互联网应用的重要组成部分。流媒体技术主要指的是通过网络传输多媒体数据的技术,包括音频、视频等多媒体...

Global site tag (gtag.js) - Google Analytics