服务器输出流量限速方法、装置、服务器及DNS系统与流程

文档序号:13559773阅读:373来源:国知局
服务器输出流量限速方法、装置、服务器及DNS系统与流程

本发明涉及网络流量整形技术领域,尤其是一种服务器输出流量限速方法、装置、服务器及dns系统。



背景技术:

随着互联网的高速发展,用户对视频的需求量越来越大,视频网站也随之增长。与此同时,潜在的问题逐渐显现出来,视频卡屏现象也是屡见不鲜。作为提供视频服务的内容分发网络(contentdeliverynetwork,简称cdn)需要在保证用户高质量的视频体验的前提下,降低大量用户所带来的流量对自身底层网络的冲击,同时降低网络投入成本。

传统方式中普遍采用对用户的请求做接口限流的方式来降低这种风险。所谓接口限流就是限制接口的流量,包括并发的流量和一定时间内的总流量,这样可以很好地控制系统的每秒查询率(querypersecond,简称qps),从而提高保护系统的安全性和接口服务的稳定性。

目前,常用的接口限流算法有a.计数器法,b.滑动窗口法,c.漏桶算法,d.令牌桶算法等几种,其中漏桶算法和令牌桶算法是属于服务质量(qualityofservice,简称qos)领域流量整形技术的实现机制。通常使用这些算法做限流,主要是为了防止系统压力过大、保证用户请求的资源保持均匀以及屏蔽恶意请求,因此实际应用场景中对所有的请求都是同等对待,只要接口流量没有超过上限,则用户的请求不受限,而一旦流量超额了,那么就会直接拒绝后续的所有请求。这在web这样的业务系统中比较适用,因为用户请求的web页面响应速度跟用户所占用的网络带宽流量是成正比的,带宽流量越高,响应越快,否则越慢,甚至会超时。

但是,在在线视频业务系统中,由于视频的流畅播放体验跟视频码率相关,而不与网络带宽流量成正比,因此,使用上述几种接口限流的做法,由于对所有的视频请求都同等对待,并不能保证请求视频的每个用户都获得流畅的视频播放体验;另外,对于码率较小的视频文件,分配的带宽流量越高则对带宽流量的浪费越严重,对网络的利用率较低。



技术实现要素:

本发明实施例所要解决的一个技术问题是:现有技术中由于对所有的视频请求都同等对待,并不能保证请求视频的每个用户都获得流畅的视频播放体验;另外,对于码率较小的视频文件,分配的带宽流量越高则对带宽流量的浪费越严重,对网络的利用率较低。

本发明实施例一种服务器输出流量限速方法、装置、服务器及dns系统。所述技术方案如下:

根据本发明实施例的第一方面,提供一种服务器输出流量限速方法,包括:

根据接收到的视频请求获取所述视频请求对应视频的码率;

根据所述码率确定所述服务器的输出速率上限;

根据所述输出速率上限输出所述视频请求对应视频的视频数据。

可选的,所述根据所述码率确定所述服务器的输出速率上限,包括:

设置所述输出速率上限为所述码率的n倍,其中,n大于等于1;

和/或,所述根据接收到的视频请求获取所述视频请求对应视频的码率,包括:

当同时接收到至少两个视频请求时,获取每个视频请求对应视频的码率;

和/或,所述根据所述码率确定所述服务器的输出速率上限,包括:

计算所述至少两个视频请求对应视频的码率之和;

根据所述码率之和设置第一输出速率上限。

可选的,所述根据所述输出速率上限输出所述视频请求对应视频的视频数据,包括:

根据所述第一输出速率上限同时输出所述至少两个视频请求对应视频的视频数据;

当所述至少两个视频请求中的第一视频请求对应视频的视频数据输出完毕后,根据未输出完毕的第二视频请求对应视频的码率设置第二输出速率上限;

根据所述第二输出速率上限输出所述第二视频请求对应视频的视频数据。

可选的,所述根据所述输出速率上限输出所述视频请求对应视频的视频数据,包括:

根据所述输出速率上限读取第一数据量的视频数据;

确定每次从令牌桶中请求令牌的第一个数;

