一、常见的流媒体协议
关于流媒体传输协议,涉及到不同领域,不同业务场景,种类众多,下面一张图是目前常见的流媒体协议。
常见的流媒体传输协议
1)从交互方式来看,流媒体分为点播(VOD)和直播(LIVE)
直播(LIVE):HLS,RTMP,http+MP4,http+flv,RTP+RTSP
点播(VOD):http+MP4,http+flv,HLS,DASH.
2)从业务场景来看,总结一下常见的应用方案
直播:RTMP,HLS,http+flv
音视频通话:webrtc(RTP),SIP+RTP
视频点播:http+MP4,http+flv,hls
IPTV:RTSP(信令)+RTP(媒体)
会议电视:RTP(媒体)+SIP(信令),H323(信令)+RTP(媒体)
视频监控:国标SIP(信令)+RTP(媒体),RTSP(媒体)+RTP(媒体)
VOIP:SIP(信令)+RTP(媒体)
3)从传输层方式分为:tcp传输,UDP传输
基于http 类传输协议和rtmp协议底层是tcp传输的,RTP协议和RTCP协议是基于UDP承载的。RTSP通常做信令,用TCP来承载。
二、关于TCP和UDP承载的区别
1)TCP传输的特点:面向连接,保序,可靠;
TCP的协议栈完成了拥塞控制,流量控制,乱序重排,丢包重传等工作。保证数据是有序可靠的。适合对数据完整性要求高的场景:如文件下载,网页浏览,信令传输。
2)UDP传输特点:面向无连接,不保序,不可靠连接
UDP协议不是面向连接的,只是简单向对方发送数据,哪怕对方不存在。正因为协议简单,所以传输效率高,实时高,延迟低。适合对数据完整性要求不高,但实时性高的场景。如音视频传输,游戏等。
3)关于组播与广播,单播
TCP是一个面向连接的协议,TCP一定是点对点的,一定是两个主机来建立连接的,TCP肯定是单播。只有UDP才会使用广播和组播。 有时一个主机要向网上的所有其它主机发送帧,这就是广播,广播分为二层广播(目的MAC全F)和三层广播(IP地址的主机位全1),二层广播是不能跨路由器的,三层广播是可以跨路由器路由的。 多播(组播)属于单播和广播之间,帧仅传送给属于多播组的多个主机。在广播电视领域为了减少服务器压力,通常使用组播跟用户推流。如IPTV,通常机顶盒通过光猫加入某个组播地址,接收某个CDN的组播流。
三、总结
从流媒体的业务特征和TCP,UDP各种特点,UDP在媒体传输方面具有很大优越性,后面将针对TCP和UDP媒体协议选型进一步展开。