CN101408881B - 生成二进制文件内容签名的方法及系统 - Google Patents

生成二进制文件内容签名的方法及系统 Download PDF

Info

Publication number
CN101408881B
CN101408881B CN2008101349654A CN200810134965A CN101408881B CN 101408881 B CN101408881 B CN 101408881B CN 2008101349654 A CN2008101349654 A CN 2008101349654A CN 200810134965 A CN200810134965 A CN 200810134965A CN 101408881 B CN101408881 B CN 101408881B
Authority
CN
China
Prior art keywords
file
search
binary file
content
signature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008101349654A
Other languages
English (en)
Other versions
CN101408881A (zh
Inventor
邹胜龙
胥明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qiaozhao Technology (Shenzhen) Co.Ltd
Original Assignee
Qiaozhao Technology (shenzhen) Coltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qiaozhao Technology (shenzhen) Coltd filed Critical Qiaozhao Technology (shenzhen) Coltd
Priority to CN2008101349654A priority Critical patent/CN101408881B/zh
Publication of CN101408881A publication Critical patent/CN101408881A/zh
Application granted granted Critical
Publication of CN101408881B publication Critical patent/CN101408881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种生成二进制文件内容签名的方法及系统。所述方法包括如下步骤:a)将所述二进制文件分割为大小合适的多个片段;b)使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;c)基于所述多个片段内容签名生成所述二进制文件的内容签名。

Description