当所述令牌桶中的令牌个数大于或等于所述第一个数时,从所述令牌桶中获取所述第一个数个令牌;

输出所述第一数据量的视频数据。

可选的,所述根据所述输出速率上限输出所述视频请求对应视频的视频数据,还包括:

当所述令牌桶中的令牌个数小于所述第一个数,且所述第一数据量小于或等于当前允许突发流量时,输出所述第一数据量的视频数据;

刷新所述当前允许突发流量的值,将所述当前允许突发流量减掉所述第一数据量;

当所述令牌桶中的令牌个数小于所述第一个数,且所述第一数据量大于所述当前允许突发流量时,延迟第一预设时间获取所述第一个数个令牌。

可选的,所述方法还包括:

根据所述视频请求获取请求队列;

确定所述请求队列中请求数据包的大小;

根据所述请求数据包的大小及本端与视频存储装置之间的带宽,计算对于所述视频存储装置的最大请求个数;

从所述请求对列中按顺序获取所述最大请求个数的请求数据包进行合包,得到合并请求包;

将所述合并请求包发送至所述视频存储装置,请求与所述合并请求包大小相同的视频数据包;

和/或,所述方法还包括:

接收所述视频数据包,所述视频数据包中包括所述最大请求个数的子视频数据包,所述子视频数据包与所述合并请求包中的请求数据包一一对应;

将所述视频数据包进行拆包,得到与所述请求数据包对应的子视频数据包。

根据本发明实施例的第二方面,提供一种服务器输出流量限速装置,包括:

第一获取模块,用于根据接收到的视频请求获取所述视频请求对应视频的码率;

第一确定模块,用于根据所述码率确定所述服务器的输出速率上限;

输出模块,用于根据所述输出速率上限输出所述视频请求对应视频的视频数据。

可选的,所述第一确定模块,用于设置所述输出速率上限为所述码率的n倍,其中,n大于等于1;

和/或,所述第一获取模块,用于当同时接收到至少两个视频请求时,获取每个视频请求对应视频的码率;

和/或,所述第一确定模块包括:

计算子模块,用于计算所述至少两个视频请求对应视频的码率之和;

设置子模块,用于根据所述码率之和设置第一输出速率上限。

可选的,所述输出模块包括:

输出子模块,用于根据所述第一输出速率上限同时输出所述至少两个视频请求对应视频的视频数据;

设置子模块,用于当所述至少两个视频请求中的第一视频请求对应视频的视频数据输出完毕后,根据未输出完毕的第二视频请求对应视频的码率设置第二输出速率上限;

所述输出子模块,用于根据所述第二输出速率上限输出所述第二视频请求对应视频的视频数据。

可选的,所述输出模块包括:

读取子模块,用于根据所述输出速率上限读取第一数据量的视频数据;

确定子模块,用于确定每次从令牌桶中请求令牌的第一个数;

获取子模块,当所述令牌桶中的令牌个数大于或等于所述第一个数时,从所述令牌桶中获取所述第一个数个令牌;

输出子模块,用于输出所述第一数据量的视频数据。

可选的,所述输出模块还包括:刷新子模块,

所述输出子模块,用于当所述令牌桶中的令牌个数小于所述第一个数,且所述第一数据量小于或等于所述当前允许突发流量时,输出所述第一数据量的视频数据;

所述刷新子模块,用于刷新所述当前允许突发流量的值,将所述当前允许突发流量减掉所述第一数据量;

所述获取子模块,用于当所述令牌桶中的令牌个数小于所述第一个数,且所述第一数据量大于所述当前允许突发流量时,延迟第一预设时间获取所述第一个数个令牌。

可选的,所述装置还包括:

第二获取模块,用于根据所述视频请求获取请求队列;

第二确定模块,用于确定所述请求队列中请求数据包的大小;

计算模块,用于根据所述请求数据包的大小及本端与视频存储装置之间的带宽,计算对于所述视频存储装置的最大请求个数;

合包模块,用于从所述请求对列中按顺序获取所述最大请求个数的请求数据包进行合包,得到合并请求包;

发送模块,用于将所述合并请求包发送至所述视频存储装置,请求与所述合并请求包大小相同的视频数据包。

