首页> 中国专利> 在互联网中用于加速点播多媒体内容的方法与装置

在互联网中用于加速点播多媒体内容的方法与装置

摘要

本发明提出在互联网中用于加速点播多媒体内容的方法与装置。其中,用户终端获取所请求的多媒体内容在多媒体服务器上的地址并根据该地址信息获取相应的指示信息,根据指示信息获取多个包含与该待下载的多媒体内容相同的内容的网络节点的相关信息,而后根据该多个网络节点的相关信息,基于P2P协议,加速多媒体内容的下载,以作为从多媒体服务器基于HTTP下载的补充。根据本发明的方法和装置,能够提高下载的速度,从而提高在线播放多媒体内容的流畅度,改善用户体验。

著录项

  • 公开/公告号CN101883079A

    专利类型发明专利

  • 公开/公告日2010-11-10

    原文格式PDF

  • 申请/专利权人 上海聚力传媒技术有限公司;

    申请/专利号CN200910050986.2

  • 发明设计人 王闻宇;朱巍;汪奕菲;

    申请日2009-05-08

  • 分类号H04L29/06(20060101);H04L29/08(20060101);H04N7/173(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人郑立柱

  • 地址 201203 上海市张江高科技园区碧波路690号5号楼501室

  • 入库时间 2023-12-18 01:00:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-16

    未缴年费专利权终止 IPC(主分类):H04L29/06 专利号:ZL2009100509862 申请日:20090508 授权公告日:20160127

    专利权的终止

  • 2016-01-27

    授权

    授权

  • 2012-06-20

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20090508

    实质审查的生效

  • 2010-11-10

    公开

    公开

说明书

技术领域

本发明涉及在互联网中点播多媒体内容的方法与装置,尤其涉及在互联网中对点播多媒体内容进行加速的方法与装置。

背景技术

目前,由于互联网技术和多媒体处理技术的迅速发展,使得通过互联网传输多媒体内容愈加方便,因而内容提供商在互联网上提供了越来越多的多媒体内容,也有越来越多的用户依赖于互联网这一新媒介在线收听、收看多媒体内容。

传统的多媒体点播服务主要基于服务器/客户端(Client/Server,C/S)的模式运营。多媒体数据如视频,主要集中存储在服务器端,用户基于HTTP协议通过网页浏览器与相应服务器建立连接并下载视频数据,达到在线观看的目的。这种模式一定程度上实现了视频点播服务,然而这种模式下服务器所能承载的用户数量很有限,当用户规模扩大后,就须要增加服务器及相应的服务器端带宽,且下载的灵活度不够,只能提供单线程下载,此外,下载的速度也受限于服务器的带宽,无法提供高速的多媒体内容下载。

鉴于现有技术中存在的上述问题,本发明提出了采用P2SP(Peer To Server and Peer,点对点端)技术对以HTTP方式的在线点播进行加速的方案,极大地提高了在线点播的视频播放速度,带来了更好的用户体验(User Experience)。

发明内容

为了解决传统的基于HTTP协议的在线点播方式中,随着希望点播同一个多媒体内容的用户数量的增加而服务器的带宽有限,而导致用户无法正常点播多媒体内容的问题,本发明提出了采用P2SP(Peer ToServer and Peer,点对点端)技术对以HTTP方式的在线点播进行加速的方案。

具体地,根据本发明的第一方面,提供了一种在用户终端中点播多媒体内容的方法,其中,所述用户终端获取所述多媒体内容在多媒体服务器上的地址信息,并根据该地址信息进行所述多媒体内容的点播,该方法还包括以下步骤:根据所述地址信息,获取所述多媒体内容的指示信息;根据所述指示信息,当一个或多个点到点网络资源中包含所述多媒体内容时,获取所述一个或多个点到点网络资源的资源相关信息;根据所述资源相关信息,对所述点播进行加速;

根据本发明的第二方面,提供了一种在第一网络服务器中用于辅助用户终端下载多媒体内容的方法,其中,包括以下步骤:获取来自所述用户终端的指示信息;根据所述指示信息,获取所述多媒体内容的第一内容标识信息;将所述第一内容标识信息提供给所述用户终端;

根据本发明的第三方面,提供了一种在第二网络服务器中用于辅助用户终端加速下载多媒体内容的辅助下载方法,多媒体服务器包含所述待下载的多媒体内容,该辅助下载方法包括如下步骤:接收来自所述用户终端的与所述用户终端所请求的多媒体内容相对应的节点相关信息;根据所述节点相关信息,获取对应的分片的其它用户终端节点的相关信息;将所述其它用户终端节点的相关信息发送给所述用户终端;

根据本发明的第四个方面,提供了一种在用户终端中点播多媒体内容的控制装置,其中,包括,地址信息获取装置,用于获取所述多媒体内容在多媒体服务器上的地址信息,点播装置,用于根据该地址信息进行所述多媒体内容的点播,该控制装置还包括:指示信息获取装置,用于根据所述地址信息,获取所述多媒体内容的指示信息;节点资源获取装置,用于根据所述指示信息,当一个或多个点到点网络资源中包含所述多媒体内容时,获取所述一个或多个点到点网络资源的资源相关信息;点播加速装置,用于根据所述资源相关信息,对所述点播进行加速;

根据本发明的第五方面,提供了一种在第一网络服务器中用于辅助用户终端下载多媒体内容的第一辅助装置,其中,包括以下步骤:

第一获取装置,用于获取来自所述用户终端的指示信息;

第一提供装置,用于根据所述指示信息,获取所述多媒体内容的第一内容标识信息,并将所述第一内容标识信息提供给所述用户终端;

根据本发明的第六方面,提供了一种在第二网络服务器中用于辅助用户终端加速下载多媒体内容的第二辅助下载方法,多媒体服务器包含所述待下载的多媒体内容,该辅助下载方法包括如下步骤:

第二获取装置,用于接收来自所述用户终端的与所述用户终端所请求的多媒体内容相对应的第一内容标识信息;

节点相关信息提供装置,用于根据所述第一内容标识信息,获取对应的分片的其它对等用户终端节点的相关信息,并将所述其它对等用户终端节点的相关信息发送给所述用户终端。

通过使用根据本发明的方法或装置,具有如下优点:

能够根据该地址信息,从多个网络资源处同时获取该多媒体内容,极大地提高该多媒体内容的下载速度。

附图说明

通过参照附图阅读以下所作的对非限制性实施例的详细描述,能够更容易地理解本发明的特征、目的和优点。其中,相同或相似的附图标记代表相同或相似的元件(装置)。

图1示出了根据本发明的一个具体实施例的网络拓扑结构示意图;

图2示出了根据本发明的一个具体实施例的系统方法流程图;

图3示出了根据本发明的一个具体实施例的对R2SP方式对多媒体内容进行加速点播的容错处理;

图4示出了根据本发明的另一个具体实施例的以多媒体长度和多媒体的部分内容作为指示信息以获取对应的第一内容标识信息的具体实现方式;

图5示出了根据本发明的一个具体实施例的装置框图;

图6示出了根据本发明的一个具体实施例的对R2SP方式对多媒体内容进行加速点播的容错处理的装置框图。

具体实施方式

图1示出了根据本发明的一个具体实施例的网络拓扑结构示意图。其中,该网络中包括用户终端1;多媒体服务器2,该多媒体服务器2用于存储多媒体内容并根据不同用户的请求,为各个用户提供相应的多媒体内容;第一网络服务器3,该第一网络服务器3包括索引服务器(Index Server);第二网络服务器4,该第二网络服务器4包括目录服务器(Tracker Server),以及一个或多个对等节点5(peer)。

图2示出了根据本发明的一个实施例的方法流程图。以下,参照图2,并结合图1,对本发明的方法流程图进行描述。

在步骤S10中,用户终端1获取该所请求点播的多媒体内容在多媒体服务器2上的地址信息。

具体地,当用户希望点播一个多媒体内容时,其通过用户终端1中的浏览器,向多媒体服务器2发出点播请求消息,该点播请求消息中包含所请求的多媒体内容在多媒体服务器2上的地址信息,例如,该多媒体内容的统一资源定位器(URL,Uniform Resource Locator)。

用户终端1通过底层技术,获取到该多媒体内容在所请求的多媒体内容服务器上的URL。例如,用户终端1通过底层钩挂技术(hook)获取多媒体内容在所请求的多媒体内容服务器上的URL。钩挂技术是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩挂机制允许应用程序截获处理window消息或特定事件。钩挂实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩挂程序就先捕获该消息,亦即钩挂函数先得到控制权。这时钩挂函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。此外,用户终端1还可以通过自动代理脚本,截获所请求的多媒体内容的URL。当然用户终端1通过例如钩挂技术等获取所请求的多媒体内容的URL的操作对于用户来说是全透明的,也即,用户不会觉察出用户终端1的获取所请求的多媒体内容的地址的操作。

在用户终端1获取了所请求的多媒体内容的URL后,例如,该多媒体内容的URL为http://www.abc.com/a/l.flv后,该方法进入步骤S11,用户终端1分别向多媒体服务器2和第一网络服务器3发送请求消息。其中,用户终端1向多媒体服务器2发送的请求消息用于请求多媒体服务器2发送多媒体请求内容,用户终端1向第一网络服务器3发送的请求消息中包括该多媒体内容的URL,也即,http://www.abc.com/a/l.flv。当然,用户终端1可以同时或者不同时分别向多媒体服务器2和第一网络服务器3发送请求消息,该两个请求消息的发送时间并没有明显的先后顺序。

当多媒体服务器2接收到来自用户终端1的请求消息后,其可以根据该请求消息,也即,在线点播请求消息,向用户终端1提供相应的多媒体内容,此为现有技术,因此,在此不予赘述。

然后,在步骤S12中,当第一网络服务器3接收到来自用户终端1的包括多媒体内容的地址信息,例如,URL的消息后,第一网络服务器3根据该URL信息,获取与该URL相对应的第一内容标识信息。

第一内容标识信息例如,可以包括MD5校验码(Message-digest Algorithm 5,信息-摘要算法)。一般地,文件内容不同,所对应的MD5不同,因此,MD5可以用于唯一标识内容。以下,为了便于说明,用MD5表示第一内容标识信息。但是,本领域技术人员应能理解,第一内容标识信息不限于MD5,也可以通过SHA-1、RIPEMD以及Haval等算法生成用于唯一标识多媒体内容的第一内容标识信息。

在第一网络服务器3包括索引服务器,其中本地例如通过数据库的方式维护了多个URL与多个多媒体内容的第一内容标识信息的映射表。URL包括多个多媒体内容在多媒体内容服务器2上的地址。多媒体内容服务器2包括多个不同的内容提供商的服务器,例如,可以是土豆网的服务器、酷6的服务器,优库的服务器等。该映射表是通过各个终端汇报建立的。具体的汇报过程,将在下文中进行详细的描述。

如果第一网络服务器3通过查找URL与第一内容标识信息的映射表,找到了与URL对应的MD5,则该方法进入步骤S13。

在步骤S13中,第一网络服务器3将在步骤S12中获取的与所请求的多媒体内容的URL相对应的MD5发送给用户终端1。

然后,在步骤S14中,用户终端1将该获取的MD5提供给第二网络服务器4。可以理解,第二网络服务器4包括传统的P2P的Tracker Server,其中保存了MD5与节点(peer)的资源相关信息的对应关系。第二网络服务器4通过查找该对应关系,找到与由用户终端1发送的MD5相对应的节点的资源相关信息,例如,节点的地址等。

然后,该方法进入步骤S15,第二网络服务器4将与该MD5所对应的一个或多个节点的资源相关信息返回给用户终端1。

然后,在步骤S16中,用户终端1根据在步骤S15中获取的具体的对应的节点的资源相关信息,向相应的节点发起下载请求。

然后,在步骤S17中,用户终端1根据多媒体服务器2的地址,并基于HTTP协议对多媒体内容进行在线点播,同时用户终端从相应的节点处根据点对点(P2P)协议对该多媒体内容的点播进行加速。

如果第一网络服务器3通过查找URL与第一内容标识信息的映射表,未找到与URL对应的MD5,则该方法进入步骤S18,用户终端1仅仅根据其请求的多媒体服务器2的地址,基于HTTP协议点播该多媒体内容。

在一个变化的实施例中,当用户终端1在步骤S18中完成了从多媒体服务器2的下载完整的多媒体内容后,该方法还包括步骤S19(图中未示出),用户终端1根据已经缓存在本地的完整的多媒体内容(图中未示出),本地生成对应于该多媒体内容的第二内容标识信息,也即与该完整下载的多媒体内容相对应的MD5。具体地,用户终端1将整个多媒体内容进行分块,为每个分块生成对应的MD5,在对所有计算出的该多媒体内容的MD5计算一个总的MD5,该总的MD5即为与多媒体内容相对应的MD5。然后,用户终端1将该新生成的MD5与该多媒体内容在多媒体服务器2上的URL的对应关系发送给第一网络服务器3,以便于第一网络服务器3更新在第一网路服务器3上(例如,其数据库中)的更新第一网络服务器3上URL与MD5的对应关系。此外,用户终端1还将生成的MD5与本节点的相关信息报告给第二网络服务器,以便于第二网络服务器更新MD5与节点的对应关系。

上述实施例是考虑到数据内容与URL之间的对应关系在一段时间内保持不变的情形。在实际应用中,多媒体内容服务器2可能对其保存的内容进行更新,例如在第一天时,在http://www.123.A的地址中存放的多媒体文件为文件a,在第二天时,多媒体内容服务器2将http://www.123.A的地址中存放的多媒体内容更新为文件b,在第二天时,一个用户希望在线播放多媒体内容b,因此,用户终端1将与多媒体内容b对应的URL提供给第一网络服务器3,也即,http://www.123.A。但是,因为多媒体服务器2为第三方软件,因此,第一网络服务器3无法快速地感知多媒体服务器2中的URL与多媒体内容的对应关系的更新,也即,在第一网络服务器3上仍保存了第一天的http://www.123.A与多媒体内容a的对应关系,因此,第一网络服务器3虽然根据该URL,也即http://www.123.A可以找到对应的MD5,但实质上并不是用户终端1希望下载的多媒体内容b所对应的MD5,而是已经过期的多媒体内容a所对应的MD5。因此,如果用户终端1基于HTTP协议从多媒体服务器2下载多媒体内容b的数据,而同时基于P2P协议从一个或多个对等终端5下载了多媒体内容a的数据片段,这将导致数据内容的混乱,最终致使以及用户无法正常播放多媒体内容b。

考虑到上述情形,本发明提供了P2SP的容错方式。具体地,如图3所示,在步骤S15中,用户终端1获取来自第一网络服务器3所提供的与URL相对应的MD5相对应的一个或多个节点(也即对等终端5)相关信息。然后,该方法进入步骤S20,用户终端1分别从多媒体服务器2和对等终端5获取各自的多媒体文件的content_length和多媒体内容的部分内容。

该多媒体内容的部分内容可以是多媒体内容的前5k-前100k的内容。该多媒体内容的前5k-前100k内容可以包括HTTP头、流媒体头以及一部分多媒体内容。可以理解,因为不同的多媒体文件的HTTP头可能相同,因此,优选地,该多媒体内容的部分内容中不包括HTTP头,仅包括流媒体头以及最靠近头部的一部分多媒体内容,这样的信息更准确,更能区分不同的多媒体内容,使容错率更高。实际上,仅仅采用多媒体内容的部分内容作为用于检索MD5的指示信息是不够的。因为可能会出现这样的情形:例如,一个多媒体内容是另一个多媒体内容的裁剪的片段,例如,将一段完整的多媒体文件分割成第一部分和第二部分,则该第一部分的前5k至前100k的信息很有可能与该完整的多媒体内容的前5k至前10k内容完全相同,因而,无法仅仅根据两段多媒体内容的前面部分数据内容对两者进行区分。因此,为了对不同的多媒体内容进行指示,还需要内容长度信息。

然后,在步骤S21中,用户终端1判断来自多媒体服务器1的数组[content_length,前20k的数据内容]与来自对等终端5的[content_length,前20k的数据内容]是否相同。如果相同,则该方法进入步骤S 17,用户终端1根据多媒体服务器2的地址,并基于HTTP协议对多媒体内容进行在线点播,同时用户终端从相应的节点处根据点对点(P2P)协议对该多媒体内容的点播进行加速。

如果用户终端1判断两者不相同,则该方法进入步骤S22,仅从该多媒体服务器2中根据HTTP协议进行下载。

在一个变化的实施例中,在用户终端1完成了从多媒体服务器2的下载多媒体内容b,该方法还包括步骤S23,用户终端1根据已经缓存在本地的完整的多媒体内容b,本地生成对应于该多媒体内容b的MD5。具体地,用户终端1将整个多媒体内容b进行分块,为每个分块生成对应的MD5,在对所有计算出的该多媒体内容b的MD5计算一个总的MD5。

然后在步骤S24中,用户终端1向第一网络服务器3发送一个报告信息,该报告信息中包括用于通知第一网络服务器3,在第一网络服务器3中保存的URL与MD5的对应关系可能已经不准确的信息,优选地,在该报告信息中还可以包括:用户终端1所生成的MD5与URL的对应关系的指示信息。本领域技术人员应能理解,在多媒体服务器2中,也会根据多媒体内容生成对应的MD5,且用户终端1用于生成MD5的规则应与多媒体服务器2中用于生成MD5的规则相同。

此外,在多媒体服务器2中的URL与多媒体内容的对应关系发生变化还有可能是出于以下的目的:为了防止盗链,多媒体服务器2,也即,视频网站的服务器可能会频繁地变化存储多媒体数据内容所对应的URL,例如,存储该多媒体数据内容的目录地址定期/不定期地进行更新,仍以上述的变化例为例进行说明,文件a在第一天在多媒体内容服务器2中的地址为http://www.123.A,内容提供商为了防止该多媒体内容被盗链,在第二天中将文件a更换到http://www.123.B所指向的目录中,其中,该http://www.123.B的地址中此前没有存储任何内容。在更新之后,http://www.123.A的地址中没有存储任何多媒体内容。但是,因为第一网络服务器3无法快速感知内容服务器2中的多媒体内容与URL的对应关系之间的变化,也即,内容提供商已经更新了多媒体内容与URL的对应关系,但是第一网络服务器3不知道已经进行了上述更新,例如,在步骤S11中,用户终端1将http://www.123.B提供给第一网络服务器3,但是第一网络服务器3上仅保存了第一天中的http://www.123.A与文件a的对应关系,而http://www.123.B的地址没有与其对应的多媒体内容。也即,根据更新的URL地址,第一网络服务器3无法找到对应的多媒体内容,但是,实际上,该多媒体内容仍然保存在多媒体内容服务器2上,只不过变化了保存的路径。此时,该方法进入步骤S30,根据URL,用户终端1未获取对应的MD5,例如,用户终端1收到了来自第一网络服务器3的未找到与URL相对应的MD5的反馈消息,或者,超过规定的时间,用户终端1仍未收到来自第一网络服务器3的找到与URL相对应的MD5的反馈消息。则该方法进入步骤S31,用户终端1将包括多媒体内容的部分内容和多媒体内容的长度(content_length)的指示信息,发给第一网络服务器3进行检索。

在第一网络服务器3上还可以保存多媒体内容的部分内容和多媒体内容的长度(content_length)与MD5之间的对应关系。例如,根据多媒体内容的前20k内容与该段多媒体内容的content_length生成指示信息,在第一网络服务器3上预存了该指示信息与MD5之间的对应关系。则在步骤S32中,第一网络服务器3根据在用户终端1在步骤S31中发送的包含多媒体内容的前20k内容与该段多媒体内容的content_length的指示信息进行查找其中保存的指示信息与MD5之间的对应关系。若找到对应的MD5,则该方法进入步骤S33。在步骤S33中,第一网络服务器3将在步骤S31中获取的与包含该多媒体的部分内容和该段多媒体内容的content_length的指示信息相对应的MD5发送给用户终端1。然后,该方法进入步骤S14和S15,因为在上文中已经进行描述,因此,在此不予赘述。

若在步骤S31中,第一网络服务器1未找到与包含该多媒体的部分内容和该段多媒体内容的content_length的指示信息相对应的MD5,则该方法进入步骤S18,用户终端1仅仅根据其请求的多媒体服务器2的地址,基于HTTP协议点播该多媒体内容。

在步骤S18后进入步骤S19,用户终端1根据已经缓存在本地的完整多媒体内容,生成对应于该多媒体内容的第二内容标识信息。

在上文中从系统方法的角度对本发明的各个实施例进行详细地描述,以下,将从装置的角度对本发明进行描述。

参照图5,并结合图1和图2,对根据本发明的一个具体实施例的装置框图进行描述。图5所示的控制装置10位于图1所示的用户终端1中。控制装置10包括地址信息获取装置100,指示信息获取装置101,节点资源获取装置102,点播装置103和点播加速装置104。其中,节点资源获取装置102还包括第一内容标识获取装置1020和第一内容标识提供装置1021。其中,该第一指示信息提供装置102

图5中所示的第一辅助装置20位于图1中所示的第一网络服务器3中。第一辅助装置20包括第一获取装置200、第一提供装置201、报告获取装置202和更新装置203。

图5中所示的第二辅助装置30位于图1中所示的第二网络服务器4中。第二辅助装置30包括第二获取装置300和节点相关信息提供装置301。

首先,地址信息获取装置100获取该所请求点播的多媒体内容在多媒体服务器2上的地址信息。

具体地,当用户希望点播一个多媒体内容时,其通过用户终端1中的浏览器,向多媒体服务器2发出点播请求消息,该点播请求消息中包含所请求的多媒体内容在多媒体服务器2上的地址信息,例如,该多媒体内容的统一资源定位器(URL,Uniform Resource Locator)。

地址信息获取装置100通过底层技术,获取到该多媒体内容在所请求的多媒体内容服务器上的URL。例如,地址信息获取装置100通过底层钩挂技术(hook)获取多媒体内容在所请求的多媒体内容服务器上的URL。钩挂技术是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩挂机制允许应用程序截获处理window消息或特定事件。钩挂实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩挂程序就先捕获该消息,亦即钩挂函数先得到控制权。这时钩挂函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。此外,地址信息获取装置100还可以通过自动代理脚本,截获所请求的多媒体内容的URL。当然地址信息获取装置100通过例如钩挂技术等获取所请求的多媒体内容的URL的操作对于用户来说是全透明的,也即,用户不会觉察出地址信息获取装置100的获取所请求的多媒体内容的地址的操作。

在地址信息获取装置100获取了所请求的多媒体内容的URL后,指示信息获取装置101根据获取装置100获取的信息,得到指示信息,例如,该指示信息包括该多媒体内容的URL为http://www.abc.com/a/l.flv之后,指示信息提供装置10201分别向多媒体服务器2和第一网络服务器3发送请求消息。其中,指示信息提供装置10201向多媒体服务器2发送的请求消息用于请求多媒体服务器2发送多媒体请求内容,指示信息提供装置10201向第一辅助装置20发送的请求消息中包括该多媒体内容的URL,也即,http://www.abc.com/a/l.flv。当然,指示信息提供装置10201可以同时或者不同时分别向多媒体服务器2和第一网络服务器3发送请求消息,该两个请求消息的发送时间并没有明显的先后顺序。

当多媒体服务器2接收到来自指示信息提供装置10201的请求消息后,多媒体服务器2可以根据该请求消息,也即,在线点播请求消息,向用户终端1提供相应的多媒体内容,此为现有技术,因此,在此不予赘述。

然后,当第一获取装置200接收到来自指示信息获取装置101的包括多媒体内容的地址信息,例如,URL的消息后,第一提供装置201根据该URL信息,获取与该URL相对应的第一内容标识信息。

第一内容标识信息例如,可以包括MD5校验码(Message-digest Algorithm 5,信息-摘要算法)。一般地,文件内容不同,所对应的MD5不同,因此,MD5可以用于唯一标识内容。以下,为了便于说明,用MD5表示第一内容标识信息。但是,本领域技术人员应能理解,第一内容标识信息不限于MD5,也可以通过SHA-1、RIPEMD以及Haval等算法生成用于唯一标识多媒体内容的第一内容标识信息。

在第一网络服务器3包括索引服务器,其中本地例如通过数据库的方式维护了多个URL与多个多媒体内容的第一内容标识信息的映射表。URL包括多个多媒体内容在多媒体内容服务器2上的地址。多媒体内容服务器2包括多个不同的内容提供商的服务器,例如,可以是土豆网的服务器、酷6的服务器,优库的服务器等。该映射表是通过各个终端汇报建立的。具体的汇报过程,将在下文中进行详细的描述。

如果第一网络服务器3通过查找URL与第一内容标识信息的映射表,找到了与URL对应的MD5,则第一提供装置201将获取的与所请求的多媒体内容的URL相对应的MD5发送给控制装置10中的第一内容标识获取装置1020。

然后,第一内容标识提供装置1021将该获取的MD5提供给第二网络服务器4的第二辅助装置30中的第二获取装置300。可以理解,第二网络服务器4包括传统的P2P的Tracker Server,其中保存了MD5与节点(peer)的资源相关信息的对应关系。节点相关信息提供装置301通过查找该对应关系,找到与由用户终端1发送的MD5相对应的节点的资源相关信息,例如,节点的地址等,并且将与该MD5所对应的一个或多个节点的资源相关信息返回给用户终端1的控制装置10。

然后,控制装置10的节点资源获取装置102根据所获取的具体的对应的节点的资源相关信息,向相应的节点发起下载请求。

然后,点播装置(图5中未示出)根据多媒体服务器2的地址,并基于HTTP协议对多媒体内容进行在线点播,同时点播加速装置(图5中未示出)从相应的节点处根据点对点(P2P)协议对该多媒体内容的点播进行加速。本领域技术人员可以理解,点播装置和点播加速装置可以由同一个硬件装置完成。

如果第一网络服务器3的第一提供装置201通过查找URL与第一内容标识信息的映射表,未找到与URL对应的MD5,则点播装置仅仅根据其请求的多媒体服务器2的地址,基于HTTP协议点播该多媒体内容。

在一个变化的实施例中,当点播装置完成了从多媒体服务器2的下载完整的多媒体内容后,第二内容标识生成装置(图中未示出)根据已经缓存在本地的完整的多媒体内容,本地生成对应于该多媒体内容的第二内容标识信息,也即与该完整下载的多媒体内容相对应的MD5。具体地,第二内容标识生成装置将整个多媒体内容进行分块,为每个分块生成对应的MD5,再对所有计算出的该多媒体内容的MD5计算一个总的MD5,该总的MD5即为与多媒体内容相对应的MD5。然后,第一报告装置将该新生成的MD5与该多媒体内容在多媒体服务器2上的URL的对应关系发送给第一网络服务器3的报告获取装置202,以便于第一网络服务器3的更新装置203在第一网路服务器3上(例如,其数据库中)的更新第一网络服务器3上URL与MD5的对应关系。此外,第一报告装置还将生成的MD5与本节点的相关信息报告给第二网络服务器,以便于第二网络服务器更新MD5与节点的对应关系。

上述实施例是考虑到数据内容与URL之间的对应关系在一段时间内保持不变的情形。在实际应用中,多媒体内容服务器2可能对其保存的内容进行更新,例如在第一天时,在http://www.123.A的地址中存放的多媒体文件为文件a,在第二天时,多媒体内容服务器2将http://www.123.A的地址中存放的多媒体内容更新为文件b,在第二天时,一个用户希望在线播放多媒体内容b,因此,指示信息提供装置10201将与多媒体内容b对应的URL提供给第一获取装置200,也即,http://www.123.A。但是,因为多媒体服务器2为第三方软件,因此,第一网络服务器3无法快速地感知多媒体服务器2中的URL与多媒体内容的对应关系的更新,也即,在第一网络服务器3上仍保存了第一天的http://www.123.A与多媒体内容a的对应关系,因此,第一网络服务器3虽然根据该URL,也即http://www.123.A可以找到对应的MD5,但实质上并不是用户终端1希望下载的多媒体内容b所对应的MD5,而是已经过期的多媒体内容a所对应的MD5。因此,如果用户终端1基于HTTP协议从多媒体服务器2下载多媒体内容b的数据,而同时基于P2P协议从一个或多个对等终端5下载了多媒体内容a的数据片段,这将导致数据内容的混乱,最终致使以及用户无法正常播放多媒体内容b。

考虑到上述情形,本发明提供了P2SP的容错方式。具体地,如图6所示,节点资源获取装置102获取来自第一网络服务器3所提供的与URL相对应的MD5相对应的一个或多个节点(也即对等终端5)相关信息后,预获取装置103分别从多媒体服务器2和对等终端5获取各自的多媒体文件的content_length和多媒体内容的部分内容。

该多媒体内容的部分内容可以是多媒体内容的前5k-前100k的内容。该多媒体内容的前5k-前100k内容可以包括HTTP头、流媒体头以及一部分多媒体内容。可以理解,因为不同的多媒体文件的HTTP头可能相同,因此,优选地,该多媒体内容的部分内容中不包括HTTP头,仅包括流媒体头以及最靠近头部的一部分多媒体内容,这样的信息更准确,更能区分不同的多媒体内容,使容错率更高。实际上,仅仅采用多媒体内容的部分内容作为用于检索MD5的指示信息是不够的。因为可能会出现这样的情形:例如,一个多媒体内容是另一个多媒体内容的裁剪的片段,例如,将一段完整的多媒体文件分割成第一部分和第二部分,则该第一部分的前5k至前100k的信息很有可能与该完整的多媒体内容的前5k至前10k内容完全相同,因而,无法仅仅根据两段多媒体内容的前面部分数据内容对两者进行区分。因此,为了对不同的多媒体内容进行指示,还需要内容长度信息。

然后,比较装置104判断来自多媒体服务器1的数组[content_length,前20k的数据内容]与来自对等终端5的[content_length,前20k的数据内容]是否相同。如果相同,则点播装置分别根据多媒体服务器2的地址,并基于HTTP协议对多媒体内容进行在线点播,同时加速点播装置从相应的节点处根据点对点(P2P)协议对该多媒体内容的点播进行加速。

如果比较装置104判断两者不相同,则点播装置仅从该多媒体服务器2中根据HTTP协议进行下载。

在一个变化的实施例中,在用户终端1完成了从多媒体服务器2的下载多媒体内容b,用户终端1根据已经缓存在本地的完整的多媒体内容b,本地生成对应于该多媒体内容b的MD5。具体地,用户终端1将整个多媒体内容b进行分块,为每个分块生成对应的MD5,再对所有计算出的该多媒体内容b的MD5计算一个总的MD5。

则第二报告装置向第一网络服务器3发送一个报告信息,该报告信息中包括用于通知第一网络服务器3,在第一网络服务器3中保存的URL与MD5的对应关系可能已经不准确的信息,优选地,在该报告信息中还可以包括:用户终端1所生成的MD5与URL的对应关系的指示信息。本领域技术人员应能理解,在多媒体服务器2中,也会根据多媒体内容生成对应的MD5,且用户终端1用于生成MD5的规则应与多媒体服务器2中用于生成MD5的规则相同。

此外,在多媒体服务器2中的URL与多媒体内容的对应关系发生变化还有可能是出于以下的目的:为了防止盗链,多媒体服务器2,也即,视频网站的服务器可能会频繁地变化存储多媒体数据内容所对应的URL,例如,存储该多媒体数据内容的目录地址定期/不定期地进行更新,仍以上述的变化例为例进行说明,文件a在第一天在多媒体内容服务器2中的地址为http://www.123.A,内容提供商为了防止该多媒体内容被盗链,在第二天中将文件a更换到http://www.123.B所指向的目录中,其中,该http://www.123.B的地址中此前没有存储任何内容。在更新之后,http://www.123.A的地址中没有存储任何多媒体内容。但是,因为第一网络服务器3无法快速感知内容服务器2中的多媒体内容与URL的对应关系之间的变化,也即,内容提供商已经更新了多媒体内容与URL的对应关系,但是第一网络服务器3不知道已经进行了上述更新,例如,在步骤S11中,用户终端1将http://www.123.B提供给第一网络服务器3,但是第一网络服务器3上仅保存了第一天中的http://www.123.A与文件a的对应关系,而http://www.123.B的地址没有与其对应的多媒体内容。也即,根据更新的URL地址,第一网络服务器3无法找到对应的多媒体内容,但是,实际上,该多媒体内容仍然保存在多媒体内容服务器2上,只不过变化了保存的路径。因此,也即,第一判断装置判断出根据URL无法找到对应的MD5,则在这种情形下,指示信息提供装置101将根据多媒体内容的部分内容和多媒体内容的长度(content_length)作为指示信息,发给第一网络服务器3进行检索。

在第一网络服务器3上还可以保存多媒体内容的部分内容和多媒体内容的长度(content_length)与MD5之间的对应关系。例如,根据多媒体内容的前20k内容与该段多媒体内容的content_length生成指示信息,在第一网络服务器3上预存了该指示信息与MD5之间的对应关系。则第一网络服务器3根据指示信息提供装置101发送的包含多媒体内容的前20k内容与该段多媒体内容的content_length的指示信息进行查找其中保存的指示信息与MD5之间的对应关系。若找到对应的MD5,则第一网络服务器3将获取的与包含该多媒体的部分内容和该段多媒体内容的content_length的指示信息相对应的MD5发送给用户终端1,也即,用户终端1的第一内容标识信息获取了对应的MD5,也即,第二判断装置的判断结果为获取了对应的MD5。然后,节点资源获取装置102、点播装置和点播加速装置分别进行各自的操作,因在上文中已经进行了描述,在此不予赘述。

若未找到与包含该多媒体的部分内容和该段多媒体内容的content_length的指示信息相对应的MD5,即第二判断装置的判断结果为否,则点播装置仅仅根据其请求的多媒体服务器2的地址,基于HTTP协议点播该多媒体内容。

然后,第二内容标识生成装置根据已经缓存在本地的完整多媒体内容,生成对应于该多媒体内容的第二内容标识信息。

本领域技术人员可以理解,在各个装置的实施例中,在同一个模块中实现相同功能的子装置可以由相同的硬件或软件模块完成,例如,第一判断装置和第二判断装置均可以由一个CPU完成。

以上对本发明的具体实施方式进行了描述。需要说明的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变型或修改,这些变形或修改都处于所附权利要求的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号