生成二进制文件内容签名的方法及系统
本申请是申请日为2004年09月29日,申请号为200480034199.4,发明名称为“内容定向的索引和搜索方法与系统”的专利申请的分案申请。
技术领域
本发明涉及各种文件的索引和搜索,特别是二进制文件,例如包括软件程序和补丁在内的可执行文件,包括RAR文件和ZIP文件在内的压缩文件,包括数字图象、MP3文件和其他视频与音频文件的多媒体文件。本发明还涉及对上述文件进行索引和搜索后的排序,以及快速可靠地搜索和下载上述文件的方法。
背景技术
在当今日益复杂的技术世界,用于索引和搜索因特网内容的方法在大量的内容丰富的应用中充当了很重要的角色,例如普通的因特网搜索引擎或企业搜索引擎。
搜索引擎通常包括四个核心部分:搜索蜘蛛(Spider)、语法分析器(Parser)或索引器(Indexer)、查询引擎(Query engine)和Web界面。搜索蜘蛛又称为机器人(Robot)或网络爬虫(Web crawler),是基于Web的搜索引擎的核心。搜索蜘蛛是一种独立的网络客户端程序,它能自动地连接到Web服务器并请求网页。其中会对响应进行检查,如果请求成功,则可获取网页并建立索引。在建立索引阶段,将文本网页内的词与词位置等其他信息一起存入索引内。创建的搜索引擎索引在原理上与书的索引相似。书的索引针对特定词,而搜索引擎的索引包含有词以及对包含有这些词的网页的参考。对某一关键字创建索引后,查询引擎将提供对包含有该关键字的网页的搜索。由于包含某一特定关键字的网页数量很大,因而还需要根据某些特定规则对这些网页进行排序,例如,根据被其他网页引用的数量进行排序。最后,使用Web界面浏览匹配网页的分类表。Web界面的设计和布置不属于本申请的范围。
总之,文本Web搜索引擎对Web执行增量扫描和分析,提取关键字,并生成索引以便之后响应用户的查询进行搜索。二进制Web搜索引擎更为复杂。以下介绍的图片Web搜索引擎便是其中的一个例子。如果可以基于每张图片的内容手动加入关键字,便可以像文本网页一样进行索引和搜索。但是,这需要大量的体力劳动对Web上的图片添加标识。无可置疑的,这种方法实际不可行,因为Web上存在大量的不断增加的图片。
为了使搜索过程能自动进行,Web搜索引擎一般使用图片的文件名或其他文字来标识该图片。但是,这种方法生成的搜索结果很差。Web上的多数图片都没有合适的文件名来表达其内容。此外,文件名一般都很短,而且多数文件名只有数字,不能准确清楚的描述文件的内容。而且这也进一步降低了搜索结果的准确性。此外,由于因特网的全球性,Web上的图片使用各种不同的语言来标识和描述,这进一步使索引和搜索正确的图片文件的过程变得复杂了。
多数现在使用的索引和搜索技术使用文本来实现前面介绍的索引和搜索过程。此外,少数索引和搜索技术以图片文件为目标,关注于图片的特定属性,例如颜色、亮度、线条的样式等等。这种方法在以下引用文件中给出了介绍:Chad Carson等,Blobworld:A system for region-based imageindexing and retrieval,the Third Int.Conf.on Visual Information Systems,June1999;Anil K.Jain and Aditya Vailaya,Image retrieval using color and shape,Pattern Recognition,29(8),1996;以及Michael Ortega等,SupportingSimilarity Queries in MARS,ACM Multimedia 97.尽管这一方法是对纯文本搜索方法的一种改进,但这种方法对其搜索的二进制文件的类型以及用于查找目标文件的参数仍存在局限性。此外,二进制Web搜索引擎还需要解决下载问题,因为二进制文件可能非常大。然而,很少有搜索方法提供了对这一问题的解决方案。因此,急需提出一种改进的索引和搜索方法,以便能够定位和下载使用现有的方法不容易准确提供的想要的二进制文件。
发明内容
本发明提出并介绍了一种内容定向的索引和搜索(Content OrientedIndex aNd Search,简称COINS)技术。COINS介绍了一种根据唯一标识二进制文件的签名对所述二进制文件(例如多媒体文件)进行索引,并通过对在索引阶段建立的索引图进行遍历(walk through)来搜索相关文件的方法。具体来说,COINS可用于精确地标识一个唯一内容的多个源(根据URLs),该多个源可用于增加下载速度。最后,COINS还可与基于文本的索引和搜索技术相结合来实现二进制文件搜索引擎,其中以二进制文件的URL作为搜索结果,而不再以Web文件的URL为搜索结果。
本发明提供一种生成文件内容签名的方法和系统,包括如下步骤:将所述二进制文件分割为大小合适的多个片段;使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;基于所述多个片段内容签名生成所述二进制文件的内容签名。
根据本发明的又一个方面,还提供一种生成文件内容签名的方法和系统,包括如下步骤:将所述二进制文件分割为大小合适的多个片段;从每个片段中提取多个样本;使用保证计算结果唯一性的算法,利用所述片段的多个样本来计算所述每个片段的内容签名,从而获得多个片段内容签名;基于所述多个片段内容签名生成所述二进制文件的内容签名。本发明的一个优选实施例中,提供一种方法和系统,使用合适的算法例如SHA-1基于所述片段签名来计算所述文件的内容签名,从而替代将所述片段链接在一起的方案。
本发明的一个优选实施例中,提供一种验证所述下载的二进制文件的完整性的方法和系统,另一个优选实施例中,本发明提供一种再下载和恢复下载的目标二进制文件的错误部分的方法和系统。
附图说明
以下附图组成说明书的一部分,对本发明的实施例给出说明,并与对实施例的描述一起解释本发明。
图1是使用本发明的索引和搜索技术的四层COINS系统的示意图;
图2是本发明索引图的一个示例,特别是两个多媒体文件有着相同的内容的示例图;
图3-1、3-2和3-3是遍历本发明索引图的第一级搜索过程的示意图;
图4-1和4-2是遍历本发明索引图的第二级搜索过程的示意图;
图5是本发明的索引和搜索方法在端到服务器和端(P2SP)内容传递网络(CDN)下载引擎领域的应用示意图。
具体实施方式
下面结合附图对本发明进行具体的描述。但这些具体描述不是对本发明的限制。相反,其只是用于解释本发明。
系统结构
图1是总体系统的示意图,其中包括四层:索引层101、搜索层102、排序层103和应用层,该应用层又包括二进制文件搜索引擎104和下载引擎105。本申请中所使用的术语“二进制文件”包括多媒体文件,例如数字图片、MP3文件、数字视频文件和其他音频和视频文件。所述二进制文件还包含其他文件,例如可执行文件和压缩文件(如RAR文件和Zip文件)。索引层101为底层,它对由搜索蜘蛛获取的网页在该层中进行分析,并对该网页内的二进制文件的URL以及周围语境(context)的文本进行检索和索引。然后,在该层中建立索引图和语境索引映射图。第二层是搜索层102,该层提供隐式搜索(implicit search)和显式搜索(explicit search)两种服务。COINS搜索即为遍历COINS索引图的过程。第三层为排序层103,能通过加权属性和内容相关性对搜索结果进行排序。最后,第四层基于COINS包括两个应用:COINS二进制文件搜索引擎104和下载引擎105。
COINS技术是本发明的核心,其提供一种通过内容或数字签名来索引和搜索因特网上的二进制文件(例如可执行文件和多媒体文件)的模型。本节首先介绍内容签名,然后集中讨论索引层、搜索层和排序层的设计,最后解释COINS多媒体文件搜索引擎和下载引擎。
内容签名
内容签名用于标识COINS索引中的文件的唯一性。如果两个文件具有相同的内容签名,即使该两个文件存放在两个不同的URL下,这两个文件也将被作为相同文件来处理。这一点对搜索和下载因特网上包括有不同多媒体文件例如图片、MP3和音频/视频的二进制文件来说非常重要。例如,一张图片有时可能出现在不同的网页上,具有不同的名称不同的描述。然而,传统的搜索引擎将这种情况视为不同的图片,而本发明可正确地将其视为相同的图片。因此,本发明可用于明显地提高下载速度,同时提高搜索结果以及排序的精确性和相关性。
内容签名计算算法
实际用于计算内容签名的算法可根据执行者的选择而不同。唯一需要注意的是,要使用能保证每个计算结果的唯一性的算法。本发明可以采用各种算法来计算内容签名,例如戴维斯-迈耶(Davies-Meyer)哈希函数。其中,可直接使用、或经过用户化后使用“安全内容哈希”方法来计算二进制文件的内容签名。这种方法又称为“安全哈希算法”(SHA)。
安全哈希算法SHA-1用于计算消息或数据文件的压缩形式。当输入任何长度小于264位的消息时,SHA-1生成160位的输出,称为消息摘要。然后将该消息摘要输入签名算法,由该签名算法生成或验证该消息的签名。
SHA-1被称为是安全的,是因为该算法不可能找到对应给定消息摘要的消息,或不可能找到生成相同消息摘要的两个消息。
关于详细的计算介绍,请参考因特网RFC 3174,其可以从链接获得:http://www.faqs.org/rfcs/rfc3174.html。
生成内容签名的方法
二进制文件一般都很大。因此,如果整个文件需要由SHA-1算法进行计算以生成内容签名并将其传递给服务器,将需要占用大量的资源。一种改进方法是将该文件分割成每个大小为256K(或其他大小)的N个片段(最后一个片段可能没有256K),并从每个片段中取样。例如,从一个片段中提取的样本可以是该片段的开始部分,也可以是该片段的结尾部分。有些时候,提取的样本可以是该片段的开始部分和结尾部分的结合。
取样后,本发明可基于经SHA-1算出的样本而计算片段内容签名。所述片段内容签名可链接在一起表示源文件的签名。但是,缺点是签名通常会比较长(例如,假设每个片段ID为20字节,1GB的文件的签名将为20字节*4000=80KB)。因此,将在客户端与服务器之间占用大量的计算资源,包括网络资源、CPU资源、内存以及存储器资源,以用于执行内容签名相关计算,例如内容签名的完整性校验过程中的计算。
本发明介绍了一种明显减少所需的计算资源且不会影响签名的准确性的新方法。代替将片段ID链接在一起,本发明再次使用SHA-1算法基于这些片段ID计算出签名。然后将这一签名用作内容签名。使用这种方法的好处是增加了标识将要搜索或下载的文件的效率,并同时减少签名的大小,以及减少了需要的计算资源,特别是减少了网络流量。
COINS索引
COINS索引包括统一资源标识符(URI)索引图和语境索引映射图。
COINS URI索引图
该索引图包含有几种类型的元素,一般用于描述和标识二进制文件,包括内容签名、页面URI和文件URI。后两个元素又称为文件的主要识别信息。此外,二进制文件还可以有其他类型的识别信息,包括但不限于周围的语境文本例如锚文本(anchor text)和描述文本,以及文件URI属性例如文件大小和文件协议等。这些定义为文件的次要识别信息。主要识别信息和次要识别信息一起定义为文件识别信息。
本申请中,符号(P)用于表示页面URI,(F)用于表示文件URI,(C)用于表示内容签名。由于“统一资源定位”(URL)的概念是“URI”的子集,因而页面URI的一个示例便是页面URL,文件RUI的一个示例便是文件URL。(P)和(F)之间存在多对多的映射关系。“多对多”是指多个文件到多个页面之间的内部链接,反之亦然。
此外,定义以下条件:
理论1:如果其对应的(C)相同,任何两个不同的(F)指向相同的文件。
理论2:任何(F)可从多个(P)引出,同时任何(P)可指向多个(F)。
索引原理:基于索引文本的传统技术的输出是关键字列表,它指向具有该关键字的网页。不同地是,COINS索引的输出是包含(P)、(F)和(C)的三维图。(P)和(F)构成用于遍历搜索索引图的主要二维图,(C)位于第三维,与(F)有链接。
索引方法:搜索蜘蛛程序通过分析(P)来扫描因特网,(P)是通过输入的源网址以及从源网址递归的引用网址找出。当搜索蜘蛛程序发现一个合适的目标二进制文件(F)时,计算其(C)。如果(P)中含有(F),增加一个从(P)到(F)的链接。同样地,如果两个文件生成相同的(C),增加从两个(F)到(C)的两个链接,尽管这两个(F)的文件名和地址可能完全不同。因此,便可以建立3-D索引图数据库,并且将出现的多对多关系按照上述定义的条件在该数据库中表示出来。
图表:建立索引图后,理解其如何用于查找想要的二进制文件很重要。图2所示为索引图的一种可能形式。如图所示,一个(F)可被多个(P)引用。例如,F3被P1、P3、P4和P5引用。同时,一组(F)可来自一个(P),例如F1、F2和F3均来自P1。最后,如图中所示,有两个(F)即F5和F8指向位于第三维的一个(C2)。这表示位于F5和F8的文件具有完全相同的内容。也就是说,F5和F8指向相同的文件。
语境索引映射图
语境是一组与关键字相关的语言,用于描述一个文件。对于具有相同(C)的文件,他们的语境可以合并或相结合。因此便可能获得具有相同(C)的(F)的列表与一组关键字之间的映射关系。
此外,关键字在语境中出现的次数被记录下来。当将两个语境合并时,如果该关键字在两个语境中都有出现,则将给定关键字对应的在两个语境中出现的次数相加。因此,关键词结果集如下:{关键词1*次数1,...,关键词i*次数i}。这样的话,便可以建立映射关系列表,每个映射与以下表示类似:
{(F1),...,(Fi)}→(C)→{关键词1*次数1,...,关键词i*次数i}
执行以上步骤后,进行反向处理以生成每个关键字和(C)列表之间的新的映射关系如下:
关键字i→{(C1)*次数1,...,(Ci)*次数i}
...,其中每个(C)还映射至(F)列表
结果,搜索关键字“关键字i”生成多个(C),其中每个(C)与多个(F)相关联。更重要的是,通过遍历该索引图,可以找到更多相关的(F)。
COINS搜索
搜索二进制文件可分为显式搜索和隐式搜索。显式搜索从用户界面通过自动生成的关键字或者终端用户输入的关键字来触发(更像传统搜索引擎的搜索)。隐式搜索由一个事件触发,例如从下载引擎应用程序下载文件。本发明使用的搜索查询可以是关键字或文件URI。在隐式搜索和显式搜索这两种搜索中,搜索查询都可以是关键字或者文件URI。
搜索推论:当从因特网显式地或隐式地搜索任何(F)时,对COINS索引图执行遍历可生成相当大量的搜索结果。这些结果一般包含有嵌入(P)内的多种商业逻辑。该商业逻辑可以是瑞奇马丁新发行的专辑或拉丁男歌手的MP3文件的汇集。
定义:COINS搜索,是指为搜索某一特定二进制文件而进行的遍历索引图的过程。
为了开始所述搜索即遍历过程,深度优先(DFS)或广度优先(BFS)搜索算法皆可被用于遍历索引图。DFS和BFS是以系统的方式浏览索引图的有效方法。这两种方法从定向图中的一个节点v(图中的任意一个节点)开始,并访问从节点v可以到达的所有节点。这两种方法的区别在于其访问节点的顺序。
DFS首先从最近访问之节点的边界(edge)进行查找,也就是说,DFS首先尽可能的往深度方向查找。
BFS按源节点被访问的顺序查找其边界。它首先查找当前节点所有边界,然后访问下一个节点。
遍历将生成(F)的列表。所述遍历的步骤可直观化为如下:
1.搜索目标二进制文件(F4)的搜索查询被输入系统。此搜索查询可来自任一发起源,例如终端用户/客户端,或下载引擎生成的计算机命令,或通过其他合适的方式产生。为启动所述搜索过程,反向引用三个(P):(P2)、(P4)和(P6)。结果,根据反向引用的(P2)、(P4)和(P6),可以获得额外的四个(F),标识为(F2)、(F3)、(F6)和(F8)。这在图3-1、3-2和3-3中示出。第一步中,该组(P)的深度为1。
2.对于从前一步骤中获得的四个(F)中的每一个,执行相同的反向查找以获得另一组(P):(P1)、(P3)和(P5)。然后可以进一步获得一组三个(F):(F1)、(F5)和(F7)。这在图4-1和4-2中示出。第二步中,该组(P)的深度为2。
3.通过递归,可对整个索引图进行遍历直至遇到中止条件。该中止条件包括但不限于:
*遍历的深度数,
*汇集的(F)的总数量,
*遍历的超时,
*访问的(P)的数量。
4.为了避免索引图遍历的无止尽的循环,可忽略对较高深度级实体的引用。换句话说,步骤2中不会访问(P2)、(P4)和(P6),因为其深度为1,已经在第一层的遍历中被访问过了。
COINS排序
搜索过程完成后,一组二进制文件被呈现给终端用户。呈现的二进制文件包括与目标二进制文件相同的文件,或者与目标二进制文件不同但通过其共享的共用商业逻辑或其他文件属性与目标二进制文件相关的文件。
通常情况下,从索引和搜索过程获得的结果还需要进一步进行排序和分类,以便于该搜索结果更有用。因此,作为本发明的一个实施例,还需要根据几个对象模型对搜索结果进行评估和排序。
对象模型:以下关键信息将在对象模型中被存储,以增强排序结果以及实现增值商业逻辑。
·(P)将存储访问次数、引用次数、实时服务器或对等带宽、在线状态等。
·(F)将存储引用期、访问次数、源、源状态(即带宽、在线等)等。
通过加权属性排序(C)列表或源(F)
加权属性可在各种引擎中进行定制。具体来说,在下载引擎中,加权属性可基于以下确定:
*文件平均下载速度
*文件下载次数
*可用资源数量
*文件大小
因此,如果下载更快并且更流行的话,该(C)可以得到更高的排序。
通过内容相关性排序(C)列表或源(F)
通过内容相关性排序(C)列表主要基于相关的关键字“次数”值。例如,使用关键字“Hello World”搜索时,在语境索引映射表内具有如下关系:
“Hello”→{(C1)*50,(C2)*25}
“World”→{(C2)*30,(C3)*17}
然后,生成的(C)的排序组为{(C2),(C1),(C3)},因为(C)的对应次数组为{(25+30),50,17}。
(F)的访问次数
将访问次数作为排序规则之一,是本发明的首创。访问次数指被终端用户访问的总数量。但是,如果(Fi)和(Fj)指向同一(C),则认为(Fi)或(Fj)的访问次数为Count(Fi)和Count(Fj)的总和。
最后值得指出的是,这种策略也可应用于一般的搜索引擎。
(F)列表的排序
列表(F)的排序是(F)的加权属性的函数。对于搜索结果列表中的每个(F),可计算出一个排序值。排序计算应该掌握以下这些事实:
1)搜索深度级:level(n)(F)没有level(n-1)(F)的相关性高;
2)从其包含的实体的引用次数:次数越大,该(F)越流行,因此终端用户越感兴趣。在不止一个(F)映射至同一个(C)的情况下,每个(F)的引用次数是所有(F)的引用次数的总和。例如,如果
a)(F1)→(C)且(F2)→(C),以及
b)RC((F1))=10且RC((F2))=15
c)则,
Figure G2008101349654D00111
d)同样,如果(F1)→(C1),(F2)→(C2),且(C1)<>(C2),则FRC(F1)=
RC(F1)且FRC(F2)=RC(F2)
其中RC指引用次数的函数,FRC指最后引用次数的函数,(C1)<>(C2)表示C1不等于C2
3)来自终端用户的累积访问次数:访问次数越多,该(F)对于终端用户来说越流行。
4)(F)的类型:相同类型(可能有不同的扩展名),例如音乐文件,意味着更大的相关性。
5)其包含的实体的访问次数:(P)包含的实体得到的访问越多,(F)对于终端用户来说越流行。
6)自定义挂钩(Custom Hook):为应用程序提供入口点以输入与应用程序相关的属性。
注意,上述每个属性具有相关联的系数,该系数受实时调整的影响。
COINS搜索引擎和下载引擎
以下将详细介绍COINS索引和搜索方法用于因特网搜索和文件下载的实际系统。以下结合COINS索引和搜索过程介绍了两种方法和系统。一个是针对二进制内容的基于COINS的搜索引擎,另一个是可优化内容传递的基于COINS的下载引擎。
COINS搜索引擎
二进制搜索引擎提供搜索二进制文件例如可执行文件和多媒体文件的服务,不仅可以从因特网搜索,还可以从P2SP网络搜索。此处使用的术语“P2SP”指端对服务器和端计算方法。换言之,与其他的P2P网络相比,P2SP网络包括有服务器也包括有对等机。以下是对COINS搜索引擎如何工作以及如何利用COINS的不同部分建立该搜索引擎的详细描述。
1)搜索前,先通过搜索蜘蛛和终端用户的日常使用建立包括有URI索引图和语境索引映射图的COINS索引数据库。
2)搜索过程中,基于关键字分割策略分析用户的输入,以便生成有意义的一组关键字。
3)针对每个关键字,搜索该语境映射图以获取一组(C)。此步中使用的语境映射图是在COINS索引过程中生成的第二映射:
关键字i→{(C1)*次数1,...,(Ci)*次数i}
4)根据次数信息对该组(C)进行排序。
5)针对步骤3中得到的每个(C),从在COINS索引过程中生成的第一映射图中导出一组源(F):
{(F1),...,(Fi)})→(C)→{关键字1*次数1,...,关键字i*次数i}
6)在步骤5中得到的(F)上执行COINS搜索,以获得一组最终的(F)。
COINS下载引擎
下载引擎引入了P2SP的概念。如果可从多个源下载某一内容,便可以明显地提高数据获取速度(通过并行地从多个计算较快的源获取数据的各个部分)以及数据访问的稳定性(通过避免网络忙和某些时候的无效链接)。所述源可以是因特网服务器或对等机或两者都有。
执行该操作的关键是获得用于获取数据的目标因特网服务器和对等机的列表。这可以通过COINS解决。
内容传递推论:当尝试从因特网获取任何(F)时,内容传递系统可通过COINS智能地选择除了提供该(F)的原始源之外的任何源来下载(F),因为已经确定位于这些源的内容是相同的,这是由相同的内容签名来保证的。
以下是对COINS下载引擎如何工作的描述:
1)在终端用户的机器内安装客户端软件。
2)下载前或下载过程中,建立COINS URI索引图。
3)客户端发送下载目标二进制文件的下载请求给服务器,由服务器使用COINS搜索能提供将要下载的内容的源。一组因特网服务器和对等机以URL的形式被返回,尽管该URL可能具有不同的因特网协议、不同的路径和不同的文件名,但它们都能提供将要下载的内容。在COINS搜索索引图数据库的过程中,在索引数据库中查找目标二进制文件。如果数据库中已包括有该目标二进制文件的文件URI,则将该目标二进制文件的内容签名链接至所述搜索查询。如果数据库中未含有该目标二进制文件的文件URI,则计算该目标二进制文件的内容签名并存储在数据库中。这一内容签名用于链接至数据库中具有相同内容签名的其他文件URI。
4)客户端继续以并行地方式从不同的源下载文件的各个部分,该不同的源包括不同的服务器和不同的对等机。成功下载后,客户端将数据的各个部分结合成一个文件。
5)客户端通过比较从刚下载的数据中计算出的内容签名与存储在服务器中的内容签名来执行文件完整性验证。如果内容签名相同,则下载结束。
6)如果在上一步中内容签名不匹配,客户端需要有效地识别出被破坏的片段。一个解决方法是循序地比较已下载的数据与存储在服务器内的数据的片段ID。然而,这一方法对于容量大的文件来说占用的资源相当大。例如,假设每个片段为256K且每个片段ID为20字节,1GB的游戏文件将有4000个片段ID,这样的话,4000次的片段ID比较将产生服务器内的80K带宽占用。相反,以下将介绍一种计算有效的方法,称为“在下载引擎内使用内容签名的有限分治算法(The limited Divide-and-ConquerAlgorithms with Content Signature in Downloading Engine)”。
该算法将片段ID分割成两部分A和B,并使用相同的内容签名计算方法计算每一部分的签名。然后在客户端和服务器之间比较签名A和B。如果签名A匹配,则表示A部分下载正确。但是如果不匹配,则将A部分再分割成两部分,并重复上述处理。
如果被破坏的片段数量大且随机的分布在一个文件内,则使用上述分治算法的代价也很大。因此,本方法设置可以查找的最大深度。例如,最大为3的深度只需要7次ID比较,在服务器内占用140字节的带宽,便可以找出任何被破坏的部分。这种情况下,每个部分是该文件的1/8。
7)客户端设法下载被破坏的部分,该部分的签名需要在下载后进行校验。
为了更好的理解下载引擎应用,分析以下给出的一例子:
假设Red Hat Linux发布其9.1版本的操作系统后,许多内容(镜像)站点都存储有该新版本操作系统的副本,以便服务其成员。同时,多个Linux终端用户开始设法(快速)下载。接近100MB的下载使得一些知名站点变得混乱,导致服务器极度繁忙,因此出现终端用户全球等待的现象。
作为示例,图5中由网络爬虫或搜索蜘蛛程序建立的索引图显示,标识为(FL)的待下载的Linux新版本实际上可从标识为(FL)、(F3)和(F7)的三个服务器源以及标识为(F12)的一个对等源获得。
源的实际格式可根据不同的实现而不同。此处,服务器源定义为:
(FL)为http://www.redhatlinux.com/releases/download/linux9-2-l.zip
(F3)为ftp://218.105.114.254:3044/pub/software/topl0/linux9-2-l.zip
(F7)为ftp://219.101.18.20/pub/linux/linux-latest.Zip
同样,在一对等机上的该源定义为jxta://uri-334/linux-latest-9-2-l.zip。
请注意,(FL)和(F3)具有相同的文件名linux9-2-l.zip,而(F7)和(F12)具有不同的文件名。但是,由于他们的内容签名相同,他们都指向相同的文件。
结果,根据这种设计建立的下载应用程序可选择从不止一个源中获取该新发布的Linux操作系统软件的各个部分。实际上,这一下载策略将服务器带宽的瓶颈转移至下载客户端。此外,服务器单点传输失败的情况下(因服务器忙或与该服务器的连接很差),客户端仍然可从其他源获取该软件。
简而言之,上述的智能和自动路由使用核心索引图,并且该过程对终端用户来说是透明的。可以建立全局负载平衡器来有效地减少任何内容服务器在遇到无法预料或预料之中的流量拥塞时传输失败的可能性。
本申请中引用的所有专利、公开物、网站内容和其他资料和文件,无论是印刷或电子格式,都作为本申请的一部分。
以上对本发明的具体实施例的描述仅出于解释和说明的目的,不是将本发明穷尽或限制为上述公开的具体形式。根据上述内容的教导,还可以做出各种修改和变更。可知,本发明的范围不受这些具体描述的限制,而由本申请的权利要求来限定。上述说明、示例和数据提供了对实施本发明的完整描述。由于还可以对本发明提出各种实施例而不脱离本发明的精神和范围,因此本发明的范围取决于权利要求及其等效替换。

