一种数据缓存方法和装置的制造方法

文档序号:9691043阅读:226来源:国知局
一种数据缓存方法和装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术,尤其涉及一种数据缓存方法和装置。
【背景技术】
[0002] 目前,网络在人们的日常生活占据越来越重要的位置,网络性能的优劣直接影响 着人们的应用感受。其中,网络速度是影响人们应用感受的一个重要的指标。然而,受限 于有限的网络带宽,人们开始致力于发展各种可以在有限的带宽内提高数据传输速度的技 术。比如,P2P(p eer-t〇-peer,点对点)技术是目前流行的一种网络数据传输技术,主要通 过分布式交换数据来提高其传输速度。BT (Bit Torrent,位流)技术是P2P技术的一种典 型应用,BT技术的工作原理可理解为:假设BT服务器将一个文件分成A、B、C等若干数据 片断,并将数据片段的下载地址提供给甲、乙等客户端,使其能够通过下载所述数据片段来 得到该文件。如果甲连接到服务器时随机下载了文件的数据片断A,乙随机下载了数据片 断B,此后,甲客户端可以到下载速度比服务器更快的乙客户端去下载该数据片断B ;同理, 乙客户端也可以到下载速度比服务器更快的甲客户端去下载该片断A。也就是说,BT技术 可以将存有数据片断的客户端作为下载服务器,为需要该数据片段的其他客户端提供下载 服务,从而减轻服务器的下载负荷,加快用户各方的下载速度。
[0003] 但随着BT技术的普及,以及人们对各种音乐、视频、开源软件包等数据需求的提 高,网络上充斥着大量的BT数据,客户端之间传输BT数据占据了大量的网络带宽,从而影 响网络的整体性能。

【发明内容】

