HK1135779A - 网络的内容控制及双向数据传输优化 - Google Patents
网络的内容控制及双向数据传输优化 Download PDFInfo
- Publication number
- HK1135779A HK1135779A HK10100360.0A HK10100360A HK1135779A HK 1135779 A HK1135779 A HK 1135779A HK 10100360 A HK10100360 A HK 10100360A HK 1135779 A HK1135779 A HK 1135779A
- Authority
- HK
- Hong Kong
- Prior art keywords
- network
- node
- system component
- response
- dictionary
- Prior art date
Links
Description
发明领域及背景
本发明涉及网络的内容控制及双向对象传输优化,并且尤其涉及这样的网络双向对象传输,它减少在网络上冗余的对象传输,并能够执行内容的操作而不侵犯任何隐私,从而提高了网络利用率以及获得对其中传输的数据的控制。
目前的网络通信主要是基于预定义的对象,诸如文件、网页、电邮附件等等。可以通过各种通信方法来在各种网络上共享这些对象,包括因特网、蜂窝网、内联网等等。许多对象是被广泛共享的,从而被一再的在现有连接上传送。这些对象的重复传送导致了带宽损耗的显著增加,并因此提高了服务器的负载和等待时间。网络上的冗余经常会导致网络性能降低,并且因此需要在网络基础设施上进行额外的投资。
传统的对象传输对从发送端到接收端的网络路径造成负载,导致在这些网络路径上的高网络负载、高等待时间和低性能。
目前的数据通信网络允许几乎没有任何限制的传送数据对象,这可以导致非法数据的传输,诸如病毒/蠕虫/具有版权保护的材料等等。事实上被传输的很高百分比的邮件是对于相同的未经请求的广告的多个复制,通常称作垃圾或广告邮件。
目前的对象转换,例如在适用于不同操作系统或硬件体系结构的不同类型的格式之间的转换,通常涉及人工搜索和/或cpu密集进程。
目前的解决方案
密码系统密钥、散列法以及文件的电子校验
与本发明相关的另一个问题是电子文件校验。随着电子文件的使用的快速增长,人工校验文件系统中的每个文件的内容变得不仅耗时,而且还导致了检查期间的人为错误,并且因此是不可行的。
在早期的计算分析中,电子校验文件完整性开始扮演重要的角色。由于在可疑盘中存储的数据是脆弱的,而且还需要被保留以用作证据,经常要求分析专家获取可疑的盘驱动器的准确的镜像,以进行复杂的检查。为此,需要一种强壮的加密散列函数,它可以为检查者提供一种有用且方便的方式,来校验数据的完整性。也就是说,该散列函数是文件中比特序列的函数。如果比特序列变化了,意味着有人篡改了该文件,所产生的散列函数也改变了。这样就可以确定该驱动器是否被篡改过。
有几种公知的用于密码系统的散列算法。包括以下算法:
●消息摘要散列函数,MD2、MD4和MD5,用于将消息打乱成更小的值,称为消息摘要。
●安全散列算法(SHA),一种标准算法,产生较大的(160比特)消息摘要,并且类似于MD4。
目前,加密密钥主要用于存储器和网络系统中的文件完整性校验。
散列函数的数学原理
散列函数的数学理论提供了以下的属性:
●如果文件F给出了一个散列值H1,那么H1的每个单独比特都是F的所有比特的函数。
●如果文件F给出了一个散列值H1,那么修改F的一个单独比特将导致一个完全不同的散列值。
●如果文件F给出了一个散列值H1,然后给出了另一个不等于H1的散列值H2,在计算上是不可能有意修改F的一部分(诸如修改最后10字节),使得新修改的文件的散列值是H2。
●两个随机选择的文件具有相同散列值的机会是极其微小的。例如,两个文件具有相同的128比特的MD5散列值的几率是1/(2128),大致等于1/(3.4×1038),或者大致是340个十亿十亿十亿十亿分之一的几率。可以将其与显示生活中的场景进行比较:公布的赢取香港六合彩(香港的一种乐透游戏,随机选择6个1到47之间的数)头奖的几率是10,737,573分之一,公布的赢取美国宾西法尼亚超级6乐透的概率是3900万分之一。因此,两个文件具有相同MD5散列值的机会近似于赢取30×1030次香港六合彩头奖,两个文件具有相同SHA-1散列值的几率甚至更小,因为SHA-1散列值是160比特。
WAN优化解决方案
WAN优化方案使得用户可以以更低的费用和更好的性能来移动更多的信息。下面示出的多种解决方案被开发以提高WAN连接的效率。
基本缓存
因特网世界已经长期经受了在WAN上重复传输未改变的文件的低效率。为了解决这个问题,已经开发了大量的文件缓存和文件分布方案。网页缓存被许多因特网服务提供商所采用来降低带宽的使用,它通过在请求从实际网站下载网页之前,首先检查临近该用户的服务器是否拥有缓存的网页副本,来解决类似的问题。如果在本地缓存找到了该网页,它被直接从本地缓存发送,从而避免了再次通过WAN来下载网页的需要。
分组整形
分组整形被用于分配有限的带宽资源,以匹配一个公司的优先权。重要的或者对延迟敏感的业务被先于较不重要的、更能容忍延迟的流量在WAN连接上被发送。
基本压缩
目前数据压缩被用于多种应用,包括数字音乐、蜂窝电话网络、以及卫星视频传送。许多支局路由器支持各种形式的面向网络的数据压缩,包括IP包头和净荷压缩。最简单形式的数据压缩是通过识别并用更小的符号来替代数据流中的冗余模式来工作的。
超压缩
超压缩结合了基本压缩和模式识别方案与创新的数据缓存解决方案。尽管超压缩方案类似于基本压缩,超压缩算法是应用和分组不可知的,从而可以获得潜在的更大的压缩率。
简而言之,超压缩不采用基本压缩的传统的将压缩的范围限制到文件或分组水平的方式。
在发送端的压缩元件检查经过它的业务的模式。发送端开发一个唯一的比特模式的查询表或字典。采用相同的算法,接收端开发相同的查询表/字典。下一次发送端看到一个它之前见到过的模式,它会删除该模式,并将其替换为小的记号或符号。该记号比它所替代的模式要小的多。当接收端看到该记号,它用已开发的字典来将该记号或符号“翻译”回唯一的比特模式。然后接收端将恢复出的信息传递到目标计算机。
过去还将超压缩称为“一种用于删除冗余网络流量的协议独立的技术”。
尽管术语“缓存”经常被用于与超压缩相关,超压缩不是真的拥有一个传统的缓存。超压缩中的缓存涉及跟踪数据流的最近的历史。数据流不被分成对象,并且在大多数情况下,流中涉及的任意对象被据该对象的每个分段所达到的时间而混合在历史中。这样的混合防止了完全的对象加速。然而它的确获得对重复图像的更好的压缩。参见图1,它图示了数据流2可能在网络上出现的形式,然后图示了它如何出现4在传统的缓存中,以及最后6,它如何出现在超压缩历史缓存中。
往返时间等待时间管理
端到端连接等待时间、或者往返时间,对于因特网连接的有效吞吐量具有深远的影响。为了保证所有被传送的分组都到达它们的目的地,开发出了诸如TCP的传输控制协议,以当它们成功接收到数据分组时发送确认。只有当发送者接收到来自接收者的确认信号之后,发送者才发送更多的数据。因此,两点之间的往返时间越长,发送文件所需的时间就越长。这种方案的一种结果是连接的两个端点的距离越长,该连接的可用带宽就越少。有几种方案可以减轻上述问题:
●TCP窗口大小管理
●TCP慢开始管理
●前向纠错
●应用协议优化
基于策略的多路径路由
不是所有因特网上的连接或路径都提供相同的特性,并且网络上相同的两个给定点之间的不同路由器可以给出两个差别很大的结果。一些路径可能具有低等待时间、高吞吐量特性,而其他的具有高丢失、高等待时间特性。多路径路由使得具有不同要求的业务的数据传输经过网络上最适合的路径而行进。例如,对延迟敏感的业务可以被路由经过一条更昂贵的低等待时间路径,而电子邮件业务可以被路由经过一条较便宜的、较低吞吐量的、较高等待时间的路径。
低带宽文件系统(LBFS)
现在参见图2,它是一个示出了称为LBFS的文件系统的流程图,用于避免在低带宽网络上的数据的冗余传输。LBFS是一种特别为低带宽网络设计的网络文件系统,并适合办公室LAN或类似的。为了减少带宽要求,LBFS采用了交叉文件相似性。为了利用文件之间的相似性,LBFS文件服务器将其存储的文件分成大块,并用散列值来索引这些大块。LBFS客户也相似的缩印一个大的持久文件缓存。当在客户和服务器之间传输文件时,LBFS识别接收者已经在其他文件中拥有的数据大块,并避免在网络上传送该冗余数据。在客户端和服务器上,LBFS都被设置为索引一组文件,以识别出可以避免在网络上发送的数据大块。为了节省大块的传输,LBFS依赖于SHA-1散列函数的碰撞抵制属性。对SHA-1的两个输入产生相同输出的概率远远低于硬件比特错误的概率。从而,LBFS遵循了广泛接受的假定无散列碰撞的惯例。如果客户端和服务器都具有产生相同SHA-1散列值的数据大块,它们假定这两个大块是实际相同的大块,并避免在网络上传输其内容。
LBFS的操作方式类似于一些对等到对等的实现方式,还具有一个特别的附加特征,它增加了一个文件缓存。该文件缓存暂时存储在一个给定位置的文件,并使得客户不会通过网络请求在缓存中已经存在的,并且同时没有被修改的文件或文件分段。
LBFS具有以下方面:
●LBFS被实现为一种特定的协议修改。这不是对于所有对象传输问题的通用解决方案。
●LBFS方法依赖于获得对于该方法的特定协议信息,以操作例如文件路径。它不实现仅基于对象信息本身的缓存系统。
●LBFS适用于一种查询等级方法,即它在对象查询中干扰以获得它的目标。
●LBFS适用于一种内容知道的方法。客户缓存知道它所持有的信息的类型。这是不利的,因为业务提供者不想对他们传输的数据负责。因此一种适合的方法应该是不清楚数据的。
●LBFS不能利用与从发送端到接收端的网络路径不相同的网络路径。也就是说它只关心发送什么数据,而不是怎么发送。
●在对象不存在于目标对象缓存中的情况下,LBFS不能减少传输时间。
●LBFS不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●LBFS需要修改客户端和服务器,以进行流量最优化。
●LBFS对于错误的缓存命中是脆弱的。因为LBFS仅依赖于摘要消息来确定缓存命中,并且可以用相同的摘要消息来表示不同的净荷,所以就可能发生错误的缓存命中,并且错误的净荷可能代替于原始净荷被发送。
P2P对象识别
在几种对等到对等协议中,加密密钥被用于对象识别。所有的文件被给予散列值。该散列值允许每个用户通过使用唯一的散列值,都能找到对于一个特定文件的所有源,而独立于每个用户可能给该文件起的任何文件名。另外,文件被分成9.28MB的数据分段。每个分段被给予自己的散列值。例如,一个600MB的文件会包括65个分段,每部分都接收它自己的散列值。然后从这些部分散列值中创建一个对于整个文件的散列值,并且由该散列值标识的文件可以被用于网络中。
重复传输检测(DTD)
重复传输检测(DTD)是一种允许任何网络缓存潜在地删除所有冗余HTTP净荷传输的系统。DTD是一种特定的HTTP修改方案,它对HTTP首部添加了一个消息摘要字段,从而能够检测冗余的HTTP传输。
在表1中示出了DTD协议数据流。
DTD的区别在于以下方面:
●DTD被实现为一种特定的协议修改。这不是对于所有对象传输问题的通用解决方案。
●DTD方法依赖于获得对于操作方法的特定协议信息,例如URL。它不实现仅基于对象信息本身的缓存系统。
●DTD使用一种查询等级方法,即它在对象查询中干扰以获得它的目标。
●DTD使用一种内容知道的方法。客户缓存知晓它所持有的信息的类型。这是不利的。
●DTD不能利用与从发送端到接收端的网络路径不相同的网络路径。
●DTD完全依赖于被查询的代理的内部缓存。在对象不存在于目标对象缓存中的情况下,DTD不能减少传输时间。
●DTD不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●DTD需要修改客户端和服务器,以进行流量优化。
●DTD对于错误的缓存命中是脆弱的。DTD仅依赖于摘要消息来确定缓存命中,并且可以用相同的摘要消息来表示不同的净荷,可以发生错误的缓存命中,并且错误的净荷可能代替于原始净荷被发送。
目前解决方案的缺点
基本缓存
基本缓存方案的缺点是:
●它是一种主要对于网络对象的方案。它不能应用于所有的数字对象。
●它是一种主要指向使用超文本传输协议(http)的万维网或任何其他类似网络的方案。它不能应用于所有的数据通信网络环境。
●它是一种依赖于特定的协议参数的方案,例如HTTP URL,并且因此不能应用于所有的数字对象传输,而不管它们的传输上下文。
●基本缓存针对特定的协议参数-例如HTTP URL的事实,使得它成为一种内容知道的方案。这会导致网络提供者为加速的对象的内容承担法律责任。
●它不能利用不同于从发送者到接收者的网络路径的网络路径。
●在目标对象缓存中不存在对象的情况下,它也不能减少传输时间。
●它不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●它不能保证缓存的信息是随时更新的。
●它完全依赖于其内部缓存。当所需要的信息不在内部缓存中时,它不能提供流量加速。上面的症状之一在起始时间是低效率的。
●基本缓存依赖于特定的协议参数-例如HTTP URL的事实,防止它删除具有不匹配的协议参数的冗余数据传输,例如对于相同文件的不同URL。
分组整形
分组整形不会删除网络中的冗余数据传输。它只是减轻其症状。
基本压缩
基本压缩方案具有以下缺点:
●它们不会删除网络中的冗余数据传输。
●在大多数情况下,它们不能加速整个冗余对象。通过压缩冗余信息,而不是删除,来实现传输的减少。
●它是一种CPU密集方案。
●对于不能压缩的对象它是无益的。许多文件类型已经是压缩了的。
●它不能提供对于冗余传输的最小传输等待时间。
●它不能利用不同于从发送者到接收者的网络路径的网络路径。
●它不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
超压缩
超压缩的缺点是:
●它不会删除网络中的冗余数据传输。
●在大多数情况下,它们不能加速整个对象。大多数时间内,它不接受整个对象,并当它接受时,它也仅仅减少冗余传输的代价。
●它是一种CPU密集方案。
●对于不能压缩的对象它是无益的。
●它不能提供对于冗余传输的最小传输等待时间。
●它不能利用不同于从发送者到接收者的网络路径的网络路径。
●它不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●它完全依赖于其内部缓存。当所需要的信息不在内部缓存中时,它不能提供流量加速。上面的症状之一在起始时间是低效率的。
●它依赖于使用基于相对小的存储器的缓存来缓存网络分组,因此它被限制为及时检测并挖掘相当本地化的通信冗余。
●它不具有关于生成(冗余)网络流量的应用或服务器的信息,因此它不能预测数据可能被用于何处,并且不能预测在远端缓存中的数据所提供的潜在的进一步的加速并优化网络流量。
往返时间等待时间管理
往返时间等待时间管理不会删除网络中传输的冗余数据。它只是尝试减轻其症状。
基于策略的多路径路由
基于策略的多路径路由不会删除网络中传输的冗余数据。它只是尝试减轻其症状。
LBFS
基本缓存的缺点是:
●它是一种仅对于NFS文件系统中的文件的方案。它不能适用于所有的数字对象。
●它是一种仅对于允许NFS的环境的方案。
●它不能适用于所有的数据通信网络环境。
●它是一种依赖于特定NFS文件路径信息的方案,因此不能适用于所有的数字对象传输,而不管它们的传输上下文。
●LBFS依赖于NFS文件路径,使得它成为一种清楚内容的方案。这会导致对于加速的对象的内容承担法律责任。
●它不能利用不同于从发送者到接收者的网络路径的网络路径。
●在目标对象缓存中不存在对象的情况下,它也不能减少传输时间。
●它不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●它需要修改客户端和服务器,以便能够进行流量优化。
●LBFS对于错误的缓存命中是脆弱的。LBFS仅依赖于摘要消息来确定缓存命中,并且可以用相同的摘要消息来表示不同的净荷,可以发生错误的缓存命中,并且错误的净荷可能代替于原始净荷被发送。
P2P对象识别
P2P对象识别不会删除网络中传输的冗余数据。
DTD的缺点:
DTD的缺点是:
●DTD是一种仅对于HTTP协议的方案。它不能适用于所有的数字对象。
●它不能适用于所有的数据通信网络环境。
●它是一种依赖于特定URL路径的方案,因此不能适用于所有的数字对象传输,而不管传输上下文。
●DTD依赖于URL的事实使得它成为一种内容知道的方案。这会导致对于加速的对象的内容承担法律责任。
●它不能利用不同于从发送者到接收者的网络路径的网络路径。
●在目标对象缓存中不存在对象的情况下,它也不能减少传输时间。
●它不能分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●它需要修改客户端和服务器,以使得能够进行流量优化。
●它只能优化完整的对象,不能优化部分对象。
●DTD客户需要应用一些启发式法,诸如对包括“?”的URL不发出额外的HEAD请求。
●某些网络服务器可能从来不发送摘要。要注意的是,不要求HTTP服务器发送实例摘要,目前也没有机制可以发现服务器是否会发送摘要。从而客户会经受对于给定服务器的问题,而不会获得任何好处。
●DTD对于错误的缓存命中是脆弱的。DTD仅依赖于摘要消息来确定缓存命中,并且可以用相同的摘要消息来表示不同的净荷,可以发生失效的缓存命中,并且错误的净荷可能代替于原始净荷被发送。
存在广泛的认识,需要有一种能够避免上述限制的网络数据传输系统,这也是非常有利的。
发明概述
根据本发明的一个方面,提供了用于在网络上传输数据对象的装置,包括:
在所述网络上的发送地点:
拦截单元,用于拦截去往各自接收者路上的经过对象;以及
识别单元,与所述拦截单元相关联,用于生成所述经过对象的数字网络关联,所述拦截单元被配置为用所述数字网络关联来代替所述经过对象来在所述网络上传递,并且进一步使用所述数字网络关联来在字典中标记所述对象;以及
字典,用于存储关于所述数字网络关联的所述经过对象;以及
在所述网络上的接收地点:
搜索单元,用于使用所述数字网络关联搜索在至少一个字典中的相应对象来识别所述相应对象,从而将所述相应对象从一个相对接近的字典提供给各自接收者,而不用执行冗余的网络传输;以及
关联验证单元,与所述搜索单元相关联,用于管理关联信息并防止所述数字网络关联与所述数据对象之间的错误匹配。
优选地,所述搜索单元被配置为提供:
a)本地搜索,
b)如果所述本地搜索不成功,那么在最近的网络节点搜索,以及
c)如果所述本地搜索不成功,那么继续在相继距离的网络节点处搜索。
优选地,所述数字网络关联包括唯一数据标识符、唯一单元标识符、和有效性时间戳。
优选地,所述识别单元被配置为使用散列函数和本地参考号,以生成所述唯一数据标识符。
优选地,所述唯一单元标识符是预定义的被设置为代表发送单元的标识符。
优选地,所述有效性时间戳定义了最小时间帧,其中唯一数据标识符与在发送单元上的数据对象相关联。
优选地,所述散列函数基本上是单射的。
优选地,在给出了唯一数据标识符时,所述字典能够提取数据对象。
优选地,所述字典被配置为使用预定义的算法,如“最近使用的”(LRU),以管理字典条目的替换。
优选地,所述关联验证单元存储发送单元的所述唯一单元标识、在发送单元上的对象的本地参考号,以及与所述本地唯一数据标识符相关联的所述有效性时间戳,以确定所存储的关联的有效性,以及为了防止数据标识符到数据对象的错误匹配。
优选地,各自经过对象的副本被存储在所述网络的多个节点上,每个副本都与所述各自的唯一标识符相关联,从而使用所述各自的数字网络关联从每个节点提取所述副本。
优选地,用联网参数来确定节点的距离,并且其中所述联网参数包括一个组中的至少一项:物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
优选地,所述拦截单元被配置为在缓存之前对经过对象分段。该装置进一步包括与所述搜索单元相关联的负载均衡单元,从而所述负载均衡单元能够从所述网络的不同节点提取所述对象的不同分段,从而提供了相对均衡的网络利用率。
该装置可以包括内容控制单元,被配置为存储与想要控制其分配的数据对象相关的唯一标识符以及用于所述控制的规则,从而可以使用给定的唯一标识符来搜索所述控制单元,以提取对所述对象的进一步分配要应用的相应规则。
优选地,所述规则是包括传输阻塞、对象修改、以及对象替换的组的任意一个。
优选地,所述发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息,来标识在所述接收地点的一个系统部件,并允许所述系统部件能够识别并修改对所述ICMP消息的响应,从而将所述系统部件确定为在所述接收地点的一个部件。
优选地,所述接收地点进一步包括发送地点识别单元,被配置为通过向所述接收者发送ICMP消息,来识别最接近于所述接收者的系统部件,并允许响应所经过的第一系统部件能够识别并修改对所述ICMP消息的响应,从而将所述系统部件确定为最接近于所述接收者的系统部件。
根据本发明的第二方面,提供了一种在网络上传输数据对象的方法,包括:
在所述网络上的发送地点:
拦截去往各自接收端路上的经过对象;
生成所述经过数据的分段的数字网络关联,
用所述数字网络关联代替所述经过数据分段来在所述网络上传递,以及
使用所述数字网络关联来在字典中标记所述对象;以及
用所述数字网络关联来在字典中标记所述数据对象段;以及
在所述网络上的接收地点:
使用所述数字网络关联搜索至少一个字典中的相应对象,来识别所述相应对象,从而将所述相应对象从一个相对接近的字典提供给各自接收者,而不用执行冗余的网络传输。
优选地,所述搜索开始在本地执行,然后在接近于所述预计接收者的节点执行,并且如果仍然没有找到相应的对象,那么将所述搜索扩展到距离平稳地更远的节点。
该方法包括在所述字典中的存储和所述创建数字网络关联之前,将所述经过对象分段成预定大小。
优选地,使用联网参数来确定节点的距离,并且其中所述联网参数包括以下的组中的至少之一:物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
优选地,在到所述预计接收者的不同路径上的多个节点上执行所述搜索,从而保证了相对的网络利用均衡。
根据本发明的第三方面,提供了一种通信网络的节点,被配置为最小化在所述网络上冗余的对象传输,该节点包括:
拦截单元,用于拦截承载数据对象的网络通信;
字典,用于存储所述数据对象,
与所述字典相关联的标记单元,用于
a)生成存储在所述字典中的每个数据对象的数字网络关联,从而为每个所述数据对象提供电子签名,所述电子签名结合本地参考号包括唯一数据标识;
b)存储与所述对象关联的所述唯一数据标识的第一副本;以及
c)在所述网络通信中用所述唯一数据标识的第二个副本来替换所述数据对象,以继续在所述网络上通信,以及
与所述字典相关联的提取单元,用于
d)从所述网络接收对用数字网络关联所标识的对象的查询,
e)比较所述电子签名与所述字典中的存储的签名。
f)如果找到了匹配,并且从发送单元对存储的数据分段的验证有效,那么提取对应于所述匹配的签名的对象,以及
g)如果没有找到匹配,那么向一个邻居节点发送所述查询。
根据本发明的第四方面,提供了一种字典,与通信网络的节点相关联,所述字典被配置为最小化在所述网络上冗余的对象传输,该字典能够存储所述数据对象,并进一步相关联于:
拦截单元,用于拦截网络通信;
标记单元,与所述字典相关联,用于
a)生成存储于所述字典的每个数据对象的数字网络关联,从而为每个所述数据对象提供数据分段的电子签名、传送网络节点的标识符和有效性时间戳;
b)存储与所述对象相关联的所述标识符的第一副本;以及
c)在所述网络通信中用所述标识符的第二副本代替所述数据对象,以继续在所述网络上通信;以及
提取单元,与所述字典相关联,用于
d)从所述网络接收对用数字网络关联标识的数据对象的查询,
e)比较所述电子签名与所述字典中存储的签名,
f)如果找到了匹配,并且从发送单元对存储的数据对象的验证有效,那么提取对应于所述匹配的签名的对象,以及
g)如果没有找到匹配,那么向一个邻居节点发送所述查询。
根据本发明的第五方面,提供了一种在包括多个节点的网络上传输数据对象的方法,包括:
在相对接近于发送端的位置存储任意的经过对象,
生成所述对象的数字网络关联;
将与所述对象相关联的数字网络关联存储到字典中;
向所述对象的预计接收者发送所述数字网络关联;
在相对接近于所述的预计接收者的节点,使用所述发送的数字网络关联来与所述字典中存储的对象的标识符进行比较,以找到匹配;
如果找到了匹配,且从发送单元对存储的对象的验证有效,那么提取对应的存储对象,并向所述预计接收者发送;
如果没有找到匹配,那么在进一步的节点重复所述匹配,直到找到匹配。
优选地,使用网络参数来确定节点的距离,网络参数包括一个组中的至少一个,该组包括物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
根据本发明的第六方面,提供了一种用于在网络上远程识别最接近于给定位置的系统部件的装置,该装置包括:
消息生成器,用于生成对于各自系统部件可识别的响应请求,以及
发送单元,用于向所述给定位置发送所述响应请求,从而所述响应请求被所述给定位置接收,并且发送回一个响应,所述响应对于所述系统部件是可识别的,从而接收所述响应的第一系统部件将其自身向所述装置标识。
优选地,所述响应请求是ICMP消息,包括具有第一数字的第一字段,和具有第二数字的第二字段,该第二数字是所述第一数字的预定函数,所述预定函数被所述系统部件用于识别所述响应。
根据本发明的第七方面,提供了一种在网络上远程识别最接近于一个给定位置的方法,该方法包括:
生成对于各自系统部件可识别的响应请求,
向所述给定位置发送所述响应请求,从而所述响应请求被所述给定位置接收,并且发送回一个响应,所述响应对于所述系统部件是可识别的,从而接收所述响应的第一系统部件将其自身标识。
该方法优选地包括:生成所述响应请求的方法包括将第一数字和是所述第一数字的预定函数的第二数字插入到所述响应请求中,所述预定函数能够让所述系统部件识别所述响应。
根据本发明的又一个方面,提供了一种用于查找与接收地点最接近的相邻目的节点的装置,其中发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别所述接收地点的系统部件,并允许对所述ICMP消息的响应被所述系统部件识别和修改,从而将所述系统部件确定为在所述接收地点的部件。
根据本发明的又另一个方面,提供了一种用于查找与发送地点最接近的接收地点的装置,其中所述发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别所述接收地点的系统部件,并允许对所述ICMP消息的响应被所述响应经过的第一系统部件识别和修改,从而将所述系统部件确定为最接近于所述接收者的系统部件。
根据本发明的再一个方面,提供了一种用于查找与接收地点最接近的相邻目的节点的装置,该方法包括:
通过向所述接收者发送ICMP消息来识别所述接收地点的系统部件,
识别对所述ICMP消息的响应,以及
修改对所述ICMP消息的响应,从而将所述系统部件确定为在所述接收地点处的部件。
根据本发明的再另一个方面,提供了一种用于查找与发送地点最接近的接收地点的方法,该方法包括:
通过向所述接收者发送ICMP消息来识别最接近于所述接收者的系统部件,并
允许对所述ICMP消息的响应被所述响应经过的第一系统部件识别和修改,从而将所述系统部件确定为最接近于所述接收者的系统部件。
除非有另外的定义,这里使用的所有技术和科技词语具有与本发明所属领域的技术人员所理解的相同的含义。这里提供的材料、方法和示例仅仅是说明性的,并且不是限制性的。
本发明的方法和系统的实现方式涉及人工的、自动的、或者二者结合的执行或完成某些选择的任务或步骤。而且,根据本发明的方法和系统的优选实施例的实际装置和设备,可以通过硬件或任意固件的任意操作系统上的软件,或者其结合来实现几个所选的步骤。例如,作为硬件,本发明的所选步骤可以被实现为芯片或电路。作为软件,本发明的所选步骤可以被实现为多个软件指令,它们由计算机使用任意适合的操作系统来执行。在任何情况下,本发明的方法和系统的所选步骤可以被描述为由数据处理器执行,诸如用于执行多个指令的计算平台。
附图描述
这里仅仅以示例的方式结合附图对本发明进行描述。对于附图的详细的特定附图标记,要强调的是示出的特定标记是示例性的,并且仅仅是为了说明本发明的优选实施例,并且它们的提供是为了提供那些被相信是本发明的原理和概念的最有用的和最容易理解的描述。在这点上,没有企图较本发明的基础性理解所需更详细地示出本发明的结构化细节,对于附图的描述使得本领域技术人员很清楚如何在实际中实现本发明的几种形式。
在附图中:
图1是一个简化图,示出了常规缓存与超压缩缓存之间的比较,它们都作为本发明之前现有技术;
图2是一个简化图,图示了现有技术的低带宽文件系统LBFS中的数据流;
图3是一个简化图,图示了包括多个节点的典型网络,其上的根据本发明的对象传输加速系统是有益的;
图4是一个简化图,图示了在从发送者拦截对象的过程中,根据本发明的优选实施例的网络节点;
图5是一个简化图,图示了图4的网络节点,这次拦截的是在被发送到接收者之前,需要被重构的数字网络关联;
图6是一个简化示意图,图示了图4的网络节点将对象分成分段,以按分段来处理它;
图7是一个简化流程图,图示了使用根据本发明的优选实施例的加速,来发送和接收网络对象的程序;
图8是一个简化示意图,图示了根据本发明的一个优选实施例的第一计算机开始向第二计算机传输对象;
图9图示了根据本发明的一个优选实施例的在本地或者发送端节点的程序;
图10是一个简化示意图,图示了根据本发明的一个优选实施例的在远端或接收端节点的活动;
图11是一个简化示意图,图示了根据本发明的一个优选实施例的对于多个网络节点的双向对象传输的例子;
图12是一个简化示意图,图示了如图11所示的对象传输,但是具有额外的负载均衡特征;
图13是一个简化示意图,图示了根据本发明的一个优选实施例的从网络节点简单的获取对象操作;
图14是一个简化示意图,图示了根据本发明的一个优选实施例的网络节点的体系结构;
图15是一个简化图,图示了根据本发明的一个优选实施例的在具有字典的节点内的内部数据流,并且解释在图14中所示,针对作为本地服务器的,初始对象拦截和存储的,网络节点的操作;
图16是一个简化图,图示了当图14的网络节点作为远端服务器时,在对象重构情况下的操作;
图17是一个简化图,图示了根据本发明的一个优选实施例的在丢失场景下可能涉及的网络基础设施;
图18是一个简化示意图,图示了根据本发明的一个优选实施例的,当对象没有存储在预计接收者处的远端网络节点中,而是需要搜索额外的网络节点时的程序。
图19是一个简化图,图示了根据本发明的一个优选实施例的程序,其中在远端网络节点出现了没有命中,因此从较近的网络节点获取该对象,以网络术语来衡量接近程度;
图20是一个简化图,图示了根据本发明的一个优选实施例的情况,其中在远端网络节点和所有邻居网络节点中出现了没有命中,从而最终从发送者的地点处的网络节点获取该对象;
图21是一个简化图,图示了现有技术的复制传输检测DTD中的数据流;
图22是一个简化图,图示了内容控制方法;以及
图23是一个简化图,图示了在接近于接收者的远端网络节点的检测方法;
图24是一个简化图,图示了对于在接近于接收者的远端网络节点的,检测方法的ICMP首部中所使用的字段;
图25是一个简化流程图,图示了在关联验证系统处的关联验证程序;
图26是一个简化示意图,图示了优选的系统消息;
图27是一个简化流程图,图示了在网络上传输被修改的对象的程序;
图28是一个简化示意图,图示了为了实现负载均衡特性而使用中央服务器的对象传输。
优选实施例的描述
本发明包括一个网络双向数据传输优化系统,它在网络上的节点处将对象或者对象的部分存储在字典中,并使用唯一标识符来查找存储在这样的字典中的对象。
这里使用的词语“字典”指在不同节点处对象被缓存其中的存储器。在所有节点,同样的标识符总是产生同样的结果,就像字典中的词查找总是产生相同的结果一样。
通过网络的对象被拦截并用唯一标识符替代。然后,在接收端使用该唯一标识符来标识该对象的最近副本。
从一个替代的观点来看,提供了一种在网络上传输数据对象的方法。该方法包括拦截经过对象,使用预定的函数与发送实体的验证信息一起来创建该对象的唯一标识符,使用同样的函数来为网络的其他节点处的网络节点中存储的对象提供标识符,并发送该唯一标识符来代替数据分段。
然后,在接收端就可以获取该唯一标识符,并将其用作键来搜索本地字典中的对应对象。搜索从与该接收者最接近的字典开始,并且平稳的向外扩张。当找到该对象,为了接收者的利益将其发送,并且通过避免冗余传输而节省了网络带宽,因此该对象是从与接收者最近的网络节点带来的。
该系统的目的在于具有以下能力:
●它最小化冗余数据传输。
●它被平等的适用于所有种类的数据对象,其中数据对象是任意的具有定义的开始和定义的结束的比特集合,包括但不限制于文件或文件的任意分段、分组或者分组的任意分段、消息或者消息的任意分段、首部或者首部的任意分段、分区(sector)或者分区的任意分段、网页或者网页的任意分段、记录或者记录的任意分段,以及它们的任意组合。
●它被平等的适用于所有种类的数据通信网络环境,包括但不限制于,无线网络、互联网、卫星网络、数字RF网络、蜂窝网、以及包括数字内容传送的电缆网络。
●它被优选地适用于所有的数字对象传输方法、协议和系统,而不管它们的传输上下文。它优选地能够删除冗余传输,而不管外部的属性,这些属性包括但不限制于,发送协议、发送介质、对象名、对象路径、对象描述、以及对象参考。
●它优选地能够加速全部对象,而不管对象的分段在网络上传递的次序和方式,并且不管在数据网络上传输期间与其他对象和信息相混合。
●它是一种非内容知道的方案。它应该能够传送冗余的删除方案,而不让提供者为它所加速的内容承担任何法律责任。
●它优选地是一个非CPU密集方案。
●它优选地对于可压缩的和非压缩的数据都有用。
●它优选地能够最小化对于冗余业务的传输时间。
●它优选地能够利用不同于从发送端到接收端的网络路径的网络路径。
●它将能够甚至在那些对象不存在于本地存储中的更加高难度的例子中降低传输时间。
●它优选地能够分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●它不完全依赖于自己的内部本地存储器。它优选地提供流量加速,即使当需要的信息不在节点的本地存储器当中,而是位于相邻的设备甚至远端的设备中。
●它能够进行网络内容控制,而不会产生任何隐私问题,并且不会实际上成为一种内容知道的方案,也就是,它在不用额外的外部信息的情况下也不会影响所传输的内容。需要的外部信息使得能够进行简单的匹配,并且仍然不能对真实的内容进行标识。
●它能够根据配置对内容进行动态修改,例如,在以色列的dvd电影请求会导致地区3编码,而对于相同内容的来自美国的请求会导致地区1编码。
●它能够检测临近于接收端的远端网络节点。
●它对于数据标识符与对象之间的失配并不脆弱。
结合附图和相应的描述,会更好地理解根据本发明的数据传输和控制系统的原理和操作。
在详细解释本发明的至少一个实施例之前,要理解本发明不限于下面的描述中所阐述的或者附图中所示出的对具体的结构和部件安排的应用。本发明能够包括其他实施例,或者能够以各种方式来实现或实施。并且,要理解这里采用的措辞和术语是为了描述的目的,而不应被认为是限制性的。
现在参见图3,它示出了具有大量通过连接相链接的节点10.1...10n的示例性网络。发送者12与网络一端的一个特定节点相关联,并且接收者14与网络其他地方的特定节点相关联。从发送者到接收者有一些可能的路径,并且通常从发送者到接收者的承载有对象的分组,被通过一个或多个这样的可能路径来发送,用尽在所选路径的所有中间连接上的带宽。分组被独立地路由,从而实际上带宽被几个路由用尽。然而,如前所述,在网络上被发送的许多对象,诸如嵌入到流行的网页中的图像,被一再的发送。存在一些网络缓存解决方案,但它们是不全面的。
现在参见图4,它示出了根据本发明的优选实施例的网络节点。该节点是用于在网络上传输对象的全网络范围系统的一部分。该系统被设计为控制数字内容的传输,保证在网络上重复发送的对象被存储在战略位置处,并且能够通过提供电子签名而被轻易识别,以被提取。向接收者的关于该对象的通知承载了该签名,并且能够从最接近于该接收者的字典中提取该对象,不管该对象从何处被发送。这样,该对象仅在网络上通过最小的必要距离上被发送,其中,接近性用网络参数来定义,这些参数包括但不限制于物理距离、带宽、往返时间、等待时间、路由跳数或经济费用或任何其他有益的参数。
应该理解该系统优选地在提取过程期间继续工作,从而如果该对象仅在对于接收者相对较远的网络节点处被找到,那么它被另外存储在中间的网络节点,总体结果就是:广泛使用的对象-诸如嵌入到特别是流行网页中的图像被存储在因特网上的许多位置。
在图4中,节点20包括拦截单元22,它拦截在到各自接收者的路上的经过对象23,并将它们存储在字典24中。与拦截单元22相关联的是识别单元26,它生成该对象的数字网络关联28。该数字网络关联是由唯一数据标识符、唯一单元标识符和有效性时间戳构成。该唯一数据标识符优选地是该对象的所有比特的函数,按照在背景中提到的散列函数的定义那样,以减少标识符与对象之间的失配的几率。在一个优选实施例中,识别单元26被配置为使用散列函数来生成电子签名,它可以与本地参考号一起使用,作为唯一数据标识符。单射意味着该函数是一对一的,也就是说,同样的输出必须由同样的输入来产生。实际上单射属性是一种理想情况,存在非常微小的概率,特定的输出会由多于一个的输入来产生。对于一种有效的散列函数,这样的概率一定是远远小于0.5%的,并且这里的术语诸如单射或基本单射要做相应地解释和理解。
为了创建单射函数,唯一单元标识符和参考号被附加到散列函数的输出,并且为这个特定的网络节点创建唯一标识符。在该特定网络节点上,如果散列函数生成了一个已经存在的电子签名,那么由该电子签名所表示的对象被与存储在本地字典中具有相同签名的每个之前的对象相比较,如果在现有对象中没有找到该对象,它会被给予一个新的唯一参考号。如果发现该对象与一个现有对象相同,它被给予与发现是相同的对象相同的唯一参考号。
下面将非常详细的描述对这样的电子签名的要求。然后将数字网络关联28用作参考,来搜索内容控制系统29。如果在内容控制系统中找到了该数字网络关联28,那么对该对象执行配置的内容控制操作,其中内容控制操作包括但不限制于,传输阻塞、对象修改、以及对象替换。拦截单元22用数字网络关联28来替换经过对象23,从而该标识符代替了该对象,来实现其继续在因特网上的行进。数字网络关联28还被用于标记字典中的对象23,以备未来的提取。
该节点还优选地包括搜索和提取(retrieval)单元32,它能够使用这样的数字网络关联消息来提取存储在字典24中的对象,以及包括关联验证单元33,它能够验证所提取的对象事实上是否是发送对象的确切副本。
在使用中,对象23从发送者12被在网络上发送,并到达节点20。在节点20,该对象23被存储在字典24中。为该对象生成数字网络关联消息28。该数字网络关联还被用于在该字典中作为该对象的索引。现在该数字网络关联消息被发送在网络上它的行程中。
现在参见图5,它与图4一样,除了它说明的是在节点40的数字网络关联消息的处理,该节点接近于对象23的预计接收者14。该节点优选地与图4中的相同,至少在缓存经过对象方面是相同的,并且与图4相同的部件被给予相同的附图标记,除非为了理解本发明而必须,否则就不再提及。
数字网络关联28到达节点40。这样,代替通常的分组的向前发送,相关联的关联验证单元33将唯一数据标识符转换成本地数据标识符,该标识符由搜索单元32用作搜索内容控制系统的参考。在执行了所有需要的控制操作后,搜索单元32将该唯一数据标识符用作参考,来搜索字典24。如果在字典中找到了对应于该唯一数据标识符的对象23,它被附加到该消息,并且该消息被向前发送往预计接收者。
如果在节点40的字典中没有找到对象23,那么向周围节点发送查询,以尝试跟踪该对象。如果在这些节点的一个中找到了该对象,那么再次将其转发往接收者。然而,优选地,在中间节点的字典上也知道了该对象,如下面将详细解释的,从而提高了对象在网络上的可获得性。通过这种方式,该系统保证了广泛使用的对象在网络上是广泛可获得的。
现在参见图6,它是一个简化图,图示了根据本发明的进一步优选实施例的存储并传送一个大对象的过程。只要该对象是相对小的,上述方法就能满意的工作,因为即使在与接收者相对较远的网络节点处找到了该对象,它也能够被发送到接收者,而不会过度地增加网络连接的负载。在任何情况下,只要在其上找到该对象的网络节点比发送节点更近,那么就节省了网络带宽。然而如果该对象是大的,那么即使从较近的节点发送该对象,在该连接上也将用尽相当可观的带宽。而且,以一个块来发送该对象意味着对于整个传输不得不使用一条单一的路径。实际上,将对象打包成多个分组,并且用不同的路由来发送每个分组是更有效的。也就是说,优选地尝试并行使用几个不同的连接和节点。这样,在图6中,相对大的对象50在标记并插入字典之前被分段。分段52优选地是预定大小的,该大小是为了整个网络的统一性而选择的。每个分段被提供以它自己的标识符,并被作为分离的单元插入到字典中。在操作期间,这些分段变得被分布在许多网络节点54.1...54.n上。接着,这些分离的分段被分别搜索并提取,要强调的是,从到接收者节点56的不同连接上的尽可能多的不同网络节点提取这些不同的分段。因此,可以实现网络连接的负载均衡。
现在参见图7,它是一个简化流程图,图示了在网络上传输数据对象的方法。该方法包括第一阶段58,检测与接收端临近的远端网络节点。第二阶段60,包括拦截要通过网络从发送者被传输到接收者的对象。然后,被拦截的对象在阶段62被传递到识别单元,以使用如上所述的预定函数来创建唯一数字网络关联。该函数是用于创建与上述的唯一节点标识符和参考号相结合的电子签名的公知函数组中的任意函数。使用同样的预定函数来为存储在网络的其他节点的对象提供标识符。
在阶段63,数字网络关联被用作参考用于在内容控制系统中进行搜索。如果在内容控制系统中找到了该数字网络关联,那么对该对象执行配置好的内容控制操作。该内容控制操作包括但不限制于,传输阻塞、对象修改和对象替换。
在阶段64,该对象被插入到字典中。
在阶段66,该数字网络关联被发送到网络上的它的行程上。
然后,在网络的接收端,该数字网络关联在提取阶段67被用作搜索相应对象的键。最理想的是在与接收者最近的节点找到该对象,但实际上通常不是这样。从而,提取被平稳的扩展到更远的节点,直到找到该对象。
在阶段68,数字网络关联被用作参考用于在内容控制系统中进行搜索。如果在内容控制系统中找到了该唯一的标识符,则对该对象执行配置好的内容控制操作。该内容控制操作包括但不限制于,传输阻塞、对象修改和对象替换。
然后在阶段70该对象被发送到预计接收者。
如上所述,可以通过从不同路径上的不同节点取不同的分段,来执行对已经被分成几个对象的流的提取,从而保证了网络的相对平衡的使用。
现在更详细的考虑本发明的优选实施例。如所解释的,提供了一种提供内容控制并加速数字对象传输的方法,并且同时降低了带宽使用。该方法包括:
a.在本地数字对象字典处拦截数字对象,
b.使用所拦截的对象的数学散列函数,来创建包括对象验证和标识信息的数字网络关联,
c.将该数字网络关联用作搜索内容控制系统的参考。如果在内容控制系统中找到了该唯一标识符,那么对该对象执行配置好的内容控制操作,
d.将拦截的对象插入到字典中,
e.将上述数字网络关联代替该对象和用于使用生成的标识来从字典中提取存储的对象的索引而发送到网络上,
f.在网络的接收端,该方法通过使用该数字网络关联来搜索远端字典中的匹配对象继续执行。
g.如果没有找到匹配对象,通过从相继的更远的邻居网络节点获取该对象,来进一步尝试提取。当从邻居网络节点获取对象时,那么如上所述,负载均衡模式可以被激活。负载均衡模式使得能够同时从不同的网络节点获取流的分段。如果没有更近的网络节点持有该对象,那么该对象将最终被从发送者的始发网络节点传输。
h.该方法通过将该数字网络关联用作参考来搜索内容控制系统来继续执行。如果在内容控制系统中找到了该唯一标识符,那么对该对象执行配置好的内容控制操作,
i.相应的对象被从远端字典发送到预计接收者。
定义
以下是对本申请中使用的术语的非限制性术语表。
数字对象:任何具有定义的开始和定义的结尾的比特集合,但不限制于文件或文件的任意分段、分组或者分组的任意分段、消息或者消息的任意分段、首部或者首部的任意分段、分区或者分区的任意分段、网页或者网页的任意分段、记录或者记录的任意分段,以及它们的任意组合。
网络节点:实现该对象传输方法的软件和/或硬件。
数据通信网:任何类型的传输数据的网络,包括但不限制于,无线网络、总体上包括因特网的基于TCP/IP的网络、卫星网络、数字RF网络、蜂窝网络、包括数字内容传送的电缆网络。
远端/本地:远端网络节点比本地网络结点更接近于数字对象的目的地。接近性是用联网络参数定义的,联网络参数包括但不限制于,物理距离、带宽、往返时间、等待时间、路由跳数或经济费用或任何其他的有用参数。
数学散列函数:一个对于所有可行的和有效的内容对象的单射函数,其中每个有效的比特序列只有一种散列表示,包括但不限制于,MD4、MD5、SHA1、SHA256、SHA384、SHA512。这些表示在此处也称作电子签名和唯一标识符。
对象id创建:使用数学散列函数来创建的数字对象标识或者是从传输该对象的网络协议中获知的,或者是由网络节点计算的。
对象拦截:使用本领域公知的透明或不透明方法,来执行在传输期间在一个给定节点的对数字对象的拦截。
负载均衡模式:在负载均衡模式,对象分段被以获取整个对象相同的方式来获取。负载均衡模式可以同时从不同的节点获取对象分段,以实现比仅通过将整个负载放在从发送者到接收者的网络路径上所获得的更加平衡的网络路径利用率。
内容控制操作:内容控制操作包括但不限制于,传输阻塞、对象修改和对象替换。
使用双向对象传输的数据传输优化
现在参见图8,它是一个简化示意图,图示了第一计算机70向第二计算机72发起对象71的传输。标记74和76代表两个网络节点,其中74是本地的或者发送者的节点,76是接收者的节点或远端节点。
按照如下方法来加速传输过程:
A.第一计算机70发起到第二计算机72的对象传输。
B.本地节点74拦截该数字对象传输。为该对象71生成数字网络关联78。该数字网络关联包括唯一数据标识符、唯一单元标识符以及验证时间戳。用本地参考号和用例如SHA512的数学散列函数的输出计算的电子签名来构造该唯一数据标识符。
C.将该唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
D.使用该唯一数据标识符将拦截的对象存储在本地字典中。
E.现在本地节点74发送数字网络关联,代替对象本身。
F.远端节点76拦截修改过的传输消息。该数字网络关联被用于搜索相应的本地唯一数据标识符。
G.远端节点76将该本地唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
H.远端节点76使用该本地唯一数据标识符来搜索并验证其字典中的对象。
I.然后该对象被发送到它的原始目的地。
现在参见图9,它图示了在本地或者发送端节点74的程序。本地字典的操作如下:
A.数字对象的传输被拦截。为该对象71生成数字网络关联78。该数字网络关联包括唯一数据标识符、唯一单元标识符以及验证时间戳。用本地参考号和用数学散列函数的输出计算的电子签名来构造该唯一数据标识符。
B.如果该对象大于预定的大小,那么该对象被分成分段。然后为每个分段分别生成数字网络关联。对象的标识作为一个整体就变成所有各自分段的标识的连接。
C.将该唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
D.随后阶段包含将数字对象存储在本地字典中,具有作为键的唯一数据标识符。
E.数字网络关联代替对象自身被发送。
现在参见图10,它是一个简化示意图,图示了在远端或者接收端节点76的操作。
远端节点执行以下操作:
A.在本地节点74被修改过的传输消息被拦截。数字网络关联被用于搜索相应的本地唯一数据标识符。该数字网络关联包括唯一数据标识符、唯一单元标识符以及验证时间戳。唯一数据标识符用本地参考号和使用数学散列函数的输出计算的电子签名构造。
B.将该唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
C.在远端字典76,使用该本地唯一数据标识符来搜索并验证数字对象71。
D.如果找到了对象71,那么该对象随后被发送到它预计的目的地。
现在参见图11,它是一个简化示意图,图示了具有多个网络节点的对象传输的情况。
计算机70发起到计算机72的通过网络的对象传输。该网络包括多个网络节点S1,S2...S10。
按照如下方法来优化对象传输:
A.计算机70发起到计算机72的对象传输。它像前面一样发送数字对象。
B.本地网络节点(S1)拦截该数字对象传输。拦截的对象被存储在本地字典中,并且为该对象创建数字网络关联78。
C.将该唯一标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
D.然后,本地网络节点(S1)发送数字网络关联78,代替对象本身。
E.远端网络节点(S6)拦截数字网络关联。
F.远端网络节点使用该数字网络关联来验证并搜索相应的本地唯一数据标识符。
G.如果在远端节点字典中没有找到该数字对象,那么该远端节点试图从对象传输路径之内和之外的任意其他数字节点提取该对象。将在下面讨论实现这样的提取算法的各种选择。远端节点生成网络关联消息的请求,它优选地包括数字网络关联中给出的唯一关联标识符、数字网络关联中给出的有效性时间戳以及它的单元id。
H.如果在这些网络节点中的一个找到了该对象,那么通过使用对网络关联请求消息的应答,来将其发送到请求的网络节点(S6)。对网络关联请求消息的应答优选地包括网络关联消息请求中给出的原始的唯一关联标识符、在应答单元上所请求的对象的唯一关联标识符、应答单元上的有效性时间戳、以及该数据对象本身。应答单元使用网络关联消息请求中给出的有效性时间戳来更新它的关联验证数据库。
I.请求对象节点(S6)用原始的关联标识符、有效性时间戳和应答单元关联标识符和有效性时间戳来更新它的关联验证数据库。
J.将该本地唯一标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
K.内容控制系统的输出然后被发往预计接收者。
更加详细地考虑上述问题,出现的首要问题是关于当在最近的网络节点没有找到对象部分时用于提取对象部分的最佳策略。有许多可能的策略,它们向技术人员推荐了解决该问题的方法。一个优选的策略是将查询消息发给所有的邻居节点。从此查询,确定哪些节点包含对象的哪些部分。当确定了哪个节点具有哪个部分后,然后以在不同节点之间平衡所有的请求的方式向特定节点发出对每个单独部分的请求。从而如果找到五个不同节点包括该对象,它们都位于同样的距离但是在不同的路径上,那么请求被平等的分配,每个节点被要求五分之一部分。如果五个节点中的两个实际上在相同路径上,并且系统成功的判断出这点,那么这两个节点可以被作为一个单独节点来看待,并且包括这个双节点的四个节点的每一个都被要求四分之一部分,依此类推。
另一种选择会是顺序地发送对于不同部分的请求。
另一种选择是将对于对象的不同分段的请求发送到不同的邻居节点。
另一种选择是使用维护全局验证数据库并且可以在考虑了负载均衡需要和其他网络参数的情况下将请求引导到包含需要的对象的邻居网络节点的服务器节点。
优选的实现方式包括上述策略的一些或者全部的组合。在一种特定的优选实施例中,在邻居节点的地理分布的远端网络节点处可获得的知识被用于确定邻居节点的最有效的选择。
现在参见图12,它是一个简化示意图,图示了如图11所示的对象传输,但是具有负载均衡的附加特征。如上所述,负载均衡被用于保证从不同的网络节点来获取想要的对象的不同分段。
像前面一样,计算机70发起到计算机72的通过网络的对象传输。沿着该网络是网络节点S1,S2...S10。
按照如下方法来优化数据传输过程:
A.计算机70使用一个网络协议来发起到计算机72的对象传输。
B.本地数字节点(S1)拦截该数字对象传输。如上所述,对象被虚拟地分成分段。对于每个分段,计算数字网络关联。使用如上所述的唯一标识符来对对象分段执行内容控制操作。
C.然后本地网络节点(S1)发送数字网络关联78,代替对象本身。
D.远端网络节点(S6)拦截数字网络关联。
E.远端网络节点(S6)使用该对象标识符来验证并在它的字典中搜索该对象。
F.如果在远端节点S6中没有找到该数字对象,那么该远端节点根据预定的负载均衡配置,试图从对象传输路径之内和之外的任意其他数字节点提取该对象。远端网络节点通过从不同的对象服务器请求不同的对象分段,来尝试提取。
要注意的是,该系统不需要知道特定的路由,因为该系统利用从一开始就部署在网络上的不同位置处的不同节点,从而需要使用不同的路由。然而,如果需要时,能够启用路由信息配置(人工的或自动的)。
G.如前所述,不同的对象分段被发送到请求对象节点(S6)。请求对象节点从这些分段中重构所请求的对象。
H.请求对象节点(S6)用该对象重构原始的消息。
I.将该本地唯一标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
J.然后内容控制系统的输出被发往预计接收者。
现在参见图28,它是一个简化示意图,图示了如图11所示的对象传输,但是具有用中央验证服务器CS来实现负载均衡的附加特征。如上所述,负载均衡被用于保证从不同的网络节点来提取想要的对象的不同分段。
像前面一样,计算机70发起到计算机72的通过网络的对象传输。沿着该网络是网络节点S1...S5和中央验证服务器S10。
按照如下方法来优化数据传输过程:
F.计算机70使用一个网络协议来发起到计算机72的对象传输。
G.本地数字节点(S1)拦截该数字对象传输。如上所述,对象被分成分段。对于每个分段,计算数字网络关联。使用如上所述的唯一标识符来对对象分段执行内容控制操作。
H.然后本地网络节点(S1)发送数字网络关联78,代替对象本身。
I.远端网络节点(S6)拦截数字网络关联。
J.远端网络节点(S6)使用该对象标识符来验证并在它的字典中搜索该对象。
E.如果在远端节点S6中没有找到该数字对象,那么该远端节点向中央验证服务器(CS)发送对网络关联(QNA)消息的查询,以确定能够提供所需对象的最适合的网络节点。
F.中央验证服务器(CS)用网络关联引导(NAL)消息做出应答。该网络关联引导消息向远端节点指出网络节点(S5)是此时能够提供所需对象的最适合的网络节点。
G.远端节点从网络关联引导消息中给出的节点提取对象。
I.将该本地唯一标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。
J.然后,内容控制系统的输出被发往预计接收者。
更加详细地考虑到上述问题,出现的首要问题是用于更新中央服务器验证数据库的最佳策略。有许多可能的策略,它们向技术人员推荐了解决该问题的方法。一种优选的策略是每当对网络关联消息的查询到达时更新数据库。可以用本地结点上的验证信息来更新该数据库。
另一种选择是向一个列表的邻居节点发送查询。从该查询中确定哪个节点包括该对象。
另一种选择是周期性更新中央服务器。
优选实现方式包括了上述策略的部分或全部的组合。
现在参见图13,它图示了一种简单的对象获取操作。远端网络节点被要求为另一个网络节点获取对象,后者的节点是接近于需要该对象的接收者的节点。该节点接收网络关联78的请求,然后执行下面的操作:
A.数字网络关联被传递到关联验证系统,并被用于在验证数据库中搜索相应的本地唯一数据标识符。
B.如果找到了对象,从本地字典76中获取它。
C.然后,在对网络关联请求消息的应答中把该对象发送到请求网络节点。
要注意的是,根据该体系结构,对象不存在可以用表明该对象没有找到的消息来指示。替代的,可以使用一种超时功能,从而如果在提取到响应之前该请求超时,那么就假定该对象不存在。现在参见图14,它是一个简化示意图,图示了根据本发明的优选实施例的网络节点的体系结构。
网络节点90包括以下模块:
·透明代理&协议分析器92,它能够进行消息拦截、对象提取和重构。
·字典94。该字典包括唯一数据标识符与它存储的数据对象之间的映射。用散列表来存储对象。输入到字典中的散列值来自唯一数据标识符自身。而且,字典优选地保留最近使用的(LRU)字典表项,以进行有效的垃圾收集,换句话说就是从字典中清空冗余对象。每个对象被优选地分配以一个时间戳,它定义了一个最小时间帧,在该时间内字典表项不能被垃圾收集机制所删除。一旦该时间帧结束,该表项就可能被垃圾收集机制所删除。
·唯一标识符系统96。如上所述,唯一标识符系统包括能够为对象创建唯一标识符的一个或多个函数或给定的函数组。
·存储器98,用于物理存储被存储的数字对象的存储系统。
·通用存储连接协议(USCP)100,它是一个能够使数字对象节点互相通信的协议单元。也就是说,例如它支持网络节点之间的对象请求。
·内容控制系统95。内容控制系统包括在唯一数据标识符与需要对相关对象执行的操作之间的映射。内容控制操作包括但不限制于,对象传输阻塞、对象修改、以及对象替换。
·关联验证系统被配置为使用被拦截的数字网络关联消息,以提供本地唯一数据标识符,该标识符被与对象的原始的相关对象进行验证,并防止错误的对象匹配。关联验证系统被进一步配置为维护一个关联验证数据库,它管理所有当前知道的远端关联。
现在参见图15,它是一个简化图,示出了根据本发明的优选实施例的在实现对象传输方法的节点中的内部数据流,并解释了图14中示出的网络节点对于初始的对象拦截和标记为本地服务器的操作。在前面图中相同的部分被给予相同的附图标记,除非是为了理解本实施例所必须的,否则不再提及。以数据流的观点的对象最优化的操作如下:
A.网络上的数字对象传输被透明代理102拦截。
B.数字对象被协议分析器104抽取。
C.根据所抽取的对象,唯一标识系统96计算对象的唯一数据标识。该步骤分以下两个阶段执行。对象优选地被分成虚拟的分段,其中每个分段可以被视为一个对象。对于每个分段,计算一个单独的唯一数据标识符。
D.根据唯一数据标识符,内容控制系统95执行适当的对象控制操作。
E.然后,数字对象被添加到本地字典98中。对象有效性时间戳被更新,从而防止了在远端服务器能够请求该对象之前,该对象就被删除。也就是说,可以保证当远端服务器开始寻找该对象时,它存在于网络上的某处。
F.从计算的唯一数据标识符、对象有效性时间戳和唯一单元标识符中构造一个数字网络关联消息。现在该数字网络关联消息代替对象自身,被USCP模块100发送。
现在参见图16,它图示了图14的对象重构情况下的网络节点的操作,这时远端节点作为远端服务器。在前面图中相同的部分被给予相同的附图标记,并且不再提及,除非是为了理解本实施例所必须的。
对象重构程序的操作如下:
A.数字网络关联优选地被USCP模块100拦截,并包括三个部分,唯一数据标识符、对象有效性时间戳和唯一单元标识符。
B.关联验证系统91使用该数字网络关联来搜索相应的本地唯一数据标识符。
C.基于本地唯一数据标识符,内容控制系统95执行适当的对象控制操作。
D.根据本地唯一数据标识符,尝试从字典94中获取数字对象。
E.如果找到了对象,透明代理102将该数字对象发送到它的原始目的地。
现在参见图17,它图示了在一个场景中所涉及的网络基础设施,此场景中没有对象在远端网络节点能够被关联到数字网络关联消息。
概述-在字典中未命中的场合
如果在接收端的网络节点S6不包括能够与数字网络关联消息关联的对象,那么网络节点S6查找包括确实对应于该数字网络关联消息的对象的最近服务器。网络节点S6包括其他网络节点的列表,该列表以一种基于网络参数的量度来排序。该网络节点列表还包括对于每个对象传输的发送网络节点,也就是说,该网络节点列表包括始发网络节点,它是必然包括被请求的对象的一个网络节点。该始发或发送网络节点优选地保留对象的副本一段足够长的最小时间帧,长到足以使得远端网络节点能够获取该对象数据。这种做法保证了网络上的某处的至少一个网络节点持有所请求的对象,直到该请求被满足。此时,远端网络节点向它的列表中的网络节点发送网络关联消息的请求,并从持有该对象的最近的(以度量的角度)网络节点提取该对象。在最坏的情况中,只有一个网络节点持有该对象,也就是始发网络节点,在这种情况下没有节省传输带宽。
有几种优选实现这种搜索的方法。
第一种选择是拥有如上面定义的,一个预定义的邻列表。当对于列表中的所有节点都匹配失败后,在初始连接上透明地将网络关联消息请求发送回起始网络节点。
另一种选择是开始就在初始连接上发送网络关联消息请求。网络关联消息请求路径上的每个网络节点都尝试满足该请求。然后,当出现了匹配,实际的对象或分段被发往请求节点,代替了将网络关联消息请求沿该路径发送回始发节点。
优选实现方式包括上述选择的结合。
现在参见图18,它是一个根据本发明的优选实施例的简化示意图,图示了当对象没有存储在预计接收者处的远端网络节点中时,需要搜索另外的网络节点的程序。
像前面一样,第一计算机70发起到第二计算机72的对象传输。S1和S2是两个网络节点,其中S1是本地的或发送端节点,S2是远端的或接收端节点。
对象传输优化过程如下:
A.消息传送:
●如前所述,第一计算机70发起到第二计算机72的对象传输。
●本地网络节点(S1)拦截该数字对象传输。计算对象标识,即唯一数据标识符。将该唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。某些对象会被内容控制阻塞或另外限制。如果对象传输没有被阻塞,使用该唯一数据标识将拦截的对象存储在本地字典中。
●本地网络节点(S1)现在发送数字网络关联消息,代替发送原始对象。同时,对象被存储在S1,并且唯一数据标识符被用作从该节点的字典中提取该对象的索引。
●远端数字节点(S2)拦截该数字网络关联消息。该数字网络关联被用于搜索相应的本地唯一数据标识符。
B.在本例中,在远端网络节点Sn中没有找到相应的本地唯一数据标识符。从而,远端网络节点S2向本地网络节点S1发送具有未命中的对象关联标识符的网络关联消息请求。
C.现在本地网络节点发送用原始对象对网络关联请求消息的应答。该验证数据库被更新,并且根据需要对该对象执行内容控制操作。该远端网络节点此时将该对象发送到它的原始目的地。
要说明的是,上面的例子涉及的是只有两个网络节点的简化的情况。在多数情况下会有更多的节点。
现在参见图19,它是一个简化图,图示了根据本发明的优选实施例的程序,其中,对象没有存储在预计接收者处的远端网络节点中,但是需要搜索另外的网络节点,因此,从一个较近的网络节点获取该对象,接近性以网络术语来衡量。
首先,像前面一样,第一计算机70发起到第二计算机72的对象传输。网络包括中间网络节点S1...Sn,其中,S1是发送者本地的网络节点,而Sn是从发送者角度来看的远端网络节点,但是,对于预计接收者是本地的。
对象传输优化过程如下:
A.消息传送:
●如前所述,第一计算机70发起到第二计算机72的对象传输。
●本地网络节点(S1)拦截该数字对象传输。使用例如SHA512的数学散列函数的输出和本地参考号来计算对象标识,即唯一数据标识符。将该唯一数据标识符用作搜索内容控制系统的参考,如果必要,对该对象执行内容控制操作。如果对象传输没有被阻塞也没有另外被限制,那么使用该唯一数据标识将拦截的对象存储在本地字典中。
●本地网络节点(S1)现在发送数字网络关联消息,代替于发送原始对象自身。
●远端数字节点(Sn)拦截该数字网络关联消息。该数字网络关联被用于搜索相应的本地唯一数据标识符。
B.在本例中,在远端网络节点Sn中没有找到相应的本地唯一数据标识符。从而,远端网络节点Sn向本地网络节点S1发送具有未命中的对象关联标识符的网络关联消息请求。消息被传递,直到到达包含该对象的网络节点。上面列出的用于转送网络关联消息请求和获取对象的选择可以应用在这里。
C.被发现最终包含该对象的网络节点,此时随对网络关联请求消息的应答向请求网络节点发送该对象。优选地,该对象也被存储在中间节点,从而提高了该对象在网络上的可获得性。在这种方式下,系统保证了广泛使用的对象在网络上是广泛可获得的。然后,请求网络节点更新它的字典和验证,还将该对象转发到下一个请求网络节点,直到该对象最终到达远端网络节点。远端网络节点此时用该对象来重构原始数据流。重构的数据流然后被发送到在原始目的地的预计接收者。
现在参见图20,它是一个简化图,图示了根据本发明的优选实施例的情况,其中,对象不存储在任何远端网络节点中。
同前面一样,第一计算机70发起到第二计算机72的对象传输。网络节点S1...Sn表示网络节点,其中S1是本地网络节点,而Sn是远端网络节点。
在该场景下的对象传输优化操作如下:
A.消息传送:
●如前所述,第一计算机70发起到PC2的对象传输。
●本地网络节点(S1)完全像前面一样,拦截该数字对象传输。使用例如SHA512的数学散列函数的输出和本地参考号来计算对象标识,即唯一数据标识符。将该唯一数据标识符用作搜索内容控制系统的参考,对该对象执行内容控制操作。如果对象传输没有被阻塞或者另外被限制,那么使用该唯一数据标识将拦截的对象存储在本地字典中。
●本地网络节点(S1)现在发送数字网络关联消息,同样像前面一样,代替于发送原始对象自身。
●远端数字节点(Sn)拦截该数字网络关联消息。该数字网络关联被用于搜索相应的本地唯一数据标识符。
B.在本例中,在远端网络节点Sn中没有找到相应的本地唯一数据标识符。从而,远端网络节点此时向邻居网络节点,发送具有未命中的对象关联标识符的网络关联消息请求,并且,这些邻居节点使用它来检查它们是否具有该对象。在本例中它们也没有该对象,并且,消息继续在网络的节点周围被传递,直到最终定位了一个包含该对象的网络节点。在这种情况下,该请求最终到达始发本地网络节点,因为只有该网络节点具有该对象。
C.本地网络节点接收网络关联消息请求,并作为响应,随对网络关联请求消息的应答,向请求网络节点发送该对象。请求的网络节点现在更新自己,并继续将该对象转发到下一个请求网络节点,直到该对象最终到达远端网络节点。该远端网络节点用该对象重构原始数据流,并且,然后把重构的数据流发送到它的原始目的地。
内容控制系统
现在参见图22,它是一个简化图,图示了根据本发明的优选实施例的供始发网络节点使用的内容控制方法。控制系统29包括持有具有两个字段的表的数据库144。第一字段中是各种唯一数据标识符,并且,在第二个字段中是相应的限制和规则。内容控制系统操作如下:
A.接收到一个传输。
B.数字对象被拦截。
C.如上所述,使用数学散列函数和本地参考号来计算唯一数据标识。
D.根据规则表,将唯一数据标识符用作搜索内容控制系统的参考,对对象执行内容控制操作。内容控制操作包括但不限制于,传输阻塞、对象修改、和对象替换,并且内容控制规则包括但不限制于,目的匹配、源匹配、标识匹配、传输匹配时间、重复匹配数、任何其他的防火墙类匹配、或者这些匹配标准的任意结合。
E.内容控制操作的结果然后被传输到期望的目的地。
内容控制系统可以被实现为独立的服务器或者网络部件。
技术人员将会理解该内容控制方法如何应用于接收端,唯一的区别是接收的数据传输是唯一标识符,而不是起始对象。
用于检测临近接收端的远端网络节点的方法
现在参见图23,它是一个简化示意图,图示了根据本发明的优选实施例的程序,用于检测接近于接收者的远端网络节点。也就是说,本实施例的网络节点预计被定位于或者关联于策略上选择的网络的节点,但它不会被认为它们必定要被定位于网络的所有节点。即使它们位于网络的所有节点,仍然有必要确定哪个节点是最接近于接收者的节点,并且结合图23描述的系统描述了一种确定最接近于接收者的节点的方法。与接收者最接近的节点优选地是启动对需要的对象的搜索的节点,因此,可以肯定的确定对其需要。
该过程操作如下:
A.本地或始发网络节点(S1)向预计接收者发送ICMP请求消息,也称为试通(ping)请求。该ICMP请求包括两个字段,一个标识符字段和一个序列号字段。优选地以下面描述的方式来设置上述两个字段,以使系统能够识别出这不是一个常规的ICMP消息而是系统消息。ICMP标识符和序列号字段优选地包括一个随机数x,它优选地具有预定义的比特数,以及第二部分,它包括函数f(x)的结果,该函数被应用于上面随即选择的数,例如XOR。
B.随机数x优选地与要加速的连接的源和目的地的关联地加以存储。ICMP请求的源和目的地优选地被配置为要加速的连接的源和目的地。
C.作为接收ICMP请求的结果,远端接收者(PC2)优选地提供一个ICMP响应,此响应带有相同的ICMP标识符和序列号字段。
D.每个节点优选地接收该ICMP响应,并能够通过对ICMP标识符中的随机数应用f(x)来识别出它是一个系统消息。如果获得的结果与序列号字段一致,那么该消息明显是一个系统消息。x和f(x)都被存储在ICMP标识符的字段中。这两个数可以被放在不同的字段中或者限制到预定的比特数,可以预定义ICMP的区段来分别存储x和f(x)。
E.如果f(x)的结果等于ICMP序列号字段中存储的或者以任何方式存储的信息,如上所述,那么该消息被视为系统消息,并且可以说该节点被确定为与接收端最接近的远端节点,并且它存储源和目的IP。它被这样确定是因为该响应仅由常规节点来传递下去,而不是由将它确定为系统消息的系统节点来传递。源和目的IP优选地被用于将具有该给定的IP地址对的、远端网络节点指定为与接收端最接近的网络节点。
F.这样被确定为与接收端最接近的远端节点,然后使用另一个函数g(x)来改变ICMP响应标识符和序列号字段或者其他的存储位置,该函数可以被应用到随机数,例如XOR+1。经修改的ICMP响应标识符和序列号字段或其他位置,现在包括初始的随机数和第二函数的结果。这个经修改的响应现在被作为ICMP消息的继续发送回初始的或本地的网络节点。
G.本地节点拦截该ICMP响应,从而使用该ICMP标识符和序列号字段的值来找出在路径上是否存在加速节点。该ICMP响应然后可以被丢弃。
一种可选的实现方式是在ICMP净荷中发送4层网络信息,例如协议、端口号等等。可以按需配置这样的实现方式。
现在参见图25,它是一个简化流程图,图示了根据本发明的进一步的优选实施例的在关联验证系统(AAS)处的关联验证程序。该关联验证系统被配置为使用拦截的数字网络关联消息,以便提供一个经验证对应于原始相关联的对象的本地唯一数据标识符和一个防止错误的对象匹配。该关联验证系统进一步被配置为维护一个关联验证数据库180,此数据库管理当前已经知道的所有远端关联。关联验证数据库中的条目优选地包括电子签名、远端单元的唯一单元标识符、远端单元的唯一本地参考号、有效性时间戳和本地参考号。该过程包括:
a.搜索所有的数据库条目,与在拦截的数字网络关联中一样,它们指示同样的电子签名155。
b.从在步骤a找到的条目列表中搜索所有的数据库条目,与在拦截的数字网络关联中一样,它们指示同样的唯一单元标识符154。
c.从在步骤b找到的条目列表中搜索数据库条目,与在拦截的数字网络关联中一样,它们指示同样的本地参考号156。
d.如果找到这样的条目,并且有效性时间戳是有效的,那么使用在数据库条目中存储的本地参考号和给出的电子签名的组合,来生成本地唯一数据标识符。
e.如果找到这样的条目,并且有效性时间戳是有效的,那么根据在数字网络关联消息中给出的新的有效性时间戳152,来更新数据库条目中的有效性时间戳。
f.否则,向对应于该数字网络关联消息的对象发信号通知经验证的关联的不存在。
现在参见图26,它是一个简化图,图示了在数据传输优化过程中使用的优选的系统消息。优选地,数字网络关联消息150包括唯一关联标识符151和有效性时间戳152。优选地,唯一关联标识符包括唯一数据标识符153和唯一单元标识符154。优选地,唯一数据标识符包括数据分段155的电子签名和本地参考号156。优选地,唯一单元标识符154是被设置为表示发送网络节点的预定义的标识符。优选地,有效性时间戳152定义了一个最小时间帧,其中唯一数据标识符与发送单元上的数据分段相关联。优选地,网络关联消息请求160包括唯一关联标识符151、有效性时间戳152和请求单元id 161。优选地,唯一关联标识符和有效性时间戳,是从触发网络关联请求的数字网络关联消息中获取的。优选地,网络关联请求消息应答170包括原始关联id、应答单元的关联id、应答单元的有效性时间戳以及相关联的数据对象。优选地,原始关联id是从网络关联消息请求中获取的。
现在参见图27,它是一个简化图,图示了根据本发明进一步的优选实施例,在网络上传输经修改的对象的过程。只要对象是以其原始的形式在网络上传输,它优选地被分段成更小的对象,并根据如上所述的方法被传输。在该阶段,系统获知了对象分段序列,例如dna1、dna2、dna3,等等。当一个经修改的对象被发送到网络,该修改的分段产生了不同于系统所期望的DNA。系统会检测经修改的分段,并尝试用原始的数据分段加上改变来表示经修改的分段。如果原始数据与修改的数据之间的差别相对较小,原始的DNA被加上数据的差别而被发送,并且系统继续期待接收原始的分段序列。否则,该系统发送新创建的DNA,并将未来的输入数据视为新的数据序列。
使用上述技术可能提高传输对象的效率,这些对象随时间而部分被修改。每个分段被独立的处理,从而未修改的分段可以从它们之前放置的位置被聚集,并且新修改的分段被从最近被放置的位置被聚集,再次降低了总体网络负载。
这里的实施例提供了相对于现有技术系统的至少以下优点的一些:
●它们基本清除了网络上冗余的数据传输。
●它们减少了网络的总体带宽损耗。
●它们减少了网络的总体服务器负载。
●它们减少了总体网络等待时间。
●它们提供了最小的,几乎为0的冗余数据传输时间。
●这些实施例适用于数据对象的所有类型和大小。
●这些实施例适用于任意的数据通信网络环境。
●这些实施例适用于所有的数字对象传输,不管它们的传输上下文。
●这些实施例能够清除冗余传输,不管外部属性,例如HTTP URL、文件路径、URL mime类型、文件名等等。
●这些实施例能够加速整个对象,不管分段在网络上传递的次序和方式,也不管在数据网络上传输期间与其他对象以及信息的混合。
●这些实施例提供了一种非内容知道的解决方案。不可能从标识符中重构该内容。这些实施例能够传送冗余清除方案,而不将网络提供者暴露在为加速的内容所承担的任何法律责任下。
●它是一种非CPU密集方案。生成并比较标识符以及传递搜索请求是需要CPU功率的,但是这比在具有较少冗余业务中所节省的功率少很多。
●这些实施例对可压缩的和非压缩的数据是同样有用的,并且对于数据实际上是压缩的或者不是没有任何差别。
●这些实施例能够利用与从发送者到接收者的网络路径不同的网络路径。
●这些实施例能够减少传输时间,即使在对象不存在于目的对象网络节点的字典中的情况下,只要该对象存在于一个比源网络节点更接近于目的缓存的中间缓存中也是如此。
●这些实施例能够平滑地分配从发送端到接收端的网络路径与其他网络路径之间的网络负载。
●这些实施例能够进行网络内容控制,而不会产生任何隐私问题,并且不会实际上成为一种内容知道的方案,也就是它不会影响所传输的内容,也不用额外的外部信息。需要的外部信息使得能够进行简单的匹配,并且仍然不能对真实的内容进行识别。
●这些实施例能够根据配置对内容进行动态修改,例如,在以色列的dvd电影请求会导致地区3编码,而对于相同内容的来自美国的请求会导致地区1编码。
●这些实施例能够检测临近于接收端的远端网络节点。
希望在该专利的生命期中将开发许多相关的数据传输、网络以及缓存设备和系统,并且这里的相应词语的范围被希望是包括所有的这样的先验新技术。
应该理解,为了清楚而在分离的实施例上下文中,描述的本发明的某些特征,还可以在一个单独的实施例中被结合提供。相反的,为了简洁,在单独的实施例上下文中描述的、本发明的各种特征还可以被分别提供或者以任意适合的分组合方式提供。
尽管结合了特定的实施例对本发明进行了描述,很明显,本领域的熟练技术人员可以理解许多置换、修改和变型。相应的,期望包括所有这样的置换、修改和变型,它们落入附加的权利要求的精神和广义范围内。在本说明书中提及的所有出版物、专利和专利申请都通过引用方式被完全结合到本说明书中,其程度等同于好像每个单独的出版物、专利或专利申请被特别的和单独的指出要通过引用包括在这里。另外,本申请中的任何参考的引用或标识,不应解释为承认这样的参考作为本发明的现有技术是可获得的。
Claims (34)
1.一种用于在网络上传输数据对象的装置,包括:
在所述网络上的发送地点处:
拦截单元,用于拦截并缓存去往各自接收者路上的经过对象;以及
识别单元,与所述拦截单元相关联,用于生成所述经过对象的唯一标识符,所述拦截单元被配置为用所述唯一标识符来代替所述经过对象以在所述网络上传递,并且进一步使用所述唯一标识符来在所述缓存中标记所述对象;以及
在所述网络上的接收地点处:
搜索单元,用于使用所述唯一标识符搜索至少一个节点字典中的相应对象来识别所述相应对象,由此将所述相应对象从一个相对接近的节点字典提供给各自接收者,而不用执行冗余的网络传输。
2.根据权利要求1的装置,其中所述搜索单元被配置为提供:
a)本地搜索,
b)如果所述本地搜索不成功,那么在最近的网络节点搜索,以及
c)如果所述本地搜索不成功,那么继续在相继距离的网络节点搜索。
3.根据权利要求2的装置,其中所述搜索单元进一步被配置为根据本地负载均衡考虑因素来修改所述搜索。
4.根据权利要求3的装置,其中所述负载均衡考虑因素是从中央负载均衡控制节点获得的。
5.根据权利要求1的装置,其中所述对象在存储前被分段,使得每个分段都是可被独立搜索和可被独立传输的。
6.根据权利要求1的装置,其中在修改所述分段的对象时,每个分段被独立地处理。
7.根据权利要求5的装置,进一步被配置为包括将分段的变化作为原始分段的增量。
8.根据权利要求1的装置,其中所述识别函数基本上是单射的。
9.根据权利要求8的装置,其中所述识别单元被配置为将散列函数用作所述的基本单射的识别函数。
10.根据权利要求1的装置,其中所述识别单元被配置为使用完全单射的识别函数。
11.根据权利要求1的装置,其中各自经过对象的副本被存储在所述网络的多个节点,每个副本与所述各自的唯一标识符相关联,从而使用所述各自的唯一标识符能从每个节点提取所述副本。
12.根据权利要求2的装置,其中节点的距离由联网参数来确定,并且其中所述联网参数包括一组中的至少一项,该组包括:物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
13.根据权利要求11的装置,其中所述拦截单元被配置为在缓存之前拦截经过对象,该装置进一步包括与所述搜索单元相关联的负载均衡单元,使得所述负载均衡单元能够从所述网络的不同节点提取所述对象的不同分段,由此提供相对均衡的网络利用率。
14.根据权利要求1的装置,进一步包括内容控制单元,被配置为存储与想要控制其分布的数据对象相关的唯一标识符以及用于所述控制的规则,从而能够使用给定的唯一标识符来搜索所述控制单元,以提取要应用到所述对象的进一步分布的相应规则。
15.根据权利要求14的装置,其中所述规则是包括传输阻塞、对象修改、以及对象替换的组中的任意一个。
16.根据权利要求1的装置,其中所述发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别在所述接收地点处的系统部件,并允许由所述系统部件识别和修改对所述ICMP消息的响应,由此将所述系统部件确定为在所述接收地点处的部件。
17.根据权利要求1的装置,其中所述发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别与所述接收者最近的系统部件,并允许对所述ICMP消息的响应被所述响应经过的第一系统部件识别和修改,从而将所述系统部件确定为与所述接收者最近的系统部件。
18.一种在网络上传输数据对象的方法,包括:
在所述网络上的发送地点处:
拦截并存储去往各自接收者路上的经过对象;以及
生成所述经过对象的唯一标识符,
用所述唯一标识符代替所述传递对象以便在所述网络上传递,以及
使用所述唯一标识符来在所述缓存中标记所述对象;以及
在所述网络上的接收地点处:
使用所述唯一标识符搜索至少一个网络节点中的相应对象,以识别所述相应对象,由此将所述相应对象从一个相对接近的网络节点提供给各自的接收者,而不用执行冗余的网络传输。
19.权利要求18的方法,其中所述搜索最初在本地执行,然后在接近于所述预计的接收者的节点执行,并且如果仍然没有找到相应对象,那么将所述搜索平稳扩展到距离平稳地更远的节点。
20.权利要求18的方法,其中在所述缓存中存储和所述创建唯一标识符之前,将所述经过对象分段成预定大小。
21.权利要求19的方法,其中节点的距离使用联网参数加以确定,联网参数包括一组中的至少一项:物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
22.权利要求20的方法,其中在到所述预计接收者的不同路径上的多个节点上执行所述搜索,由此保证了相对的网络利用均衡。
23.一种通信网络的节点,被配置为最小化在所述网络上冗余的对象传输,该节点包括:
拦截单元,用于拦截承载数据对象的网络通信;
节点字典,用于存储所述数据对象;
与所述节点字典相关联的标记单元,用于
a)生成存储在所述节点字典中的每个数据对象的唯一标识符,由此为每个所述数据对象提供电子签名;
b)存储与所述对象相关联的所述标识符的第一副本;以及
c)在所述网络通信中用所述标识符的第二副本来替换所述数据对象,以继续在所述网络上通信,以及
与所述节点字典相关联的提取单元,用于
d)从所述网络接收对用电子签名所标识的对象的查询,
e)比较所述电子签名与所述缓存中存储的签名,
f)如果找到了匹配,那么提取对应于所述匹配的签名的对象,以及
g)如果没有找到匹配,那么向一个邻居节点发送所述查询。
24.一种缓存字典,与通信网络的节点相关联,所述缓存字典被配置为最小化在所述网络上冗余的对象传输,该缓存字典能够存储所述数据对象,并进一步相关联于:
拦截单元,用于拦截承载数据对象的网络通信;
标记单元,用于
a)生成存储于所述缓存字典的每个数据对象的唯一标识符,由此为每个所述数据对象提供电子签名;
b)存储与所述对象相关联的所述标识符的第一副本;以及
c)在所述网络通信中用所述标识符的第二副本代替所述数据对象,以继续在所述网络上通信;以及
提取单元,用于
d)从所述网络接收对用电子签名所标识的对象的查询,
e)比较所述电子签名与所述缓存字典中存储的签名,
f)如果找到了匹配,那么提取对应于所述匹配的签名的对象,以及
g)如果没有找到匹配,那么向一个邻居节点发送所述查询。
25.一种在包括多个节点的网络上传输数据对象的方法,包括:
在相对接近于发送者的节点中存储任意的经过对象,
生成所述对象的唯一标识符;
将与所述对象相关联的所述唯一标识符存储到所述相对近的节点中;
向所述对象的预计接收者发送所述唯一标识符;
在相对接近于所述的预计接收者的节点,使用所述发送的唯一标识符来与其中存储的对象的标识符进行比较,以找到匹配;
如果找到了匹配,那么提取对应的存储对象,并向所述预计接收者发送;
如果没有找到匹配,那么在进一步的节点重复所述匹配,直到找到匹配。
26.权利要求25的方法,其中使用联网参数来确定节点的距离,联网参数包括一个组中的至少一项,该组包括物理距离、带宽、往返时间、等待时间、路由跳数和经济费用。
27.一种用于在网络上远程识别最接近于给定位置的系统部件的装置,该装置包括:
消息生成器,用于生成对于各自系统部件可识别的响应请求,以及
发送单元,用于向所述给定位置发送所述响应请求,从而所述响应请求被所述给定位置接收,并且发送回一个响应,所述响应对于所述系统部件是可识别的,从而第一系统部件接收将自己标识给所述装置的所述响应。
28.根据权利要求27的装置,其中所述响应请求是ICMP消息,包括具有第一数目的第一字段,和具有第二数目的第二字段,该第二数目是所述第一数目的预定函数,所述预定函数被所述系统部件使用来识别所述响应。
29.一种在网络上远程识别最接近于给定位置的方法,该方法包括:
生成对于各自系统部件可识别的响应请求,
向所述给定位置发送所述响应请求,从而所述响应请求被所述给定位置接收,并且发送回一个响应,所述响应对于所述系统部件是可识别的,从而第一系统部件接收将自己标识的所述响应。
30.权利要求29的方法,其中生成所述响应请求的方法包括在所述响应请求中插入第一数目和是所述第一数目的预定函数的第二数目中,所述预定函数能够使得所述系统部件能够识别所述响应。
31.一种用于查找与接收地点最接近的相邻目的节点的装置,其中发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别在所述接收地点处的系统部件,并允许对所述ICMP消息的响应被所述系统部件识别和修改,从而将所述系统部件确定为在所述接收地点处的部件。
32.一种用于查找与发送地点最接近的接收地点的装置,其中所述发送地点进一步包括接收地点识别单元,被配置为通过向所述接收者发送ICMP消息来识别最接近于所述接收者的系统部件,并允许对所述ICMP消息的响应被所述响应所经过的第一系统部件识别和修改,由此将所述系统部件确定为最接近于所述接收者的系统部件。
33.一种用于查找与接收地点最接近的相邻目的节点的装置,该方法包括:
通过向所述接收者发送ICMP消息来识别在所述接收地点处的系统部件,
识别对所述ICMP消息的响应,以及
修改对所述ICMP消息的响应,从而将所述系统部件确定为在所述接收地点处的部件。
34.一种用于查找与发送地点最接近的接收地点的方法,该方法包括:
通过向所述接收者发送ICMP消息来识别最接近于所述接收方的系统部件,并且
并使得对所述ICMP消息的响应被所述响应经过的第一系统部件识别和修改,从而将所述系统部件确定为最接近于所述接收者的系统部件。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US60/634,084 | 2004-12-08 | ||
| US60/661,001 | 2005-03-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1135779A true HK1135779A (zh) | 2010-06-11 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8271578B2 (en) | Bidirectional data transfer optimization and content control for networks | |
| CN1969525B (zh) | 用于减少通信网络上的传输量的通信服务器、方法和系统 | |
| US7051102B2 (en) | Peer-to-peer name resolution protocol (PNRP) security infrastructure and method | |
| US10419345B2 (en) | Network named fragments in a content centric network | |
| US10530886B2 (en) | Method for optimizing WAN traffic using a cached stream and determination of previous transmission | |
| US20060167969A1 (en) | Data caching based on data contents | |
| EP2869515A1 (en) | System and method for minimum path mtu discovery in content centric networks | |
| US9306997B2 (en) | Method for optimizing WAN traffic with deduplicated storage | |
| US20150256601A1 (en) | System and method for efficient content caching in a streaming storage | |
| KR101384794B1 (ko) | 메시지 라우팅 플랫폼 | |
| JP2017063412A (ja) | ネットワーク名称付きフラグメントによるフロー制御 | |
| US9300748B2 (en) | Method for optimizing WAN traffic with efficient indexing scheme | |
| CN106027555B (zh) | 一种采用sdn技术改善内容分发网络安全性的方法及系统 | |
| Matsuzono et al. | Network Coding for Content-Centric Networking/Named Data Networking: Considerations and Challenges | |
| Ghali et al. | Network names in content-centric networking | |
| HK1135779A (zh) | 网络的内容控制及双向数据传输优化 | |
| AU2012200265A1 (en) | Bidirectional Data Transfer Optimization and Content Control for Networks | |
| Alhisnawi et al. | Designing Cuckoo Based Pending Interest Table for CCN Networks. | |
| Matsuzono et al. | RFC 9273: Network Coding for Content-Centric Networking/Named Data Networking: Considerations and Challenges | |
| CN101495983A (zh) | 网络的内容控制及双向数据传输优化 | |
| Clarke et al. | Freenet: A Distributed Anonymous Information | |
| HK1060459B (zh) | 對等名稱解析協議(pnrp)安全性基礎結構和方法 |