一种缓存服务器的服务方法、缓存服务器及系统的制作方法

文档序号:7979884阅读:223来源:国知局
一种缓存服务器的服务方法、缓存服务器及系统的制作方法
【专利摘要】一种缓存服务器的服务方法,涉及通信领域,能够降低对上游网络带宽的消耗,缓解网络压力,该方法包括:接收多个用户设备发送的第一请求信息,所述第一请求信息指示所述多个用户设备各自所需的数据及各自所需数据的请求点;若确定所述多个用户设备中的至少两个用户设备发送的所述第一请求信息指示的数据相同且所述相同的数据未缓存在该缓存服务器,则在落入预设窗口内的请求点中选择一个请求点;向源服务器发送第二请求信息,所述第二请求信息指示所述未缓存的数据及所述选择的请求点。
【专利说明】—种缓存服务器的服务方法、缓存服务器及系统
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种缓存服务器的服务方法、缓存服务器及系统。【背景技术】
[0002]近年来,由于互联网视频发展迅猛,用户规模急剧增长。网络视频逐渐成为人们获取影视、资讯等数字内容的重要渠道。由于视频是集图像、声音、文字等为一体的综合性媒体,因此,互联网视频的迅猛发展导致网络中的数据量成爆炸式的增长,这给网络带来了巨大的流量压力,迫使运营商不断地扩容网络带宽,以保证各种业务能够顺利地开展、运营。
[0003]为了缓解网络的压力,降低流量成本,以及更好地为用户提供服务,运营商通常会在网络边缘(靠近用户侧)部署高速缓存服务器;缓存服务器可以缓存热点内容,就近为用户提供服务。如果用户请求的内容已经缓存在缓存服务器上了,那么就不需要再向源服务器索取,从而降低上游网络的流量,缓解网络的压力;如果用户请求的内容未在缓存服务器上缓存,则还是需要向源服务器索取,业务量依然很大,无法降低占用上游网络的流量,无法缓解网络的压力。

【发明内容】

[0004]一方面,一种缓存服务器的服务方法,包括:
[0005]接收多个用户设备发送的第一请求信息,所述第一请求信息指示所述多个用户设备各自所需的数据及各自所需数据的请求点;
[0006]若确定所述多个用户设备中的至少两个用户设备发送的所述第一请求信息指示的数据相同且所述相同的数据未缓存在该缓存服务器,则在落入预设窗口内的请求点中选择ー个请求点;
[0007]向源服务器发送第二请求信息,所述第二请求信息指示所述未缓存的数据及所述选择的请求点。
[0008]可选地,所述预设窗ロ为预设固定窗ロ或预设动态变化窗ロ。
[0009]可选地,所述预设固定窗ロ为占用时间固定或占用字节固定的窗ロ。
[0010]可选地,所述预设动态变化窗ロ为根据用户状态和上游网络状态占用时间动态变化的窗ロ,或根据上游网络状态和用户状态占用字节动态变化的窗ロ。
[0011]可选地,所述在每个预设窗口内包括:请求同一个未缓存的所述数据的不同所述请求点之间时间差小于或等于预设窗口占用的时间。
[0012]可选地,所述在每个预设窗口内包括:请求同一个未缓存的所述数据的不同所述数据请求点之间字节差小于或等于预设窗口占用的字节。
[0013]可选地,所述在落入每个预设窗口内的请求点中选择ー个请求点,包括:在落入每个预设窗ロ内的请求点中选择与所述预设窗ロ起始位置最近的一个请求点。
[0014]可选地,所述向源服务器发送第二请求信息之后,还包括:接收所述源服务器发送的从所述请求点对应位置开始的未缓存的所述数据;根据接收的所述多个用户设备发送的所述第一请求信息指示的请求点,从所述请求点对应位置分别向所述用户设备发送所述数据。
[0015]可选地,接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据。
[0016]可选地,所述接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据之后,还包括:对接收的未缓存的所述数据进行拼接;对拼接后的所述数据进行缓存。
[0017]可选地,所述对拼接后的所述数据进行缓存之前,还包括:若拼接后的未缓存的所述数据不完整,则向所述源服务器发送第三请求信息,所述第三请求信息指示未缓存的所述数据及所述数据的起始点;接收所述源服务器从所述起始点发送的所述数据。
[0018]可选地,所述在落入姆个预设窗口内的请求点中选择ー个请求点之后,还包括:若接收到所述源服务器发送的未缓存的所述数据,获取所述数据中包含的随机访问点,则根据所述随机访问点更新所述请求点。
[0019]一方面,提供ー种缓存服务器,包括:
[0020]第一接收单元,用于接收多个用户设备发送的第一请求信息,所述第一请求信息指示所述多个用户设备各自所需的数据及所述各自所需数据的请求点;
[0021]选择单元,用于若确定所述第一接收单元接收的多个用户设备中的至少两个用户设备发送的所述第一请求信息指示的数据相同且所述相同的数据未缓存在该缓存服务器,则在落入姆个预设窗口内的请求点中选择ー个请求点;
[0022]第一发送单元,用于向源服务器发送第二请求信息,所述第二请求信息指示所述未缓存的数据及所述选择単元选择的所述请求点。
[0023]可选地,所述选择単元,具体用于在落入每个预设窗ロ内的请求点中选择与所述预设窗ロ起始位置最近的一个请求点。
[0024]可选地,还包括第二接收单元和第二发送单元,其中:所述第二接收单元,用于接收所述源服务器发送的从所述请求点对应位置开始的未缓存的所述数据;所述第二发送单元,用于根据所述第一接收单元接收的所述多个用户设备发送的所述第一请求信息指示的请求点,从所述请求点对应位置分别向所述用户设备发送所述第二接收单元接收的所述数据。
[0025]可选地,所述第二接收单元,具体用于接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据。
[0026]可选地,还包括拼接单元和缓存单元,其中:所述拼接単元,用于对所述第二接收単元接收的未缓存的所述数据进行拼接;所述缓存単元,用于对所述拼接单元拼接后的所述数据进行缓存。
[0027]可选地,还包括处理单元,其中:所述处理単元,用于若所述拼接单元拼接后的未缓存的所述数据不完整,则使得所述第一发送单元向所述源服务器发送第三请求信息,所述第三请求信息指示未缓存的所述数据及所述数据的起始点;所述第二接收单元,还用于接收所述源服务器从所述起始点发送的所述数据。
[0028]可选地,所述处理単元,还用于若所述第二接收单元接收到的所述源服务器发送的未缓存的所述数据,获取所述数据中包含的随机访问点,则根据所述随机访问点更新所述请求点。
[0029]另ー方面,提供一种系统,包括:源服务器和至少ー个上述的缓存服务器;
[0030]所述源服务器,用于接收所述缓存服务器发送的第二请求,所述第二请求信息指示所述缓存服务器中未缓存的数据及所述数据的请求点;从所述请求点对应位置开始向所述缓存服务器发送未缓存的所述数据。
[0031]缓存服务器的服务方法、缓存服务器及系统,缓存服务器接收多个用户设备发送的第一请求信息,每个第一请求信息指示多个用户设备各自所需的数据及所述各自所需数据的请求点;若确定接收的多个用户设备中至少两个用户设备所需的数据相同且该相同的数据未缓存在所述缓存服务器,则在落入每个预设窗口内的请求点中选择ー个请求点;并向源服务器发送指示该未缓存的数据和选择了的请求点的第二请求信息。这样ー来,缓存服务器可以通过预设窗ロ避免对请求点相近的同一数据的重复请求,由于同一个预设窗ロ内的请求点位置接近,可以作为对同一个请求点的请求,所以在预设窗口内选择ー个请求点向源服务器发送请求,可以减少对本缓存服务器与源服务器的上游网络的带宽消耗,从而降低上游网络的流量,缓解网络压力。
【专利附图】

