一种获取BT资源信息的方法和设备技术

技术编号:19702284 阅读:102 留言:0更新日期:2018-12-08 14:09
本发明专利技术公开了一种获取BT资源信息的方法和设备,属于数据传输技术领域。本发明专利技术实施例中,在与对端进行BT资源的数据交互时,如果本端没有BT资源的元信息,则可以在进行BT协议握手后,基于对端发来的BT资源的位图A,确定BT资源的数据片个数,然后对位图A取反,向对端反馈取反得到位图B,以触发对端向本端发送BT资源的数据块获取请求,这样,可以基于数据块获取请求来预测BT资源的数据片大小,从而可以获取到BT资源的资源信息。进一步的,本端还可以基于获取到BT资源信息从对端下载BT资源的数据块。

【技术实现步骤摘要】
一种获取BT资源信息的方法和设备
本专利技术涉及数据传输
,特别涉及一种获取BT资源信息的方法和设备。
技术介绍
BT(BitTorrent,比特流)协议是一种计算机通信协议,广泛用于对等网络(PeertoPeer)中BT客户端(peer)之间的BT资源共享。在与其它peer共享BT资源的过程中,BT客户端需要根据BT资源的元信息(包含BT资源的总大小、BT资源的数据片数目、每个数据片大小等资源信息)确定向对端请求多少个数据片,以及每个数据片要分多少个数据块来请求。BT客户端在接收到某个peer发送的BT资源获取请求后,如果发现本地未拥有相应BT资源的元信息,则主要通过以下现有的2种方式来获取该元信息:其一,BT客户端可以根据BT资源获取请求中携带的BT资源的infohash从本地或者异地的种子库检索相应的种子文件,然后读取种子文件包含的BT资源的元信息;其二,BT客户端在与对端完成“Handshake”后,向对端或者正在共享该BT资源的其它peer请求BT资源的元信息。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:如果本地或者异地的种子库内均检索不到该BT资源的种子文件,对端或者其它peer不支持“ut_metadata”的BT协议扩展,对端或者其它peer未对元信息的请求进行响应,BT客户端则无法获取到BT资源的元信息,进而BT客户端无法响应对端或者其他peer发送的请求。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种获取BT资源信息的方法和设备。所述技术方案如下:第一方面,提供了一种获取BT资源信息的方法,所述方法包含步骤:在与对端进行handshake后,接收所述对端发送的目标BT资源的位图A;对所述位图A进行取反,将取反得到的新位图B反馈给所述对端;接收所述对端发送的所述目标BT资源的数据块获取请求;根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小。可选的,所述对所述位图A进行取反,将取反得到的新位图B反馈给所述对端,包括:如果本地未存储有所述目标BT资源的位图,则对所述位图A进行取反,将取反得到的新位图B反馈给所述对端,否则向所述对端反馈本地存储的所述目标BT资源的位图。可选的,所述向所述对端反馈本地存储的所述目标BT资源的位图,包括:如果所述对端未存储有本地存储的所述目标BT资源的所有数据片,则向所述对端反馈本地存储的所述目标BT资源的位图,否则对所述位图A进行取反,将取反得到的新位图B反馈给所述对端。可选的,所述根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小,包括:如果所述数据块获取请求中的偏移量大于已知的所述目标BT资源的数据块偏移量,则根据所述数据块获取请求中的偏移量更新所述目标BT资源的数据片大小。可选的,所述根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小之后,还包括:根据所述位图A和预测的所述目标BT资源的数据片大小,从所述对端获取所述目标BT资源的数据块。可选的,所述方法还包括:以每个数据片内的数据块个数为第一维的长度,数据片个数为第二维长度,通过二维数组的形式记录本地所述目标BT资源的各数据块的存储情况。可选的,所述方法还包括:当预测到的所述目标BT资源的数据片大小增加时,在所述二维数组的第一维末尾对应添加新的数据组。可选的,所述方法由缓存服务器实现。基于上述方法,在与对端进行BT资源的数据交互时,如果本端没有BT资源的元信息,则可以在进行BT协议握手后,基于对端发来的BT资源的位图A,确定BT资源的数据片个数,然后对位图A取反,向对端反馈取反得到位图B,以触发对端向本端发送BT资源的数据块获取请求,这样,可以基于数据块获取请求来预测BT资源的数据片大小,从而可以获取到BT资源的资源信息。进一步的,本端还可以基于获取到BT资源信息从对端下载BT资源的数据块。第二方面,为了实现上述方法,本专利技术的实施例还提供了一种获取BT资源信息的设备,所述设备上运行有一计算机程序,所述计算机程序可实现上述实施例的方法。可选的,所述设备为缓存服务器。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种获取BT资源信息的方法流程图;图2是本专利技术实施例提供的一种请求响应系统结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术实施例提供了一种获取BT资源信息的方法,可以应用于BT系统,BT系统可以面向整个互联网,BT客户端可以通过BT协议与其它BT客户端进行BT资源的数据传输。两个BT客户端在互相进行数据传输之前,必须都拥有要共享的BT资源(可能是一个文件,也可能是多个文件的集合,以下统一称为“共享文件”)的元信息(metadata)。因为元信息中提供了BT资源的总大小(字节表示)、包含多少个数据片、每个数据片的大小等资源信息。如果一个BT客户端缺少这些资源信息,它就不知道自己要向对端请求多少个数据片,以及每个数据片要分多少个数据块来请求。本实例所提供的方法可以基于对端提供的BT资源的位图和数据块获取请求来预测BT资源的资源信息,从而使得BT客户端在没有BT资源的元信息,或者无法按照正常方式获取BT资源的元信息情况下,依然能够与对端进行BT资源的数据传输。下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:步骤101,在与对端进行handshake后,接收对端发送的目标BT资源的位图A。在实施中,BT客户端在接收到来自某个peer的发送的针对某个BT资源(可称为目标BT资源)的数据请求后,可以先与该peer(后续可称为对端)建立通信连接,然后双方通过handshake交换数据传输的基础信息,包含:目标BT资源的infohash值、各自的设备ID、其它拓展信息(例如是否支持DHT模式,是否支持“ut_metadata”协议扩展等)。在于对端进行handshake后,BT客户端可以先等待对端发送对端维护的目标BT资源的位图A。位图A可以反映对端中BT资源的数据片的下载完成情况,位图内的每一个二进制位(一个字节内包含8个二进制位)表示相应的BT资源的数据片是否已经下载完成。例如,位图A的第一位数值是1,则表示对端中目标BT资源的第一个数据片的所有数据块均下载完成;位图A的第二位数值是0,则表示对端中目标BT资源的第二个数据片还未下载完整,即对端未存储或仅存储了部分第二个数据片的数据片。BT客户端在获取到目标BT资源的位图A之后,则可以根据位图A中的二进制位数确定出目标BT资源包含的数据片个数。步骤102,对位图A进行取反,将取反得到的新位图B反馈给对端。在实施中,BT客户端在获取到目标BT资源的位图A之后,可以对位图A进行取反,即将位图A中的二进制位数值为0的更改为1,二进制位数值为1的更改为0,从而得到新位图B。然后BT客户端可以将取反得到的新位图B反馈给对端。可选的,如果本地存储有目标BT资源的位图,则优本文档来自技高网...

