1.RTP协议应用方案之单播
在客户端与媒体服务器之间建立一个单独的数据通道,从一台服务器送出的每个数据包只能传送给一个客户端,这种传送方式称为单播。
优点:便于控制和管理;
缺点:每个用户必须分别对媒体服务器发送单独的查询,而媒体服务器必须向每个用户发送所申请的数据包拷贝。这种巨大冗余造成服务器负担沉重,响应需要很长时间.
2.RTP协议应用方案之广播
广播指的是用户被动地接收流。在广播过程中,数据包的单独一个拷贝将发送给网络上的所有用户,客户端接收流,但不能控制流; 广播方式中资料包的单独一个拷贝将发送给网络上的所有用户, 而不管用户是否需要,会非常浪费网络带宽。
优点:简单
缺点:浪费网络带宽
3.RTP协议应用方案之组播
组播技术构建的网络,允许路由器一次将数据包复制到多个通道上。采用组播方式,媒体服务器只需要发送一个信息包,所有发出请求的客户端即可同时收到连续数据流而无延时。这就大大减少了网络上传输的信息包的总量, 组播吸收了单播和广播两种发送方式的长处,克服了上述两种发送方式的弱点,将资料包的单独一个拷贝发送给需要的那些客户。组播不会复制资料包的多个拷贝传输到网络上,也不会将资料包发送给不需要它的那些客户,保证了网络上多媒体应用占用网络的最小带宽。
优点:减少网络上传输的信息包的总量。网络利用效率大大提高,成本大为下降;
缺点:当不同的用户同时点播同一个节目时,由于点播总有先后顺序,后点播的用户并不是从开始播放,而是依照网络中同时点播此节目的其它用户的播放进度,这就造成当前用户极有可能从节目的中间开始看起,很难做到个性化。
下面我们就组播方案进行详细的分析:
4.3.1 RTP协议组播方案总体概述
组播方案中包括由服务器端、客户端和组播网络载体三部分组成,由于组播网络对于客户端和服务器来说可以是屏蔽的,因此本文仅对服务器和客户端做详细描述,组播整体方案示意图如下图1-3所示:
图1-3 组播整体方案示意图
如图1-3所示:
RTPSender 为服务器端;
RTPReceiver 为客户端;
Multicast 为组播网络;
流数据包由RTPSender发送,经过Multicast网络,到达RTPReceiver客户端;
4.3.2 RTP协议组播方案服务器端实现
服务器端的算法为:
1、打开设备,分配资源。当设备准备好时,创建一个RTP实时服务线程和一个RTCP实时服务线程,端口的选择是RTP数据在偶数UDP端口传输,RTCP包在下一个高奇数端口传输;
2、创建一个UDP套接字并将其绑定到所提供服务的地址之上。
3、反复调用接收模块,接收来自客户的RTCP报告,根据其类型做出响应。
服务器端将音视频流封装成RTP数据包通过组播网络发送,如图1-4:
图1-4服务器发送示意图
4.3. 3RTP协议组播方案客户端实现
客户端加入组播群组后,就可以接收音视频流,如图1-5所示:
如图1-5 客户端接收示意图