Claims (8)

1.一种生成二进制文件内容签名的方法,其特征在于,包括如下步骤:
a)将所述二进制文件分割为大小合适的多个片段;
b)使用保证计算结果唯一性的算法计算所述片段的内容签名,从而获得多个片段内容签名;
c)通过链接所述多个片段内容签名,或,通过使用保证计算结果唯一性的算法计算所述多个片段内容签名生成所述二进制文件的内容签名。
2.一种生成二进制文件内容签名的方法,其特征在于,包括如下步骤:
a)将所述二进制文件分割为大小合适的多个片段;
b)从每个片段中提取多个样本;
c)使用保证计算结果唯一性的算法、利用所述片段的多个样本来计算所述每个片段的内容签名,从而获得多个片段内容签名;
d)通过链接所述多个片段内容签名,或,通过使用保证计算结果唯一性的算法计算所述多个片段内容签名生成所述二进制文件的内容签名。
3.根据权利要求2所述的方法,其特征在于,所述片段的大小不大于256K。
4.根据权利要求2所述的方法,其特征在于,所述用于计算内容签名的算法为SHA-1。
5.根据权利要求2所述的方法,其特征在于,所述样本包括所述文件的开始部分和结尾部分。
6.根据权利要求2所述的方法,其特征在于,所述样本包括所述文件的开始部分或结尾部分。
7.一种生成二进制文件内容签名的系统,其特征在于,包括:
a)将所述二进制文件分割为大小合适的多个片段的装置;
b)使用保证计算结果唯一性的算法计算所述片段的内容签名从而获得多个片段内容签名的装置;
c)通过链接所述多个片段内容签名,或,通过使用保证计算结果唯一性的算法计算所述多个片段内容签名生成所述二进制文件的内容签名的装 置。
8.一种生成二进制文件内容签名的系统,其特征在于,包括:
a)将所述二进制文件分割为大小合适的多个片段的装置;
b)从每个片段中提取多个样本的装置;
c)使用保证计算结果唯一性的算法利用所述片段的多个样本来计算所述每个片段的内容签名从而获得多个片段内容签名的装置;
d)通过链接所述多个片段内容签名,或,通过使用保证计算结果唯一性的算法计算所述多个片段内容签名生成所述二进制文件的内容签名的装置。 
CN2008101349654A 2004-09-29 2004-09-29 生成二进制文件内容签名的方法及系统 Active CN101408881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101349654A CN101408881B (zh) 2004-09-29 2004-09-29 生成二进制文件内容签名的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101349654A CN101408881B (zh) 2004-09-29 2004-09-29 生成二进制文件内容签名的方法及系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800341994A Division CN100524300C (zh) 2003-09-29 2004-09-29 内容定向的索引和搜索方法与系统

