RTP
全称: Real-time Transport Protocol , 实时流传输协议 在RFC中定义为RFC3550/RFC3551
作用:
该协议主要实现实时数据(音视频数据以及非音视频数据)的传输, 它在数据包头中提供编码类型, 包中数据的采样时刻、数据包的序号, 依据这些信息传输双方可以协商编码类型, 可以对数据包进行排序
RTCP
全称: Real-time Transport Control Protocol, 实时传输控制协议
作用:作为RTP协议的姊妹协议, 本身并不负责实际有效(相对)数据的传输, 在webrtc中数据来源在webrtc的统计模块, 对丢包率, 往返时延, 网络预测等相关数据进行计算统计, 以保证 RTP 数据传输的服务质量, 为RTP提供服务质量反馈. 该部分数据周期性的发送到rtc对端, 数据封装在webrtc中是与RTP数据封装在一起, 但并不是每一包RTP封装数据中都有RTCP数据, 周期性间隔着插入数据
SRTP & SRTCP数据流协议
SRTP英文全称为 Secure Real-time Transport Protocol 安全实时传输协议, 该协议是在实时传输协议RTP基础上定义的一个协议, 旨在为RTP数据提供加密、消息认证、完整性保证和重放保护. 可以参考文档RFC3711.
RTCP同样也有一个伴生协议, 它被称为安全实时传输控制协议Secure RTCP或SRTCP. 在使用实时传输协议或实时传输控制协议时, 是应用安全传输协议还是明文传输在数据传输过程中是可以选择的
RTSP
全称: Real Time Streaming Protocol 实时串流协议
作用:
它是用来控制流数据串的协议. 该协议定义了一对多应用程序如何有效地通过IP网络传送流数据. RTSP提供了一个可扩展框架, 使实时数据, 如音视频的受控、点播成为可能. 一般通过SDP数据作为格式, 对媒体流进行控制操作
RTMP
全称: Real Time Messaging Protocol (实时消息传输协议)
描述: 该协议基于TCP, 是一个协议族, 包括 RTMP 基本协议及 RTMPT/RTMPS/RTMPE 等多种变种. RTMP 是一种设计用来进行实时数据通信的网络协议, 主要用来在 Flash/AIR 平台和支持 RTMP 协议的流媒体/交互服务器之间进行音视频和数据通信
RTMP协议既可以传输AMF格式数据,也可以传输FLV格式数据。
RTMP协议有三个分支, 第一种是工作在TCP协议上的明文传输, 它使用的端口是1935; 第二种是 RTMPT, RTMPT 被封装在HTTP请求之中, 可以穿越防火墙进行传输; 第三种是RTMPS, 它也是封装在HTTP之中, 不过与RTMPT不同的是, 它使用HTTPS安全连接, 可以保证传输的安全
HLS
全称: HTTP Live Streaming在线流传输协议
该协议是由美国苹果公司实现的基于HTTP的流数据传输协议, 可以实现流媒体的直播和点播。该协议主要为iOS系统服务
HLS实际上并不是真正的实时流协议, HLS协议在服务器端将数据流存储为连续的、短时长的 MPEG-TS 格式文件, 客户端不断下载并解析播放这些小文件从而实现实时流效果. 可以认为, HLS是以点播流技术方式来实现实时流的协议. 这样的缺点是延时高