RTP:实时应用传输协议详解

需积分: 1 0 下载量 143 浏览量 更新于2024-06-22 收藏 505KB PDF 举报
"RFC-3550是一个关于实时应用传输协议(RTP)的技术文档,由互联网工程任务组(IETF)发布,旨在定义一个适用于互联网社区的标准协议,并鼓励讨论和改进建议。该文档由H.Schulzrinne、S.Casner、R.Frederick和V.Jacobson等人撰写,取代了旧版RFC-1889。RTP主要用于在多播或单播网络服务中传输实时数据,如音频、视频或模拟数据,但不处理资源预留和质量保证问题。" RTP(Real-Time Transport Protocol)是互联网上广泛使用的协议,它为实时数据传输提供了一种端到端的网络传输服务。RTP的设计目标是为了支持实时应用,这些应用通常需要低延迟和高可靠性,例如VoIP(Voice over IP)、在线视频会议和流媒体服务。RTP本身并不负责确保服务质量(QoS),这意味着它不会保证特定的数据传输速率或优先级,而是依赖于下层网络协议来处理这些问题。 RTP协议的核心组成部分包括两部分:数据包传输和控制协议。数据包传输部分处理实际的数据流,而控制协议(通常是指RTP控制协议RTCP,Real-Time Control Protocol)用于监测和控制数据传输的质量,包括同步、错误检测和报告、以及参与者统计信息的交换。 RTP数据包结构包含了一个固定头部和可选的扩展头部,以及负载数据。头部包含了时间戳、序列号、源标识符等信息,这些信息对于接收端正确排序和同步数据流至关重要。时间戳尤其关键,因为它允许接收端根据发送时的时间戳恢复原始数据的时序,这对于音频和视频的播放非常重要。 RTCP则与RTP协同工作,定期发送控制包,以收集关于会话质量的反馈,例如丢包率、网络延迟和Jitter(抖动)。这些信息可以帮助网络管理员或应用程序动态调整传输参数,以适应网络条件的变化。 RTP的灵活性使其能够适应各种网络环境,无论是IP多播,还是单播模式。多播模式下,RTP能够有效地将同一数据流广播给多个接收者,而在单播模式下,RTP可以实现一对一的数据传输。 总结来说,RFC-3550定义的RTP是一个基础且关键的协议,它是许多实时通信服务背后的支柱。通过与RTCP的配合,RTP提供了必要的工具,使得实时数据能够在不可预测的网络环境中尽可能顺畅地传输。然而,它并不处理网络拥塞控制和QoS保证,这些通常是通过其他网络协议(如DiffServ或Integrated Services)来实现的。
2011-11-04 上传
目录(Table of Contents) 1. 引言 (Introduction) 1 1 术语(Terminology) 2 RTP使用场景(RTP Use Scenarios) 2 1 简单多播音频会议( Simple Multicast Audio Conference) 2 2 音频和视频会议(Audio and Video Conference) 2 3 混频器和转换器(Mixers and Translators) 2 4 分层编码(Layered Encodings) 3 定义(Definitions) 4 字节序,校正和时间格式(Byte Order, Alignment, and Time Format) 5 RTP数据传输协议(RTP Data Transfer Protocol) 5 1 RTP固定头域(RTP Fixed Header Fields) 5 2 多路复用RTP会话(Multiplexing RTP Sessions) 5 3 RTP头的配置文件详细变更(Profile-Specific Modifications to the RTP Header) 5 3 1 RTP报头扩展(RTP Header Extension) 6 RTP控制协议(RTP Control Protocol) -- RTCP 6 1 RTCP包格式(RTCP Packet Format) 6 2 RTCP传输间隔(RTCP Transmission Interval) 6 2 1 维护会话成员数目(Maintaining the number of session members) 6 3 RTCP包的发送与接收规则(RTCP Packet Send and Receive Rules) 6 3 1 计算RTCP传输间隔(Computing the RTCP Transmission Interval) 6 3 2 初始化(Initialization) 6 3 3 接收RTP或RTCP(非BYE)包(Receiving an RTP or Non-BYE RTCP Packet) 6 3 4 接收RTCP(BYE)包(Receiving an RTCP BYE Packet) 6 3 5 SSRC计时失效(Timing Out an SSRC) 6 3 6 关于传输计时器的到期(Expiration of Transmission Timer) 6 3 7 传输一个 BYE 包(Transmitting a BYE Packet) 6 3 8 更新we_sent(Updating we_sent) 6 3 9 分配源描述带宽(Allocation of Source Description Bandwidth) 6 4 发送方和接收方报告(Sender and Receiver Reports) 6 4 1 SR:发送方报告的RTCP包(SR: Sender report RTCP packet) 6 4 2 RR:接收方报告的RTCP包(RR: Receiver Report RTCP Packet) 6 4 3 扩展发送方和接收方报告(Extending the Sender and Receiver Reports ) 6 4 4 分析发送方和接收方报告(Analyzing Sender and Receiver Reports ) 6 5 SDES:源描述RTCP包(SDES: Source description RTCP packet) 6 5 1 CNAME:规范终端标识符的SDES数据项(CNAME: Canonical End-Point Identifier SDES Item) 6 5 2 NAME:用户名的SDES数据项(NAME: User name SDES item) 6 5 3 EMAIL:电子邮件地址的SDES数据项(EMAIL: Electronic Mail Address SDES Item) 6 5 4 PHONE:电话号码的SDES数据项(PHONE: Phone Number SDES Item) 6 5 5 LOC:地理用户地址的SDES数据项(LOC: Geographic User Location SDES Item) 6 5 6 TOOL:应用程序或工具名字的SDES数据项(TOOL: Application or Tool Name SDES Item) 6 5 7 NOTE:通知/状态的SDES数据项(NOTE: Notice/Status SDES Item) 6 5 8 PRIV:私有扩展的SDES数据项(PRIV: Private Extensions SDES Item) 6 6 BYE:Goodbye RTCP包(BYE: Goodbye RTCP packet) 6 7 APP:定义应用程序的RTCP包(APP: Application-Defined RTCP Packet) 7 RTP转换器和混频器(RTP Translators and Mixers) 7 1 概述(General Description ) 7 2 在转换器中的RTCP数据处理(RTCP Processing in Translators) 7 3 在混频器中的RTCP数据处理(RTCP Processing in Mixers ) 7 4 级联混频器(Cascaded Mixers) 8 SSRC标识符的分配和使用(SSRC Identifier Allocation and Use) 8 1 冲突概率(Probability of Collision ) 8 2 冲突解决和循环检测(Collision Resolution and Loop Detection) 8 3 在分层编码中使用(Use with Layered Encodings) 9 安全(Security ) 9 1 机密性(Confidentiality) 9 2 身份验证和消息完整性(Authentication and Message Integrity) 10 拥塞控制(Congestion Control) 11 网络和传输协议之上的RTP(RTP over Network and Transport Protocols) 12 协议常量摘要(Summary of Protocol Constants) 12 1 RTCP 包类型(RTCP Packet Types) 12 2 SDES 类型(SDES Types) 13 RTP概况和负载格式详细说明     (RTP Profiles and Payload Format Specifications) 14 安全考虑(Security Considerations) 15 IANA考虑(IANA Considerations) 16 知识产权声明(Intellectual Property Rights Statement) 17 鸣谢(Acknowledgments) 附录 A 算法(Algorithms) 附录 A 1 RTP数据头有效性检查(RTP Data Header Validity Checks ) 附录 A 2 RTCP数据头有效性检查(RTCP Header Validity Checks) 附录 A 3 确定RTP包预期数目和丢失数目(Determining Number of Packets Expected and Lost) 附录 A 4 生成SDES RTCP包(Generating RTCP SDES Packets) 附录 A 5 解析RTCP SDES包(Parsing RTCP SDES Packets) 附录 A 6 生成32位随机标识符(Generating a Random 32-bit Identifier 附录 A 7 计算RTCP传输间隔(Computing the RTCP Transmission Interval) 附录 A 8 估测两次到达间隔的抖动(Estimating the Interarrival Jitter) 附录 B 与RFC1889不同之外(Changes from RFC 1889) 参考书目(References) 标准化引用(Normative References ) 资料性引用(Informative References) 作者地址 完整的版权声明