CN1969525B - 用于减少通信网络上的传输量的通信服务器、方法和系统 - Google Patents
用于减少通信网络上的传输量的通信服务器、方法和系统 Download PDFInfo
- Publication number
- CN1969525B CN1969525B CN200580012347.7A CN200580012347A CN1969525B CN 1969525 B CN1969525 B CN 1969525B CN 200580012347 A CN200580012347 A CN 200580012347A CN 1969525 B CN1969525 B CN 1969525B
- Authority
- CN
- China
- Prior art keywords
- data
- piece
- bag
- anchor
- communication means
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本发明涉及用于减少通信网络上的传输量的通信服务器、方法和系统。公开了一种通过通信网络传递数据流的方法,该方法包括以下步骤:确定数据流中的基准点,所述基准点是所述流中预定义数量的字符符合预定标准的位置;登记数字签名,所述数字签名是预定函数针对内容的预定义范围所得到的返回的值,所述范围与所述基准点有关;利用所述数字签名定位本地存储的内容,并利用所述基准点或创建字典从而利用其在当前接收到的数据片段之间和本地存储的匹配内容之间进行同步。还公开了实现该方法的通信服务器,并且还公开了包括至少一个所述服务器的通信系统。
Description
技术领域
本发明涉及经通信网络的数据传输领域,更具体地讲,涉及减少这种数据传输的量的领域。
背景技术
第60/548,855号美国临时专利申请的背景技术章节通过引用包含于此。
减少带宽是ISP(互联网服务提供商)、家庭用户、内容提供商和拥有网络的几乎每个组织的主要期望。由于实际上根据通信线路传输的数据的量来租用它们,所以带宽就意味着成本。对于承租人而言,占用的带宽越少,在租借通信线路上花费的钱就越少。对于带宽提供商而言,给定数量的用户在线路上传输的数据量较小,意味着在不降低服务质量的情况下还可以签约额外的用户。
第2002/0184333号美国专利公报(以下称作D1)旨在改进通信网络的性能。D1要解决的问题是多个请求者可能发送针对相同文件的请求的情况,其中,每个请求发往引用不同的URL或甚至不同文件名称的不同的提供商。在传统的缓存(caching)中,将这多个请求视为对不同文件的请求,这导致多个文件分别被传递。
根据D1发明,在从多个源中的各个源接收到完整的文件后,将分配一数字签名,进而该数字签名将被识别为与从其它源中的任何一个接收到的相同文件的数字签名相同。因此,通过从本地存储在缓冲服务器中的单个拷贝中检索该文件将会满足来自多个提供商中的任何一个的对该文件的更多请求。这种改进在于:通过对被频繁请求的文件进行缓存,以响应于请求者的查询将这些文件返回给请求者,其中,根据分配给各个文件的数字签名来索引这些文件,因此,可以避免在从多个源检索一个文件的情况下,多个缓存和多个提供商服务器传递相同的文件。
正如可理解的那样,为了能够将不同的请求形式和一个被请求的文件相关联,D1需要将缓冲的文件识别两次:第一次是根据它的数字签名,第二次是根据已知的与该文件相关联的所有URL或文件名称。在接收到对相同文件的请求而该系统不熟悉该请求的情况下,只有通过从该请求所指示的位置检索该文件才能满足该请求,并且只有曾经将该文件检索并识别为本地存储文件的拷贝后,才能将该请求所指示的文件名称或URL与该本地文件相关联以在将来使用(即,用于未来的相似请求)。D1的另一缺点在于,存储在某些提供商计算机中的文件会改变,而中间节点继续向请求者提供旧版本的本地存储文件,而没有意识到所述改变。
国际专利申请第WO95/19003号公报(以下称作D2)涉及接收计算机具有旧文件、而发送计算机具有新文件的情况,其中,两个文件的一部分可能是相同的。为了使接收计算机可以将该旧文件更新为与该新文件相同,需要至少将新文件中与旧文件的任何部分都不相同的那些部分发送到接收计算机。为了使接收计算机和发送计算机都能够比较该文件的哪些部分不需要发送(从而加快发送过程的速度),作为预备步骤,接收计算机需要将旧文件划分为段,对每个段计算散列数并将这些散列数发送到发送计算机。然后发送计算机必须对“在新文件中的各个可能段”(第7页第23-24行)计算散列数,然后将这些散列数与从接收计算机接收到的散列数进行比较。
正如可以理解的那样,D2旨在根据从发送方接收到的新文件的段和存在于接收计算机上的预先指定的旧文件的已有段,在接收计算机上重构文件,以使结果为在接收计算机上得到该新文件的拷贝。第5,721,907号美国专利的目标与D2相似。D1至D3均与期望从另一计算机获得预定的被请求文件(或文件的部分)并将其存储在接收计算机上的该接收计算机相关。当已知一文件还具有已知的起始点和终点时,可将其用作已知范围的数据上的用于计算数字签名的基准位置。
发明内容
与现有技术不同,本发明旨在发起实时数据流的传输缩减,即,减少数据流的量,该数据流的内容是匿名的,并且发起所述缩减的计算机还无法将该内容识别为文件或文件的一部分。例如,参照实况视频广播,其中,多个接收计算机实时接收相同的内容,因为由于在实时创建数据的这种情况下到处都没有任何实际的“文件”,因而中间节点在其缓存中没有将被检索的文件,所以D1所公开的系统和方法不能减少网络中的传输量。
由于在接收计算机中不存在其一部分可能与期待的数据相同的“旧文件”,所以D2和D3的发明也与这种情况无关。
在本发明的上下文中,锚(Anchor)是根据数据流的符合预定标准的内容而确定的在数据流中的位置。将该标准设置为在预定量的数据上出现锚的概率令人满意。
锚定-由预定函数(以下也称作“锚定函数”)返回的登记值用于检查其位置与锚相关的预定范围的内容。选择该函数和该数据范围,从而可以以令人满意的概率将返回的值用作识别所述内容的签名。
本发明涉及一种方法和系统,用于在当前通过通信服务器的数据流的匿名内容之间以及在已经通过所述服务器并本地存储的相似内容之间进行同步,从而可以消除所述数据流的一定量的传输。
根据某些实施例,该同步还在同时通过该服务器的相似数据内容的几个拷贝之间进行。本发明的系统包括至少一个服务器,该至少一个服务器能够减少线路内的网络传输的量,这是该服务器为了实现量的缩减而自己发起的过程的结果,该过程不需要关于数据的源、数据的类型、数据的名称或数据的任何其它识别细节的信息。这与所期望的量的缩减取决于文件名称或路径,以使得所请求的文件和本地存储的文件可以同步的方法相反。另外,当已知要发送的文件还具有已知的起始点和结束点时,可将其用作在预定的数据范围上用于计算数字签名的基准位置。在其内容没有所有人都赞同的起始点或结束点的匿名数据流的情况下(如在根据本发明的情况下),没有允许计算可重复的数据签名的赞同的基准点。如果数字签名无法重复,则不能用它来识别内容。正如将要进一步解释的,根据本发明的服务器包括解决这个问题的锚确定单元。
对于通过服务器的数据流的特定部分的另外使用,根据本发明的服务器(以下也称为“匿名数据缓存服务器”或“ADC服务器”)存储数据的这些部分,而不知道文件名称、全部数据、URL、文件类型和数据起点或目的地。根据本发明,服务器只存储纯数据,而不存储从外部文件请求者或文件提供者接收的ID标记。
根据本发明的系统包括具有通信电路的通信服务器和至少一个其可访问的存储器介质,其中,所述通信电路用于接收和传送数据流。
锚确定单元设置在服务器中,能够确定数据流中的、来自该流的预定义的字符组符合预定的标准的位置,这些组的位置被确定为锚(以下还称作“基准点”)。
该服务器还包括:
锚定函数单元,用于返回作为流中的数据范围的内容的函数的值(以下还将称作“数字签名”),其中,所述范围相对于所述锚具有已知相关性(当搜索所述内容时,所述值就有帮助了);
数据划分单元,用于将数据流划分成数据块;
登记单元,用于存储从锚定函数单元返回的值的列表,其中,通过适当的引用将各个值与指定数据块相关联,所述指定数据块包含这样的数据范围,锚定函数根据该数据范围返回所述值(与块有关的各值在本发明的上下文中将被称作“块ID”,并在某些特定的情况下被称作“散列键”)。
根据本发明的各种实施例,在正常的情况下,多个块ID与各个数据块相关联。
根据本发明的一个实施例,所述块划分单元将数据划分成预定大小的块。例如,所述预定大小可选择为64K的数据。
根据另一实施例,为了提高在不同的服务器上包含相似数据的块之间的兼容性,并避免在每次发送所述块时对该数据进行不同的划分,所述划分单元将块的起始位置确定为包含在数据流中的数据的函数。根据这种变型,块划分单元对所述数据流激活用于确定锚的函数,其中,将该函数设计为每数据范围返回一个锚的概率大小令人满意,例如是这样的函数,根据该函数,可以期望每大约50K的数据一个锚。
可以将数据块保存到缓存存储器中,用于后来的根据块ID的检索,所述块ID通过适当的引用与这些块相关联。
如上所述,锚是数据流中根据其符合预定标准的内容而确定的位置。将该标准设置为在预定量的数据上可出现锚的概率令人满意。
例如,根据本发明的一个实施例,与数据块相关联的一组锚可以是在块中出现短串的一组位置,例如,在块中出现“aaa”的每个地方。根据另一实施例,该组锚可以是一组n元组(n-tuples)的位置,其中,在该n元组上散列函数返回预定的值,例如,块中所返回的散列值为123的字节三联组(triplet)所在的每个位置。
可用于寻找锚的散列函数的一些例子为LFSR(也称为CRC)、DES、MD5等。
根据一个优选的实施例,将锚定函数设计为找到锚的可能性为平均每500个字节。因此,期待在每个数据包中发现三个锚。在数据被分为每个64K大的数据块的情况下,每个块期望出现128个锚。在使用大约50K的块的情况下,期望的锚的数量相应减少,因此期望每个块出现大约100个锚。
如上所述,锚定是由用于检查其位置与锚相关联的内容的预定范围的预定函数(锚定函数)所返回的登记值。选择该函数和该数据范围,从而可以将返回的值用作具有令人满意的概率的用于识别内容的签名。根据本发明的一个优选实施例,将锚定函数选择为这样的散列函数,该散列函数对从锚开始的100个连续字节进行运算并返回96位散列值作为数字签名。
根据本发明的一个优选实施例,登记单元(或者服务器通过其他适当的单元)还被设计为与块ID的登记相关联地登记锚。例如,在数据划分单元从数据流中划分出给定的数据块后,登记锚的位置,例如,作为从块的起始点测量的偏移基准。通过这种登记,当给定数字签名值时,可在块ID的列表中搜索相同的值,如果定位了相同的值,则可检索或访问与其相关联的块。因此,可根据与从块的起始点测量的、与该值相关联的锚的位置来容易地定位已经从其返回了数字签名值的数据范围。
根据另一实施例,没有登记块中锚的位置。根据这个实施例,当给出数字签名值时,可在块ID的列表中搜索相同的值,如果定位了相同的值,则可检索或访问与其相关联的块。由于根据该特定实施例没有登记锚的位置,所以已经从其返回了数据签名值的块中的数据范围的位置还是未知的。因此,根据这个实施例,使用字典,这将在具体实施方式章节解释。出于此目的,ADC服务器还可以包括字典产生器单元。
通过所述锚登记实施例或通过字典产生器实施例,可以使锚定函数单元已经从其返回了数字签名的当前接收到的数据包与包含在已经存储在存储器中的数据块中的相似数据包同步,从而可容易地对它们进行比较,以验证它们是否相同。在它们相同的情况下,当前接收到的包可以被对其在该块中位置的引用所替换,从而减少了发送到接收端的数据的量。在它们不相同的情况下,通过用对块中的相同的子串(如果存在)的起始和结束位置的引用来替换相同的子串,仍能减少要发送的数据的量。
根据本发明的服务器可用于两个基本选项之一或其组合,以减少通过通信网络的传输量:
(i)与相似类型的至少一个对应的服务器协作,两个服务器都位于在它们之间进行连接的虚拟通信线路的远程端(在本发明的上下文中,术语通信线路包括无线连接作为一种可能的选项);
(ii)与至少一个数据提供商计算机(以下称作“数据提供商”)协作,所述数据提供商包括改向单元;
出于便于描述的目的,假定根据本发明的两个匿名数据缓存服务器连接在通信线路的两个远程端,并还都与通过各网络和路由器连接到各个服务器的数据提供商一起工作。
作为起始点,假定两个ADC服务器具有空的缓存存储器。数据流被引导通过ADC服务器。每个ADC服务器处理通过其的数据,以确定锚、计算数字签名、将数据划分为块、并创建块ID。在正常情况下,块存储在缓存中,因此缓存开始被不包含识别信息的纯数据的块填充。每个块的块ID也被存储,从而存储在缓存中的每个块的地址与块ID的各个列表链接。在各ADC服务器中建立缓存的同时,块被逐个包地向预期方向发送,所述预期方向根据情况是去往位于通信线路的相对端的对应的ADC服务器的方向或去往数据路由到其的传统接收者的方向。只要从所接收的数据流返回了数字签名值,就在ADC服务器中的块ID的存储的列表中搜索相同的值。当识别出具有这种相同值的块ID时,访问与该块ID相关联的块。现在,例如通过利用锚相对于块的起始点的已知偏移(根据用块ID来保存锚的实施例),或例如通过利用字典(根据另一实施例),服务器对锚定函数从其返回了块ID的该块中的特定点进行定位,并使当前接收到的数据包的位置和原始接收到的数据包的块中的位置之间同步。
现在可以对当前接收到的包和原始的包进行比较,以验证它们是否相同,或确定它们的哪些部分(或它们的哪些大子串)相同。
在它们相同的情况下,(根据各种其他实施例,在它们的某些部分相同的情况下),ADC服务器发起用于减少数据流的量的过程,所述数据流现在被期望包含已经本地存储的数据。
如果数据的源是数据提供商,则所述发起ADC服务器将消息发送到该数据提供商以激活锚定函数,并仅发送对块中的锚的位置的引用,而不是发送数据本身。只要所接收的引用使服务器可以从本地存储的块中检索到整个的包,则数据提供商就保持发送引用,而不是全部数据。如果在任何给定点处,服务器识别出接收到的数据的签名和本地存储的数据的签名之间不匹配,则服务器将消息发送给提供商以返回传统传输。
在接收到的数据流要转发到对应的ADC服务器的情况下,所述发起服务器将消息发送到对应的服务器以根据当前所识别的签名从其缓存检索块。然后将又一个或几个当前接收到的包以传统发送模式发送到对应的服务器,直到该对应的服务器确认预期的块被识别并取出为止。
在初始化服务器时,用对块的引用来替换当前接收到的包中的与本地存储的包相同的部分,允许对应的服务器根据该块重构它们。由于引用短于它们所替换的数据,所以包的大小可被确定地减小。因此,只要可以本地检索到与当前接收到的数据相同的数据,就可以将减小了大小的包发送到对应的服务器。
根据一个优选的实施例,在相同的信息通过ADC服务器同时流向不同的目的地的情况下,ADC服务器还用于消除不必要的传输量。根据该实施例,所述发起服务器在当前接收到的包中搜索锚,并且有时可以识别出几个本地存储的包返回相同的签名。这可能是例如,当向多个接收者广播实况视频时的情况。在这种情况下,所述发起服务器可向对应的服务器发送消息,以利用正被发送的单个包,并将其分发给所有接收者,到这些接收者的相同的包正等待在所述发起服务器中。可以显著地减少在这种情况下的传输的量,并可以显著地缩短下载大量数据的时间。
现在将简要地描述本发明的一些基本的实施例:
本发明涉及一种用于通过通信网络将数据流传递到远程目的地的通信服务器,所述服务器包括:替换单元,用于根据由远程发送者提供的引用,用从其可访问的数据存储器检索的相同的多个数据片段来替换来自远程发送者的要接收的预期输入数据流的多个数据片段;所述服务器的特征在于,识别单元,用于根据作为包含在所述片段中的数据的函数的数字签名,识别要替换的数据片段;以及锚确定单元,用于确定数据流中的位置,在所述位置处来自该流的预定义的字符组符合预定的标准,这些组的所述位置是所述数字签名的基准点。
根据各种优选的实施例,所述通信服务器还包括发送消息单元,用于通知远程发送者停止传递可从可访问的数据存储器检索的数据的预期输入片段。
远程发送者可以是传递数据(或文件,本发明的服务器将其当作无格式数据(plain data))的PC。
根据各种优选的实施例,所述服务器单元被设计为处理作为TCP/IP传输协议的包的数据片段。
根据各种优选的实施例,所述服务器还包括可对其访问的数据存储器,其中,包以可变大小的块存储在该数据存储器中,所述可变大小是根据锚在原始数据流上的位置确定的。
根据各种实施例,由锚定函数单元返回的数字签名是基于:对来自所选择的数据片段的预定数量的字节计算的CRC、SHA1或DES的值中的任何一个。
根据某些优选的实施例,所述数字签名是根据预定数量字节的数据而计算的,所述多个字节在数据流中的位置与至少一个锚相关,并且所述锚是指向数据流中的兼容预定标准的位置的指针。
根据各种优选的实施例,所述标准是包含在所述多个数据片段中的数据的函数,并且独立于所述数据的标题、地址或路由信息。
所述函数响应于预定的字符组合,从而当识别所述字符组合时分配锚。
根据各种实施例,所述字符组合是预定义的字符的短串。
根据各种实施例,将一组锚分配给数据片段,该组中的每个锚与所述数据片段中的n元组位置相关,其中,所述函数是在所述n元组上产生预定义的值的散列函数。
根据各种优选的实施例,从包含LFSR、CRC、SHA1、DES和MD5的组中选择所述散列函数。
由于本发明涉及作为无格式匿名数据流的任何类型的文件,所以不管文件的大小如何或它们是否被分开且从多个提供商处下载,该服务器和包含该服务器的系统可以处理通过P2P通信传递的文件。
本发明还涉及一种通过通信网路传递数据流的方法,所述方法包括:确定数据流中的基准点,所述基准点是所述流中预定义数量的字符符合预定的标准的位置;登记数字签名,所述数字签名是预定函数针对预定义范围的内容所得到的返回的值,所述范围与基准点有关;利用所述数字签名定位本地存储的内容,并利用基准点或创建字典从而利用其以在当前接收到的数据片段之间和本地存储的匹配内容之间进行同步。
本发明还涉及一种包含用于控制计算机系统来执行该方法的指令的计算机可读介质。
一种用于减少通信网络上的传输量的系统,该系统包括由以上和下文的描述所定义的至少一个通信服务器,该系统也在本发明的范围内。
附图说明
为了理解本发明以及了解其在实际中如何执行,现在将参照附图仅通过非限制性示例的方式来描述优选的实施例,在附图中:
图1示出了数据流、包含在数据流中的包、从数据流划分出的数据块和根据本发明产生的锚之间的关系,产生所述锚是为了使在相似匿名数据流的重复实例之间存在有效相关性。
图2示出了数据的块之间、使得可以定位本地存储的块的块ID的阵列之间、以及根据一些实施例使得可以定位块中的包的字典之间的关系。
图3示出了表示根据本发明一个优选实施例的用于减少网络线路上的传输量的处理的流程图的第一部分。
图4示出了图3的流程图的第二部分。
图5示出了根据本发明的系统构造的示例。
具体实施方式
本发明涉及一种用于通过包缓存减小带宽的方法、以及一种用于通过包缓存减小带宽的系统。本发明的核心是存储包并以有效的方式快速地对其检索。现在将描述如何存储包以在随后有效地对其检索。
在以下的整个描述中,正被传送的文件将被称作数据流。由于在网络中处理实时流的设备预先不知道正被传递的文件并且当文件通过这些设备时它们才知道(learn)该文件,就像流一样,所以这样的叫法是合理的。
当根据本发明的通信服务器从通信线路读取了属于流的包时,该通信服务器获知数据。正在获知的流将被分为数据块。块的大小与包的大小无关。以下,根据一个实施例,将64K大的块作为示例(尽管其可以是任何可以接受的大小)。块也不需要在包的开始处开始。当我们从网络读取流的包时,它们的数据被复制到数据块中。当块已满并包含64K的数据时,在执行一些将在以下讨论的预处理之后,将该块写入到本地盘。根据另一实施例,流中块的结束位置和下一块的开始由锚(按将在后面解释的方式)确定。通过使用锚(与根据另一实施例使用固定大小的块相反),块划分变得依赖于其内容(因为锚被确定为所包含的数据的函数),因此,在网络上包含相同数据的块将更可能被发现为被相同地划分,而由于没有固有的规则确定固定大小的块的划分,所以固定大小的块的划分偶尔会改变。
根据各种实施例,在根据本发明所采用的处理中,将使用散列函数来帮助进行所需的数据的定位。将散列键(hash key)定义为取决于数据的范围的值的n比特的数,所述数据的大小为m字节,其中,对于两个不同的m字节的值,具有两个相同的散列键的概率非常低。可以通过计算m字节的CRC值,或通过计算它们的SHA1值、DES值或任何其它满足上述条件的已知函数来创建散列键。本领域的技术人员可以根据应用了该方法的网络和包的类型来确定n和m的具体值。散列键可用于在盘上定位所需的块。散列键还可用于在块中定位特定的所需的包。
根据本发明的一个优选实施例,在100字节上取得的64位散列键用于使得可以在盘上定位块。
根据本发明的另一优选的实施例,在100字节上取得的96位散列键用于使得可以在盘上定位块。
根据一些实施例,在5字节上取得的16位散列键用于创建字典,该字典将允许在块中找到所请求的包。
根据本发明的各种实施例,优选地这样来选择锚:使所述锚仅依赖于少量的数据(例如几字节),而独立于包含所述锚的块的起始位置或包含所述锚的包的起始位置。用于定义流中的锚的一个例子是将锚选为位于流中出现字符串“abc”的每个位置。用于定义锚的另一个例子是将锚选为位于流中的5个连续字节的9位散列为零的每个位置。因为当给定了5字节的串的CRC时,容易去除串中第一字节的作用并在该串的末端添加一新字节,所以选择9位的CRC。因此,在缓冲器中可以使CRC有效地“滚动(rolled)”。
在我们发现锚的每个地方,在下一100个连续字节上计算96位的散列键。返回的散列键的值被称作“块ID”。明显地,根据所描述的过程,块将具有多个ID。为了防止有太多的块ID,可以在找到锚后跳过特定量的数据,例如,在找到下一个锚前,可从所考虑的前一个锚跳过400字节或500字节。因此,应该理解,包将持有不超过三个块ID,64K的块将持有不超过128个块ID。
然后将所有的块ID保存在盘上的数组中。该数组还将被称作“散列数组”。尽管当很多ID引用一个特定块时它们可能被映射到相同的条目(entry)上,但是每个块ID都与散列数组的一个条目相关联。就这样,在各个条目处,块ID的列表与它们所关联的块的位置一起保存。
根据一些实施例,对于每个块,计算该块的每m个连续字节的散列键,并且将每个散列键与产生它的位置一起存储在数组中。这种数组将被称作块的“字典”,根据这些实施例,该字典将用于在块中定位所需的包。根据一个实施例,如先前面所提到的,将散列键选择为16位长,并且其是在5个连续字节上计算出来的。将从该计算中返回的散列键的值存储在数组中,然而根据其它的实施例变型,可以将它们存储在链表、树或允许有效搜索的任何结构中。因此,将字典设置为65536个条目的数组(其中,每个条目对应于16位键的一个不同的可能组合)。在位置p处计算出散列键h的情况下,该数组的第h个条目将被设定为保存数p。因此,为了找到包中计算出散列键h的位置,应该读取存储在数组的第h个条目中的值。
可以通过仅对每m个连续字节计算散列键来减小字典的大小,所述每个m个连续字节在包内的起始位置可被x除尽,其中x是可由开发者选择的参数。x的值越高,将导致字典的尺寸越小。例如,可选定x为16。
现在参照图1进行说明,图1示出了帧1所表示的数据流之间的关系。帧内部的点表示数据内容。数据流中包含包,如帧2表示,帧2与帧1相同,不同之处在于帧2通过竖线4示出了包的起始点和结束点。从数据流划分出的数据块由竖直的双线5表示,还示出了为了使相似匿名数据流的重复实例之间有效相关而根据本发明所产生的锚6、7和8。在该示出的示例中,将锚定义为在数据流中发现字符组合“abc”的位置。因此,通过明确地键入所述字符组合,该流中的这种组合的实例被突出显示。竖直的点划线9、10和11穿过流、包和块的表示,以强调锚向数据流中的位置提供了内在基准点,从而无论如何划分该流,只要检测到预定的字符组合,则通过激活返回锚的函数总是可以识别基准点。
参照图2,存储在缓存中的三个块由标记为A、B、C的三个帧分别表示。第一个块A包含串“abcdeafchijk”。第一个块的字典由标记为D的帧表示。字典D表示块A中出现字符三联组的位置。该图还示出了块ID的数组(标记为E),其中,在示出的示例中,ID中的两个与第一个块A相关联并因而寻址到第一块A,如各个箭头31和32所示。当接收到包时,在该包中搜索锚,并且当找到锚时,由从跟在该锚后面的100个字节返回散列值的散列函数来计算数字签名。然后在存储有块ID的数组中搜索数字签名值。该数组还存储了缓存中存储该块的位置。在数字签名值和任何一个块ID的值之间出现匹配的情况下,从缓存中取出与匹配的块ID相关联的块。在将该块取出到存储器后,可以使用字典来寻找在块中的包的大子串,所述大子串与在当前接收到的包中的对应子串相同。然后可将这种子串从包中删除并由对该块的引用所替代。
接收这种经处理的包的ADC服务器可以从其本地缓存中检索包的所述被删除的部分,因此,与所删除的子串的量相对应地减少了所发送的数据的量。
将进一步解释根据本发明的各种实施例执行的处理,假定其中两个ADC服务器分别连接到通信线路的相对端的构成,并假定(为了解释的简单)所有的通信从该线路的相同端(在本发明的上下文中为“发起者端”)发送,并在另一端(在本发明的上下文中为“接收端”)接收,并且在该线路两端的服务器运行了足够长的时间,并且已经研究了通过该线路发送的信息,并已经建立了以上解释的数据结构。
简要地,根据本发明的相同构成涉及一种包括两个ADC服务器,(在通信线路的相对端各有一个)的系统。在该线路上发送的通信通过这两个服务器。这两个服务器研究通过该线路发送的文件和流。ADC服务器将文件和流划分为块,并将这些块与字典(根据一个变型例)或与锚引用(根据另一变型例)一起存储在它们的本地盘上。ADC服务器还根据新存储的块来更新它们的包含块ID的散列文件。当传送流的包时,两个计算机利用它们的散列文件来搜索它们的盘,并将先前存储的块取出。发送计算机使用该块,用对该块内部的数据的引用来替换包内的数据,接收计算机使用该块根据所述引用重构该包。现在将更详细地描述所述处理。
在发起者端从网络读取的包是通信流的一部分。该通信流由其通信ID与其它通信进行区分,所述通信ID是四元组:源IP地址、目的IP地址、源端口和目的端口。在读取包并且在它被发送到接收端之前,发起者服务器检查该包以在该包中寻找锚。包中的锚的期望的数量是三(假定正在使用针对这个数目的锚的前述实施例)。这意味着存在着将会找到一些锚的特定概率。要注意,流中的锚的位置是包内容的函数而不是包中它的位置的函数。这确保了我们在当前接收到的包中发现的锚与先前当获知流时发现的锚对应,如果事实上这两个包包含有相同部分的信息的话。
在发现一个这种锚后,计算在该锚处定义的数字签名值。我们利用散列数组搜索与所述计算返回的数字签名相匹配的块ID。在发现匹配的情况下,将与匹配的块ID相关联的块从缓存取出。同时,在通知接收端从其盘取出相同块的消息之后,通过该线路将包发送到接收端。由于所述块在过去已经通过了发起者端(去往接收端或来自接收端),所以期望在正常条件下,在接收端也应该发现该块。将花费接收端的盘几毫秒来取出该块。在这段时间中,通过该线路可以没有变化地(即,通过传统的发送模式)发送相同流的更多包。并且不希望这些包的数量大于12个。
在已经从接收端的盘取出该块所需的时间之后(也就是前面所述的几毫秒的时间之后),并且当来自相同流的包到达时,可利用字典来确定包在流内的位置。为了这个目的,计算包内的五个字节的散列键,并将值h返回。然后读取字典的第h个条目,该条目持有在块中出现产生相同散列的串的位置,然后将位于先前存储在包中的该位置处的数据与在当前接收到的包中的数据进行比较,以看其是否匹配。如果它们匹配,则用数据出现在块中的指示与所述数据在块中的位置及其长度一起,来代替包中的数据。将所述过程按需重复很多次直到检查完整个包为止。在线路的接收端的服务器通过将来自块中的指示数据复制到包中来重构该包。
为了提高来自缓存的块的取出时间,可应用预取技术。例如,通过识别流到达了当前块的末端,然后预取一组块(已预测出接下来会需要这组块中的一个块),可以在实际需要一个块之前预取该块(其可在后来被识别为所需的块)。为了这个目的,可对每个块,例如通过自我学习技术来研究在使用一特定块之后会需要的块的列表。
图3示出了演示根据本发明的一个优选实施例的减少网络线路上的传输量的处理的流程图的第一部分。该流程图的第一部分总体上示出了第一通信服务器ADC1如何预备与相似的第二通信服务器ADC2一起工作。ADC1如步骤41所示首先读取包,在包中寻找锚,并在其位置与所述锚相关的预定的数据范围上计算数字签名,搜索块ID的列表,试图定位与当前计算出的签名相同的先前存储的签名,如该处理的步骤42和43所示。在发现匹配的情况下,处理进行到步骤44,根据与块ID(其是在匹配当前接收到的块的签名时找到的)相关联的块的位置装载来自本地缓存的块。然后将当前接收到的包的数据与块中的数据进行比较(在例如根据关联了签名的锚而使各个块同步之后)。在肯定地完成了步骤45并发现相同数据的情况下,第一服务器将消息发送到第二服务器ADC2(如步骤46表示),以使第二服务器ADC2根据目前已知的匹配签名从其本地缓存中取出块。第一服务器等待来自第二服务器的确认,并且只要取出适当的块的确认还没有从第二服务器返回,就保持操作的非同步模式(如步骤47、48和50所示),其中,非同步模式指的是包以传统的形式(即,以它们的原始形式)继续被发送到第二服务器,如步骤54所示。因此,重复该处理直到从第二服务器接收到确认并且这两个服务器开始以同步模式工作为止(如步骤49所示并在图4中进一步详细描述的),或者直到发现所比较的包不相同为止,从而处理从步骤45继续进行到步骤53,并如步骤53所示,将对于第一服务器仍然为未知的当前包保存在缓冲器中,并且如步骤54所示,将当前包继续传统地发送到第二服务器,然后重复该处理读取另一包直到缓冲器被不熟悉的数据的整个块填满为止,然后如步骤51所示将该块与其块ID和相关联的锚位置一起在本地存储,这使得以后可以对将来接收的某些数据流中的匹配的签名进行识别时检索块。
图4示出了图3的流程图中同步模式的第二部分,其中,所述两个服务器对熟悉的数据(即,所述数据已经本地存储在两个服务器的缓存中)进行操作。在同步模式中,第一服务器如步骤55所示读取当前接收的包,并将其与在(图3中的)步骤44中装载的块中对应的包的数据进行比较,在这两个块中的数据相同的情况下,该服务器随即将指令发送到第二服务器,指示第二服务器响应于在(图3中的)步骤46发送到该第二服务器的消息而根据第二服务器取出的块来重构数据,并将重构的包发送到其目的地。在步骤56进行的比较为否定的情况下,如步骤59所示,第一服务器将同步模式将被停止的消息发送到第二服务器,然后将当前接收到的包以其原始形式发送到第二服务器。然后如步骤61所示,服务器将其操作模式改为非同步,并且该处理再次开始,如图3的步骤40所示。
图5示出了根据本发明的系统构造的示例,该系统包括连接到虚拟通信线路63的两端的两个ADC服务器61和62,还分别通过网络线路64和66与由路由器67和65以及数据提供商69和68与数据接收者73和72所表示的传统通信网络进行通信。
通过这种网络构成并通过建立两个ADC服务器之间经虚拟线路的通信,可以使数据流改变方向,从而确保相关的数据流将确定地通过这两个服务器。
Claims (12)
1.一种在通信服务器中使用的通信方法,所述通信方法包括:
搜索数据流中的包中的锚,所述锚是对依据所述数据流中满足预定标准的内容确定的数据流中的位置的指示;
在其位置与所述锚相关的预定数据范围上计算数字签名;
在块ID的列表中搜索与计算出的数字签名相同的先前存储的数字签名;
在找到匹配的情况下,装载被找到的与计算出的数字签名相同的块ID相关的块;
将接收的包中的数据与装载的块中的数据进行比较;
在找到相同的数据的情况下,用指示该相同的数据在加载的块中的位置的数据替换接收到的所述数据流中的包中的相同的数据,从而在所述数据流中生成重构的包;以及
发送所述重构的包。
2.根据权利要求1所述的方法,所述方法还包括通知远程发送者停止传递可从可访问的数据存储器检索出的数据的预期输入片段。
3.根据权利要求1至2中任何一项所述的通信方法,其中,所述数据流中的包是TCP/IP传输协议的包。
4.根据权利要求1至2中任何一项所述的通信方法,所述通信方法还包括在数据存储器中以可变大小的块存储来自所述数据流的数据片段,其中,所述可变大小是根据锚在原始数据流上的位置确定的。
5.根据权利要求1至2中任何一项所述的通信方法,其中,所述数字签名是基于:对所述数据流中所选择的数据片段中的预定数量的字节计算的循环冗余码校验CRC、安全散列算法SHA1或数据加密标准DES的值中的任何一个。
6.根据权利要求1至2中任何一项所述的通信方法,其中,所述数字签名是根据预定数量字节的数据而计算的,所述多个字节在数据流中的位置与至少一个锚相关。
7.根据权利要求1所述的通信方法,其中,所述预定标准是包含在所述数据流中的数据的函数,并且独立于所述数据的标题、地址或路由信息。
8.根据权利要求7所述的通信方法,其中,所述函数利用预定字符组合进行计算,从而当识别出所述预定字符组合时分配锚。
9.根据权利要求8所述的通信方法,其中,所述预定字符组合是预定义的字符的短串。
10.根据权利要求7所述的通信方法,其中,将一组锚分配给一个数据片段,该组中的每个锚与所述数据片段中的n元组位置相关,其中,所述函数是通过所述n元组产生预定义的值的散列函数。
11.根据权利要求10所述的通信方法,其中,从包含线性反馈移位寄存器LFSR、循环冗余码校验CRC、安全散列算法SHA1、数据加密标准DES和信息摘要算法5MD5的组中选择所述散列函数。
12.根据权利要求1所述的通信方法,其中,所述通信方法还包括在发送所述重构的包之前,接收对开始传送重构数据包的确认,所述重构数据包是能够从可以访问的数据存储器检索出的重构数据包。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54885504P | 2004-03-02 | 2004-03-02 | |
US60/548,855 | 2004-03-02 | ||
PCT/IL2005/000247 WO2005086415A2 (en) | 2004-03-02 | 2005-03-02 | Server, method and system for caching data stream |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210436279.9A Division CN103067353B (zh) | 2004-03-02 | 2005-03-02 | 将来自远程发送者的数据流传递到远程目的地的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1969525A CN1969525A (zh) | 2007-05-23 |
CN1969525B true CN1969525B (zh) | 2013-09-11 |
Family
ID=34919409
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210436279.9A Expired - Fee Related CN103067353B (zh) | 2004-03-02 | 2005-03-02 | 将来自远程发送者的数据流传递到远程目的地的方法 |
CN200580012347.7A Expired - Fee Related CN1969525B (zh) | 2004-03-02 | 2005-03-02 | 用于减少通信网络上的传输量的通信服务器、方法和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210436279.9A Expired - Fee Related CN103067353B (zh) | 2004-03-02 | 2005-03-02 | 将来自远程发送者的数据流传递到远程目的地的方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US8549177B2 (zh) |
EP (1) | EP1721438B1 (zh) |
CN (2) | CN103067353B (zh) |
AT (1) | ATE480940T1 (zh) |
DE (1) | DE602005023416D1 (zh) |
ES (1) | ES2352558T3 (zh) |
PT (1) | PT1721438E (zh) |
WO (1) | WO2005086415A2 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2523548C (en) | 2003-05-23 | 2014-02-04 | Washington University | Intelligent data processing system and method using fpga devices |
US8171238B1 (en) | 2007-07-05 | 2012-05-01 | Silver Peak Systems, Inc. | Identification of data stored in memory |
US8370583B2 (en) * | 2005-08-12 | 2013-02-05 | Silver Peak Systems, Inc. | Network memory architecture for providing data based on local accessibility |
US8095774B1 (en) | 2007-07-05 | 2012-01-10 | Silver Peak Systems, Inc. | Pre-fetching data into a memory |
US8392684B2 (en) | 2005-08-12 | 2013-03-05 | Silver Peak Systems, Inc. | Data encryption in a network memory architecture for providing data based on local accessibility |
US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
US8929402B1 (en) | 2005-09-29 | 2015-01-06 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data by predicting subsequent data |
US8811431B2 (en) | 2008-11-20 | 2014-08-19 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data |
US7979584B1 (en) * | 2006-07-14 | 2011-07-12 | Emc Corporation | Partitioning a data stream using embedded anchors |
ES2318978B2 (es) * | 2006-07-24 | 2009-10-07 | Universidad De Alcala | Mecanismos de marcado e identificacion en el nivel de transporte para la gestion de caches de contenidos. |
US8755381B2 (en) | 2006-08-02 | 2014-06-17 | Silver Peak Systems, Inc. | Data matching using flow based packet data storage |
US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
US8307115B1 (en) | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
US8442052B1 (en) | 2008-02-20 | 2013-05-14 | Silver Peak Systems, Inc. | Forward packet recovery |
US8743683B1 (en) | 2008-07-03 | 2014-06-03 | Silver Peak Systems, Inc. | Quality of service using multiple flows |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
US7861004B2 (en) * | 2008-12-04 | 2010-12-28 | At&T Intellectual Property I, Lp | System and method for analyzing data traffic |
CN101719936A (zh) * | 2009-12-09 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 提供文件下载服务的方法、装置及缓存系统 |
US8548012B2 (en) | 2010-01-15 | 2013-10-01 | Alcatel Lucent | Method and apparatus for reducing redundant traffic in communication networks |
US8432911B2 (en) | 2010-01-15 | 2013-04-30 | Alcatel Lucent | Method and apparatus for reducing effects of lost packets on redundancy reduction in communication networks |
CA2820898C (en) | 2010-12-09 | 2020-03-10 | Exegy Incorporated | Method and apparatus for managing orders in financial markets |
US9130991B2 (en) | 2011-10-14 | 2015-09-08 | Silver Peak Systems, Inc. | Processing data packets in performance enhancing proxy (PEP) environment |
US20130103653A1 (en) * | 2011-10-20 | 2013-04-25 | Trans Union, Llc | System and method for optimizing the loading of data submissions |
US9626224B2 (en) | 2011-11-03 | 2017-04-18 | Silver Peak Systems, Inc. | Optimizing available computing resources within a virtual environment |
KR101904482B1 (ko) * | 2011-12-26 | 2018-10-08 | 에스케이텔레콤 주식회사 | 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치 |
CN104205089B (zh) * | 2012-02-29 | 2018-10-16 | 全球文档系统控股有限责任公司 | 流识别和过滤 |
US9990393B2 (en) | 2012-03-27 | 2018-06-05 | Ip Reservoir, Llc | Intelligent feed switch |
US10121196B2 (en) | 2012-03-27 | 2018-11-06 | Ip Reservoir, Llc | Offload processing of data packets containing financial market data |
US11436672B2 (en) | 2012-03-27 | 2022-09-06 | Exegy Incorporated | Intelligent switch for processing financial market data |
US10282075B2 (en) | 2013-06-24 | 2019-05-07 | Microsoft Technology Licensing, Llc | Automatic presentation of slide design suggestions |
CN104254108A (zh) * | 2013-06-27 | 2014-12-31 | 宇宙互联有限公司 | 传输管理装置、系统及方法 |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US9760298B2 (en) * | 2015-04-27 | 2017-09-12 | Alcatel-Lucent Usa Inc. | Anonymization of identifying portions of streaming data |
US9824291B2 (en) | 2015-11-13 | 2017-11-21 | Microsoft Technology Licensing, Llc | Image analysis based color suggestions |
US10528547B2 (en) | 2015-11-13 | 2020-01-07 | Microsoft Technology Licensing, Llc | Transferring files |
US10534748B2 (en) | 2015-11-13 | 2020-01-14 | Microsoft Technology Licensing, Llc | Content file suggestions |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
EP3560135A4 (en) | 2016-12-22 | 2020-08-05 | IP Reservoir, LLC | PIPELINES INTENDED FOR AUTOMATIC ACCELERATED LEARNING BY EQUIPMENT |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
JP2022532230A (ja) | 2019-05-14 | 2022-07-13 | エクセジー インコーポレイテッド | 金融市場データからの取引シグナルを低遅延で生成しかつ配信するための方法およびシステム |
EP4295301A1 (en) | 2021-02-16 | 2023-12-27 | Exegy Incorporated | Methods and systems for low latency automated trading |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1002408A2 (en) * | 1997-07-14 | 2000-05-24 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Communication method and system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5455576A (en) * | 1992-12-23 | 1995-10-03 | Hewlett Packard Corporation | Apparatus and methods for Lempel Ziv data compression with improved management of multiple dictionaries in content addressable memory |
US6076084A (en) * | 1994-01-03 | 2000-06-13 | Norton-Lambert Corp. | File transfer method and apparatus utilizing delimiters |
EP0739514B1 (en) | 1994-01-03 | 2001-08-08 | Norton-Lambert Corp. | File transfer method and apparatus using hash numbers |
US5446888A (en) * | 1994-01-14 | 1995-08-29 | Pyne; Charles F. | Remote file transfer method and apparatus |
US7543018B2 (en) * | 1996-04-11 | 2009-06-02 | Aol Llc, A Delaware Limited Liability Company | Caching signatures |
US5832235A (en) * | 1997-03-26 | 1998-11-03 | Hewlett-Packard Co. | System and method for pattern matching using checksums |
US6292880B1 (en) * | 1998-04-15 | 2001-09-18 | Inktomi Corporation | Alias-free content-indexed object cache |
US7460534B1 (en) * | 1998-06-03 | 2008-12-02 | 3Com Corporation | Method for statistical switching |
US6178461B1 (en) * | 1998-12-08 | 2001-01-23 | Lucent Technologies Inc. | Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects |
US6597812B1 (en) * | 1999-05-28 | 2003-07-22 | Realtime Data, Llc | System and method for lossless data compression and decompression |
US6826626B1 (en) * | 2000-07-21 | 2004-11-30 | Clear Blue Technologies Management, Inc. | Method of and apparatus for rapid retrieval of data in a content distribution network |
US7054912B2 (en) * | 2001-03-12 | 2006-05-30 | Kabushiki Kaisha Toshiba | Data transfer scheme using caching technique for reducing network load |
FI114417B (fi) * | 2001-06-15 | 2004-10-15 | Nokia Corp | Datan valitseminen synkronointia varten |
US6961011B2 (en) * | 2001-08-27 | 2005-11-01 | Freescale Semiconductor, Inc. | Data compression system |
US6650261B2 (en) * | 2001-09-06 | 2003-11-18 | Xerox Corporation | Sliding window compression method utilizing defined match locations |
-
2005
- 2005-03-02 ES ES05709141T patent/ES2352558T3/es active Active
- 2005-03-02 PT PT05709141T patent/PT1721438E/pt unknown
- 2005-03-02 CN CN201210436279.9A patent/CN103067353B/zh not_active Expired - Fee Related
- 2005-03-02 EP EP05709141A patent/EP1721438B1/en not_active Not-in-force
- 2005-03-02 US US10/591,479 patent/US8549177B2/en not_active Expired - Fee Related
- 2005-03-02 CN CN200580012347.7A patent/CN1969525B/zh not_active Expired - Fee Related
- 2005-03-02 DE DE602005023416T patent/DE602005023416D1/de active Active
- 2005-03-02 AT AT05709141T patent/ATE480940T1/de not_active IP Right Cessation
- 2005-03-02 WO PCT/IL2005/000247 patent/WO2005086415A2/en active Application Filing
-
2013
- 2013-08-23 US US13/974,720 patent/US20130346565A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1002408A2 (en) * | 1997-07-14 | 2000-05-24 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Communication method and system |
CN1270731A (zh) * | 1997-07-14 | 2000-10-18 | 艾利森电话股份有限公司 | 通信方法和系统 |
CN1112016C (zh) * | 1997-07-14 | 2003-06-18 | 艾利森电话股份有限公司 | 通信方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1969525A (zh) | 2007-05-23 |
US20070198523A1 (en) | 2007-08-23 |
US20130346565A1 (en) | 2013-12-26 |
EP1721438A2 (en) | 2006-11-15 |
ATE480940T1 (de) | 2010-09-15 |
CN103067353B (zh) | 2016-07-20 |
US8549177B2 (en) | 2013-10-01 |
WO2005086415A3 (en) | 2006-02-02 |
CN103067353A (zh) | 2013-04-24 |
WO2005086415A2 (en) | 2005-09-15 |
PT1721438E (pt) | 2010-12-09 |
EP1721438B1 (en) | 2010-09-08 |
ES2352558T3 (es) | 2011-02-21 |
DE602005023416D1 (de) | 2010-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1969525B (zh) | 用于减少通信网络上的传输量的通信服务器、方法和系统 | |
US11194719B2 (en) | Cache optimization | |
CN101820386B (zh) | 用于促进在以内容为中心的网络中转发分组的方法和系统 | |
US9825860B2 (en) | Flow-driven forwarding architecture for information centric networks | |
JP5487457B2 (ja) | キャッシュを利用した効率的なメディア配信のためのシステム及び方法 | |
EP3320670B1 (en) | Method and apparatus for pushing data in a content-centric networking (ccn) network | |
US7359956B2 (en) | Data transfer scheme using caching and differential compression techniques for reducing network load | |
US7716306B2 (en) | Data caching based on data contents | |
US7054912B2 (en) | Data transfer scheme using caching technique for reducing network load | |
US9374440B2 (en) | Packet forwarding structure and method for supporting network based content caching of aggregate contents | |
CN104901997A (zh) | 用于内容中心网络中的直接存储装置存取的系统和方法 | |
US10367871B2 (en) | System and method for all-in-one content stream in content-centric networks | |
CN101819580A (zh) | 使用精确匹配查找引擎转发具有标识符的分组的系统 | |
CN105282217B (zh) | 基于差异的内容联网 | |
US20150256601A1 (en) | System and method for efficient content caching in a streaming storage | |
JP3570606B2 (ja) | データ検索装置および方法 | |
KR102060907B1 (ko) | 데이터 이름 기반 네트워크에서의 fib 테이블 공유 방법 및 데이터 이름 기반 네트워크 시스템 | |
AU2012200265A1 (en) | Bidirectional Data Transfer Optimization and Content Control for Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: Israel Tel Aviv Applicant after: Dvnetworks Ltd. Address before: Israel Tel Aviv Applicant before: Dvnetworks Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: DVNETWORKS LTD. TO: DAIW NETWORK CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130911 Termination date: 20180302 |