Publications (2)

Publication Number Publication Date
CN101408881A CN101408881A (zh) 2009-04-15
CN101408881B true CN101408881B (zh) 2011-06-29

Family

ID=40571894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101349654A Active CN101408881B (zh) 2004-09-29 2004-09-29 生成二进制文件内容签名的方法及系统

Country Status (1)

Country Link
CN (1) CN101408881B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546359B (zh) * 2010-12-10 2014-12-10 中兴通讯股份有限公司 实现路径最大传输单元探测的方法及路由器
CN107704501B (zh) * 2017-08-28 2020-04-24 中国科学院信息工程研究所 一种识别同源二进制文件的方法及系统
CN108008960A (zh) * 2017-11-09 2018-05-08 北京航空航天大学 一种面向关键软件二进制文件的特征码生成方法
CN113541973B (zh) * 2021-09-17 2021-12-21 杭州天谷信息科技有限公司 一种电子签名封装方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567175A (zh) * 2003-06-19 2005-01-19 周育人 二进制数并行连加运算的化简方法及连加器电路
CN1777854A (zh) * 2003-03-13 2006-05-24 科沃德科技公司 计算机系统及用于计算机系统的设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777854A (zh) * 2003-03-13 2006-05-24 科沃德科技公司 计算机系统及用于计算机系统的设备
CN1567175A (zh) * 2003-06-19 2005-01-19 周育人 二进制数并行连加运算的化简方法及连加器电路