[0004] 有鉴于此,本发明提供一种数据缓存方法和装置,来解决传输数据占用大量网络 带宽的问题。
[0005] -种数据缓存方法,所述方法包括步骤:
[0006] S1.监听客户端向Tracker服务器发送的数据请求;
[0007] S2.从该数据请求中解析出目标数据对应的关键值;
[0008] S3.根据所述关键值在本地的数据缓存中查找目标数据;
[0009] S4.若未查找到目标数据,则分别向Tracker服务器和DHT网络发送下载请求,以 获取该目标数据对应的地址索引表;所述地址索引表中包括目标数据的下载地址;
[0010] S5.根据收到的地址索引表中的下载地址将目标数据下载到本地缓存。
[0011] 进一步的,所述分别向Tracker服务器和DHT网络发送下载请求包括:
[0012] 根据所述关键值分别构造第一磁力链接和第二磁力链接;
[0013] 基于Tracker协议封装所述第一磁力链接以作为第一下载请求;
[0014] 基于DHT协议封装所述第二磁力链接以作为第二下载请求;
[0015] 向Tracker服务器发送所述第一下载请求;
[0016] 向DHT网络发送所述第二下载请求。
[0017] 进一步的,所述根据关键值构造第一磁力链接,包括:
[0018] 在磁力链接的指定字段中填入所述目标数据对应的关键值和Tracker服务器的 IP地址。
[0019] 进一步的,所述根据关键值构造第二磁力链接,包括:
[0020] 在磁力链接的指定字段中填入所述目标数据对应的关键值。
[0021] 进一步的,所述方法还包括:
[0022] S6.若查找到目标数据,则构造所述数据请求对应的应答报文发送至客户端,以使 所述客户端根据该应答报文从本机中获取目标数据。
[0023] 基于相同的构思,本发明提供一种数据缓存装置,所述装置包括:
[0024] 监听单元,用于监听客户端向Tracker服务器发送的数据请求;
[0025] 解析单元,用于从该数据请求中解析出目标数据对应的关键值;
[0026] 查找单元,用于根据所述关键值在本地的数据缓存中查找目标数据;
[0027] 发送单元,用于在未查找到目标数据时,分别向Tracker服务器和DHT网络发送下 载请求,以获取该目标数据对应的地址索引表;所述地址索引表中包括目标数据的下载地 址;
[0028] 下载单元,用于根据收到的地址索引表中的下载地址将目标数据下载到本地缓 存。
[0029] 进一步的,所述发送单元,具体用于:
[0030] 根据所述关键值分别构造第一磁力链接和第二磁力链接;
[0031] 基于Tracker协议封装所述第一磁力链接以作为第一下载请求;
[0032] 基于DHT协议封装所述第二磁力链接以作为第二下载请求;
[0033] 向Tracker服务器发送所述第一下载请求;
[0034] 向DHT网络发送所述第二下载请求。
[0035] 进一步的,所述发送单元根据关键值构造第一磁力链接,包括:
[0036] 在磁力链接的指定字段中填入所述目标数据对应的关键值和Tracker服务器的 IP地址。
[0037] 进一步的,所述发送单元根据关键值构造第二磁力链接,包括:
[0038] 在磁力链接的指定字段中填入所述目标数据对应的关键值。
[0039] 进一步的,所述装置还包括:
[0040] 应答单元,用于在查找到目标数据时,构造所述数据请求对应的应答报文发送至 客户端,以使所述客户端根据该应答报文从本机中获取目标数据。
[0041] 相对于现有技术,服务器可以分别向Tracker服务器和DHT网络发送下载请求, 因此可以获取到更多的地址索引表,从而提高了下载速率,也使下载数据更加全面,即使在 Tracker服务器故障时,依然保证缓存服务不受影响,进而提高了系统稳定性,节省网络带 宽资源。
【附图说明】
[0042] 图1是现有技术的一种数据缓存方法的示意图;
[0043] 图2是本发明实施例中的一种数据缓存过程的示意图;
[0044] 图3是本发明实施例中一种数据缓存方法的处理流程图;
[0045] 图4a是本发明实施例中一种数据应答过程的示意图;
[0046] 图4b是本发明实施例中另一种数据应答过程的示意图;
[0047] 图5是本发明提供的一种数据缓存装置的结构示意图;
[0048] 图6是本发明提供的另一种数据缓存装置的结构示意图。
【具体实施方式】
[0049] 为解决上述问题,现有技术为BT数据下载提供了一种旁路缓存的实施方案,就是 在客户端和网关之间部署一个缓存服务器。该缓存服务器可以是旁路缓存服务器,或者是 智能型的路由器,该缓存服务器通常需要具备较大的存储空间,并可以支持传统的Tracker 协议,来实现数据缓存。其实现过程如图1所示。
[0050] 其中,客户端向Tracker服务器请求数据,缓存服务器监听客户端向外发送的数 据请求;然后在本地缓存中查找有没有该客户端所请求的目标数据,若是有则构造一条重 定向报文(如图1中的箭头②所示),使客户端从本设备中获取该目标数据;若是本地缓存 没有该目标数据,则缓存服务器会向Tracker服务器发送下载请求(如图1中的箭头①所 示),以从Tracker服务器上获取该目标数据的地址索引表,并根据该地址索引表中的下载 地址去下载目标数据到本地缓存中,以便后续有客户端请求所述目标数据时,可以提供所 述目标数据给客户端。
[0051] 然而由于BT数据中除了有通过Tracker模式下载的数据,还有许多通过 DHT (Distributed Hash Table,分布式哈希表)模式下载的数据,若上述缓存服务器只通 过Tracker模式下载数据,显然得到的下载地址不够全面,也就会降低下载效率;而且若 Tracker服务器出现故障时,缓存服务器则无法获取地址索引表,从而无法下载目标数据来 提供给客户端。
[0052] 有鉴于此,本发明提供一种数据缓存方法和装置,本发明的缓存服务器通过监听 客户端向Tracker服务器发送的数据请求,从该数据请求中解析出目标数据对应的关键 值;再根据所述关键值在本地的数据缓存中查找目标数据;若未查找到目标数据,则分别 向Tracker服务器和DHT网络发送下载请求,以获取该目标数据对应的地址索引表,并根据 收到的地址索引表中的下载地址将目标数据下载到本地缓存。
[0053] 相对于现有技术,上述缓存服务器可以分别向Tracker服务器和DHT网络发送下 载请求,因此可以获取到更多的地址索引表,从而提高了下载速率,也使下载数据更加全 面,即使在Tracker服务器故障时,依然保证缓存服务不受影响,进而提高了系统稳定性, 节约网络带宽资源。
[0054] 下面结合附图,对本发明的具体实施方案进行详细阐述。
[0055] 请参见图2,是本发明实施例中的一种数据缓存过程的示意图。其中,客户端可以 通过缓存服务器来访问Tracker服务器和DHT网络。根据本发明提供的一种数据缓存方法, 上述缓存服务器的具体处理步骤如图3所示,其中包括步骤:
[0056] S1.监听客户端向Tracker服务器发送的数据请求;
[0057] 在客户端向Tracker服务器发送数据请求时,该缓存服务器会监听到向Tracker 服务器发送的数据请求,并通过镜像方式获取所述数据请求。
[0058] S2.从该数据请求中解析出目标数据对应的关键值;
[0059] 上述获取数据请求目的是获知客户端所请求的目标数据,所述关键值是所述目标 数据的标识,通常编辑在数据请求的URL字段中。因此本发明可以通过解析数据请求中的 URL字段来获取目标数据对应的关键值。上述解析过程可参考现有技术实现,本发明不做详 细描述。
[0060] S3.根据所述关键值在本地的数据缓存中查找目标数据;
[0061] 在缓存服务器上,可以建立已缓存的目标数据与其关键值的对应关系,以使后期 可以根据解析到的关键值通过该对应关系在本地缓存中查找是否有客户端所请求的目标 数据。
[0062] S4.若未查找到目标数据,则分别向Tracker服务器和DHT网络发送下载请求,以 获取该目标数据对应的地址索引表;所述地址索引表中包括目标数据的下载地址;
[0063] 当根据关键值在本地缓存中未查找到目标数据时,说明本设备未缓存过该目标数 据,此时需要去下载该目标数据。由于下载目标数据需要先得到记录该目标数据的下载 地址的地址索引表,因此缓存服务器首先要获取地址索引表。值得注意的是,现有技术中 的缓存服务器通常会发送获取所述目标数据地址索引表的请求至Tracker服务器来获取 地址索引表。而本发明的缓存服务器会分别发送获取所述目标数据地址索引表的请求到 Tracker服务器和
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1