RTP 简介 RTP 是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP 协议来监视和控制
RTP 定义在RFC 使用RTP 协议的应用程序运行在RTP 之上,而执行RTP 的程序运行在UDP 的上层,目的是为了使用UDP 的端口号和检查和
如图1 所示,RTP 可以看成是传输层的子层
由多媒体应用程序生成的声音和电视数据块被封装在RTP 信息包中,每个RTP 信息包被封装在UDP 消息段中,然后再封装在IP 数据包中
信息包的结构包含广泛用于多媒体的若干个域,包括声音点播(audio-on-demand)、影视点播(video on demand)、因特网电话(Internet telephony)和电视会议(videoconferencing)
RTP 的规格没有对声音和电视的压缩格式制定标准,它可以被用来传输普通格式的文件
例如,WAV 或者 GSM(Global System for Mobile communications)格式的声音、MPEG-1和MPEG-2 的电视,也可以用来传输专有格式存储的声音和电视文件
从应用开发人员的角度来看,可把RTP 执行程序看成是应用程序的一部分,因为开发人员必需把RTP 集成到应用程序中
在发送端,开发人员必需把执行RTP 协议的程序写入到创建 RTP 信息包的应用程序中,然后应用程序把RTP 信息包发送到UDP 的套接接口(socket interface),如图 2 所示;同样,在接收端,RTP 信息包通过 UDP 套接接口输入到应用程序,因此开发人员必需把执行RTP 协议的程序写入到从RTP 信息包中抽出媒体数据的应用程序
现以用RTP 传输声音为例来说明它的工作过程
假设音源的声音是64 kb/s 的PCM 编码声音,并假设应用程序取2