和/或,所述装置还包括:

接收模块,用于接收所述视频数据包,所述视频数据包中包括所述最大请求个数的子视频数据包,所述子视频数据包与所述合并请求包中的请求数据包一一对应;

拆包模块,用于将所述视频数据包进行拆包,得到与所述请求数据包对应的子视频数据包。

根据本发明实施例的第三方面,提供一种服务器,包括上述实施例的服务器输出流量限速装置。

根据本发明实施例的第四方面,提供一种dns系统,包括至少一个上述服务器。

本发明实施例中,针对每个视频请求,都根据该视频的码率对服务器的输出流量进行限速,这样就使得不同视频在下载时,所能达到的最大下载速率不会超过根据码率设置的输出速率上限,提高系统的安全性。不仅保证请求视频的每个用户都获得流畅的视频播放体验,并且,对于码率较小的视频文件,不会分配的过高的带宽流量,大大节约了服务器的带宽流量,提高了网络的利用率。

另外,本发明的方法在具体实现时,由于服务器所能提供的总带宽流量是固定的,基于码率为每个视频请求分配服务器的输出速率上限,因而,实际上服务器所能同时处理的并发请求的数量也不是固定的,服务器同时处理的最大并发数是基于每个请求对应视频的码率而动态变化的,因此,使得对网络的利用率大大提高。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1是本发明实施例示出的服务器输出流量限速方法的流程图;

图2是本发明另一实施例示出的服务器输出流量限速方法的流程图;

图3是本发明另一实施例示出的服务器输出流量限速方法的流程图;

图4是本发明另一实施例示出的服务器输出流量限速方法的流程图;

图5是本发明另一实施例示出的服务器输出流量限速方法的流程图;

图6是本发明另一实施例示出的服务器输出流量限速方法的流程图;

图7是本发明实施例与普通限速技术的服务器输出速率的示意图;

图8是本发明实施例与普通限速技术的服务器输出速率的另一示意图;

图9是本发明实施例示出的服务器输出流量限速装置的框图;

图10是本发明另一实施例示出的服务器输出流量限速装置的框图;

图11是本发明实施例示出的输出模块的框图;

图12是本发明另一实施例示出的输出模块的框图;

图13是本发明另一实施例示出的输出模块的框图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

在在线视频业务系统中,由于视频的流畅播放体验跟视频码率相关,而不与网络带宽流量成正比,不同码率的视频消耗的网络带宽是不一样的,而且只要网络带宽流量能满足视频播放的码率带宽,那么用户所需要的网络带宽流量就基本不会变化。因此,本发明的目的就是提供一种针对不同视频文件自适应地对服务器输出流量进行动态限速的方法。

本发明实施例提供的技术方案,涉及提供在线视频业务的服务器,针对每个视频请求,都根据该视频的码率对服务器的输出流量进行限速,这样就保证了不同视频在下载时,所能达到的最大下载速率不会超过根据码率设置的输出速率上限。不仅保证请求视频的每个用户都获得流畅的视频播放体验,并且,对于码率较小的视频文件,不会分配的过高的带宽流量,大大节约了服务器的带宽流量,提高了网络的利用率。

图1是本发明实施例示出的服务器输出流量限速方法的流程图。如图1所示,该服务器输出流量限速方法包括以下步骤:

步骤s11,根据接收到的视频请求获取视频请求对应视频的码率。

服务器针对接收到的每个视频请求,都会获取一次该视频请求对应视频的码率。

其中,视频请求中一般包含所要请求视频的视频标识,如视频名称、视频地址等等,根据视频标识,可以获取到该视频的相关信息,如码率、格式、大小等等。

步骤s12,根据码率确定服务器的输出速率上限。

可选的,可以设置输出速率上限为码率的n倍,其中,n大于等于1。

其中,n的大小可以根据服务器所能提供的总输出流量上限来设定。如果服务器的总输出流量上限不足,则可将n设为1;如果服务器的总输出流量上限较大,则n的值也可相应增大。

例如,服务器接收到的视频请求所要下载的视频的码率为3mb/s,则可设置对该视频下载的输出速率上限为3mb/s,如果服务器总输出流量上限较大,可设置输出速率上限为6mb/s。