【技术保护点】
1.一种获取BT资源信息的方法,其特征在于,所述方法包括:在与对端进行handshake后,接收所述对端发送的目标BT资源的位图A;对所述位图A进行取反,将取反得到的新位图B反馈给所述对端;接收所述对端发送的所述目标BT资源的数据块获取请求;根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小。

【技术特征摘要】
1.一种获取BT资源信息的方法,其特征在于,所述方法包括:在与对端进行handshake后,接收所述对端发送的目标BT资源的位图A;对所述位图A进行取反,将取反得到的新位图B反馈给所述对端;接收所述对端发送的所述目标BT资源的数据块获取请求;根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小。2.根据权利要求1所述的方法,其特征在于,所述对所述位图A进行取反,将取反得到的新位图B反馈给所述对端,包括:如果本地未存储有所述目标BT资源的位图,则对所述位图A进行取反,将取反得到的新位图B反馈给所述对端,否则向所述对端反馈本地存储的所述目标BT资源的位图。3.根据权利要求2所述的方法,其特征在于,所述向所述对端反馈本地存储的所述目标BT资源的位图,包括:如果所述对端未存储有本地存储的所述目标BT资源的所有数据片,则向所述对端反馈本地存储的所述目标BT资源的位图,否则对所述位图A进行取反,将取反得到的新位图B反馈给所述对端。4.根据权利要求1所述的方法,其特征在于,所述根据所述数据块获取请求中的偏移量预测所述目标BT资源的数据片大小,包括:如果所述数据...

【专利技术属性】
技术研发人员:陈凯林
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1