本发明属于视频组播技术,具体涉及一种sdn环境下基于qos智能感知的可伸缩视频流组播方法。
背景技术
过去几十年来,视频会议,在线视频游戏,高清ip电视等多媒体流应用在互联网上越来越流行,网络流量呈指数级增长。同时,由于移动网络的兴起,视频流的客户端越来越异构,即不同的客户端可以具有不同的设备容量,接入带宽以及网络质量服务(qualityofservice)要求。另外,在实时视频流的应用场景当中,传统ip网络里的视频服务器通过多个单播连接将相同的视频流传输到多个客户端。然而,这种方案会产生冗余流量并浪费相当数量的网络带宽,因此,使用组播技术可以有效地减少网络流量并降低服务器的负担。
可伸缩视频编码(scalablevideocoding)是视频编码标准h.264/avc的扩展部分。svc通过分层视频编码器将视频压缩成多个不重叠的编码层,其中一个基础层以低质量级别重构原始视频,多个增强层逐渐改善重建视频的质量。流媒体客户端接收的增强层越多,视频的保真率就越高。同时,svc提供时间、空间以及质量可分级,从而使得多媒体流服务能够支持具有不同显示分辨率的异构设备,并且能够根据网络通信质量实现实时比特率调节。
尽管可伸缩视频编码具有灵活的可分级特性,在传统ip网络中并未得到广泛的应用。其中主要的原因是传统ip网络中的转发设备,如路由器和交换机,对业务层的应用透明,因此难以实现为不同的数据流提供不同的网络质量服务;另外,传统ip网络中的转发设备缺乏全局网络拓扑视图,因此难以实现路由决策、部署以及调整优化。
软件定义网络(software-definenetworking)是一种新兴的体系架构(如图1所示)。该架构解耦了网络的控制平面和转发平面,控制平面负责生成转发策略并给应用层提供开发的接口,数据平面负责数据包的转发,使网络控制具备可直接编程的特性,从而实现对网络中不同流量的差异化服务。同时,位于控制平面的操作系统通过与底层转发设备实时交互,收集网络信息,为业务层的应用程序提供抽象的全局网络拓扑,从而更加合理地分配和调度网络中的资源,以及进行路由决策和部署的优化。
目前,在调研到的sdn环境下针对视频流的路径传输方案中,大多数仅仅考虑在链路带宽的限制条件下设计端到端的路由算法,而没有考虑到用户的网络质量服务体验。然而,视频流应用,尤其是实时视频流应用,通常对视频流的传输有严格的端到端的时延限制,从而保证用户的网络质量服务体验。
因此,如何在sdn网络架构下利用全局网络拓扑视图为可伸缩视频流优化组播路由,进而保障用户的网络质量服务体验,成为当下研究需要解决的问题。
技术实现要素:
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种sdn环境下基于qos智能感知的可伸缩视频流组播方法。
技术方案:本发明的一种sdn环境下基于qos智能感知的可伸缩视频流组播方法,依次包括以下步骤:
(1)基础层组播树构建阶段:视频被编码成n层,包括一个基础层和n-1个增强层,sdn控制器收到视频请求,先将其分解成多个子请求,然后对基础层中的每个子请求,从相应的客户端到视频服务器寻找符合网络质量服务要求的路径,最后构建基础层组播树,即第一层组播树;
(2)组播树修剪阶段:自底向上依次构建第2至第n层增强层组播树;其中,在构建每一层增强层组播树时,首先通过剪枝操作从上一层组播树获取当前增强层组播树,然后对于拥塞链路依次重新路由。
进一步的,所述步骤(1)的具体过程为:
(1.1)视频服务器server采用可伸缩视频编码技术将视频编码成n层,包括一个基础层和n-1个增强层,每一层的比特率均为bi;
(1.2)内嵌于sdn控制器的组播会话管理模块接收视频会话请求,每个请求表示成γk(dk,lk),其中,dk表示客户端,lk表示dk请求的最高层可伸缩视频流;所有视频会话请求构成集合γ={γ1,γ2,…,γn},k∈[1,n];
(1.3)上述组播会话管理模块将视频会话请求集合分解成若干个子集,即:
(1.4)内嵌于sdn控制器的组播路由模块根据组播会话管理模块得到的子请求集合γ1来构建基础层组播树,其中第一层视频流即基础层视频流。
进一步的,所述的步骤(1.4)中基础层组播树构建具体过程为:
(1.4.1)对于集合γ1中的每一个子请求γk,1,首先使用修改的迪杰斯特拉算法从客户端dk到视频服务器server构建一条最大流路径
(1.4.2)如果上述最大流路径的时延超过系统设定的时延上限dmax(为保证用户网络质量服务体验,通常设置为200-300ms),则从客户端dk到视频服务器server重新构建一条最短时延路径
(1.4.3)将该路径
(1.4.4)处理完集合γ1中的所有子请求以后,通过连接集合p中的所有路径得到基础层组播树t1。
进一步的,所述步骤(2)中构建第i层组播树的具体过程如下:
(2.1)在构建第i层增强层组播树时,首先通过剪枝操作从上一层组播树ti-1得到当前初始的第i层组播树
(2.2)将
其中,b(u,v)表示链路e(u,v)的带宽容量;
(2.3)对于更新后的
其中,
(2.4)处理完所有拥塞链路以后,控制器依次检查集合γi中的每一个视频请求γk,i∈γi是否满足网络质量服务条件;
(2.5)记录当前第i层组播树
进一步的,所述步骤(2.3)中对拥塞链路进行重新路由的具体过程为:
(2.3.1)对于拥塞链路e(u,v),将其从当前第i层组播树
(2.3.2)将
(2.3.3)用以下的公式计算从u到v的替换路径时延上限:
其中,
(2.3.4)在网络拓扑gi中构建一条从头结点u到尾结点v的最大流路径pu,v,如果该路径的时延超过
(2.3.5)使用替换路径pu,υ连接两棵子树,得到更新后的第i层组播树
进一步的,所述步骤(2.4)中检查视频请求γk,i∈γi是否满足网络质量服务条件的具体过程为:
(2.4.1)记录当前第i层组播树
(2.4.2)计算路径
其中,d(u,v)表示链路e(u,v)的传播时延;
(2.4.3)如果
有益效果:本发明在sdn组播系统模型上针对可伸缩视频流的特点设计路由方法,从而保证用户的网络质量服务体验。因为在视频流应用场景中,用户通常对端到端的时延有严格要求,因此本发明无需专注重设sdn组播系统模型。同时,本发明针对可伸缩视频流分层编码的特点,通过两个阶段自底向上构建分层组播树,从而满足用户端到端的时延要求,同时提高组播会话可扩展性;另外,在多路径路由的过程中考虑了时延抖动,从而在链路性能和设备性能之间取得一个较好的平衡。与现有技术相比,本发明的优点具体如下:
(1)本发明采用基于sdn网络架构的组播技术来传输可伸缩编码视频。与传统网络中视频流量的传输相比,使用sdn环境可以有效地利用sdn网络架构中转发平面与控制平面分离的特性,在sdn控制器中集中管理组播会话成员,利用全局网络视图构建并动态调整分层组播树,从而为视频应用提供网络质量服务保障;
(2)本发明考虑到组播会话的可扩展性以及sdn交换机内存容量的有限性,通过两个阶段自底向上构建增强层组播树,从而减少控制器下发的组表数量,提高组播会话的可扩展性;
(3)本发明在对拥塞链路重新路由的过程中引入了时延抖动因子。当时延抖动因子较大的时候,客户端视频的时延抖动增大,从而要求视频播放设备具有较高的缓存能力;另一方面,时延抖动因子较大导致替换路径的时延上限同样增大,从而降低了对链路性能的要求。因此,调节时延抖动因子可以在链路性能和设备性能之间取得一个较好的平衡;
(4)本发明采用多路径路由的方法为视频客户端传输可伸缩视频流,从而有效地优化网络中链路带宽的利用,减少数据包在网络传输过程中发生的丢包,提高用户的网络质量服务体验。
附图说明
图1为现有技术中的sdn架构示意图;
图2为本发明使用情境的角色示意图;
图3为本发明的整体流程图;
图4为本发明中基础层组播树构建的流程图;
图5为本发明中基础层组播树构建的流程图;
图6为本发明中构建第i层组播树的具体流程图;
图7为本发明中重新路由的具体流程图;
图8为本发明中验证视频请求是否满足网络质量服务条件的流程图;
图9为实施例中网络拓扑示意图;
图10为实施例中构建的分层组播树示意图;
其中,图10(a)为时刻t=0s构建的分层组播树示意图;图10(b)为时刻t=100s构建的分层组播树示意图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
如图2所示,本发明的使用情境中主要参与角色包括视频服务器,客户端,openflow交换机以及sdn控制器。
其中,视频服务器将实时视频内容编码成可伸缩视频流,想接收实时视频的客户端发出组播会话请求,边缘交换机收到组播会话请求以后将其发给控制器。sdn控制器包含组播会话管理模块、组播路由模块和网络拓扑发现模块,分别用于管理组播会话请求、构建与实时调整分层组播树。
如图3所示,本发明的一种sdn环境下基于qos智能感知的可伸缩视频流组播方法,包括以下步骤:
(1)基础层组播树构建阶段:视频被编码成n层,包括一个基础层和n-1个增强层。控制器收到视频请求,先将其分解成多个子请求,然后对基础层中的每个子请求,从相应的客户端到视频服务器寻找符合网络质量服务要求的路径,最后构建基础层组播树,即第一层组播树;
(2)组播树修剪阶段:自底向上依次构建第2至第n层增强层组播树。其中,在构建每一层增强层组播树的时候,首先通过剪枝操作从上一层组播树获取当前增强层组播树,然后对于拥塞链路依次重新路由。
如图4所示,所述步骤(1)的具体过程为:
(1.1)视频服务器server采用可伸缩视频编码技术将视频编码成n层,包括一个基础层和n-1个增强层,每一层的比特率为bi;
(1.2)内嵌于sdn控制器的组播会话管理模块接收视频会话请求,每个请求表示成γk(dk,lk),其中,dk表示客户端,lk表示dk请求的最高层可伸缩视频流。所有视频请求构成集合γ={γ1,γ2,…,γn};
(1.3)内嵌于sdn控制器的组播会话管理模块将视频请求集合分解成若干个子集,即:
(1.4)内嵌于sdn控制器的组播路由模块根据组播会话管理模块得到的子请求集合γ1构建基础层组播树。
如图5所示,所述步骤(1.4)中构建基础层组播树的具体过程为:
1)对于集合γ1中的每一个子请求γk,1,首先使用修改的迪杰斯特拉算法从客户端dk到视频服务器server构建一条最大流路径
2)如果该路径的时延超过系统设定的时延上限dmax,则从客户端dk到视频服务器server重新构建一条最短时延路径
3)将该路径
4)处理完集合γ1中的所有子请求以后,通过连接集合p中的所有路径得到基础层组播树t1。
如图6所示,所述步骤(2)的具体过程为:
(2.1)在构建第i层增强层组播树的时候,首先通过剪枝操作从上一层组播树ti-1得到当前初始的第i层组播树
(2.2)将
其中,b(u,v)表示链路e(u,υ)的带宽容量;
(2.3)对于更新后的
(2.4)处理完所有拥塞链路以后,控制器依次检查集合γi中的每一个视频请求γk,i∈γi是否满足网络质量服务条件;
(2.5)记录当前第i层组播树
如图7所示,所述步骤(2.3)中对拥塞链路进行重新路由的具体过程为:
1)对于拥塞链路e(u,v),将其从当前第i层组播树
2)将
3)用以下的公式计算从u到v的替换路径时延上限:
其中,
4)在网络拓扑gi中构建一条从头结点u到尾结点υ的最大流路径pu,v,如果该路径的时延超过
5)使用替换路径pu,v连接两棵子树,得到更新后的第i层组播树
如图8所示,所述步骤(2.4)中验证视频请求γk,i∈γi是否满足网络质量服务条件的具体过程为:
1)记录当前第i层组播树
2)计算路径
3)如果该时延
实施例:
实验环境:本实施例中的sdn控制器采用floodlight1.2,网络拓扑搭建采用网络仿真器mininet2.2,iperf发包工具用来模拟svc分层视频流
网络拓扑:如图9所示,一个服务器(server),五个客户端(d1-d5)和十一个交换机(switch),每条链路旁边分别标注了其带宽容量和传播时延,单位分别为兆比特每秒(mbps)和毫秒(ms)。
实验参数:服务器(server)将视频编码成一个基础层和一个增强层,每一层的比特率都是1mbps。最大允许的时延和时延抖动分别设为90ms和30ms。
实施过程:
1、在时刻t=0s时d5向服务器请求基础层视频流,d1,d2,d4同时请求基础层和增强层视频流。floodlight中组播路由模块计算路由并下发流表。然后,服务器从udp端口39999和43032分别发送基础层和增强层视频流,组播地址设置为224.0.1.56,持续发包时间为300s。图10(a)给出了t=0s时刻组播会话生成的基础层和增强层组播树。
2、在时刻t=100s时d2离开组播会话,d3加入组播会话。图10(b)给出了t=100s时刻组播会话的分层组播树。可以看出,d2离开组播会话以后,冗余链路s5-s9-d2从基础层和增强层组播树中剪除;d3加入组播会话以后,路径s11-s10-d3和路径s7-s10-d3分别添加到基础层和增强层组播树中。
通过上述实施例可以看出,本发明使用sdn控制器提供的全局网络拓扑为可伸缩视频流应用优化组播路由,从而保证用户的网络质量服务体验。在构建增强层组播树的过程中,本发明将自底向上的方式与最大流的方法结合起来,从而提高组播会话的可扩展性;同时,本发明采用多路径路由的方式为视频客户端传输分层视频流,从而有效地优化链路带宽的利用,减少网络传输过程中发生的丢包,提高用户的网络质量服务体验。