步骤s13,根据输出速率上限输出视频请求对应视频的视频数据。

本实施例中,针对每个视频请求,都根据该视频的码率对服务器的输出流量进行限速,这样就保证了不同视频在下载时,所能达到的最大下载速率不会超过根据码率设置的输出速率上限。这样,不仅保证请求视频的每个用户都获得流畅的视频播放体验,并且,对于码率较小的视频文件,不会分配的过高的带宽流量,大大节约了服务器的带宽流量,提高了网络的利用率。

另外,本发明的方法在具体实现时,由于服务器所能提供的总带宽流量是固定的,基于码率为每个视频请求分配服务器的输出速率上限,因而,实际上服务器所能同时处理的并发请求的数量也不是固定的,服务器同时处理的最大并发数是基于每个请求对应视频的码率而动态变化的,因此,使得对网络的利用率大大提高。

图2是本发明另一实施例示出的服务器输出流量限速方法的流程图。如图2所示,对于多个视频同时下载的场景,步骤s11包括:

步骤s21,当同时接收到至少两个视频请求时,获取每个视频请求对应视频的码率;

步骤s12包括:

步骤s22,计算至少两个视频请求对应视频的码率之和;

步骤s23,根据码率之和设置第一输出速率上限。

例如,服务器同时接收到两个视频请求,分别请求下载视频a和b。视频a的码率为1mb/s,视频b的码率为2mb/s。视频a和b同时下载,可设置服务器的输出速率上限为3mb/s,即视频a和b码率之和。若服务器总输出流量上限较大,可设置输出速率上限为6mb/s,即视频a和b码率之和的2倍。

本实施例中,保证每个视频都能获得符合用户视频播放体验的下载速度,并且,不会浪费网络带宽流量。

图3是本发明另一实施例示出的服务器输出流量限速方法的流程图。如图3所示,对于多个视频同时下载的场景,步骤s13包括:

步骤s31,根据第一输出速率上限同时输出至少两个视频请求对应视频的视频数据;

步骤s32,当至少两个视频请求中的第一视频请求对应视频的视频数据输出完毕后,根据未输出完毕的第二视频请求对应视频的码率设置第二输出速率上限;

步骤s33,根据第二输出速率上限输出第二视频请求对应视频的视频数据。

例如,视频a和b同时下载,当视频b下载完成,而视频a未下载完成,则根据视频a的码率重新调整服务器输出速率上限。可设置服务器的输出速率上限为1mb/s。若服务器总输出流量上限较大,可设置输出速率上限为2mb/s,即视频a码率的2倍。

本实施例中,当某个视频下载完成后,立刻释放其所占用的带宽流量,以便可以为其他用户下载视频提供带宽流量。在保证每个视频都能获得符合用户视频播放体验的下载速度的前提下,更加精确地对服务器的带宽流量进行限速,进一步提高网络带宽的利用率。

本发明还提供一实施例,并不是简单地根据视频码率进行限速,而是结合令牌桶算法,进一步提高服务器对于突发数据请求的处理能力。

图4是本发明另一实施例示出的服务器输出流量限速方法的流程图。如图4所示,步骤s12中确定的服务器的输出速率上限实际上也是令牌桶的输出速率上限,步骤s13包括:

步骤s41,根据输出速率上限读取第一数据量的视频数据;

步骤s42,确定每次从令牌桶中请求令牌的第一个数;

步骤s43,当令牌桶中的令牌个数大于或等于第一个数时,从令牌桶中获取第一个数个令牌;

步骤s44,输出第一数据量的视频数据。

其中,每次从令牌桶中请求令牌的第一个数,取决于服务器的处理速度,即服务器准备第一数据量的视频数据所花费的时间。

本实施例中,将基于视频码率调整服务器输出速率上限与令牌桶算法相结合,通过设置令牌桶的输出速率,实际上也限定了令牌桶生成令牌的速度了。根据不同视频自适应地调整下载所占用的带宽,充分提高网络的利用率。

图5是本发明另一实施例示出的服务器输出流量限速方法的流程图。如图5所示,当出现突发数据请求,即令牌桶中令牌数量不足时,步骤s13还包括:

步骤s51,当出现令牌桶中的令牌个数小于第一个数时,且第一数据量小于或等于当前允许突发流量时,输出第一数据量的视频数据;

步骤s52,刷新当前允许突发流量的值,将当前允许突发流量减掉第一数据量;

步骤s53,当令牌桶中的令牌个数小于第一个数,且第一数据量大于当前允许突发流量时,延迟第一预设时间获取第一个数个令牌。

本实施例中,设置当前允许突发流量,例如,可设置允许100ms的突发数据请求,也可以根据实际需要调整这个突发请求的数据量,根据当前允许突发流量来确定是否允许当前的突发请求。如果某次获取的令牌数不够,则判断本次输出的视频数据是否超出了当前允许突发流量,如果未超出,则可以为本次发送预支令牌,使得本次成功发送。此时,将更新改当前允许突发流量,将其减少本次发送的数据量。当再次遇到突发请求时,仍判断本次输出的视频数据是否超出了当前允许突发流量,如果已经超出,即当前允许突发流量小于本次输出的视频数据量,则需要延迟一定时间,获得足够的令牌后才允许发送。

这样,对于突发请求,并没有采用丢弃的方式来处理,而是延迟一定时间处理,可以进一步提高视频播放的流畅度,用户的体验度较好。

下面以一个具体实例对本发明实施例的方法进行详细说明。

图6是本发明另一实施例示出的服务器输出流量限速方法的流程图。如图6所示,该服务器输出流量限速方法包括以下步骤:

步骤s601,接收视频请求;

步骤s602,根据视频请求获取所请求视频的码率rc;

步骤s603,设置服务器的输出速率上限sout即令牌桶的输出速率上限为码率rc的2倍,sout=2rc;

步骤s604,根据输出速率上限sout确定每次读取第一数据量d大小的视频数据;

步骤s605,确定每次从令牌桶中请求令牌的第一个数n;

步骤s606,读取d大小的视频数据;

步骤s607,从令牌桶请求令牌;

步骤s608,判断请求到的令牌数量是否大于0,如果是,执行步骤s609,如果否,结束;

步骤s609,判断请求到的令牌数量是否大于或等于n,如果是,执行步骤s612,如果否,执行步骤s610;

步骤s610,判断d是否小于或等于当前允许突发流量;如果是,执行步骤s611,如果否,执行步骤s613;

步骤s611,刷新当前允许突发流量的值,将当前允许突发流量减掉d,并将刷新后的当前允许突发流量返回步骤s611;

步骤s612,立即发送d大小的视频数据;

步骤s613,判断是否延迟第一预设时间t;如果是,执行步骤s607;如果否,继续执行s613。

本发明实施例中,还可将基于视频码率对服务器输出流量进行动态限速与现有技术中其它限流算法进行结合。

例如,根据视频码率确定服务器输出速率上限,基于该输出速率上限再根据计数器法或滑动窗口法对时间窗口内视频请求的个数进行限制。

又例如,根据视频码率确定服务器输出速率上限,该输出速率上限也是漏桶算法中漏桶的输出速率,使得数据稳定地注入网络,平滑网络上的突发流量。

图7是本发明实施例与普通限速技术的服务器输出速率的示意图。对于单个视频的输出,采用本发明实施例的动态限速方法得到的服务器输出速率为3mb/s,普通限速技术的服务器输出速率也是3mb/s。如图7所示,动态限速中的下载曲线高峰值基本稳定,但是有小范围的上下波动,这是由于在限速时并没在获取令牌足够的时候再继续循环发数据,因为考虑到高峰期并发的用户请求比较多,不能为了考虑限速的准确性而一直占用cpu,而要分配点cpu给其它同时并发请求的用户,限速的目的是为了不让下载速度超过限速值,提高系统的安全性。

而普通限速(简单计数器法)的下载曲线则波动就非常大,基本上是一个高峰,然后就暂停一会。另外,由于当限速值比较大时,单位时间内需要读取进行回复的数据量也比较大,因而,限速值也不准确。

