一.產生的背景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