【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明实施例提供的缓存服务器的服务方法流程示意图;
[0034]图2为本发明实施例提供的缓存服务器的另一服务方法流程示意图;
[0035]图3为本发明实施例提供的缓存服务器接收到随机访问点的数据示意图;
[0036]图4为本发明实施例提供的缓存服务器的结构示意图;
[0037]图5为本发明实施例提供的缓存服务器的结构示意图;
[0038]图6为本发明实施例提供的又ー缓存服务器的结构示意图;
[0039]图7为本发明实施例提供的系统结构示意图。
【具体实施方式】
[0040]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]如图1所示,一种缓存服务器的服务方法,包括:
[0042]S101、缓存服务器接收多个用户设备发送的第一请求信息,所述第一请求信息指示用户设备所需的数据及数据的请求点。
[0043]示例性的,缓存服务器可以为Cache服务器,若缓存服务器接收了用户设备A,B,C,D,E分别发送的第一请求信息,每个第一请求信息中分别指示用户设备A,B,C,D,E所请求的视频数据及该视频数据的请求点。即用户设备A发送的第一请求信息指示用户设备A所请求的视频数据及该视频数据的请求点,用户设备B发送的第一请求信息指示用户设备B所请求的视频数据及该视频数据的请求点,用户设备C发送的第一请求信息指示用户设备C所请求的视频数据及该视频数据的请求点,用户设备D发送的第一请求信息指示用户设备D所请求的视频数据及该视频数据的请求点,用户设备E发送的第一请求信息指示用户设备E所请求的视频数据及该视频数据的请求点。其中,请求点表示用户设备需要观看该视频数据的起始位置。如果用户设备A、B、C请求的视频数据相同,比如均为电影M,并且用户设备A,B,C请求的该视频数据是不同请求点。用户设备D、E请求的视频数据为X以外的其他视频数据,用户设备D、E请求的视频数据及对应的请求点可以相同或者不同。
[0044]进ー步的,如果用户设备A,B,C不是从整个视频文件M的起始点请求观看,即不是从头开始观看视频文件,那么用户设备A,B,C发送的请求信息中存在指示用户设备A,B,C请求的该视频数据的不同请求点的字段。其中,请求点可以为用户设备请求观看视频时间点相对于整个视频文件初始点的时间点,或者是请求观看视频字节在整个视频文件中的具体字节位置等。如,HTTP (Hypertext Transport Protocol,超文本传送协议)请求消息中,起始行的參数部分会用start=x (or begin=x)来指明本条请求的请求点,其中,x为请求点,可以表示时间,如x=32,表示起始观看时间是第32秒;也可以表示具体字节数,如1204,表示起始观看位置是第1204字节处等。
[0045]S102、若确定发送第一请求信息多个用户设备中的至少两个用户设备发送的第一请求信息指示的数据相同且该数据未缓存在缓存服务器上,则在落入每个预设窗口内的请求点中选择ー个请求点。
[0046]需要说明的是,若缓存服务器接收到的多个用户设备的第一请求信息指示的是已缓存在所述缓存服务器上的数据,则可以从用户设备请求的请求点开始向每个用户设备发送该用户设备请求的数据。若某个或某些用户设备请求的是未缓存在所述缓存服务器上的数据,则缓存服务器向源服务器请求该未缓存在所述缓存服务器上的数据,接收这些数据后再向相应的用户设备发送。
[0047]若缓存服务器收到多个用户设备中的至少两个用户设备对同一未缓存的数据进行请求,若对接收到的这段视频数据的各个请求点都単独进行请求和转发,则需要占用较大的上游网络流量,所以可以利用预设窗ロ对所述至少两个用户设备所需的相同或不同的请求点进行选择,如根据预设窗ロ从至少两个用户设备的第一请求信息指示的该相同数据的请求点中选择ー个请求点发送,从而減少重复发送,降低对上游网络带宽的消耗。
[0048]示例性的,预设窗ロ的大小可以根据时间设定,如预设窗ロ为6秒,此时缓存服务器同时收到用户设备A,B,C对缓存服务器未缓存的同一个文件M进行请求的第一请求信息,所述用户设备A,B,C请求的文件M记作“f ile-abc”。以HTTP请求消息为例,假设用户设备A,B,C的请求分别如下:
[0049]用户设备A:“http://xyz.com/file-abc?start=32&...”
[0050]用户设备B:“http://xyz.com/file-abc?start=58&...”
[0051]用户设备C:“http://xyz.com/file-abc?start=60&...”
[0052]其中,start字段的单位为秒,当然也可以以其他时间单位,比如分钟,为start字段的単位。另外,也可以以任意时间长度作为start字段的単位,比如可以设置每5秒为I个start字段的计时单位。本示例中以秒为start字段的单位。[0053]从用户设备A、用户设备B和用户设备C的请求信息中可知,用户设备A和用户设备B请求的请求点之间的差值为26秒(startA-startB=58-32=26秒)。由于预设窗ロ的大小为6s,用户设备A和用户设备B请求的请求点之间的差值大于预设窗ロ的大小,因此用户设备A的请求点和用户设备B的请求点不在ー个预设窗ロ内。而用户设备B和用户设备C之间请求点的差值为2 (startc-startB=60-58=2秒)秒,用户设备B和用户设备C之间请求点的差值小于预设窗ロ的大小。也就是说,用户设备B和用户设备C的请求点在ー个预设窗ロ之内,此时,缓存服务器则从这个预设窗口内用户设备B的请求点和用户设备C的请求点中选择ー个请求点。可选的,缓存服务器可以忽略用户C的请求点,选择距离预设窗ロ起始位置最近的用户设备B的请求点。
[0054]预设窗ロ可以在一段数据中按照该数据的时间或字节位置,预先设定好,如一段360秒的视频,从起始点第0秒开始,每6秒设置ー个预设窗ロ。也可以是根据接收到的第一请求信息中的请求点的位置设定预设窗ロ。如上述示例中,第一个预设窗ロ可以是从第32秒处开始,大小为6秒,那么用户设备A和用户设备B的请求点之差大于6秒,未落入同ー个预设窗ロ中;第二个预设窗ロ可以是从第58秒处开始,大小为6秒,那么用户设备B和用户设备C的请求点之差小于6秒,用户设备B和用户设备C的请求点落入同一个预设窗ロ中。进ー步的,在落入同一个预设窗ロ中的请求点中选择ー个请求点,可以选择距离预设窗ロ起始位置最近的用户设备的请求点。如在预先设置好的预设窗口中,若预设窗ロ从第240秒开始至246秒结束,选择距离第240秒最近的请求点。如预设窗ロ根据接到的第一请求信息的请求点确定,如根据用户设备B的请求点确定时,用户设备B和用户设备C的请求点都落入该预设窗ロ,由于预设窗ロ从用户设备B请求点的位置开始,所以用户设备B的请求点为距离预设窗ロ最近的请求点,选择该用户设备B的请求点即可。选择距离预设窗ロ起始位置最近的请求点,可以将落入此预设窗ロ的其他用户设备所需的请求点所需的数据都涵盖,以使缓存服务器向源服务器发送的该窗口内的请求点包含请求点落入该预设窗ロ的用户设备所需的所有内容。
[0055]需要说明的是,这里仅以用户设备B和用户设备C所属的预设窗ロ为例进行说明,若缓存服务器在同一时刻或在预定时间内还接收到其他用户设备的第一请求信息,并且其他多个用户设备的第一请求信息中指示请求点在某ー个预设窗口内,则也可以采用同样的方法选择ー个请求点,忽略其他的请求点。比如用户设备D和用户设备E如果同时请求数据N,并且该数据N在缓存服务器上没有缓存,则需要根据用户设备D的请求点和用户设备E的请求点及预设窗ロ来确定是否从用户设备D的请求点和用户设备E的请求点中选择ー个请求点,忽略掉另ー个请求点。如果用户设备D与用户设备E的请求点之差小于预设窗ロ,则在用户设备D的请求点与用户设备E的请求点中选择ー个请求点,可以是选择距离预设窗ロ起始位置最近的用户设备的请求点。所述预定时间可以是用户设备在发出请求后到用户看到视频的预计时间,或者更短ー些的时间。
[0056]进ー步的,当前预设窗ロ的大小还可以根据字节设定,如预设窗ロ为2048字节,那么若用户设备A请求的请求点为第1050字节、用户设备B请求的请求点为第1090字节,用户设备C请求的请求点为第2000字节,那么用户设备A的请求点与用户设备B请求的请求点之间的差值为40字节、用户设备A与用户设备C请求的请求点之间的差值为50字节、用户设备B与用户设备C请求的请求点之间的差值为10字节,都小于预设窗ロ的2048字节,所以用户设备A、B、C在同一个预设窗口内,可以选择距离预设窗ロ起始位置最近的用户设备A的请求点,将用户设备B和用户C的请求点忽略。在落入同一个预设窗口中的请求点中选择ー个请求点,可以是选择距离预设窗ロ起始位置最近的用户设备的请求点。
[0057]值得指出的是,预设窗ロ大小可以是固定的,也可以动态进行调整。影响窗ロ大小的因素可以是缓存服务器上游的网络状况,包括上游丢包率、上游网络时延等。除此之外,影响窗ロ大小的因素还可以包括用户的网络状况,如用户业务带宽、用户网络时延等,以及用户的体验期望等因素。预设窗ロ的大小与各影响因素的关系可用下面的关系式定性地加以说明:
[0058]
[0059]其中Sizewin为预设窗ロ的大小,BWusot为用户设备的业务带宽,RTTusot为用户延时,RTTup为上游网络延吋,PLRup为上游网络丢包率,Euser为用户体验期望。从上述公式可以看出上游网络状况越差,即上游丢包率越高,时延越大,预设窗ロ越小;用户网络状况越差,即用户业务带宽一定的情况下,时延越大,预设窗ロ越小;用户体验期望越高,预设窗ロ越小等。
[0060]预设窗ロ大小可以设置为根据网络状况动态可变,可以设定为ー个经过多次实验优化取值的固定值。
[0061]S103、缓存服务器向源服务器发送第二请求信息,第二请求信息指示所述未缓存的数据及所述选择的请求点。
[0062]示例性的,缓存服务器向源服务器发送指示所述选择的请求点的第二请求信息,如缓存服务器在收到用户设备A,B,C对缓存服务器未缓存的同一个文件记作“ file-abc”的请求后,选择了用户设备A和用户设备B的请求点,缓存服务器向源服务器发送两个第二请求信息,其中ー个第二请求信息指示该文件“file-abc”和用户设备A的请求点,另ー个第二请求信息就指示该文件“file-abc”和用户设备B的请求点。
[0063]这样ー来,缓存服务器就可以将源服务器发送的数据,如视频数据、音频数据等根据用户设备请求的请求点所对应的位置,分别向同一预设窗口内的用户设备发送,这样上游网络带宽消耗降低的同时,满足了用户观看需求。
[0064]上述缓存服务器的服务方法,缓存服务器同时或在预定时间内接收到多个用户设备分别发送的第一请求信息,每个第一请求信息指示所述多个用户设备中的ー个用户设备所需的数据及该数据的请求点;若确定接收到的多个用户设备中的至少两个用户设备所请求的数据相同且未在该缓存服务器中缓存该相同数据,则在落入每个预设窗口内的至少两个用户设备的请求点中选择ー个请求点;并向源服务器发送指示该数据和选择了的请求点的第二请求信息。这样ー来,缓存服务器可以通过预设窗ロ避免对请求点相近的同一数据的重复请求,由于同一个预设窗口内的请求点位置接近,可以作为对同一个请求点的请求,所以在预设窗口内选择ー个请求点向源服务器发送请求,可以减少对本缓存服务器与源服务器的上游网络的带宽消耗,从而降低上游网络的流量,缓解网络压力。
[0065]以缓存服务器为Cache服务器,数据为视频数据为例说明,但不以此做任何限定,如图2所示,另ー种缓存服务器的服务方法包括:
[0066]S201、缓存服务器接收多个用户设备分别发送的多个第一请求信息,每个第一请求信息指示该多个用户设备中的一个用户设备所需的视频数据及对该视频数据的请求点。
[0067]需要说明的是,缓存服务器接收到的第一请求信息指示的视频数据如果是已缓存在缓存服务器上的视频数据,则将对应视频数据信息分别发送给发出请求的用户设备。如果接收到的多个第一请求信息中的至少两个第一请求信息指示的视频数据是缓存服务器未缓存的视频数据,且未缓存的视频数据可能是相同视频数据,可能是不同视频数据,也可能既有相同的视频数据,也有不同的视频数据。
[0068]若未缓存的至少两个数据既有相同的视频数据,也有不同的视频数据,则缓存服务器可以逐一选择相同的未缓存在所述缓存服务器上的视频数据,根据相应的第一请求信息中的请求点进行处理,处理完成ー个相同的视频数据后,再选择下ー个相同的视频数据进行处理;也可以同时选择多组未缓存在所述缓存服务器的视频数据分别进行处理,这多组本地未缓存在所述缓存服务器的视频数据中,每组内的未缓存在所述缓存服务器的视频数据相同,请求点可能相同或不同。
[0069]示例性的,不同未缓存的视频数据可以是多个用户对多个视频数据的请求,如用户设备A、用户设备B和用户设备C请求第一个电影,用户设备D、用户设备E和用户设备F请求第二个电影,用户设备G请求第三个电影,用户设备H请求第四个电影。这时缓存服务器可以向源服务器发送用户设备G对第三个电影的请求信息和用户设备H对第四个电影的第一请求信息。而对于多个用户设备,如用户设备A、用户设备B和用户设备C对第一个电影的请求和用户设备D、用户设备E和用户设备F对第二个电影的请求,需要通过S203选择请求点后再向源服务器发送指示该选择了的请求点的第二请求信息。
[0070]若未缓存的视频数据是不同视频数据,则执行S202 ;若未缓存的视频数据是相同视频数据,则执行S203。
[0071]S202、缓存服务器向源服务器发送第二请求信息,其中,第二请求信息指示各视频数据及各个视频数据的请求点。
[0072]需要说明的是,如果缓存服务器接到的多个用户设备分别发出的第一请求信息中请求的视频数据不相同,而且这些视频数据均未缓存在缓存服务器上,则不用选择请求点,可以向源服务器发送各个视频数据和该视频数据请求点的第二请求信息。
[0073]S203、缓存服务器根据未缓存在缓存服务器的视频数据及请求点,选择ー个请求点。
[0074]需要说明的是,预设窗ロ可以依据时间设置,如设置为6秒等;也可以用字节数来进行衡量,如设置为I兆字节等,也可以同时以这两种标准进行设置。预设窗ロ可以设定初始值,如预设窗ロ默认为6秒,或为IM字节等,判断请求同一个数据的多个请求点是否在一个预设窗口内和从ー个预设窗口中选择ー个请求点的方法在上述实施例中已经详细描述,在此不再赘述。
[0075]需要说明的是,如果用户设备所需的视频数据未缓存在缓存服务器,则不论所需的视频数据是否相同,请求点是否相同就向源服务器转发,会对上游网络造成较大的带宽消耗,所以若可以利用预设窗ロ选择位于每个预设窗ロ内的一个请求点,其中,位于每个预设窗口内的请求点可以是多个所请求数据相同的请求点,多个所请求数据不同的请求点,或者多个所请求数据相同的请求点和多个所请求数据不同的请求点。
[0076]值得指出的是,缓存服务器在未接收到第二请求信息中所指示的视频数据之前,请求点为用户设备发送的第一请求信息中指示的请求点,当缓存服务器接收到视频数据时,从视频数据中获取随机访问点,然后可以根据随机访问点更新指示的请求点的位置。
[0077]一般情况下,视频数据在进行压缩编码之后,会按照一定的格式进行封装,然后才在网络上进行传输。互联网视频常见的封装格式有:mp4、flv、f4v等等,mp4、flv、f4v等通常被称为容器。容器会将它所封装的视频编码数据中的所有信息,如音频和视频的编码方式、图像的分辨率、视频持续时长、随机访问点的位置等进行汇总,以支持播放时的各种操作,如拖拉、回放、快进等。这些汇总信息通常放在整个视频文件的起始部分,无论是ー个完整的视频还是部分视频片段,都含有该信息,否则播放器无法进行播放。
[0078]所以缓存服务器只要接收到小部分的视频数据就可以获取到随机访问点的信息,如前ー时刻有用户设备对该视频数据进行了请求,缓存服务器才接收了小部分的视频数据,并未接收完并缓存该视频数据,这时缓存服务器得到了该段视频数据的随机访问点的信息,缓存服务器会先根据随机访问点的位置,对用户设备请求的请求点进行调整,然后对调整后请求点在预设窗ロ中进行选择。
[0079]示例性的,如图3所示,视频数据20的随机访问点的位置分别记作A’处、B’处和C’处,及某一时刻用户设备A、用户设备B和用户设备C对该文件的3个请求点,分别记作请求点A、请求点B和请求点C。假设用户设备A、用户设备B和用户设备C对该文件的3个请求点对应的时间点分别为第42秒、第46秒和第50秒,当前预设窗ロ的大小为6秒;而随机访问点A’处、B’处和C’处对应的时间点分别是第41.333秒、第45.583秒和第51.583秒。那么,调整前,由于用户设备A的请求点和用户设备B的请求点之间的差值小于预设窗ロ大小,因此它们处于同一窗ロ,而用户设备A的请求点和用户设备C的请求点之间的差值比窗ロ大,所以用户设备A的请求点和用户设备B的请求点在ー个预设窗口中,用户设备C的请求点在另ー个预设窗口中,这3条请求信息最終位于两个不同的窗ロ,缓存服务器选择后会选择向源服务器发送指示用户设备A所需数据和用户设备C所需数据的两条请求。
[0080]通过随机访问点的位置可以发现请求点B和请求点C在同一个GOP (Group ofPictures,画面组)中。其中,GOP是两个相邻的随机访问点之间,包含前ー个随机访问点,不包含后一个随机访问点的视频数据。实际上虽然缓存服务器向源服务器请求的是同一个GOP中不同位置点的数据,但源服务器通常都是从该GOP的随机访问点B’处开始下发数据,这样用户设备B和用户设备C接收到数据之后,就能够从B’处立即开始播放。需要说明的是,随机访问点是该视频数据可以立即播放的点,虽然观看视频设备可以将拖条置于任何位置,但不是所有的位置都可以立即播放视频数据的,视频总是从拖条指示的请求点附近的随机访问点处开始播放,因此,上述用户设备B、用户设备C的请求点在ー个GOP之内,可以归结为ー个请求点,也就是说,缓存服务器向源服务器发送请求点为B’处的一条请求信息就可以完成用户设备B和用户设备C对该视频数据的请求。同样请求点A的位置可以调整到请求点为A’处。这样,对A、B、C三个请求点调整之后,就变成起点为A’处和B’处的两个请求点。
[0081]值得指出的是,有的服务器也可能从请求点后ー个GOP处开始下发数据,本实施例仅以从前ー个GOP处开始下发数据为例进行说明,并不以此做任何限定。
[0082]然后,缓存服务器对调整后的请求,根据是否在预设窗口内进行选择。由于随机访问点A’和随机访问点B’之间的差值为4.25秒,小于预设窗ロ大小6秒,因此它们处于同一预设窗口内。此时,缓存服务器只向源服务器发送一条第二请求信息。可选的,可以向源服务器转发距离预设窗ロ起始位置最近的请求点A的请求信息,这个请求点的具体位置可以是用户设备A的第一请求信息指示的请求点A,也可以是对用户设备A的第一请求信息指示的请求点A调整后的请求点A’处。这样ー来降低了上游带宽的占用,同时也减轻了缓存服务器可能需要拼接多个视频片段的性能开销。
[0083]值得指出的是,缓存服务器在获取到用户设备所请求的视频数据的随机访问点的信息之后,对于后续用户设备请求的处理,在所请求的视频仍未缓存的情况下,缓存服务器可以先对用户的请求点按随机访问点的位置进行调整,然后再按预设窗ロ对调整后的请求点进行选择;也可以先对用户的请求点按预设窗ロ进行选择,然后再对选择后的请求点按随机访问点的位置进行调整,最后再按预设窗ロ对调整后的请求点进行选择。
[0084]进ー步的,有时缓存服务器从视频头部中所获取的随机访问点的位置并不是它们在整个视频文件中的位置,而是它们在当前视频片段中的位置。这种情况下,缓存服务器可以根据当前片段的请求点和容器头部中的视频数据信息,换算出它们在整个视频文件中的位置。这样,后续的请求依然可以按照本实施例进行。
[0085]S204、缓存服务器向源服务器发送第二请求信息,第二请求信息指示未缓存的视频数据及选择的请求点。
[0086]需要说明的是,缓存服务器向源服务器发送的第二请求信息可以为多条,如每一个预设窗ロ中选择出的请求点都对应着ー个第二请求信息,缓存服务器可以分别向源服务器发送指示这些选择了的请求点的第二请求信息,以使得源服务器根据这些请求点对应的位置向缓存服务器发送请求点对应的视频数据。
[0087]S205、缓存服务器接收源服务器发送的从第二请求信息中指示的请求点对应位置开始的未缓存的视频数据。
[0088]示例性的,如果缓存服务器向源服务器发送的第二请求信息指示的请求点为第130秒,第330秒和第5690秒,那么源服务器也分别从第130秒,第330秒和第5690秒所对应的位置向缓存服务器发送视频数据,需要说明的是,由于缓存服务器可以同时接收从这三个请求点开始的视频数据,缓存服务器接收从第130秒发送的视频数据到第330秒吋,第330秒开始之后的内容已经有部分被接收,所以缓存服务器不再重复接收已经接收了的内容,缓存服务器接收完从第130秒所对应的数据到第330秒所对应的数据时,缓存服务器主动断开与源服务器的连接,終止对从第330秒对应位置之后的数据进行重复接收。
[0089]S206、缓存服务器对接收的未缓存的视频数据进行拼接。
[0090]需要说明的是,由于缓存服务器停止接收已接收的未缓存的视频数据,即缓存服务器不对视频数据进行重复的接收,那么缓存服务器需要将分别接收的该视频数据的片段拼接成一个完整的视频数据或视频片段数据。
[0091]缓存服务器对视频数据进行拼接后,可以执行S210 ;另外,若拼接后得到一段完整的视频,则执行S209,若拼接后的视频不完整,则执行S207。
[0092]S207、缓存服务器向源服务器发送第三请求信息,第三请求信息指示未缓存的视频数据及所述未缓存的视频数据的起始点。
[0093]示例性的,缓存服务器只接收并拼接了从第300秒到结束的视频数据,那么缓存服务器向源服务器发送指示该视频数据和起始点的第三请求信息。其中,起始点为该视频数据的第O秒开始的位置,以使得源服务器从起始点向缓存服务器发送视频数据,起始点可以作为ー个特殊位置的请求点,即用户设备所需数据的最开始位置的请求点为起始点。
[0094]S208、缓存服务器接收源服务器发送的从起始点开始的视频数据。
[0095]需要说明的是,缓存服务器接收源服务器发送的从起始点开始的视频数据后,可以利用接收的、由起始点开始的这段视频数据,将已经接收的,拼接不完整的该视频数据与这段视频数据进行拼接,以得到一个完整的视频数据。
[0096]S209、缓存服务器对拼接后的视频数据进行缓存。
[0097]S210、缓存服务器根据接收到的多个用户设备发送的第一请求信息指示的请求点,从各个用户设备发送的第一请求信息指示的请求点所对应的位置分别向各个用户设备发送视频数据。
[0098]示例性的,缓存服务器向用户设备A发送从用户设备A的请求点A起始的视频数据,向用户设备B发送从用户设备B的请求点B起始的视频数据,向用户设备C发送从用户设备C的请求点C起始的视频数据。进ー步的,也可以从调整后的随机访问点向用户设备分别发送视频数据。
[0099]本发明实施例提供的缓存服务器的服务方法,缓存服务器接收多个用户设备发送的第一请求信息,每个第一请求信息指示用户设备所需的数据及所需数据的请求点;若确定接收的用户设备所需的数据相同且未缓存在缓存服务器上,则在落入每个预设窗口内的请求点中选择ー个请求点;并向源服务器发送指示该数据和选择了的请求点的第二请求信息。这样ー来,缓存服务器可以通过预设窗ロ避免对请求点相近的同一数据的重复请求,由于同一个预设窗口内的请求点位置接近,可以作为对同一个请求点的请求,所以在预设窗口内选择ー个请求点向源服务器发送请求,可以减少对本缓存服务器与源服务器的上游网络的带宽消耗,从而降低上游网络的流量,缓解网络压力。
[0100]一种缓存服务器30,如图4所示,包括第一接收单元301、选择单元302和第一发送单元303。其中:
[0101]第一接收单元301,用于接收多个用户设备发送的第一请求信息,第一请求信息指示各个用户设备所需的数据及各个用户设备所需的数据的请求点。
[0102]选择单元302,用于若确定第一接收单元301接收的多个用户设备中至少两个用户设备发送的第一请求信息指示的数据相同且该相同的数据未缓存在缓存服务器上,则在落入每个预设窗ロ内的请求点中选择ー个请求点。
[0103]示例性的,选择单元302在落入每个预设窗口内多个相同请求点中、多个不同请求点中或多个不同请求点和相同请求点中选择与预设窗ロ起始位置最近的一个请求点。
[0104]第一发送单元303,用于向源服务器发送第二请求信息,第二请求信息指示未缓存的数据及选择单元302选择的请求点。
[0105]进ー步的,第一发送单元303还用于若至少ー个用户设备的请求信息指示同一个未缓存的数据及未缓存数据的不同请求点,请求点在不同预设窗口内,则向源服务器发送指示各个未缓存的数据及该数据对于请求点的第二请求信息。
[0106]进ー步的,如图5所示,缓存服务器30,还包括第二接收单元304和第二发送单元305,其中:
[0107]第二接收单元304,用于接收源服务器40发送的从请求点所对应的位置开始的未缓存的数据。
[0108]进ー步的,第二接收单元304接收源服务器40从不同请求点对应位置发送的未接收的未缓存的数据,停止接收已接收的未缓存的数据,即不重复接收未缓存的数据。
[0109]第二发送单元305,用于根据第一接收单元301接收的多个用户设备发送的第一请求信息指示的请求点所对应的位置,从请求点所对应的位置分别向用户设备发送第二接收单元304接收的数据。
[0110]进ー步的,如图6所示,缓存服务器30,还包括拼接单元306、缓存单元307和处理単元308,其中:
[0111]拼接单元306,用于对第二接收单元304接收的未缓存的数据进行拼接。
[0112]需要说明的是,在缓存单元307对未缓存的数据进行缓存之前,处理单元308用于若拼接单元306拼接后的未缓存的数据不完整,则使得第一发送单元303向源服务器40发送第三请求信息,第三请求信息指示未缓存的数据及数据的起始点。第二接收单元304还用于接收源服务器40从起始点开始发送的数据,以使得拼接单元306再对第二接收单元304接收的该数据和之前拼接的不完整的数据进行拼接。
[0113]缓存单元307,用于对拼接単元306拼接后的数据进行缓存。
[0114]进ー步的,处理单元308还可以用于第二接收单元304接收到的源服务器40发送的未缓存的数据,获取数据中包含的随机访问点,根据随机访问点更新请求点。
[0115]上述缓存服务器30对应上述方法实施例,可以用于上述方法实施例的步骤中,其具体各个步骤中的应用可以參照上述方法实施例,在此不再赘述。
[0116]本发明实施例提供的缓存服务器30,缓存服务器30接收至少两个用户设备发送的第一请求信息,每个第一请求信息指示用户设备所需的数据及数据的请求点;若确定接收的用户设备所需的数据相同且未缓存在缓存服务器,则在落入每个预设窗口内的请求点中选择ー个请求点;并向源服务器发送指示该数据和选择了的请求点的第二请求信息。这样ー来,缓存服务器30可以通过预设窗ロ避免对请求点相近的同一数据的重复请求,由于同一个预设窗口内的请求点位置接近,可以作为对同一个请求点的请求,所以在预设窗ロ内选择ー个请求点向源服务器发送请求,可以减少对本缓存服务器30与源服务器的上游网络的带宽消耗,从而降低上游网络的流量,缓解网络压力。
[0117]本发明实施例提供的系统,如图7所示,包括一个或多个缓存服务器30和源服务器40,其中:
[0118]所述缓存服务器30可以是图4-6中至少ー个所述的缓存服务器30。
[0119]源服务器40,用于接收缓存服务器30发送的第二请求,第二请求信息指示未缓存在缓存服务器的数据及数据的请求点;从请求点对应的位置开始向缓存服务器30发送未缓存的数据。
[0120]需要说明是,上述缓存服务器30和源服务器40对应上述方法实施例,可以用于上述方法实施例的步骤中,其具体各个步骤中的应用可以參照上述方法实施例,缓存服务器30的具体结构与上述实施例中提供的缓存服务器的结构相同,在此不再赘述。
[0121]本发明实施例提供的系统,缓存服务器30接收至少两个用户设备发送的第一请求信息,每个第一请求信息指示用户设备所需的数据及数据的请求点;若确定接收的用户设备所需的数据相同且未缓存在缓存服务器,则在落入每个预设窗口内的请求点中选择ー个请求点;并向源服务器40发送指示该数据和选择了的请求点的第二请求信息。这样ー来,缓存服务器30可以通过预设窗ロ避免对请求点相近的同一数据的重复请求,由于同一个预设窗口内的请求点位置接近,可以作为对同一个请求点的请求,所以在预设窗口内选择ー个请求点向源服务器40发送请求,可以减少对本缓存服务器30与源服务器40的上游网络的带宽消耗,从而降低上游网络的流量,缓解网络压力。
[0122]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以储存于ー计算机可读取储存介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的储存介质包括:R0M、RAM、磁碟或者光盘等各种可以储存程序代码的介质。
[0123]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种缓存服务器的服务方法,其特征在于,包括: 接收多个用户设备发送的第一请求信息,所述第一请求信息指示所述多个用户设备各自所需的数据及各自所需数据的请求点; 若确定所述多个用户设备中的至少两个用户设备发送的所述第一请求信息指示的数据相同且所述相同的数据未缓存在该缓存服务器,则在落入预设窗口内的请求点中选择ー个请求点; 向源服务器发送第二请求信息,所述第二请求信息指示所述未缓存的数据及所述选择的请求点。
2.根据权利要求1所述的服务方法,其特征在于,所述预设窗ロ为预设固定窗ロ或预设动态变化窗ロ。
3.根据权利要求2所述的服务方法,其特征在于,所述预设固定窗ロ为占用时间固定或占用字节固定的窗ロ。
4.根据权利要求2所述的服务方法,其特征在于,所述预设动态变化窗ロ为根据用户状态和上游网络状态占用时间动态变化的窗ロ,或根据上游网络状态和用户状态占用字节动态变化的窗ロ。
5.根据权利要求3所述的服务方法,其特征在于,所述在每个预设窗口内包括: 请求同一个未缓存的所述数据的不同所述请求点之间时间差小于或等于预设窗口占用的时间。`
6.根据权利要求4所述的服务方法,其特征在于,所述在每个预设窗口内包括: 请求同一个未缓存的所述数据的不同所述数据请求点之间字节差小于或等于预设窗口占用的字节。
7.根据权利要求1-6中任一所述的服务方法,其特征在于,所述在落入每个预设窗ロ内的请求点中选择ー个请求点,包括: 在落入每个预设窗ロ内的请求点中选择与所述预设窗ロ起始位置最近的一个请求点。
8.根据权利要求1-7中任一所述的服务方法,其特征在于,所述向源服务器发送第二请求信息之后,还包括: 接收所述源服务器发送的从所述请求点对应位置开始的未缓存的所述数据; 根据接收的所述多个用户设备发送的所述第一请求信息指示的请求点,从所述请求点对应位置分别向所述用户设备发送所述数据。
9.根据权利要求8所述的服务方法,其特征在干, 接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据。
10.根据权利要求9所述的服务方法,其特征在干,所述接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据之后,还包括: 对接收的未缓存的所述数据进行拼接; 对拼接后的所述数据进行缓存。
11.根据权利要求10所述的服务方法,其特征在于,所述对拼接后的所述数据进行缓存之前,还包括:若拼接后的未缓存的所述数据不完整,则向所述源服务器发送第三请求信息,所述第三请求信息指示未缓存的所述数据及所述数据的起始点; 接收所述源服务器从所述起始点发送的所述数据。
12.根据权利要求1至11任一所述的服务方法,其特征在于,所述在落入每个预设窗ロ内的请求点中选择ー个请求点之后,还包括: 若接收到所述源服务器发送的未缓存的所述数据,获取所述数据中包含的随机访问点,则根据所述随机访问点更新所述请求点。
13.ー种缓存服务器,其特征在于,包括: 第一接收单元,用于接收多个用户设备发送的第一请求信息,所述第一请求信息指示所述多个用户设备各自所需的数据及所述各自所需数据的请求点; 选择单元,用于若确定所述第一接收单元接收的多个用户设备中的至少两个用户设备发送的所述第一请求信息指示的数据相同且所述相同的数据未缓存在该缓存服务器,则在落入每个预设窗ロ内的请求点中选择ー个请求点; 第一发送单元,用于向源服务器发送第二请求信息,所述第二请求信息指示所述未缓存的数据及所述选择単元选择的所述请求点。
14.根据权利要求13所述的缓存服务器,其特征在干, 所述选择単元,具体用于在落入每个预设窗口内的请求点中选择与所述预设窗ロ起始位置最近的一个请求点。
15.根据权利要求13所述的缓存服务器,其特征在于,还包括第二接收单元和第二发送单元,其中: 所述第二接收单元,用于接收所述源服务器发送的从所述请求点对应位置开始的未缓存的所述数据; 所述第二发送单元,用于根据所述第一接收单元接收的所述多个用户设备发送的所述第一请求信息指示的请求点,从所述请求点对应位置分别向所述用户设备发送所述第二接收单元接收的所述数据。
16.根据权利要求15所述的缓存服务器,其特征在干, 所述第二接收单元,具体用于接收所述源服务器从所述请求点发送的未接收的未缓存的所述数据,停止接收已接收的未缓存的所述数据。
17.根据权利要求16所述的缓存服务器,其特征在于,还包括拼接单元和缓存单元,其中: 所述拼接単元,用于对所述第二接收单元接收的未缓存的所述数据进行拼接; 所述缓存単元,用于对所述拼接单元拼接后的所述数据进行缓存。
18.根据权利要求17所述的缓存服务器,其特征在于,还包括处理单元,其中: 所述处理単元,用于若所述拼接单元拼接后的未缓存的所述数据不完整,则使得所述第一发送单元向所述源服务器发送第三请求信息,所述第三请求信息指示未缓存的所述数据及所述数据的起始点; 所述第二接收单元,还用于接收所述源服务器从所述起始点发送的所述数据。
19.根据权利要求13至18所述的缓存服务器,其特征在干,所述处理単元,还用于若所述第二接收单元接收到的所述源服务器发送的未缓存的所述数据,获取所述数据中包含的随机访问点,则根据所述随机访问点更新所述请求点。
20.一种系统,其特征在于,包括源服务器和至少ー个缓存服务器,其中: 所述缓存服务器为权利要求13-19任一项所述的缓存服务器; 所述源服务器,用于接收所述缓存服务器发送的第二请求,所述第二请求信息指示所述缓存服务器收到的第一请求信息中指示的未缓存在所述缓存服务器的数据及所述数据的请求点;从所述请 求点对应位置开始向所述缓存服务器发送未缓存的所述数据。
【文档编号】H04L29/08GK103516731SQ201210199126
【公开日】2014年1月15日 申请日期:2012年6月15日 优先权日:2012年6月15日
【发明者】于文晓, 张锦辉, 杨友庆 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1