图8是本发明实施例与普通限速技术的服务器输出速率的另一示意图。对于多个视频的输出,例如,同时输出两个视频。两个视频的码率分别为1mb/s和2mb/s,本发明实施例的动态限速方法根据码率设置的每个视频对应的服务器输出速率分别为1mb/s和2mb/s。普通限速技术设置每个视频对应的服务器输出速率为1mb/s。

如图8所示,动态限速中的下载曲线分成了2段,前一段是2个文件同时下载的曲线,后一段是2mb码率文件下载完后剩下的那个1mb码率的文件的下载曲线。由图中可以看出,2个视频文件同时下载,服务器的输出速率是3mb/s,当2mb码率的视频文件下载完时,服务器的输出速率就降到了1mb/s,正好也是剩下的那个视频文件的码率,限速准确,对网络带宽的利用率非常高。

普通限速(简单计数器法)的下载过程,由于每个视频文件的下载限速设置的是1mb/s,因此服务器的输出速率应该在2mb/s,而图中显示的是在1mb/s~4mb/s之间波动,限速相当不准确,并且全程的下载都是维持在这个速度区间,并不能根据不同码率的文件调整下载速度,对网络带宽的利用率非常低。

综上,可以看出,本发明实施例的根据视频码率动态限速的技术,不仅保证了不同视频在下载时,所能达到的最大下载速率不会超过根据码率设置的输出速率上限,提高系统的安全性。并且,保证请求视频的每个用户都获得流畅的视频播放体验。而且对于码率较小的视频文件,不会分配的过高的带宽流量,大大节约了服务器的带宽流量,提高了网络的利用率。另外,本发明的方法在具体实现时,由于服务器所能提供的总带宽流量是固定的,基于码率为每个视频请求分配服务器的输出速率上限,因而,实际上服务器所能同时处理的并发请求的数量也不是固定的,服务器同时处理的最大并发数是基于每个请求对应视频的码率而动态变化的,因此,使得对网络的利用率大大提高。

在另一个实施例中,由于客户端在请求数据时对带宽的使用有限制,而本端(即接收客户端视频请求的服务器,该服务器包括用于实现本发明实施例中服务器输出流量限速方法的装置)与视频数据存储装置之间是局域网内通过长连接进行传输,对于本端来说,两端的带宽不对称,因此本端对向视频数据存储装置请求数据和给客户端回复数据做了合包和折包的处理逻辑。

本端对向视频数据存储装置请求数据的流程如下:

步骤a1,根据视频请求获取请求队列。

通过该请求队列,可以保证给客户端回复数据的顺序性。

步骤a2,确定请求队列中请求数据包的大小。

一般来说,各个请求数据包大小相同,因此,仅需确定该请求队列中接收到的第一个请求数据包的大小。

步骤a3,根据请求数据包的大小及本端与视频存储装置之间的带宽,计算对于视频存储装置的最大请求个数。

步骤a4,从请求对列中按顺序获取最大请求个数的请求数据包进行合包,得到合并请求包。

步骤a5,将合并请求包发送至视频存储装置,请求与合并请求包大小相同的视频数据包。

本实施例中,由于本端与视频存储装置之间的带宽实际上远大于本端与客户端之间的带宽,每次可以向视频存储装置请求更多的数据。因此,根据视频存储装置的最大请求个数对请求数据包进行合包处理,将合并数据包发送到视频存储装置请求视频数据。这样,减少了向视频存储装置发送请求数据包地次数,提高了本端与视频存储装置之间的传输效率。

在另一实施例中,本端给客户端回复数据的流程如下:

步骤b1,接收视频数据包,视频数据包中包括最大请求个数的子视频数据包,子视频数据包与合并请求包中的请求数据包一一对应。

步骤b2,将视频数据包进行拆包,得到与请求数据包对应的子视频数据包。

本实施例中,当接收到视频存储装置返回的视频数据包时,由于该视频数据包对应多个请求数据包,因此,需要拆包后再根据输出速率上限进行输出。

下述为本发明装置实施例,可以用于执行本发明方法实施例。

图9是本发明实施例示出的服务器输出流量限速装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,该服务器输出流量限速装置,包括:

第一获取模块91,用于根据接收到的视频请求获取视频请求对应视频的码率。

第一确定模块92,用于根据码率确定服务器的输出速率上限。

输出模块93,用于根据输出速率上限输出视频请求对应视频的视频数据。

可选的,第一确定模块92,用于设置输出速率上限为码率的n倍,其中,n大于等于1。

图10是本发明另一实施例示出的服务器输出流量限速装置的框图,如图10所示,第一获取模块91,用于当同时接收到至少两个视频请求时,获取每个视频请求对应视频的码率。其中,确定模块92包括:计算子模块101和设置子模块102。

计算子模块101,用于计算至少两个视频请求对应视频的码率之和;

设置子模块102,用于根据码率之和设置第一输出速率上限。

图11是本发明实施例示出的输出模块的框图,如图11所示,输出模块93包括:输出子模块111和设置子模块112。

输出子模块111,用于根据第一输出速率上限同时输出至少两个视频请求对应视频的视频数据。

设置子模块112,用于当至少两个视频请求中的第一视频请求对应视频的视频数据输出完毕后,根据未输出完毕的第二视频请求对应视频的码率设置第二输出速率上限。

输出子模块111,用于根据第二输出速率上限输出第二视频请求对应视频的视频数据。

图12是本发明另一实施例示出的输出模块的框图,如图12所示,输出模块93包括:读取子模块121、确定子模块122、获取子模块123和输出子模块124,

读取子模块121,用于根据输出速率上限读取第一数据量的视频数据。

确定子模块122,用于确定每次从令牌桶中请求令牌的第一个数。

获取子模块123,当令牌桶中的令牌个数大于或等于第一个数时,从令牌桶中获取第一个数个令牌。

输出子模块124,用于输出第一数据量的视频数据。

图13是本发明另一实施例示出的输出模块的框图,如图13所示,输出模块93还包括:刷新子模块125。

输出子模块124,用于当令牌桶中的令牌个数小于第一个数,且第一数据量小于或等于当前允许突发流量时,输出第一数据量的视频数据。

刷新子模块125,用于刷新当前允许突发流量的值,将当前允许突发流量减掉第一数据量。

获取子模块123,用于当令牌桶中的令牌个数小于第一个数,且第一数据量大于当前允许突发流量时,延迟第一预设时间获取第一个数个令牌。

在另一实施例中,该装置还包括:

第二获取模块,用于根据视频请求获取请求队列;

第二确定模块,用于确定请求队列中请求数据包的大小;

计算模块,用于根据请求数据包的大小及本端与视频存储装置之间的带宽,计算对于视频存储装置的最大请求个数;

合包模块,用于从请求对列中按顺序获取最大请求个数的请求数据包进行合包,得到合并请求包;

发送模块,用于将合并请求包发送至视频存储装置,请求与合并请求包大小相同的视频数据包。

在另一实施例中,该装置还包括:

接收模块,用于接收视频数据包,视频数据包中包括最大请求个数的子视频数据包,子视频数据包与合并请求包中的请求数据包一一对应;

拆包模块,用于将视频数据包进行拆包,得到与请求数据包对应的子视频数据包。

本发明实施例还提供一种服务器,该服务器包括上述各装置实施例中的服务器输出流量限速装置。

本发明实施例还提供一种dns(contentdeliverynetwork,内容分发网络)系统,该系统中包括至少一个上述服务器。

本发明实施例的根据视频码率动态限速的装置,不仅保证了不同视频在下载时,所能达到的最大下载速率不会超过根据码率设置的输出速率上限,提高系统的安全性。并且,保证请求视频的每个用户都获得流畅的视频播放体验。而且对于码率较小的视频文件,不会分配的过高的带宽流量,大大节约了服务器的带宽流量,提高了网络的利用率。另外,本发明的方法在具体实现时,由于服务器所能提供的总带宽流量是固定的,基于码率为每个视频请求分配服务器的输出速率上限,因而,实际上服务器所能同时处理的并发请求的数量也不是固定的,服务器同时处理的最大并发数是基于每个请求对应视频的码率而动态变化的,因此,使得对网络的利用率大大提高。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1