Also Published As

Publication number Publication date
CN101408881A (zh) 2009-04-15

Similar Documents

Publication Publication Date Title
US7882139B2 (en) Content oriented index and search method and system
JP6246279B2 (ja) 消費者定義の情報アーキテクチャ用のシステム、方法およびコンピュータプログラム
KR101175858B1 (ko) 검색 결과 페이지에 인터랙티브 요소를 포함하는 시스템 및 그 방법
CN103221951B (zh) 预测查询建议高速缓存
KR101108329B1 (ko) 단일 질의에 대한 다수의 검색 결과 세트들을 표시하는 시스템 및 방법
US8185507B1 (en) System and method for identifying substantially similar files
Broekstra13 et al. A metadata model for semantics-based peer-to-peer systems
US20060041560A1 (en) Distributing content indices
US20030088544A1 (en) Distributed information discovery
Preda et al. Active knowledge: dynamically enriching RDF knowledge bases by web services
US20020091835A1 (en) System and method for internet content collaboration
US20030088639A1 (en) Method and an apparatus for transforming content from one markup to another markup language non-intrusively using a server load balancer and a reverse proxy transcoding engine
CN101499098A (zh) 一种网页评估值的确定及运用的方法、系统
CN101184091B (zh) 一种确定相似文件的方法及装置
CA2699653A1 (en) Method and system for aligning ontologies using annotation exchange
EP1266300A1 (en) System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising
WO2002091239A2 (en) System and method for multiple data sources to plug into a standardized interface for distributed deep search
CN102184185A (zh) 一种用于多媒体资源搜索的方法与设备
CN100524300C (zh) 内容定向的索引和搜索方法与系统
Müller et al. Fast retrieval of high-dimensional feature vectors in P2P networks using compact peer data summaries
CN101408881B (zh) 生成二进制文件内容签名的方法及系统
CN110413807A (zh) 一种基于内容语义元数据的图像查询方法与系统
Paik et al. Dynamic restructuring of e-catalog communities based on user interaction patterns
Marinković et al. A distributed catalog for digitized cultural heritage
US7668929B1 (en) Abstracting links to electronic resources in a network environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170411

Address after: A District No. 9018 building 518000 Guangdong Han innovation city of Shenzhen province Nanshan District high tech park, North Central Avenue, 4 floor 401

Patentee after: Shenzhen thunder network culture Co., Ltd.

Address before: 518057 Guangdong, Shenzhen, Nanshan District science and technology road, No. two, Shenzhen Software Park, building 7,8, floor 11

Patentee before: Qiaozhao Technology (Shenzhen) Co.Ltd

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170929

Address after: 518000 room 11, building 802, Shenzhen Software Park, Shenzhen District, Nanshan District hi tech Zone, Guangdong

Patentee after: Qiaozhao Technology (Shenzhen) Co.Ltd

Address before: A District No. 9018 building 518000 Guangdong Han innovation city of Shenzhen province Nanshan District high tech park, North Central Avenue, 4 floor 401

Patentee before: Shenzhen thunder network culture Co., Ltd.

TR01 Transfer of patent right