一.产生的背景java
随着互连网的发展,人们已经不知足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通讯方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大并且对交互性和实时性要求很高。git
这时,基于HTTP的TCP协议没法达到要求,故产生RTP协议来进行多媒体数据实时传输.github
RTP/RTCP,RTSP图例编码
协议关系图.net
二.RTP/RTCP/RTSP协议与TCP/IP协议对比code
那么,如今有个疑问是:为何TCP/IP协议就不能知足多媒体通讯的要求呢?视频
这是由于TCP有如下4个特色:blog
1.TCP重传机制排序
2.TCP拥塞控制机制ip
3.TCP报文头比UDP报文头要大
4.TCP的启动速度慢
RTP由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工做组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据这些信息发送和接受方能够协商编码类型,能够对接收到的数据包进行排序等工做;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究代表,RTP/RTCP所提出的实时数据的传输机制是行之有效的。
对比记忆
IP:数据传输
RTP:多媒体数据实时传输
TCP:保证数据传输可靠
RTCP:保证多媒体数据传输的可靠
三.RTP/RTCP,RTSP协议说明
RTP:
Realtime Transport Potocol 实时传输协议
RTCP:
Realtime Transport Control Potocol 实时传输控制协议
RTSP:
RealTime Streaming Potocol 实时流协议
代码实现:
开源库:
https://sourceforge.net/p/jlibrtp/code/HEAD/tree/jlibrtp/demo/org/jlibrtp/demo/SoundSenderDemo.java
githubdemo:https://github.com/loulei/RtpDemo_jlibrtp
csdndemo:http://blog.csdn.net/ericfantastic/article/details/49361069