CN105229974A - 用于在联合网络中的隐私保护查询方法和系统 - Google Patents
用于在联合网络中的隐私保护查询方法和系统 Download PDFInfo
- Publication number
- CN105229974A CN105229974A CN201480026004.5A CN201480026004A CN105229974A CN 105229974 A CN105229974 A CN 105229974A CN 201480026004 A CN201480026004 A CN 201480026004A CN 105229974 A CN105229974 A CN 105229974A
- Authority
- CN
- China
- Prior art keywords
- node
- path
- request
- grouping
- information
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
在至少一个实施例中,一种方法和系统包括节点,该节点潜在具有响应于信息请求的信息并且分布在例如联合网络中,其中该节点接收至少一个信息请求分组,在所述节点进行信息搜索来确定请求的信息是否存在,当请求的信息存在时,那么所述节点向请求节点发送确认,将所述请求的信息线性网络编码为m个分组,其中m大于或等于k并且m是需要被所述请求节点接收到以重新构建所述请求的信息的分组的数目,在所述节点与所述请求节点之间选择多条路径,这样使得没有第三方将看到多于k-1个不同的分组,并且发送在所选择的路径上分布的m个分组。
Description
这个PCT国际申请权利要求受益于在2013年提交到美国专利商标局的、申请号为No.13/887,873的美国专利申请。
本发明是在合同号为W911NF-06-3-0001(美国军方)的政府支持下完成的。政府对本发明享有一定的权利。
背景技术
本发明涉及当响应于信息查询请求而提供信息时保护联合网络(federatedcoalitionnetwork)中隐私。在更具体的实施例中,线性网络编码被用于将信息转变为多个分组。
联合网络是由不同方拥有的节点形成的分布式网络。每方代表独立实体,例如,组织或公司,其想与其它方共享数据从而促进共同的目的。联合网络可能被使用的示例包括多国军事任务、自组织人道主义合作以及国际科学项目。联合网络可以包括例如无线网络的不可靠部分之上的链接。
发明内容
本发明在至少一个实施例中包括一种方法,该方法包括:从联合计算机网络中的至少一个相邻节点接收至少一个信息请求分组,由所述节点在所述节点进行信息搜索来确定请求的信息是否存在,当请求的信息存在时,那么所述节点:利用信息请求分组中存在的头信息向请求节点发送确认以使所述确认路由返回至所述请求节点,将所述请求的信息线性网络编码为m个分组,其中m大于或等于k,m是由所述请求节点需要接收到以重新构建所述请求的信息的分组数目,在所述节点与所述请求节点之间选择多个路径,从而使得没有到所述节点和所述请求节点的第三方将具有超过k-1不同的分组通过由所述第三方控制的任何一个或多个节点,以及发送在所述选择的路径上分布的m个分组。在又一实施例中,当所述请求的信息不存在时,该方法进一步包括更新所述信息请求分组的头信息以包括所述节点的标识,所述节点包括拥有所述节点的一方的标识,以及向发送所述信息请求分组的相邻节点以外的至少一个其它节点转发所述信息请求。在以上实施例的又一实施例中,该方法进一步包括:检查路径的每个接收到的信息请求分组的头,以确定所述节点是否存在于所述路径中,当所述节点存在于所述路径中时,忽略(disregard)所述信息请求分组。在以上实施例的又一实施例中,该方法进一步包括:由所述节点接收所述信息请求分组的停止分组,由所述节点停止发送所述信息请求分组,以及由所述节点将所述停止分组转发至发送所述停止请求的所述相邻节点以外的相邻节点。
在以上实施例的又一实施例中,该方法进一步包括:在所述节点的存储器中存储任何接收到的信息请求分组的路径。在又一实施例中,该方法进一步包括:由所述节点计算所述节点接收到的所述信息请求分组的路径的数目,当所述数目等于n时,如果所述信息请求分组再次被接收到,那么所述节点停止向相邻节点发送所述信息请求分组。在一个可选实施例中,该方法进一步包括:当n个路径被已发送所述应答的所述节点收集到时,向所述请求节点发送准备通知。在这段的其它实施例又一实施例中,所述选择多个路径包括:将存在于所述联合网络中的每个其它第三方的计数器设置为等于k-1,至少部分基于针对所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的第一路径,根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,至少部分基于针对所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的至少一个第二路径,根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。在又一实施例中,其中至少基于所述路径的长度选择所述第一路径和所述至少一个第二路径,从而选择最短路径作为所述第一路径并且选择次最短路径作为所述第二路径。在前面两个实施例的又一实施例中,该方法进一步包括:如果不存在充足的路径发送包含所述请求的信息的m个分组,那么从所述节点向所述请求节点发送关于不能发送请求的信息的通知。在一个可选实施例中,所述选择多条路径包括由中央处理器将在所述联合网络中存在的每个其它第三方的计数器设置为等于k-1,由所述中央处理器至少部分基于在所述节点针对所述信息请求分组存储的路径在所述节点与所述请求节点之间选择第一路径,由所述中央处理器根据将要在第一路径上发送的分组数目减少沿着所述第一路径存在的每个第三方的计数器,由所述中央处理器至少部分基于在所述节点针对所述信息请求分组存储的路径在所述节点与所述请求节点之间选择至少一个第二路径,并且由所述中央处理器根据将要在至少一个第二路径上发送的分组数目减少沿着所述至少一个第二路径存在的每个第三方的计数器。
在前段的一个可选实施例中,所述选择n条路径包括:基于所述节点与所述请求节点之间的所述联合网络检索路径,其中所述路径基于从链接状态洪水消息(linkstatefloodingmessage)获取的联合网络的拓扑;将在所述联合网络中存在的每个其它第三方的计数器设置为等于k-1;至少部分基于所述检索的路径选择所述节点与所述请求节点之间的第一路径,根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,至少部分基于所述检索的路径选择所述节点与所述请求节点之间的至少一个第二路径,根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。在又一实施例中,至少基于所述路径的长度选择所述第一路径和所述至少一个第二路径,从而选择最短路径为所述第一路径并且选择次最短路径作为所述第二路径。
在至少一个实施例中,本发明包括一种方法,该方法包括:将信息请求分组从请求节点发送至具有多个节点的联合网络,所述多个节点由至少两个其它方拥有,由所述请求节点的至少一个相邻节点接收所述信息请求分组,更新所述信息请求分组的头信息以包括接收所述信息请求的所述节点的标识,其中所述信息请求包括拥有所述接收节点的一方的标识,将所述信息请求分组从接收所述信息请求分组的所述节点发送至所述请求节点以外与所述节点通信的节点,在接收节点接收来自至少一个相邻节点的至少一个信息请求分组,由所述接收节点在所述接收节点进行信息搜索以确定是否存在所述请求的信息,当所述请求的信息存在时,那么所述接收节点:利用信息请求分组中存在的头信息向请求节点发送确认以使所述确认路由返回至所述请求节点,将所述请求的信息线性网络编码为m个分组,其中m大于或等于k,m是由所述请求节点需要接收到以重新构建所述请求的信息的分组数目,在所述节点与所述请求节点之间选择多个路径,从而使得没有到所述节点和所述请求节点的第三方将具有超过k-1不同的分组通过由所述第三方控制的任何一个或多个节点,以及发送在所述选择的路径上分布的m个分组。
在至少一个实施例中,本发明包括一种方法,该方法包括:将来自请求节点的信息请求发送至具有多个节点的联合网络,其中所述多个节点由至少两个其它方拥有,响应于所述信息请求,在等于所述联合网络的网络穿越时间两倍的时间段,由所述请求节点收集发送的任何确认,在从发送所述确认的任何节点接收到准备分组之后,由所述请求节点向邻近所述请求节点的任何节点发送停止分组,由向所述请求节点发送确认的任何节点接收至少k个线性网络编码分组,这样在所述联合网络中没有其它第三方接收多于k-1个不同分组,以及重新构建来自所述至少k个线性编码分组的信息。
附图说明
参照附图描述本发明。在附图中,相似的附图标记表明相同或功能相似的组件。
图1示出根据本发明至少一个实施例的联合网络的示例。
图2示出根据本发明至少一个实施例的联合网络中请求信息的方法流程图。
图3示出具有注释的图1示出的联合网络。
图4示出具有注释的图1示出的联合网络。
图5示出具有注释的图1示出的联合网络。
图6示出根据本发明至少一个实施例的在联合网络中请求节点请求信息的方法。
图7示出根据本发明至少一个实施例的路径选择的方法。
图8示出根据本发明至少一个实施例的联合网络中的请求节点的又一方法。
图9示出根据本发明至少一个实施例的在联合网络中接收节点接收信息请求的方法。
图10示出根据本发明至少一个实施例的路径选择的可选方法。
图11示出在本发明至少一个实施例中使用线性编码的示例。
图12示出根据本发明至少一个实施例在联合网络中分组将如何在多个路径上分布的示例。
图13示出根据本发明至少一个实施例在联合网络中分组将如何在多个路径上分布的另一个示例。
图14示出根据本发明至少一个实施例在联合网络中分组将如何在多个路径上分布的另一个示例。
图15A和15B示出根据本发明至少一个实施例路径选择的另一个方法。
图16示出根据本发明的实施例的计算机程序产品。
图17示出根据本发明至少一个实施例的部署的示例方法。
图18示出根据本发明至少一个实施例的集成的示例方法。
图19示出根据本发明至少一个实施例的按需可用性的示例方法。
具体实施方式
以下详细讨论本发明示例的、非限制的实施例。尽管讨论具体的配置以提供清楚的理解,应该理解公开的配置被提供仅用于说明的目的。本领域普通技术人员明白在不脱离本发明的精神和范围的情况下可以使用其它配置。
图1示出联合网络(或联合计算机网络)的示例,其中多方参与了网络的形成并且在任何时刻拥有在网络中存在的不同数目的节点。在存在的节点数目和节点之间的互连方面联合网络可以采取多种形式,例如图1被用作这种网络的一个示例来讨论根据本发明至少一个实施例。示意的网络包括五方(或拥有者),即,A、B、C、D和E。在联合网络中多个节点形成无组织的多跳覆盖网络,在多跳覆盖网络中多个节点协作用于信息交换。每个节点提供到存储在可以存储数据的至少一个存储系统(例如计算机、服务器、网络区域存储)上的数据的连接,例如,关系数据。在至少一个实施例中,数据的位置对其它节点未知。
在至少一个实施例中,每方具有不同的配对(pair-wise)策略关于哪些数据可以与其它方共享。这个的一个示例是与方A共享的方B的数据不应对方C可见,除非策略清楚地允许。在这个实施例中,按照之前达成的联合网络的规则充当的每方是诚实而好奇的并且不能故意拦截信息,但是将读取通过其拥有的节点的任何信息。利用例如运行软件以执行互连节点之间的网络通信的处理器和在本公开中讨论的方法,每个节点根据联合网络建立的策略工作。
在图2所示的至少一个实施例中,当在示出的节点之间存在多个可用的通信路径时,提供一种保护彼此之间不是直接邻居的两个节点之间的信息通信的隐私的方法,例如,在图1中,通过向联合网络305发送信息查询(或请求)请求,节点(或请求节点)请求可以被存储在联合网络中存在的其它节点的信息。例如,节点410请求信息并向图3所示的相邻节点412、414和416的每个发送信息请求分组。没有限制防止示出的联合网络中节点410以外的的另一个节点成为请求节点,而不是节点410。
所述请求节点的至少一个相邻节点接收信息请求分组310。中间节点中的每个向从其接收了所述查询的节点320以外的邻居(或接收节点)422、424、426、428转播所述请求分组,如图4所示。在至少一个可选实施例中,每个节点向每个查询分组315的头增加关于接收了所述信息请求的节点的标识信息。在至少一个又一实施例中,所述标识信息包括拥有所述接收节点的一方和发送所述信息请求的至少一个相邻节点的至少一个标识,在又一实施例中提供了从所述请求节点之后所述信息请求分组的路径的路由信息。所述转播继续通过网络,除非所述接收节点确定所述接收节点具有所述请求的信息或者未连接到两个节点(如图4中的方C拥有的节点448的示例)。
接收节点在所述接收节点执行信息搜索以确定请求的信息是否存在于节点325。在至少一个实施例中,所述搜索是存储在与所述接收节点通信的存储系统上的关系型数据库。
如图2所示,在至少一个实施例中,当所述请求的信息存在时,那么接收节点向所述请求节点335-350提供所述请求的信息。在至少一个实施例中,一旦每个独特的信息请求随着转发该分组的节点将来每次被接收到而未进行检查(除非已接收到停止分组),执行对所述请求的信息的检查。接收节点利用在所述信息请求分组中存在的头信息向所述请求节点发送确认,以将所述确认路由返回至所述请求节点335。接收节点将所述请求的信息线性网络编码为m个分组,这里m大于或等于k,并且m是需要被接收到以重新构建所述请求的信息340的分组的最小数目。在至少一个实施例中,通过线性网络编码,接收节点将所述信息分为将用于产生m个编码分组的k片。接收节点选择在所述接收节点与所述请求节点之间的多个路径,以使没有第三方将使大于k-1个不同的分组通过由第三方345控制的节点。接收节点发送在所选择的路径350上分布的每个分组。在至少一个实施例中,选择的路径的数目等于和/或小于n,在至少一个实施例中,n是接收节点需要知道的对其数据进行响应的路径的最小数目。在至少一个实施例中,m个路径被选择,其中部分路径可以与至少一个其它选择的路径完全重叠或部分重叠。在至少一个实施例中K、m和n变量在联合网络中被预设(或预先确定)。在一个可选实施例中,基于由所述接收节点发送的确认的内容在所述接收节点与所述请求节点之间至少一个变量按照需要被设置。一个示例是所述接收节点包括确认变量的值。在又一可选实施例中,作为联合网络的建立或现行策略的部分,至少一个变量被预先确定用于两方之间的通信。
在至少一个实施例中,当请求的信息不存在时,接收节点将信息请求分组转发至至少一个邻居节点(如果存在)。在又一实施例中,当请求的信息不存在于该节点,该节点更新信息请求分组的头信息以包括所述节点和向所述节点发送信息请求分组的相邻节点的至少一个标识,其中所述节点包括拥有所述节点一方的标识。假设存在至少两个相邻节点,该节点将所述信息请求分组转发至发送被转发的信息请求分组的相邻节点以外的至少一个其它节点。
为了说明的目的并且使用图5,节点442是具有满足由请求节点410发送的信息请求的信息的接收节点。节点442由方C拥有,而节点410由方A拥有。图5中,在两个节点之间存在至少三条路径:由虚线表示的(C-A-E-C-E-A),由短划线表示的(C-D-A-C-A)以及较长短划线表示的(C-B-B-A-C-A)。为了说明的目的,k等于2,m等于3,以及n等于3。所述3条路径满足n需求,在至少一个实施例中,n是由所述接收节点发现路径的最小数目。如果每个分组沿着不同的路径发送,那么方B将只看到一个分组从它拥有的节点沿着较长短划线的路径,方D将只看到一个分组从它拥有的节点沿着短划线的路径,方E将只看到一个分组从它拥有的节点沿着虚线的路径。因此,满足了在联合网络中最多k-1(即,2-1=1)个分组由任何一个其它第三方看到的需求。假设至少两个分组通过节点442和节点410之间的联合网络,那么节点410将能够解构所述分组以获得所述请求的信息。
在图6中示出的又一实施例中,在610,所述请求节点410收集(或接收)响应于所述信息请求发送的任何确认。在至少一个实施例中,在等于联合网络的网络穿越时间的两倍的时间段,请求节点410收集确认,如果没有接收到确认,那么所述请求节点410确定所述请求的信息不在所述联合网络中。在615,在从已发送确认的任何一个或多个节点接收到准备分组之后,所述请求节点410向邻近所述请求节点410的任何节点412、414和416发送停止分组。在620,所述至少一个相邻节点(例如节点412)接收所述信息请求的停止分组。在625,响应于接收所述停止分组,所述至少一个相邻节点停止发送原始信息请求。在630,所述至少一个相邻节点转发所述停止分组至已发送所述停止请求的相邻节点以外的任何相邻节点(例如,节点412到节点422或者节点416到节点426、428)。
在又一实施例中,每个节点存储在存储器中已接收到的所述信息请求分组的所有路径。所述节点检查所述信息请求从请求节点到当前节点走过的路径中每个接收到的信息请求分组的头。在至少一个实施例中,如果所述路径包含当前节点,存在一个循环并且当前节点忽略所述信息请求分组。在至少一个实施例中,如果该路径包含向所述当前节点转发所述信息请求分组的相邻节点以外的第二相邻节点,那么该路径是无用的路径并且当前节点忽略所述信息请求分组。在又一实施例中,如果之前两个实施例的任何一个的条件满足,那么当前节点忽略所述信息请求分组。当所述信息请求分组不被忽略时,那么所述当前节点添加这条路径到存储器并将所述信息请求分组转发至在所述头中未标识的相邻节点。
在又一实施例中,所述接收节点存储在存储器中已接收到的信息请求分组的所有路径。所述接收节点使用在图7示出的至少一个实施例中存储的路径信息来选择路径。在710,所述接收节点将在联合网络中存在的每个第三方的计数器设置为等于k-1。在715,至少部分基于针对所述信息请求存储的路径,所述接收节点选择所述接收节点与所述请求节点之间的第一路径。在720,根据要通过第一路径发送的分组的数目所述接收节点减少沿着所述第一路径存在的每个第三方的计数器。在725,至少部分基于针对所述信息请求存储的路径,所述接收节点选择所述接收节点与所述请求节点之间的至少一个第二路径。在730,根据要通过所述至少一个第二路径发送的分组的数目所述接收节点减少沿着所述至少一个第二路径存在的每个第三方的计数器。在至少一个实施例中选择的路径的数目等于n,而在另一个实施例中选择的路径的数目小于n。在又一实施例中,至少最初,至少基于所述路径的长度选择所述路径,从而至少初始选择最短路径作为所述第一路径以及选择次最短路径作为第二路径。在这个图形的又一实施例中,当第三方计数器低于0时,所述接收节点选择不同的路径来替换最后选择的路径,而在另一个实施例中,所述接收节点不仅仅替换最后选择的路径。在之前实施例的又一实施例中,当没有可用路径时,那么接收节点通知所述请求节点所述请求的信息将不会被发送,所述节点需要等待直到所述接收节点与所述请求节点之间的可用路径存在变化,和/或需要使用不同的方法。在一个可选实施例中,所述接收节点使用每个第三方的计数器结合递归过程来选择路径以发送m个分组的每个来到达所述请求节点。
在一个可选实施例中,由所述接收节点向所述分组分配路径直到每个分组被分配了一条路径,或者如果第i个分组没有可用路径,那么追溯并且删除第(i-1)分组的路径分配。所述接收节点将第(i-1)分组从分配的集合移动到未分配的集合,任何计数器增加1并且移动返回到之前分配中删除的任何路径。所述接收节点向次最短路径重新分配路径,并且更新计数器,相应地移动路径。在至少一个实施例中,所述接收节点重复所述选择过程直到找到可行的方案或者追溯到分配的路径。如果所述接收节点不能再追溯和/或所述逻辑在某个预先确定的时间内未完成,那么接收节点宣布失败并且在又一实施例中所述接收节点通知所述请求节点所述请求的信息将不会被发送。
基于以上讨论,本领域的普通技术人员应用理解在至少一个实施例中,联合网络内各个节点的操作可以从以上讨论的方法实施例中抽取。以下的讨论提供了联合网络内部各个节点操作的附加实施例。
在图8中示出的又一实施例,该方法包括在联合网络中请求和接收信息方面请求节点的操作。在810,所述请求节点向联合网络发送信息请求,其中所述联合网络具有由至少两个其它方拥有的多个节点。在815,在等于联合网络的网络穿越时间的两倍的时间段,所述请求节点收集任何确认,所述确认代表联合网络中的另一个节点具有请求的信息,响应于所述信息请求分组所述请求的信息被发送。
在820,在从之前已发送确认的任何一个或多个节点接收到准备分组之后,所述请求节点向邻近所述请求节点的任何节点发送停止分组。在一个可选实施例中,所述请求节点等待直到它从已发送确认的每个节点接收到准备分组。
在825,所述请求节点从向所述请求节点发送确认的任何节点接收至少k个线性网络编码分组,这样在联合网络中没有其它方接收超过k-1个不同的分组。在830,所述请求节点对来自所述至少k个线性编码分组的信息进行重新构建。
图9示出在联合网络中所述请求节点以外的节点的操作方法的示例。在910,所述节点从联合网络中的至少一个相邻节点接收至少一个信息请求。在图4中这个示例是节点424,其从节点414接收信息请求分组。在915,所述节点在所述节点执行信息搜索来确定请求的信息是否存在于所述节点。在至少一个实施例中,所述搜索是在与所述接收节点通信的存储系统上存储的关系型数据库中进行。
如图9所示,在920,在至少一个实施例中,当所述请求的信息存在时,那么在925-940(接收)节点向所述请求节点提供所述请求的信息。在至少一个实施例中,一旦每个独特的信息请求随着转发该分组的节点将来每次被接收到而未进行检查(除非已接收到停止分组),执行对所述请求的信息的检查。在925,利用在所述信息请求分组中存在的头信息所述节点向所述请求节点发送确认以将确认路由回至所述请求节点。在930,所述节点将所述请求的信息线性网络编码为m个分组,其中m大于或等于k,并且m是需要被接收到以重新构建所述请求的信息的分组的最小数目。在至少一个实施例中,所述节点将信息划分为k片,其将被用来通过线性网络编码产生所述m个编码的分组。所述节点选择所述节点与所述请求节点之间选择多条路径,从而使没有到所述节点和所述请求节点的第三方将具有超过k-1不同的分组通过由所述第三方控制的任何一个或多个节点。在940,所述节点发送在所述选择的路径上分布的m个分组。在至少一个实施例中,选择的路径的数目等于和/或小于n,n是由所述接收节点能用数据做出响应之前必须发现的路径最小数目。在至少一个实施例中,m个路径被选择,其中部分路径可以与至少一个其它选择的路径完全重叠或部分重叠。在至少一个实施例中K、m和n变量在联合网络中被预设(或预先确定)。在一个可选实施例中,基于由所述接收节点发送的确认的内容在所述接收节点与所述请求节点之间至少一个变量按照需要被设置。一个示例是所述节点在确认中包括变量的值。在又一可选实施例中,作为联合网络的建立或现行策略的部分,至少一个变量被预先确定用于两方之间的通信。
在至少一个实施例中,在945,当所述请求的信息不存在时,所述接收节点将所述信息请求分组转发至至少一个相邻节点(如果存在)。在又一实施例中,当所述请求的信息未存在于所述节点时,该节点更新信息请求分组的头信息以包括所述节点和向所述节点发送信息请求分组的相邻节点的至少一个标识,其中所述节点包括拥有所述节点一方的标识。假设存在至少两个相邻节点,该节点将所述信息请求分组转发至发送被转发的信息请求分组的相邻节点以外的至少一个其它节点。
在又一实施例中,当由所述请求节点发送停止分组时,该方法进一步包括由所述节点执行的步骤。如果所述信息请求再次被接收到,那么所述节点停止向其它节点发送所述信息请求分组。假设存在至少两个相邻节点,该节点将所述停止分组转发至发送所述停止分组的相邻节点以外的每个相邻节点。在一个可选实施例中,当所述停止分组第二次被接收到,所述节点忽略所述第二个或后来的停止分组
在又一实施例中,在所述接收的信息请求分组的路径被存储在所述节点的存储器中之前或之后,所述接收节点计数由所述节点接收到的所述信息请求的路径的数目,例如这基本可以同时发生。在至少一个实施例中,当路径的数目等于n时,所述节点停止向相邻节点发送所述信息请求分组,例如,如果所述信息请求分组再次被接收到或者不发送计数器等于n的所述信息请求分组,在又一实施例中,已向所述请求节点发送确认的节点,并且当所述节点收集了n条路径时,所述接收节点向所述请求节点发送准备通知。
图7示出所述接收节点如何选择所述路径来通过所述节点来发送m个分组的示例并且讨论如上。在图7示出的又一实施例中,当所述接收节点由于不存在充足的路径以发送所述请求的信息而不能发送请求的信息时,所述接收节点将向所述请求节点发送通知,从而没有第三方看到多于k-1个包含所述请求的信息的不同的分组。
图10示出选择所述路径的可选方法。在1005,所述接收节点在所述接收节点与所述请求节点之间搜索联合网络的路径,在此所述路径基于从链接状态洪水消息中获得的所述联合网络的拓扑。在至少一个实施例中,所述路径被存储在由存在于所述联合网络中节点可访问的中心数据库中,在此所述中心数据库存储所述联合网络的拓扑。在至少一个又一实施例中,所述中心数据库被维护在联合网络中的其中一个节点上。在一个可选的又一实施例中,每个节点维护自己的路径数据库,其中路径数据库被存储在连接到所述节点的存储器和/或存储设备上。
在1010,所述节点将所述联合网络中存在的每个其它第三方的计数器设置为等于k-1。在1015,至少部分基于针对所述信息请求存储的路径,所述节点在所述节点与所述请求节点之间选择第一路径。在1020,根据通过所述第一路径发送的分组的数目所述节点减少沿着所述第一路径存在的每个第三方的计数器。在1025,至少部分基于针对所述信息请求存储的路径,所述节点在所述节点与所述请求节点之间选择至少一个第二路径。在1030,根据将要在所述至少一个第二路径上发送的分组的数目,所述节点减少沿着所述至少一个第二路径存在的每个第三方的计数器。在至少一个实施例中选择的路径的数目等于n,而在另一实施例中选择的路径的数目小于n。在又一实施例中,至少基于所述路径的长度选择所述路径,从而至少初始为所述第一路径选择最短路径并且为所述第二路径选择次最短路径。在这个图形的又一实施例中,当第三方计数器低于0时,所述节点选择不同的路径来替换最后选择的路径,而在另一个实施例中,所述节点不仅仅替换最后选择的路径。在之前实施例的又一实施例中,当没有可用路径时,那么所述节点通知所述请求节点所述请求的信息将不会被发送,所述节点需要等待直到所述节点与所述请求节点之间的可用路径存在变化,和/或需要使用不同的方法。
在一个可选实施例中,让上述实施例中的所述接收节点选择要被用于从所述接收节点向所述请求节点发送信息分组的路径,中央处理器被用于选择路径和分组的数目以通过所述接收节点的每条路径进行发送。在又一实施例中,所述中央处理器与所述中心路径数据库通信。
在上述实施例的一个可选实施例中,使用计数器来限制通过由第三方拥有的节点的不同分组的数目,如果在第三方与拥有所述接收节点的一方之间关于通过它们各自的节点进行信息传输存在策略并所述策略将限制所述第三方偷听通过所述节点的分组,那么第三方的计数器被消除。
结合附图11-14在以下的讨论中将提供路径选择的示例,在此矩形框表示分组以及圆表示节点。如果分组沿着一条路径通过节点,那么所述分组将被拥有所述节点的一方观察到。在至少一个实施例中,来自全部n个被发现的路径的每个分组的路径被找到,这样m个分组的聚合传输成本可以被最小化,从而没有第三方可以观察到多于k-1个分组。
图11提供了线性网络编码的说明,在此信息被一起包含在a和b中。源代码产生m个不同的a和b的独立线性组合并沿着不同的路径(即,“a+b”、“a+2b”和“a+3b”)发送它们(以及系数)。只要目的地节点t收集m个编码分组中的k个分组,它就能恢复(或重新构建)a和b。在至少一个实施例中,m和k值可以被调整。
图12示出m个分组如何分布在示意的具有四个第三方A、B、C、D的m条路径上。
图13示出n=10(虽然只示出三条路径),m=6,k=3的示例,并且存在四个第三方A、B、C和D。以下的表将示出每方的计数器。对于每个第三方,当1被从k中减去时,初始计数器被设置为2。最短路径是中心路径,在此A方和B方拥有一个节点,这样对于将遵循那条路径的两个分组(即分组1和2)A方和B方的计数器被减少了2。下一个最短路径被选择用于分组3和4,其将通过由D方拥有的节点,D方的计数器将被减少2。下一个最短路径被选择用于分组5和6,其将通过由C方拥有的节点,C方的计数器将被减少2。如果k的值是4或5,那么将有3或4个分组沿着最短路径被发送并且剩余的分组沿着次最短路径被发送,从而避免方A、B和D中的任何一个分别看到4或5个不同分组。这个修改是相同数目的分组如何不需要通过所选择的每个路径通过的示例。在又一实施例中,在所有路径被选择之后,每条路径被从路径的集合中去除以确定是否仍存在k个分组在所述剩余的路径上被发送;以及当不存在时,那么调整通过所述路径集合的分组的数目,从而满足计数器的要求。
A方 | B方 | C方 | D方 | |
初始计数器 | 2 | 2 | 2 | 2 |
在分组2和分组2之后 | 0 | 0 | 2 | 2 |
在分组3和分组4之后 | 0 | 0 | 2 | 0 |
在分组5和分组6之后 | 0 | 0 | 0 | 0 |
图14示出n=5(虽然仅示出3条路径),m=3,k=2并且存在四个第三方A、B、C和D的示例。对于每个第三方,当1被从k中减去时,初始计数器被设置为1。最短路径是中心路径,在此A方和B方拥有一个节点,这样对于将遵循那条路径的一个分组(即分组1)A方和B方的计数器被减少了1。下一个最短路径被选择用于分组2,其将通过由C方拥有的节点,C方的计数器将被减少1。下一个最短路径被选择用于分组3,其将通过由D方拥有的节点,D方的计数器将被减少1。如果D方拥有的节点的其中之一被C方拥有,那么将不会有可用路径发送分组3。在一个可选实施例中,因为如果两个分组都由节点t接收到,那么节点t将能够重新构建来自所述两个分组的信息,所述方法将仍旧发送分组1和分组2,因为k个分组将被接收到。
A方 | B方 | C方 | D | |
初始计数器 | 1 | 1 | 1 | 1 |
在分组1之后 | 0 | 0 | 1 | 1 |
在分组2之后 | 0 | 0 | 0 | 1 |
在分组3之后 | 0 | 0 | 0 | 0 |
图15A和15B示出两个示例算法彼此结合工作来选择使用的路径用于将m个分组从接收节点发送至所述请求节点。
本发明的各个实施例的描述已被示出用于说明的目的,但并非旨在穷尽或限制公开的实施例。在不脱离描述的实施例的范围和精神的情况下,很多修改和变化对本领域普通技术人员来说是显而易见的。在此使用的术语被选择以最好地解释所述实施例的原理、实际应用或对市场上发现的技术的技术改进、或者使本领域普通技术人员理解在此公开的实施例。
所属技术领域的技术人员知道,本发明的方面可以实现为系统、方法或计算机程序产品。因此,本发明的方面可以具体实现为以下形式,即:可以是完全的硬件实施例、也可以是软件和硬件结合的实施例(包括固件、驻留软件、微代码等),本文一般称为“电路”、“模块”或“系统”。此外,本发明的方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置或其它装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品(articleofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现在参照附图16,示出本发明至少一个实施例中应用的代表性硬件环境。这个示意性的附图示出根据本发明至少一个实施例的信息处理或计算机系统的硬件配置。该系统包括至少一个处理器或中心处理单元CPU10。CPU10与系统总线互连到各种设备例如随机存取存储器(RAM)14、只读存储器(ROM)16以及输入/输出(I/O)适配器18。I/O适配器18可以连接到外围设备,例如磁盘单元11和磁带驱动器13,或者由所述系统可读的其它程序存储器设备。该系统能够读取在所述程序存储器设备上的创新的指令并且按照这些指令执行本发明至少一个实施例的方法。该系统进一步包括用户接口适配器19,其将键盘15、鼠标17、扬声器24、麦克风22的和/或其它用户接口设备例如触屏设备(未示出)连接到总线12来收集用户输入。此外,通信适配器20将总线12连接至数据处理网络25,以及显示适配器将总线12连接至显示设备23,其中显示设备23可以被实现为输出设备例如监控器、打印机或发送器。
应该理解在联合网络中可以通过加载存储介质例如CD、DVD等人工地直接在客户端、服务器以及代理计算机上加载来部署用于提供强大隐私保护的数据传输的处理软件,通过向一个中心服务器或一组中心服务器发送所述处理软件所述处理软件也可以被自动或半自动第部署到计算机系统中。然后所述处理软件被下载到将执行所述处理软件的客户端计算机。可选地,所述处理软件通过电子邮件被直接发送至客户端系统。然后通过执行将所述处理软件分离到目录的程序的电子邮件上的按钮所述处理软件被分离到客户端计算机上的目录。另一个选择是将所述处理软件直接发送至客户端计算机硬驱动器上的目录。当存在代理服务器时,流程将选择代理服务器代码,决定哪个计算机放置代理服务器代码,发送代理服务器代码,然后在所述代理计算机上安装代理服务器代码。所述处理软件将被发送至代理服务器,然后将被存储在所述代理服务器上。
图17示出处理软件的部署方法100。在101,首先确定当所述处理软件被执行时是否有任何程序驻留在一个或多个服务器上。如果是这样,那么在209将包含可执行文件的所述服务器被识别。在210,通过FTP或一些其它协议或通过使用共享文件系统,所述一个或多个服务器的处理软件被直接转移至所述服务器的存储器。在211,然后所述处理软件被安装在所述服务器上。
接着,在102,确定所述处理软件是否通过让用户访问所述一个或多个服务器上的所述处理软件来被部署。在103,如果所述用户访问所述一个或多个服务器上的所述处理软件,那么将存储所述处理软件的服务器地址被识别。
在200,确定是否构建代理服务器来存储所述处理软件。代理服务器是位于客户端应用程序之间的服务器,例如Web浏览器和流媒体服务器(realserver)。它拦截了到达所述流媒体服务器的所有请求来看它是否能够自己完成所述请求。如果不能,它将所述请求转发至所述流媒体服务器。代理服务器的两个主要的益处是提高性能和过滤请求。在201,如果需要代理服务器,那么就安装代理服务器。在202,通过协议例如FTP或者通过文件共享将所述处理软件从所述源文件直接拷贝至所述服务器文件,所述处理软件被发送至服务器。另一个实施例将向包含所述处理软件的服务器发送交易并让所述服务器处理所述交易,然后接收并将所述处理软件拷贝到所述服务器文件系统中。在203,一旦所述处理软件被存储在所述服务器上,用户通过他们的客户端计算机访问在所述服务器上的所述处理软件并拷贝到他们的客户端计算机文件系统上。另一个实施例是让服务器自动将所述处理软件拷贝到每个客户端,然后在每个客户端计算机上运行所述处理软件的安装程序。在212,用户在他的客户端计算机执行安装所述处理软件的程序,然后在108停止所述流程。
在104,确定是否通过电子邮件向用户发送所述处理软件来部署所述处理软件。在105,将要部署处理软件的用户集和用户客户端计算机的地址被识别。通过电子邮件所述处理软件被发送至每个用户客户端计算机。在205,然后用户接收电子邮件,在206,然后将所述处理软件从电子邮件分离到他们的客户端计算机的目录。在212,用户他的客户端计算机上执行安装所述处理软件的程序。然后在108停止流程。
在106,最后确定所述处理软件是否将被直接发送至他们的客户端计算机上的用户目录。如果是这样,在107,用户的目录被识别。在207,所述处理软件被直接转移到用户的客户端计算机目录。这可以用几种方式来完成,因此并不限于共享文件系统目录,然后从发送者的文件系统拷贝到接收用户的文件系统或者可选地使用传输协议例如文件传输协议(FTP)。
在208,用户访问他们的客户端文件系统上的目录,准备安装所述处理软件。在212,用户在每个客户端计算机上执行安装所述处理软件的程序。然后在108停止所述流程。
通过提供所述处理软件与应用、操作系统和网络操作系统软件共同存在并且然后将所述处理软件安装在所述处理软件将工作的环境中的客户端和服务器,具有在联合网络提供强大隐私保护的数据传输方法的处理软件被集成到客户端、服务器和网络环境。
第一步是识别所述处理软件需要或者与所述处理软件结合的所述客户端和服务器上任何软件,其中所述客户端和服务器包括将部署所述处理软的网络操作系统。这包括网络操作系统,其是通过增加网络特征以增强基本操作系统的软件。
接着,所述软件应用和版本号将被识别并且与已被测试与所述处理软件工作的软件应用和版本号的列表进行比较。缺失或者与正确的版本不匹配的那些软件应用将由正确的版本号来更新。将参数从所述处理软件传递到所述软件应用的程序指令将被检查以确保所述参数与所述处理软件要求的参数匹配。包括网络操作系统的所述客户端和服务器操作系统将被识别并且与操作系统的列表、已被测试与所述处理软件工作的版本号和网络软件进行比较。与测试的操作系统和版本号不匹配的列表不匹配的那些操作系统、版本号和网络软件将在客户端和服务器上被升级到需要的级别。
在确定所述处理软件将被部署的软件是已被测试的与所述处理软件工作的正确版本级别之后,通过在所述客户端和服务器端安装所述处理软件完成集成。
图18示出所述处理软件的集成的方法220。在221,首先确定是否存在将在一个或多个服务器上执行的任何处理软件程序。如果不是这样,那么集成前进至227。如果是这样,那么在222所述服务器地址被识别。在223,所述服务器被检查来看是否他们包含软件,所述软件包括操作系统OS、应用、网络操作系统NOS以及已与所述处理软件一起被测试的它们的版本号。在223,所述服务器也被检查来确定是否存在由所述处理软件需要的任何缺失的软件。
在224,确定版本号是否和已与所述处理软件一起被测试的OS、应用和NOS的版本号匹配。在227,如果所有的版本号匹配并且没有缺失的需要的软件,那么所述集成继续。
在225,如果一个或多个版本号不匹配,那么在所述一个或多个服务器上用正确的版本号来更新不匹配的版本号。在225,此外,如果存在缺失的需要的软件,那么在所述一个或多个服务器上进行更新。在226,通过安装所述处理软件完成服务器集成。
在227,其在221、224或226之后,确定是否存在将在所述客户端上执行的任何处理软件的程序。如果没有处理软件程序在客户端上执行,那么所述集成前进到230并且停止。如果不是这种情形,那么在228识别所述客户端的地址
在229,所述客户端被检查来看它们是否包含软件,所述软件包括操作系统OS、应用、网络操作系统NOS以及已与所述处理软件一起被测试的它们的版本号。在229,所述客户端也被检查来确定是否存在由所述处理软件需要的任何缺失的软件。
在231,确定所述版本号与OS的版本号是否匹配已与所述处理软件一起被测试的OS、应用和NOS的版本号。如果所有的版本号匹配并且不存在缺失的所需要的软件,那么所述集成前进至230并且停止。
在232,如果一个或多个版本号不匹配,那么在所述客户端上用正确的版本号来更新不匹配的版本号。此外,如果需要的软件缺失,那么在所述客户端进行更新。在233,通过在客户端上安装所述处理软件完成客户端集成。所述集成前进至230并且停止。
用于在联合网络提供强大隐私保护的数据传输的处理软件被共享,同时以灵活、自动的方式服务多个客户。它是标准化的,几乎不需要定制并且可扩展的,以现收现付(pay-as-you-go)模型按需提供容量。
所述处理软件可以被存储在一个或多个服务器可访问的共享文件系统上。所述处理软件通过包含数据和服务器处理请求的交易被执行,其中所述服务器处理请求在访问的服务器上使用CPU单元。此外,所述访问的服务器可以请求需要CPU单元的其它服务器。CPU单元是使用测量的代表示例。其它使用测量包括但并不限于网络带宽、存储器使用、储存器使用、分组传输、完成交易等
当多个客户使用相同的处理软件应用时,他们的交易由包含在所述交易中的参数来进行区分,其中所述参数识别唯一的客户和针对该客户的服务的类型。被用于每个客户的服务的所有CPU单元和其它使用测量被记录。当到任何一个服务器的交易的数目达到开始影响该服务器性能的数目时,其它服务器被访问来增加能力并共享工作负载。同样地,当其它使用测量例如网络带宽、存储器使用率、储存器使用率等接近能力,从而影响性能时,额外的网络带宽、存储器使用率、储存器等被添加以共享工作负载。
用于每个服务和客户的使用测量被发送至收集服务器,其中所述收集服务器计算于对每个服务每个客户的使用测量的总和,其中所述服务在提供处理软件共享执行的服务器的网络中的任何地方被处理。计算所述使用测量的总和,并乘以单位成本,然后记录作为请求客户的收费。计算总和的使用测量单元周期地乘以单元成本,得到的全部处理软件应用服务费用被可选地发送至客户或者显示在客户访问的网站上,然后用户向服务提供者支付账款。
在另一个实施例中,服务提供商请求银行或金融机构的客户账户直接付款。
在另一个实施例中,如果服务提供商也是使用该处理软件应用的客户,则调和该服务提供者所欠的账款与所欠该服务供应商的账款以最小化费用的传输。
图19示出按需流程240的方法。在241,创建一个交易,其中该交易包含唯一的客户标识、请求的服务类型以及进一步指导服务类型的任何服务参数。在242,然后交易被发送至主服务器。在按需环境中,主服务器初始可以是唯一的服务器,然后随着能力的消耗将其它服务器添加至按需环境中。
在243,查询按需环境中的服务器中心处理单元CPU的能力。在244,评估交易的CPU需求,然后将所述按需环境中所述服务器的可用CPU能力与交易CPU需求进行比较,来看在任何服务器中是否存在充足的CPU可用能力来处理所述交易。如果没有充足的服务器CPU可用能力,那么在248分配额外的服务器CPU能力来处理所述交易。如果已经存在充足的可用CPU能力,那么在245,该交易被发送至选择的服务器。
在246,在执行该交易之前,检查剩余的按需环境来确定是否所述环境具有充足的可用能力用于处理该交易。这个环境能力包括并不限于:网络带宽、处理器存储器、储存器等。如果没有充足的可用能力,那么在247,能力将被,添加至所述按需环境中。接着处理该交易所需要的软件被访问并被加载到存储器,然后在249执行该交易。
在252,如果该客户已请求所述按需费用被张贴到网站,那么在253,它们被张贴。在254,如果该客户已请求所述按需费用通过电子邮件发送至客户地址,那么在255,它们被发送。在256,如果该客户已请求所述按需费用直接从客户账户中支付,那么在257,直接从客户账户中接收付款。最后一步停止按需流程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
在此使用的技术术语仅用于描述具体实施例的目的,并非旨在限制本发明。如在此使用的,单数形式的“一”、“一个”和“该”也旨在包括复数形式,除非上下文清楚地表明不包括。本领域技术人员应该理解词语“包括”和/或“由……组成”,当在本说明书中被使用时,指明所述特征、整数、步骤、操作、元件和/或组件的存在,但是并未排除其它特征、整数、步骤、操作、元件、组件和/或它们的组的存在或增加。
对应的结构、材料、行为以及以下权利要求中所有装置加功能元素的等同物旨在包括如具体声明的其它声明的元素组合用于执行所述功能的任何结构或材料。以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。实施例的选择和描述旨在最好地解释本发明的原理和实际应用,并且使本技术领域的其它普通技术人员能理解具有各种修改的各种实施例的本发明适应特定的使用预期。
工业实用性
提供一种系统,该系统的特点在于采用了在联合计算机网络中的节点上搜索信息以确定是否存在请求的信息的方法。所述提供的系统和方法具体适应于:使用在所述信息请求分组中存在的头信息发送确认以将所述确认路由返回至所述请求节点,以及编码所述请求的信息。选择在所述节点与所述请求节点之间的多条路径,从而使没有第三方将让超过k-1不同分组通过由所述第三方控制的任何一个或多个节点。
Claims (20)
1.一种方法,包括:
从联合计算机网络中的至少一个相邻节点接收至少一个信息请求分组,
由所述节点在所述节点进行信息搜索来确定请求的信息是否存在,
当请求的信息存在时,那么所述节点:
利用信息请求分组中存在的头信息向请求节点发送确认以使所述确认路由返回至所述请求节点,
将所述请求的信息线性网络编码为m个分组,其中m大于或等于k,且m是由所述请求节点需要接收到以重新构建所述请求的信息的分组数目,
在所述节点与所述请求节点之间选择多个路径,从而使得没有到所述节点和所述请求节点的第三方将具有超过k-1不同的分组通过由所述第三方控制的任何一个或多个节点,以及
发送在所述选择的路径上分布的m个分组。
2.根据权利要求1所述的方法,进一步包括当所述请求的信息不存在时,那么:
更新所述信息请求分组的头信息以包括所述节点的标识,其中所述节点的标识包括拥有所述节点的一方的标识,以及
向发送所述信息请求分组的相邻节点以外的至少一个其它节点转发所述信息请求。
3.根据权利要求1或2所述的方法,进一步包括:
检查路径的每个接收到的信息请求分组的头,以确定所述节点是否存在于所述路径中,
当所述节点存在于所述路径中时,忽略所述信息请求分组。
4.根据权利要求1或2所述的方法,进一步包括:
检查路径的每个接收到的信息请求分组的头,以确定发送所述信息请求分组的所述相邻节点以外的第二相邻节点是否存在于所述路径中,
当所述第二节点存在于所述路径中时,忽略所述信息请求分组。
5.根据权利要求1或2所述的方法,进一步包括:
由所述节点接收所述信息请求分组的停止分组;
由所述节点停止发送所述信息请求分组,以及
由所述节点将所述停止分组转发至发送所述停止请求的所述相邻节点以外的相邻节点。
6.根据权利要求1或2所述的方法,进一步包括在所述节点的存储器中存储任何接收到的信息请求分组的路径。
7.根据权利要求6所述的方法,进一步包括:
由所述节点计算所述节点接收到的所述信息请求分组的路径的数目,
当所述数目等于n时,如果所述信息请求分组再次被接收到,那么所述节点停止向相邻节点发送所述信息请求分组。
8.根据权利要求6所述的方法,进一步包括:当n个路径被已发送所述应答的所述节点收集到时,向所述请求节点发送准备通知。
9.根据权利要求6所述的方法,其中选择多个路径包括:
将存在于所述联合网络中的每个其它第三方的计数器设置为等于k-1,
至少部分基于所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的第一路径,
根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,
至少部分基于针对所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的至少一个第二路径,
根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。
10.根据权利要求9所述的方法,其中至少基于所述路径的长度选择所述第一路径和所述至少一个第二路径,从而选择最短路径为所述第一路径并且选择次最短路径作为所述第二路径。
11.根据权利要求9所述的方法,进一步包括:如果不存在充足的路径发送包含所述请求的信息的m个分组,那么从所述节点向所述不能发送请求的信息的请求节点发送通知。
12.据权利要求1或2所述的方法,其中选择n个路径包括:
基于所述节点与所述请求节点之间的所述联合网络检索路径,其中所述路径基于从链接状态洪水消息获取的联合网络的拓扑;
将在所述联合网络中存在的每个其它第三方的计数器设置为等于k-1;
至少部分基于所述检索的路径选择所述节点与所述请求节点之间的第一路径,
根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,
至少部分基于所述检索的路径选择所述节点与所述请求节点之间的至少一个第二路径,
根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。
13.根据权利要求12所述的方法,其中至少基于所述路径的长度选择所述第一路径和所述至少一个第二路径,从而选择最短路径作为所述第一路径并且选择次最短路径作为所述第二路径。
14.根据权利要求6所述的方法,其中选择多个路径包括:
将存在于所述联合网络中的每个其它第三方的计数器设置为k-1,
至少部分基于所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的第一路径,
根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,
至少部分基于针对所述信息请求分组存储的路径来选择在所述节点与所述请求节点之间的至少一个第二路径,
根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。
15.一种方法,包括:
将信息请求分组从请求节点发送至具有多个节点的联合网络,所述多个节点由至少两个其它方拥有,
由所述请求节点的至少一个相邻节点接收所述信息请求分组,
更新所述信息请求分组的头信息以包括接收所述信息请求的所述节点的标识,其中所述节点的标识包括拥有所述接收节点的一方的标识,
将所述信息请求分组从接收所述信息请求分组的所述节点发送至所述请求节点以外与所述节点通信的节点,
在接收节点接收来自至少一个相邻节点的至少一个信息请求分组,
由所述接收节点在所述接收节点进行信息搜索以确定是否存在所述请求的信息,当所述请求的信息存在时,那么所述接收节点:
利用信息请求分组中存在的头信息向请求节点发送确认以使所述确认路由返回至所述请求节点,
将所述请求的信息线性网络编码为m个分组,其中m大于或等于k,m是由所述请求节点需要接收到以重新构建所述请求的信息的分组数目,
在所述节点与所述请求节点之间选择多个路径,从而使得没有到所述节点和所述请求节点的第三方将具有超过k-1不同的分组通过由所述第三方控制的任何一个或多个节点,以及
发送在所述选择的路径上分布的m个分组。
16.根据权利要求15所述的方法,进一步包括:
响应于所述信息请求,在等于所述联合网络的网络穿越时间两倍的时间段,由所述请求节点收集发送的任何确认,
在从发送所述确认的任何节点接收到准备分组之后,由所述请求节点向邻近所述请求节点任何节点发送停止分组,
由所述至少一个相邻节点接收所述信息请求分组的停止分组;
响应于接收到所述停止分组,由所述相邻节点停止发送所述信息请求分组,以及
将所述停止分组转发至发送所述停止请求的所述相邻节点以外的每个相邻节点。
17.根据权利要求15或16所述的方法,进一步包括:
检查路径的每个接收的信息请求分组的头,以确定所述接收节点或所述请求节点的相邻节点是否存在于路径中或者确定发送所述信息请求分组的所述相邻节点以外的第二相邻节点是否存在于路径中,以及
当所述确定是肯定时,忽略所述信息请求分组。
18.根据权利要求15或16所述的方法,进一步包括:
在所述接收节点的存储器中存储任何接收的信息请求分组的路径;以及其中选择路径包括:
将存在于所述联合网络中的每个其它第三方的计数器设置为等于k-1,
至少部分基于针对所述信息请求分组存储的路径来选择在所述接收节点与所述请求节点之间的第一路径,
根据要通过所述第一路径发送的分组的数目来减少沿着所述第一路径存在的每个第三方的计数器,
至少部分基于针对所述信息请求分组存储的路径来选择在所述接收节点与所述请求节点之间的至少一个第二路径,
根据要通过所述至少一个第二路径发送的分组的数目来减少沿着所述至少一个第二路径存在的每个第三方的计数器。
19.根据权利要求18所述的方法,其中至少基于所述路径的长度选择所述第一路径和所述至少一个第二路径,从而选择最短路径作为所述第一路径并且选择次最短路径作为所述第二路径。
20.一种方法,包括:
将来自请求节点的信息请求发送至具有多个节点的联合网络,其中所述多个节点由至少两个其它方拥有,
在等于所述联合网络的网络穿越时间两倍的时间段,由所述请求节点收集响应于所述信息请求发送的任何确认,
在从发送所述确认的任何节点接收到准备分组之后,由所述请求节点向邻近所述请求节点的任何节点发送停止分组,
由向所述请求节点发送确认的任何节点接收至少k个线性网络编码分组,这样在所述联合网络中没有其它第三方接收多于k-1个不同分组,以及
重新构建来自所述至少k个线性编码分组的信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/887,873 US9667530B2 (en) | 2013-05-06 | 2013-05-06 | Privacy preserving query method and system for use in federated coalition networks |
US13/887,873 | 2013-05-06 | ||
PCT/US2014/036629 WO2014182571A2 (en) | 2013-05-06 | 2014-05-02 | Privacy preserving query method and system for use in federated coalition networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105229974A true CN105229974A (zh) | 2016-01-06 |
CN105229974B CN105229974B (zh) | 2018-03-20 |
Family
ID=51841414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480026004.5A Active CN105229974B (zh) | 2013-05-06 | 2014-05-02 | 用于在联合网络中的隐私保护查询方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9667530B2 (zh) |
JP (1) | JP6381635B2 (zh) |
CN (1) | CN105229974B (zh) |
DE (1) | DE112014002292B4 (zh) |
GB (1) | GB2528019B (zh) |
WO (1) | WO2014182571A2 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10880198B2 (en) * | 2015-05-08 | 2020-12-29 | Qualcomm Incorporated | Aggregating targeted and exploration queries |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128666A (en) * | 1997-06-30 | 2000-10-03 | Sun Microsystems, Inc. | Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine |
US20030084020A1 (en) * | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
US20030204497A1 (en) * | 2002-04-29 | 2003-10-30 | Vasiliki Kalogeraki | Search network for searching services on the internet |
US6907005B1 (en) * | 2000-07-24 | 2005-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Flexible ARQ for packet data transmission |
CN101971227A (zh) * | 2007-12-17 | 2011-02-09 | 南洋理工大学 | 通过分组之间的延迟响应的无线传感器网络中的对等通信 |
US7957355B1 (en) * | 2005-05-27 | 2011-06-07 | Heiferling Mark J | Swarm autonomous routing algorithm for mobile ad hoc network communications |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04167845A (ja) * | 1990-10-31 | 1992-06-15 | Fujitsu Ltd | ノード間のデータ転送方式 |
US5805594A (en) | 1996-08-23 | 1998-09-08 | International Business Machines Corporation | Activation sequence for a network router |
US6031835A (en) | 1997-04-04 | 2000-02-29 | International Business Machines Corporation | Method for deadlock free and and reliable routing in a packet switched network |
US20070060274A1 (en) * | 2000-04-28 | 2007-03-15 | Igt | Player loyalty across a gaming enterprise |
US20020004843A1 (en) | 2000-07-05 | 2002-01-10 | Loa Andersson | System, device, and method for bypassing network changes in a routed communication network |
JP3732762B2 (ja) * | 2001-07-11 | 2006-01-11 | 日本電信電話株式会社 | 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム |
US7197662B2 (en) * | 2002-10-31 | 2007-03-27 | Ring Technology Enterprises, Llc | Methods and systems for a storage system |
JP2004266568A (ja) | 2003-02-28 | 2004-09-24 | Nec Corp | 名前解決サーバおよびパケット転送装置 |
CH694215A5 (de) | 2003-09-10 | 2004-09-15 | Csaba Bona | Verfahren zum Uebermitteln von elektronischen Daten ueber ein duales Netzwerk zur Erhhoehung der Internetsicherheit. |
JP4036199B2 (ja) | 2004-03-05 | 2008-01-23 | 日本電気株式会社 | 秘匿通信方式 |
CN100502528C (zh) * | 2004-06-08 | 2009-06-17 | 华为技术有限公司 | 实现自动交换光网络中光连接间的关联的方法 |
US7756051B2 (en) | 2004-07-02 | 2010-07-13 | Microsoft Corporation | Content distribution using network coding |
JP4334424B2 (ja) * | 2004-07-09 | 2009-09-30 | 富士通株式会社 | ネットワークのリソース,サービス発見方法及び中継ノード装置 |
US8549180B2 (en) * | 2004-10-22 | 2013-10-01 | Microsoft Corporation | Optimizing access to federation infrastructure-based resources |
CN101375284B (zh) | 2004-10-25 | 2012-02-22 | 安全第一公司 | 安全数据分析方法和系统 |
US8102837B2 (en) | 2004-12-30 | 2012-01-24 | Massachusetts Institute Of Technology | Network coding approach to rapid information dissemination |
US7606169B2 (en) | 2005-03-21 | 2009-10-20 | Rf Monolithics, Inc. | System and method for collecting routing information in a mesh network |
US8484263B2 (en) | 2006-08-17 | 2013-07-09 | University Of Miami | Method for keyless protection of data using a local array of disks |
US9264355B2 (en) | 2006-09-05 | 2016-02-16 | Telefonaktiebolaget L M Ericsson (Publ) | Name-address management and routing in communication networks |
KR100831327B1 (ko) * | 2006-09-28 | 2008-05-22 | 삼성전자주식회사 | 무선 메쉬 네트워크의 인증 처리 방법 및 그 장치 |
CN103188081A (zh) | 2006-11-07 | 2013-07-03 | 安全第一公司 | 用于分发数据和保护数据安全的系统和方法 |
US8050410B2 (en) * | 2006-12-08 | 2011-11-01 | Uti Limited Partnership | Distributed encryption methods and systems |
US20080144836A1 (en) | 2006-12-13 | 2008-06-19 | Barry Sanders | Distributed encryption authentication methods and systems |
US7701856B2 (en) | 2006-12-14 | 2010-04-20 | Oracle America, Inc. | Method and system for bi-level congestion control for multipath transport |
CN101212393B (zh) * | 2006-12-29 | 2010-10-13 | 华为技术有限公司 | 介质无关切换消息的传输方法、系统及设备 |
US8339991B2 (en) * | 2007-03-01 | 2012-12-25 | Meraki, Inc. | Node self-configuration and operation in a wireless network |
US8861356B2 (en) | 2007-03-13 | 2014-10-14 | Ntt Docomo, Inc. | Method and apparatus for prioritized information delivery with network coding over time-varying network topologies |
JP5071165B2 (ja) * | 2007-03-19 | 2012-11-14 | 日本電気株式会社 | 経路多重化通信システム、通信ノード及び通信方法 |
WO2008129606A1 (ja) * | 2007-04-06 | 2008-10-30 | Fujitsu Limited | 通信システム、通信装置及びコンピュータプログラム |
JP5137501B2 (ja) | 2007-08-27 | 2013-02-06 | 三菱電機株式会社 | 通信システムおよび通信装置 |
US20090083366A1 (en) | 2007-09-26 | 2009-03-26 | Martin Roantree | Secure document transmission |
JP5115819B2 (ja) | 2007-10-17 | 2013-01-09 | 横河電機株式会社 | Ipネットワークシステム |
US8705345B2 (en) | 2007-11-26 | 2014-04-22 | Iowa State University Research Foundation, Inc. | Network protection using network coding |
US8111619B2 (en) | 2008-02-08 | 2012-02-07 | Honeywell International Inc. | Apparatus and method for routing data in wireless networks |
EP2651100A1 (en) | 2008-02-22 | 2013-10-16 | Security First Corporation | Systems and methods for secure workgroup management and communication |
EP2106073B1 (en) | 2008-03-28 | 2010-08-11 | NTT DoCoMo, Inc. | Method and apparatus for increasing throughput in a communication network |
JP5004869B2 (ja) * | 2008-05-22 | 2012-08-22 | 三菱電機株式会社 | ネットワーク経路選択方法および通信システム |
US7974279B2 (en) | 2009-01-29 | 2011-07-05 | Nokia Corporation | Multipath data communication |
BRPI1013062A2 (pt) | 2009-05-19 | 2016-04-05 | Security First Corp | sistemas e métodos para proteger dados na nuvem |
JP2011139240A (ja) * | 2009-12-28 | 2011-07-14 | Kddi Corp | コンテンツ配信システムの配信経路決定装置 |
EP2550806B1 (en) | 2010-03-25 | 2019-05-15 | Massachusetts Institute of Technology | Secure network coding for multi-resolution wireless video streaming |
US20120066249A1 (en) | 2010-09-14 | 2012-03-15 | Microsoft Corporation | Utilizing hierarchy metadata to improve path selection |
JP5459791B2 (ja) * | 2010-09-22 | 2014-04-02 | Kddi株式会社 | 配信経路決定装置及び方法 |
JP5742958B2 (ja) * | 2011-10-17 | 2015-07-01 | 富士通株式会社 | プログラム、情報処理装置、および経路設定方法 |
US8861342B2 (en) | 2011-10-28 | 2014-10-14 | Cisco Technology, Inc. | Multicast-only fast re-route processing for point-to-multipoint pseudowire |
JP5879982B2 (ja) * | 2011-11-30 | 2016-03-08 | 富士通株式会社 | ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法 |
US9537759B2 (en) * | 2012-01-31 | 2017-01-03 | Massachusetts Institute Of Technology | Multi-path data transfer using network coding |
US8595262B1 (en) | 2012-03-29 | 2013-11-26 | Amazon Technologies, Inc. | Resource resolution in computing environments using directed graphs |
JP2015533049A (ja) | 2012-09-20 | 2015-11-16 | 株式会社Nttドコモ | ネットワークにおけるトポロジ及びパス検証のための方法及び装置 |
US9288215B2 (en) | 2013-03-08 | 2016-03-15 | Itron, Inc. | Utilizing routing for secure transactions |
GB2519119A (en) | 2013-10-10 | 2015-04-15 | Ibm | Linear network coding in a dynamic distributed federated database |
-
2013
- 2013-05-06 US US13/887,873 patent/US9667530B2/en active Active
-
2014
- 2014-05-02 DE DE112014002292.6T patent/DE112014002292B4/de active Active
- 2014-05-02 CN CN201480026004.5A patent/CN105229974B/zh active Active
- 2014-05-02 WO PCT/US2014/036629 patent/WO2014182571A2/en active Application Filing
- 2014-05-02 GB GB1520410.0A patent/GB2528019B/en active Active
- 2014-05-02 JP JP2016512975A patent/JP6381635B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128666A (en) * | 1997-06-30 | 2000-10-03 | Sun Microsystems, Inc. | Distributed VLAN mechanism for packet field replacement in a multi-layered switched network element using a control field/signal for indicating modification of a packet with a database search engine |
US6907005B1 (en) * | 2000-07-24 | 2005-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Flexible ARQ for packet data transmission |
US20030084020A1 (en) * | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
US20030204497A1 (en) * | 2002-04-29 | 2003-10-30 | Vasiliki Kalogeraki | Search network for searching services on the internet |
US7957355B1 (en) * | 2005-05-27 | 2011-06-07 | Heiferling Mark J | Swarm autonomous routing algorithm for mobile ad hoc network communications |
CN101971227A (zh) * | 2007-12-17 | 2011-02-09 | 南洋理工大学 | 通过分组之间的延迟响应的无线传感器网络中的对等通信 |
Also Published As
Publication number | Publication date |
---|---|
WO2014182571A2 (en) | 2014-11-13 |
CN105229974B (zh) | 2018-03-20 |
GB2528019B (en) | 2016-06-01 |
WO2014182571A3 (en) | 2015-01-22 |
JP2016521521A (ja) | 2016-07-21 |
DE112014002292T5 (de) | 2016-03-03 |
US9667530B2 (en) | 2017-05-30 |
GB201520410D0 (en) | 2016-01-06 |
GB2528019A (en) | 2016-01-06 |
DE112014002292B4 (de) | 2022-06-23 |
JP6381635B2 (ja) | 2018-08-29 |
US20140328342A1 (en) | 2014-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11205037B2 (en) | Content distribution network | |
JP2022533396A (ja) | ブロックチェーンコンセンサス方法、装置及びシステム | |
CN108027805A (zh) | 数据网络中的负载分发 | |
CN111800501B (zh) | 处理业务请求的方法及装置、存储介质、电子设备 | |
CN104811392A (zh) | 用于处理网络中的资源访问请求的方法和系统 | |
CN105453058B (zh) | 目录服务发现和/或学习 | |
US20200153889A1 (en) | Method for uploading and downloading file, and server for executing the same | |
CN108616574A (zh) | 管理数据的存储方法、设备及存储介质 | |
CN102761579A (zh) | 利用存储域网络传输数据的方法和系统 | |
CN108847952A (zh) | 请求链路上下文的处理方法、装置及系统 | |
US20100284692A1 (en) | Ultra low latency securities trading infrastructure | |
Risso et al. | Metaheuristic approaches for IP/MPLS network design | |
CN105229975A (zh) | 基于应用提供的传输元数据的网络传输调整 | |
CN113364887B (zh) | 一种基于ftp的文件下载方法、代理服务器和系统 | |
KR20200006845A (ko) | 블록체인 관리 방법 및 이를 위한 장치 | |
CN105210335A (zh) | 用于数据分发的网络路由修改 | |
CN105229974A (zh) | 用于在联合网络中的隐私保护查询方法和系统 | |
WO2020004252A1 (ja) | 番号管理システム、番号管理方法および番号管理装置 | |
US7310614B2 (en) | System and method for operation and management of storage apparatus | |
CN105229990B (zh) | 加载网页的方法和装置 | |
CN114338669B (zh) | 基于区块链的数据传输方法、装置、设备以及存储介质 | |
JP4237196B2 (ja) | メッセージ送信方法、メッセージ送信プログラム、及びメッセージ送信装置 | |
JP4353827B2 (ja) | マルチキャストルーティング情報送信方法、及びマルチキャストルーティング情報送信プログラム | |
WO2020050748A2 (ru) | Децентрализованная сеть рекламных экранов на основе блокчейн | |
KR20190022204A (ko) | Dcu 클러스터 기법이 적용된 원격 검침 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |