论文部分内容阅读
传统的基于RTP/RTSP的流媒体传输技术由于无法穿透防火墙和NAT,且需要专门对服务器进行配置,因此它的应用受到较大的限制。基于HTTP的动态自适应流(Dynamic Adaptive Streaming over HTTP, DASH)能够根据当前网络状况,动态调整用户请求的视频码率,提升网络的利用率,因此,这项技术引起商业界和学术界的广泛关注。随着业务规模的扩大,DASH的服务模式也开始从单服务器向多服务器转变,多服务器下客户端能够同时从多个服务器下载视频分片。与单服务器相比,多服务器能够提供更高的带宽、多样化的链路和更高的可靠性。多服务器场景下,由于用户请求的高度动态性及多服务器传输带宽的差异性,使得用户获取的视频质量波动较频繁,无法保证客户端视频质量的稳定性,影响到客户端用户体验质量(quality of experience,QoE)。现有的解决方案主要是针对客户端自适应算法进行改进,其调度过程是以分片为最小单位来完成码率自适应过程,往往难以在视频播放质量的稳定性方面取得很好的效果。因此,本文针对多服务器场景下DASH客户端质量波动问题进行研究,提出了一种基于软件定义网络(Software Defined Network, SDN)的DASH多服务器视频传输框架,主要完成了以下工作:1)构建了一个多服务器场景下,基于SDN的DASH系统服务模型。通过使用openflow控制器收集各服务器可用带宽,web代理服务器接收客户端请求并执行分片调度算法为客户端合理分配服务请求策略。2)提出了以视频块(包含多个视频分片)为粒度的视频分片调度算法,通过将多个分片组成一个视频块,将这多个分片使用一种分配策略分配至多个服务器,实现了同一视频块内视频分片的码率同步,并使得分片有序下载。3)客户端采用Q学习算法,将带宽、客户端缓冲区和视频码率作为环境状态,并构建了一个QoE相关的回报函数,通过训练学习,最终生成了用于码率决策的Q矩阵,用于客户端码率的决策依据。最后,本文通过实验对整个系统的有效性进行验证,结果表明,本文策略能够根据服务带宽保证视频分片有序下载,减少了视频质量波动频率,增加了客户端播放的稳定性,提高了客户端视频质量。