专利名称:网络高速缓冲存储器架构的制作方法
技术领域:
本发明涉及一种网络高速缓冲存储器架构。具体地,本发明涉及适合移动和固定网络的应用不可知(application agnostic)高速缓冲存储器架构。可以将本发明以应用不可知的方式应用于(但不限于)对视频点播(VoD)系统中的内容进行高速缓冲存储器的机制,其适合具有高带宽成本的链路的网络,比如移动网络。
背景技术:
典型的文件高速缓冲存储方法包括高速缓冲存储器从文件服务器接收文件,以及存储整个文件。稍后当客户端需要该文件时,不从文件服务器提供该文件,而是从高速缓冲存储器提供该文件。由于高速缓冲存储器一般是更接近客户的服务器,或具有比文件服务器更高的带宽,从高速缓冲存储器向客户快速地提供文件。将典型的文件高速缓冲存储方法应用到包括流媒体数据(例如视频点播(VoD)文件)可能导致新的问题。VoD系统一般要么是通过机顶盒的流内容(允许实时观看),要么是将其下载到设备,比如计算机、数字视频记录器、个人视频记录器、或用于在任何时间观看的便携式媒体播放器。由传输这种内容的网络所传输的数据可以是非常大量的,且高速缓冲存储可以是特别有用的。这可以参照图I来理解,图I是VoD系统的示例架构的示意图,其具有用于减少中央长尾(long-tail)服务器负载而部署的高速缓冲存储器。在示例中,可以假设网络使用实时流协议(RTSP)流,其中,通过实时协议(RTP)中的用户数据报协议(UDP)来传输有效载荷,但是可以理解,很多其他应用和协议具有类似的架构并且具有类似的问题。图I的架构包括具有流服务器101和一定数目的高速缓冲存储器102-106的网络100。客户端107-109被配置为从服务器101或高速缓冲存储器102-106接收文件和/或流数据。客户端使用RTSP来建立并控制RTP分组的流。这包括对用于作为结果的RTP流的编解码、比特率、端口等的协商。使用RTSP,客户端可以开始和停止流,或快进或倒回流媒体片段。用序列号来顺序发送RTP分组,以告诉客户端分组的顺序。这导致在协议中存在流服务器101需要维护的状态,且流服务器101需要针对其发出的每个数据分组增加该状态。客户端107-109还使用序列号来检测分组丢失,使用实时传输控制协议(RTCP)向流服务器报告该分组丢失。为了减少流服务器101上的负载,且节省传输网络100中的带宽,在更接近最终用户107-109的高速缓冲存储器102-106上存储一些内容。用于VoD的RTSP流传输的示例强调了一般与高速缓冲存储器相关的一个问题即高速缓冲存储器102-106本身需要理解协议和应用。高速缓冲存储器的根本原理是当其接管中央服务器的角色时,其需要理解服务器所理解的相同协议,且了解和维护所有所需的状态等等。不管是通过使用深度分组检测的重新路由来透明地接管中央服务器的角色,还是通过以某种重定向的形式(比如基于DNS的重定向或协议给出的任何重定向)的其他手段,这都是成立的。如果要针对很多不同的应用部署高速缓冲存储器,或如果增强或升级了服务器或协议,则也需要升级和维护高速缓冲存储器。经常出现每个应用有一个高速缓冲存储器的情况例如,可以有HTTP高速缓冲存储器、P2P高速缓冲存储器和RTSP高速缓冲存储器。在一些网络中,比如移动网络,可以在难以到达的地方放置高速缓冲存储器。如果无论何时部署新应用时都需要功能的升级,则这是非常昂贵的。如果在网络中存在移动性,使得客户端可以在会话期间到处移动(比如,移动终端在基站之间移动),则可能出现附加问题。使用上述示例,假定客户端107之一正在从高速缓冲存储器104之一接收数据。如果客户端107移动位置,使得其现在从另一个高速缓冲存储器105接收数据,则需要将会话状态(在本示例中,RTP分组序列号)迁移至可能包括或可能还不包括相关内容的新的高速缓冲存储器105,使得会话可以在新的位置继续。因此在高速缓冲存储器实现中需要大量的专用知识。在由基于重定向器的系统来控制高速缓冲存储器的情况下,有可能在高速缓冲存
储器之间平衡负载(即,高速缓冲存储器分配和请求分布)。然而如果高速缓冲存储器是在地理上散布的,则这不是小问题。在分布式系统中找到具有给定内容的高速缓冲存储器也没那么简单,其一般要求针对同步的复杂解决方案。此外,在当今使用的很多解决方案中(包括基于重定向器的解决方案在内),如果高速缓冲存储器服务器发生故障,则存在通信中断的可能性。因此将需要允许无缝地回退到原始通信的解决方案。
发明内容
本发明的目的是消除上述缺点中的至少一些缺点。期望使高速缓冲存储器“应用不可知”,使得它们可以用于任何应用。期望能够使用相同的高速缓冲存储器基础结构用于若干不同的应用,比如RTSP流传输、以及HTTP或PTP下载。还期望高速缓冲存储器之间不需要迁移会话状态。还需要提供针对高速缓冲存储器发生故障或用户移动到高速缓冲存储器不支持的区域中的情况下的回退机制。根据本发明的一个方面,提供一种在分组数据网络中使用的高速缓冲存储器。所述高速缓冲存储器包括接收机,用于从上游节点接收分组;存储介质,用于存储被高速缓冲存储的数据;以及处理器,可操作地连接到所述接收机和所述存储介质。所述处理器被布置为识别所述分组是否是被剥离的分组,所述被剥离的分组的有效载荷包含标识有效载荷数据段的指针信息。如果是,则所述处理器还确定所述有效载荷数据段是否存储在所述存储介质中。如果是,则所述处理器被布置为使用所述指针信息从所述存储介质中定位并获取所述有效载荷数据段,以及将所获取的有效载荷数据段插入所述分组的有效载荷中。所述高速缓冲存储器还包括可操作地连接到所述处理器的发射机,用于向客户端转发所述分组。这意味着高速缓冲存储器可以接收包含指针信息的被剥离的分组,而不是包含有效载荷数据的全集的分组。高速缓冲存储器可以使用该指针信息来重新产生具有它们所需的有效载荷数据的全尺寸(full size)分组。在一个实施例中,处理器将分组中的指针信息替换为获取到的有效载荷数据段。因此高速缓冲存储器不需要存储专用信息或状态信息。此外,如果客户端漫游使得其由不同的高速缓冲存储器来提供数据,则不需要将状态数据转移到另一个高速缓冲存储器。这极大地帮助了向移动客户端提供已被高速缓冲存储的数据。如果分组是被剥离的分组,但是未在存储介质中存储有效载荷数据段,则高速缓冲存储器可以被配置为使得发射机丢弃该分组,同时不将其向客户端发送。取而代之地,可以向上游节点发送错误消息。这意味着上游节点知道未重新填充被剥离的分组,且知道其必须回到发送全尺寸的分组。它还知道需要重新发送引起高速缓冲存储器发送错误消息的被剥离的分组的全尺寸版本。如果移动客户端从包括高速缓冲存储器在内的数据提供路由移动至不包括高速缓冲存储的数据提供路由的情况下,这提供了回退机制。为了识别分组的有效载荷是否包含指针信息,处理器可以被布置为执行深度分组检测(DPI)。备选地,处理器可以被布置为针对用于标识分组的有效载荷是否包含指针信息的标记,来搜索分组的首部。首部可以包括“回退”参数,如果被剥离的分组到达客户端节点,该“回退”参数将使客户端节点发送错误消息(例如,错误的源或目的端口、协议标识符、或IPv6标识符)。处理器可以被布置为从分组首部中移除回退参数,并将其替换为
从指针信息中获取的正确值。处理器可以被布置为测试从该上游节点接收到的所有分组(例如,通过在首部中搜索回退参数),以确定它们是否是被剥离的分组。如果分组不是被剥离的分组,且存储介质不包含与分组的有效载荷相对应的数据段,则处理器可以被配置为获取分组的有效载荷,并在存储介质中保存该有效载荷。这使得高速缓冲存储器能够在其转发完整分组时被“实时”填充。指针信息可以包括文件ID,标识在包含有效载荷数据段在内的存储介质中存储的文件;位置ID,标识数据段在文件中的位置;以及长度ID,标识数据段的长度。根据本发明的另一方面,提供了一种在分组数据网络中使用的有效载荷剥离器单元。所述有效载荷剥离器单元包括接收机,用于接收分组;以及处理器,可操作地连接到所述接收机。所述处理器被布置为从所述分组的有效载荷中移除有效载荷数据段,并将指针信息插入到所述分组中,以产生被剥离的分组。所述指针信息用于使所述有效载荷剥离器下游的高速缓冲存储器能够从所述高速缓冲存储器保持的数据中识别有效载荷数据段。发射机可操作地连接到所述处理器,以向所述高速缓冲存储器转发所述分组。有效载荷剥离器从而使得在存在低带宽的(一个或多个)网络的一部分上发送被剥离的分组成为可能。全尺寸分组可以由服务器正常地发送,并由有效载荷剥离器单元所截获。有效载荷剥离器可以包括可操作地连接到处理器的存储介质,用于存储由高速缓冲存储器所保持的数据的记录。处理器可以被布置为识别有效载荷数据段是否由高速缓冲存储器所保持,且仅当“是”的情况下,才从分组中移除有效载荷数据,以产生被剥离的分组。如果有效载荷数据段不由高速缓冲存储器所保持,则有效载荷剥离器可以不从分组中移除有效载荷数据段,且可以向客户端发送完整分组。这也意味着,如果客户端从具有数据的高速缓冲存储器移动至不具有数据的高速缓冲存储器,则有效载荷剥离器可以通过停止剥离分组来对此做出反应。有效载荷剥离器可以被布置为用数据来填充高速缓冲存储器。这确保有效载荷剥离器了解高速缓冲存储器存储了哪些数据,且应当如何配置指针信息,以使得高速缓冲存储器在其接收分组时能够发现有效载荷数据。
处理器可以被布置为向分组的首部中插入标记,以指示其包含指针信息,而不是有效载荷数据。该标记可以是如上定义的“回退”参数,即,被设计或选择为使得如果被剥离的分组到达客户端节点,则其将使客户端节点返回错误消息,而不向客户端应用转发被剥离的分组。备选地,回退参数可以作为标记的附加。回退参数可以是目的端口、源端口、或协议值、或具有类型的最高比特被设置为“10”或“11”的IPv6目的选项。接收机可以被布置为从下游客户端节点或高速缓冲存储器接收错误消息,响应于此,处理器可以被配置为停止从预期发送到客户端节点或高速缓冲存储器的分组中移除有效载荷数据段。从而,如果高速缓冲存储器不具有所需数据且发送错误消息(如上所述),则有效载荷剥离器单元回到发送全尺寸分组。如果被剥离的分组找到其到达客户端节点的路线,则由于回退参数而发送错误消息。同样地,当接收到该错误消息时,有效载荷剥离器
回到发送全尺寸分组。有效载荷剥离器单元还可以被布置为对已经提取有效载荷数据段的分组进行组合,以形成聚合分组。这使得可以减少发送的分组数目,以及(或取而代之地)可以减少它们的尺寸。可以由服务器发送被剥离的分组。这可以被看作有效载荷剥离器单元位于服务器处,尽管在本情况下,将不需要接收全尺寸分组并移除有效载荷数据。因此,根据本发明的另一方面,提供一种用于在分组数据网络中发送数据的服务器。该服务器包括可操作地连接到存储介质的处理器。处理器被布置为产生要被发送到客户端的被剥离的分组,以使得能够向客户端传输有效载荷数据段。被剥离的分组包括指针信息,用于使服务器下游的高速缓冲存储器能够从高速缓冲存储器保持的数据中识别有效载荷数据段。发射机可操作地连接到处理器,用于向高速缓冲存储器转发分组。将意识到,服务器还可以包括在上面参照分组剥离器所讨论的可选特征。根据本发明的另一方面,提供一种用于通过一个或多个分组数据网络来发送数据的系统。所述系统包括分组发送节点和高速缓冲存储器节点。所述分组发送节点被布置为向所述高速缓冲存储器节点或客户端节点发送被剥离的分组,所述被剥离的分组在其有效载荷内包括指向所述高速缓冲存储器节点处的文件中存储的有效数据段的指针。所述高速缓冲存储器节点被布置为接收所述被剥离的分组,使用所述指针从所述高速缓冲存储器节点处存储的数据中识别有效载荷数据段,并将所述有效载荷数据段插入到所述被剥离的分组中以替代指针,以产生全尺寸分组。然后,向客户端发送所述全尺寸分组。分组发送节点可以是分组剥离节点,被布置为接收包含有效载荷数据段在内的全尺寸分组,从全尺寸分组中移除有效载荷数据段,以及将其用指针来替换以产生被剥离的分组。备选地,分组发送节点可以是服务器。高速缓冲存储器节点可以被配置为使得如果未在其中存储有效载荷数据段,则丢弃被剥离的分组,且向分组发送节点返回错误消息。分组发送节点可以被配置为向被剥离的分组的首部中插入回退参数。当产生全尺寸分组时,高速缓冲存储器节点被配置为用正确值来替换回退参数。如果被剥离的分组到达客户端,则回退参数使客户端返回错误消息。(一个或多个)分组数据网络可以包括多个高速缓冲存储器节点,每个高速缓冲存储器节点具有存储于其上的相同数据。这意味着,如果用户在会话存活期间切换端点,则不需要在高速缓冲存储器之间迁移会话状态。根据本发明的另一方面,提供一种通过一个或多个分组数据网络发送数据的方法。所述方法包括从分组发送节点向高速缓冲存储器节点或客户端节点发送被剥离的分组。所述被剥离的分组在其有效载荷内包括指向所述高速缓冲存储器节点处的文件中存储的有效载荷数据段的指针。当在所述高速缓冲存储器节点处接收到所述被剥离的分组时,所述指针用于从所述高速缓冲存储器节点处存储的数据中识别所述有效载荷数据段。将所述有效载荷数据段插入所述被剥离的分组中以替代所述指针,以产生全尺寸分组,从所述高速缓冲存储器节点向客户端发送所述全尺寸分组。分组发送节点可以是分组剥离节点,其接收包含有效载荷数据段在内的全尺寸分组,从全尺寸分组中移除有效载荷数据段,并将其替换为指针,以产生被剥离的分组。备选地,分组发送节点可以是服务器。如果有效载荷数据段未存储在高速缓冲存储器节点中,则丢弃被剥离的分组,且向分组发送节点返回错误消息。可以在分组发送节点处将回退参数插入被剥离的分组的首部中。如果被剥离的分组到达客户端,则回退参数使客户端返回错误消息,但是当在高速缓冲存储器节点处产生全尺寸分组时,将其用正确值替换。高速缓冲存储器可以标识回退参数,且如果被剥离的分组中的指针所引用的有效载荷数据段未被高速缓冲存储,则高速缓冲存储器可以返回错误消息。应当意识到,在相同网络中可能不一定找到上述全部各种单元。服务器、有效载荷剥离器(如果存在)、高速缓冲存储器以及客户端都可以在相同的网络中,但是也可以在不同网络中出现。具体地,经常出现服务器和客户端在不同网络中的情况。本发明还提供一种适于在分组数据网络中的高速缓冲存储器上执行的程序。可操作该程序来识别高速缓冲存储器接收到的分组的有效载荷是否包含标识由高速缓冲存储器存储的有效载荷数据段的指针信息,如果是,则使用该指针信息来定位并获取有效载荷数据段,将获取到的有效载荷数据段插入分组的有效载荷,以及向客户端转发该分组。本发明还提供一种适于在分组数据网络中的分组剥离器单元上执行的程序。可操作该程序从所述分组中移除有效载荷数据段,以产生被剥离的分组,以及将指针信息插入所述被剥离的分组,这将使所述分组剥离器下游的高速缓冲存储器能够从所述高速缓冲存储器所保持的数据中识别有效载荷数据段。还可操作该程序向所述高速缓冲存储器转发所述被剥离的分组。根据本发明的另一方面,提供一种适于在分组数据网络中的服务器上执行的程序。可操作该程序产生要向客户端发送的被剥离的分组,以使得能够向所述客户端传输有效载荷数据段。所述被剥离的分组包括用于使所述服务器下游的高速缓冲存储器能够从所述高速缓冲存储器保持的数据中识别有效载荷数据段的指针信息。还可操作该程序向所述高速缓冲存储器转发所述被剥离的分组。本发明还包括承载上述任一程序的载体介质。从而,对于已知在下游被高速缓冲存储的内容,依然正常地发送分组,但是包含替代数据有效载荷中至少一些的指针信息。在分组到达高速缓冲存储器时,由下游的高速缓冲存储器向分组中填入真正的有效载荷,且让分组继续到达它们的最终目的地。可以依然集中保存会话状态和应用逻辑,且可以让高速缓冲存储器以完全相同的方式工作,而不管其正在向哪个应用提供服务。高速缓冲存储器可以提供接近最终用户的存储,而不需要了解与应用相关的任何事情比如其是视频流、HTTP下载还是P2P业务。通过在被剥离的分组的首部中包括“回退”参数,如果路由上的高速缓冲存储器未将被剥离的分组重新产生为全尺寸分组,则有可能向内容服务器提供反馈。类似地,如果路由上的高速缓冲存储器不具有所需的数据,它们可以向内容服务器通知该事实。这极大地协助了用户的移动性,例如,如果客户端节点从存在高速缓冲存储器的区域移动到不存在高速缓冲存储器的区域。类似地,如果高速缓冲存储器检测到其正在转发在其存储介质中保持内容的全尺寸分组,则其可以向内容服务器通知该事实,使得内容服务器可以切换至发送被剥离的分组。
现在将参照附图,仅作为示例来描述一些优选实施例,在这些附图中图I是网络架构的示意图;图2是包括高速缓冲存储器在内的网络的一部分的示意图;图3是包括高速缓冲存储器和有效载荷剥离器在内的网络的一部分的示意图;图4是分组的重建的示意图;图5是根据具有伪协议值的被剥离的分组来重建分组的示意图;图6是被转发到客户端的、具有伪协议值的被剥离的分组的示意图;图7是在接收到被剥离的分组时由客户端返回的ICMP错误消息的示意图;图8是在多个网络上散布的服务器、有效载荷剥离器、高速缓冲存储器和客户端的不意图;图9是聚合分组的内容的示意图;图10是有效载荷剥离器的示意图;图11是示出了由有效载荷剥离器执行的动作的流程图;图12是高速缓冲存储器的示意图;图13是示出了由高速缓冲存储器执行的动作的流程图;图14是服务器的示意图;以及图15是示出了由服务器执行的动作的流程图。
具体实施例方式图2是网络架构的示意图,示出了内容服务器201、高速缓冲存储器204和客户端207。网络210的一部分是带宽受限的,所以需要避免在该部分上发送大量的数据。网络用于向客户端207发送分组221。客户端207接收到的每个分组221应当包括传输和应用首部222、223、应用数据224 (比如状态信息)、和数据有效载荷225。这些分组很大,且要求大量的带宽。为了不使得带宽受限传输210过载,内容服务器201向高速缓冲存储器204发送减小尺寸的分组226。这仅在内容服务器201知道高速缓冲存储器204中保持了内容的情况下才可以进行。在高速缓冲存储器204中保持的文件中,在减小尺寸的分组226中用简单的指针
227替代数据有效载荷225 (除了应用首部和状态之外的所有数据内容)。指针227包含以下信息 文件ID,使得高速缓冲存储器可以标识高速缓冲存储器保持正确内容所在的文件; 该分组的正确数据有效载荷在文件中的位置; 当处理分组时,高速缓冲存储器应当从文件中获取的作为结果的数据段的长度。将专用逻辑,比如首部222、223和状态224 (在RTP分组的示例中,这将是RTP首
部和序列号)保持在减小尺寸的分组226中。唯一不同的是,未从服务器发送数据有效载荷225 (存储在高速缓冲存储器中)。因此,可以将减小尺寸的分组226视为“被剥离的”分组 226。当高速缓冲存储器204接收到这种被剥离的分组226时,高速缓冲存储器中的“有效载荷插入器”功能将执行针对指针〈P〉的分组搜索。当找到指针227时,有效载荷插入器将识别在指针中被引用的被高速缓冲存储器的文件,并识别文件中的位置和由该指针所引用的数据的量。将该数据从被高速缓冲存储器的文件中复制并插入到被剥离的分组226中,作为替代指针227的有效载荷数据225,以产生全尺寸分组221。然后将全尺寸分组221向客户端207传输。存储有文件的高速缓冲存储器存储介质可以是本地存储器,比如RAM、闪存或硬盘驱动器,或更分布式的本地存储器,比如由分布式高速缓冲存储分级所提供的存储器。从而,高速缓冲存储器204不需要了解数据或应用的类型。其仅需要将指针替换为有效载荷。一些应用可能要求应用状态数据,以与有效载荷数据混合。在该情况下,被剥离的分组可以包含多于一个指针,在应用状态数据之间散布。将意识到,为了让内容服务器201 (在基于RTSP/RTP的VoD的情况下,是流服务器)了解何时发送被剥离的分组,其需要了解在网络中高速缓冲存储了哪些东西。使这成为可能的一种方式是确保服务器201对(一个或多个)高速缓冲存储器204存储的信息具有控制权。服务器201可以指示高速缓冲存储器204存储什么,且维持在高速缓冲存储器204中存储的内容的列表。从服务器到高速缓冲存储器的数据的转移可以是以规定间隔进行的,比如每天晚上。这还确保了服务器201具有用于将正确指针插入到被剥离的分组中的关于文件ID和数据位置的必要信息。作为备选,高速缓冲存储器204可以维护其自己的内容,而不需要来自服务器201的控制。如果来自客户端207的针对内容的请求通过高速缓冲存储器204,高速缓冲存储器可以在将其传递出去之前,使用例如在请求分组首部中的首部字段来识别出该请求并标记该请求,以识别其是否具有已存储的被请求内容。当服务器201接收到请求时,其从被标记的请求中了解到高速缓冲存储器是否具有已存储的内容,并因此了解到其应当发送全尺寸分组还是被剥离的分组。在一些情形下,不需要或不可能让服务器来控制由下游高速缓冲存储器所保持的数据。在这些情形下,还可以使用附加的“有效载荷剥离器”节点。可以参照图3来理解这种节点的操作,图3是备选的网络架构的示意图,示出了内容服务器301、高速缓冲存储器204、客户端207和有效载荷剥离器330。在该情形下,客户端207可以以通常的方式从服务器301请求内容。服务器向客户端发送回全尺寸分组321,不管该内容是否在网络的其他地方已被高速缓冲存储。这些分组包含传输和应用首部222、223、应用数据224和有效载荷225,使得他们具有用于被传输至客户端207的合适形式。有效载荷剥离器330拦截每个全尺寸分组321,以与上面参照图2描述的服务器201相同的方式移除有效载荷225,并将其替换为指针
227。不同之处在于由有效载荷剥离器330,而不是服务器301,来移除有效载荷。在带宽受限传输210上,将每个被剥离的分组226向高速缓冲存储器204转发。高速缓冲存储器204中的有效载荷插入器功能如上面参照图2所述地重建全尺寸分组221,并将他们转发到客户端207。从而,可以将该布置视为具有在带宽受限传输210的两侧的两个构成部分有效载荷剥离器330和高速缓冲存储器204中的有效载荷插入器。有效载荷剥离器从全尺寸分组中移除有效载荷225,并将其替换为指针227,以产生被剥离的分组;以及高速缓冲存储器中的有效载荷插入器将指针227替换为从存储文件中获取的有效载荷数据225。有效载荷剥离器330控制在高速缓冲存储器204处存储的文件。这意味着服务器301甚至不需要了解数据是被高速缓冲存储的。还可以将图2的布置视为图3的布置的一种版本,其中,将有效载荷剥离器330与服务器301置于一处。将内容分配给高速缓冲存储器204、304(在网络中存在很多高速缓冲存储器的情况下)的方式是值得评论的。在一个方案中,可以将不同的内容分配给不同的高速缓冲存储器。这使得有可能针对本地需求来调整高速缓冲存储器。在备选方案中,可以用相同内容来填充网络中(或在特定区域中)的所有高速缓冲存储器。在诸如用户可以从端点切换到端点(例如,在移动网络的不同基站之间)的移动系统的情形中,这是有用的,因为,其使得有可能在其他任何地方继续正在进行的会话。如果所有高速缓冲存储器具有相同的文件,则客户端可以从高速缓冲存储器移动至高速缓冲存储器,而不需要在高速缓冲存储器之间传递应用或状态信息。所有高速缓冲存储器都具有相同内容的情况在本质上是不那么复杂的,且如前所述,其在移动网络中是特别有用的。将意识到高速缓冲存储器204、304将需要能够识别其正在接收被剥离的分组226,且能够识别其因此需要找到相关数据并将其插入到这些分组中。对于高速缓冲存储器来说,一种可能的方案是执行深度分组检测(DPI),以识别哪个业务需要以这种方式来处理。备选地,可以用某种方式来标记被剥离的分组226,以让高速缓冲存储器标识其需要插入数据有效载荷。这可以通过向分组的首部中插入标记来实现。下面更详细地讨论该点。在安全隧道中传输数据的移动网络中,还需要其他功能来标记分组是否应当由高速缓冲存储器来处理。用内容来替代指针的实际处理尽管在本质上简单,但是对于大量分组而目将是昂贵的。例如,3GPP系统架构演进(SAE)/演进分组脚本(EPS)网络的独特特征是以下事实通过安全隧道来发送从公共数据网络(TON)网关经由eNodeB到移动终端(UE)的业务。为了接入演进UMTS陆地无线接入网(E-UTRAN)的演进分组核心(EPC),针对S5/S8接口,由EPS承载来提供TON连接服务,并使用通用分组无线服务(GPRS)隧道协议(GTP)。每个GTP用户数据分组携带被称为隧道端点标识符(TEID)的值,其标识分组属于哪个承载(bearer)。由端接GTP隧道的实体来选择该值,且在承载建立和切换时将该值传输给隧道入口点。通常在需要不同QoS处理时,建立到相同终端的新的承载。如果要执行DPI,必须对来自相应的GTP隧道的目的地为UE (客户端)的分组进行“重新路由”,并传输至用指针而不是数据有效载荷来标识这些分组的DPI功能。然后将这些分组转发到高速缓冲存储器,以进行有效载荷填充。可以在两个级别上实现应用不可知高速缓冲存储器解决方案在服务网关(S-Gff)或在eNodeB。在这两种情况中,为了选择正确的隧道,应当将向UE传输业务的TEID
以信号方式发送给S-GW或eNodeB,使得这些节点可以将正确的业务流重新路由至DPI功能。从意识到需要有效载荷填充的分组流以及PDP上下文(TEID)的TONGW执行信令。在高速缓冲存储器已将有效载荷插入分组之后,需要再次使用TEID将业务插入回到相同的隧道。将意识到上面的描述是基于以下事实的在数据分组所沿的路径上存在可操作的高速缓冲存储器,且所需数据存在于高速缓冲存储器中。如果不是这种情况,则将需要一些回退机制来处理被高速缓冲存储的数据不可用这一事实。合适的回退机制将具有三个主要部分I、如果高速缓冲存储器204接收到被剥离的分组226,但是其不具有由分组中包含的指针
227所指示的内容,则其丢弃该分组,并向内容服务器201 (或分组剥离器330)发送消息,指示该错误。然后内容服务器201或分组剥离器330返回完整有效载荷模式。此夕卜,其可以在答复中指示高速缓冲存储器204开始对通过的内容进行高速缓冲存储。2、将被剥离的分组故意地进行错误的格式化,使得,如果他们到达终端207,而不经过高速缓冲存储器(其将用内容替换指针〈P ,终端207产生寻址到内容服务器201的互联网控制消息协议(ICMP)答复。这向内容服务器201指示在到用户的路径上不存在高速缓冲存储器,且还可以作为对内容服务器201的用于切换至完整有效载荷模式的指示。3、相反地,如果内容服务器201正在发送完整有效载荷分组,且在路径上存在高速缓冲存储器,则高速缓冲存储器也可以检测内容,并向内容服务器指示其存在性。这允许内容服务器切换至剥离有效载荷模式。这些特征使得在发送期间打开和关闭高速缓冲存储器成为可能,且因此支持终端的移动性,同时在高速缓冲存储器和具有和不具有高速缓冲存储器支持的区域之间进行自动迁移。将参照图4至7来更详细地解释这些。图4是上述分组剥离和重建机制的示意图。再次示出该行为以协助理解回退机制如何工作。图4示出了内容服务器301 (具有存储单元401)和分组剥离器330,从分组剥离器330向客户端207发送被剥离的分组226。高速缓冲存储器204与存储有被高速缓冲存储的数据的存储单元404相关联。从图4和之前讨论中可以看出,被剥离的分组226包含指针227,指针227包括文件ID 427、文件中的位置428和数据段429的长度,指针227指向高速缓冲存储器存储单元404中的内容。分组包括传输首部222和应用首部223。存在剥离必须满足的用于回退的三个要求
I、应当将被剥离的分组格式化为使得如果客户端207接收到未由高速缓冲存储器204处理过的被剥离的分组226 (即,从目的地的角度来看,分组是错误的),则a.客户端207应当优选地以分组未到达应用的方式来丢弃它;以及b.客户端207应当在ICMP错误消息中报告该错误。这允许剥离器330检测到在路径上不存在高速缓冲存储器204,且回到发送完整有效载荷分组221。优选地,该错误报告还应当在剥离器330和目的地之间存在网络地址转换(NAT)时发生。2、应当将被剥离的分组226格式化为使得高速缓冲存储器330容易地将它们标识为被剥离的分组。3、路由器和防火墙应当毫无问题地转发被剥离的分组226。各种备选可用于实现这些目标。在第一备选中,分组剥离器330将目的端口改变为客户端终端207所不太可能使用的值。可能的端口包括例如回响端口⑵或向路由服务注册的端口(比如BGP或BGMP)。恰当地修改Μ)Ρ和TCP校验和,以适合新的分组,使得其实际上达到产生答复的终端中的码。在使用回响端口的情况下,如果答复服务启动,答复可以是合式(well formed)的UDP分组,(否则答复是ICMP “端口不可达”消息)。当高速缓冲存储器接收到被剥离的分组226时,向重建的分组221的首部中重新插入正确的端口。该备选的变体是剥离器330原始发送被剥离的ICMP回响请求(Ping)消息。将其格式化为使得高速缓冲存储器204基于其有效载荷的内容,将其识别为被剥离的分组。如果该消息到达客户端207,而不经过高速缓冲存储器,其将如通常一样用ICMP回响答复来进行应答。相比于使用UDP回响端口的优点是在客户端系统上UDP回响服务一般是被关闭的,在该情况下,剥离器330将接收不到任何答复。ICMP回响消息的有效载荷必须包含在将被剥离的分组转换为完整分组时高速缓冲存储器应当替换的IP/M)P/TCP首部信息222。在第二备选中,剥离器改变分组的源端口。这主要对于TCP有用,在该情况下,如果客户端207接收到被剥离的分组226,则源端口的改变指示将有可能触发TCP RST分组的无效TCP连接。对于UDP,客户端一般接受来自任何源端口的分组。如针对上面的备选所述,必须再次修改TCP或UDP校验和以适合新的分组。在第三备选中,剥离器330将协议号改变为未使用的值。如果被剥离的分组226到达客户端207,则这将触发来自客户端207的“协议不可达” ICMP响应。该备选的有利之处在于不需要重新计算TCP或UDP校验和,这样可以端到端的保护有效载荷。根据标准行为,ICMP响应引用了完整的原始分组,服务器可以使用该完整的原始分组来减轻服务器关于识别应当向谁重新发送具有完整有效载荷的任务。在图5、6和7中分别示出了具有工作的高速缓冲存储器和不工作的/不存在的高速缓冲存储器的第三备选的示意图。图5示出了从剥离器330向客户端207发送的被剥离的分组526。除了将伪协议值501插入到传输首部222,被剥离的分组526与图2_4中所示分组226相同。此外,将原始协议值502与文件ID 427、文件中的位置428和数据段的长度429 —起插入到指针527中。当高速缓冲存储器204接收到被剥离的分组526并重建它以形成完整分组221时,从传输首部移除伪协议值501,并用在指针528中包含的原始协议值502来替换。图6示出了如果路径上的高速缓冲存储器204不工作或甚至不存在于路径上,则会发生什么。在该情况下,被剥离的分组527直接到达客户端207。在传输首部222中依然包括伪协议值501,且这将从客户端207向剥离器330提示“协议不可达”ICMP响应726,如图7所示。ICMP响应726包括原始分组,以及新的IP首部722和“协议不明”字段723。如果需要,根据分组的新尺寸和重新计算的IP首部校验和来调整IPv4的总长度字段。在上述任一备选中,还必须在被剥离的分组内的引用中存储已被改变的值,以使得应用不可知高速缓冲存储器204能够将其恢复为其原始值。客户端206响应于被剥离的分组所发送的ICMP消息726将包含目的地的IP地址(作为被引用的分组的一部分)。这允许剥离器/服务器330/201针对到该IP地址的所有传输切换至完整有效载荷模式。将注意到,如上改变的分组将不通过NAT。然而,如果NAT而不是最终主机发送
ICMP响应,这也足以将剥离器/服务器置为完整有效载荷模式。第四备选使用IPv6中的目的选项扩展首部(在RFC2460中描述)。在分组传输路径上的任何节点不检验或处理扩展首部,直到分组到达在IPv6首部的目的地地址字段中标识的节点。必须严格按照选项序列在字段中出现的顺序来处理选项的序列接收机一定不能例如扫描首部,寻找特定类型的选项,并在处理所有在先选项之前处理该选项。对选项类型标识符进行内部编码,使得它们的最高两个比特指定如果处理IPv6节点未标识选项类型则必须采取的行动00-跳过该选项,并继续处理首部。01-丢弃该分组。10-丢弃该分组,且不管分组的目的地地址是否是组播地址,向分组的源地址发送ICMP参数问题(代码2)消息,指向未被识别的选项类型。11-丢弃该分组,且仅当分组的目的地地址不是组播地址的情况,向分组的源地址发送ICMP参数问题(代码2)消息,指向未被识别的选项类型。因此,应当将选项10或11插入到被剥离的分组的IPv6首部中。如果客户端207接收到这种被剥离的分组,其将会丢弃该分组并返回ICMP消息。途中的(en route)高速缓冲存储器204可以从扩展首部中移除该选项,或备选地将该值设置为00。如上所述,高速缓冲存储器204需要识别被剥离的业务,以能够将它们恢复为完整有效载荷。这可以取决于使用上面的哪种剥离备选来进行。在任何情况下,剥离器330 (或内容服务器201)的IP地址可以被编程到高速缓冲存储器中,使得可以考虑对来自该地址的任何分组进行检测。在上面前三种备选的情况下,还可以连同源IP地址一起,观察新的目的端口、源端口或协议号(分别地)。这种ACL是容易形成的,且联网设备通常支持这种ACL。当高速缓冲存储器204接收与上面描述相匹配的分组时,高速缓冲存储器204检查其是否是被剥离的分组。高速缓冲存储器204寻找在分组结束处的引用。在短引用中的简单校验和可以有助于识别。此外,未被标识的内容ID或无效偏移量或长度可以以信号方式通知非剥离的分组。可以沉默地转发结果是非剥离的分组的分组。对于被剥离的分组,高速缓冲存储器204确定其是否具有分组所需的内容数据。如果是,则其移除引用,插入有效载荷,恢复被改变的TCP/UDP/IP首部值,重新计算校验和,并发送分组。如果高速缓冲存储器不具有对内容的访问权限,其丢弃该分组。然后其向剥离器330(或内容服务器201)发送信令消息,引用该引用,并指示存在路径上的高速缓冲存储器,但是其不具有内容。剥离器/服务器330/201切换至完整有效载荷模式,并重新发送该片段。在其响应中,剥离器/服务器330/201可以指示高速缓冲存储器将该内容添加到其存储单元404中。高速缓冲存储器也可以对高速缓冲存储采取单方面行动。这样,高速缓冲存储器管理可以是集中式的或者是分布式的。将意识到,如果高速缓冲存储器确实具有对所需内容片段的访问权限,但是其不具有全部该内容且在不久的将来其将用完现有的部分,则高速缓冲存储器也可以发送这种消息。将注意到,高速缓冲存储器不需要跟踪各个用户,而仅跟踪内容。还将注意到,高速缓冲存储器不需要知晓传输内容的应用。另外,高速缓冲存储器具有被高速缓冲存储的数据的完全使用信息,且因此可以有效地管理其存储,同时接受对预期在不久的将来变得流行的内容的提示。如果客户端终端207移动,有可能向其提供服务的高速缓冲存储器204不再在路径上。终端207可能移动至不同的高速缓冲存储器或不存在高速缓冲存储器的段中。类似地,尚未由高速缓冲存储器所覆盖的终端207有可能移动到存在高速缓冲存储器的新的位置。如下所述,依然可以在这些环境下管理分组发送。如果终端从一个高速缓冲存储器下移动至另一个之下,则新的高速缓冲存储器将检测第一被剥离的分组并对其进行行动。如果新的高速缓冲存储器具有该内容,则不发生中断。如果其不具有该内容,其将以信号方式通知内容服务器(如上所述),内容服务器将切换到完整有效载荷模式。这样,可能必须重新发送一轮数据。老的高速缓冲存储器将不再向该终端提供服务,但是其需要摆脱无状态(free no state)。如果终端从高速缓冲存储器下移动至没有高速缓冲存储器支持的段,其将直接接收被剥离的分组,且将用ICMP错误来加以响应。不通知终端中的应用。服务器将立刻切换到完整有效载荷模式,且以损失一轮分组为代价来恢复发送。如果终端从不具有高速缓冲存储器的区域移动至高速缓冲存储器之下,则新的高速缓冲存储器将必须识别完整有效载荷业务。为此,可以在每个高速缓冲存储器中配置内容服务器和服务器端口的列表。如果接收到这种不是被剥离的分组的分组,则高速缓冲存储器应当转发它们,但是同时将其存在性以信号方式通知给服务器。然后服务器可以切换至剥离模式,或以流的内容-ID来加以答复。然后高速缓冲存储器可以判定其是否再次以信号方式通知,以切换到剥离模式(如果其具有内容)。将注意到,上述机制在响应于网络故障而发生重新路由事件的情况下,以及在终端移动的情况下是有用的。还将注意到,该方法与移动协议结合工作。高速缓冲存储器仅需要查看GTP、PMIP、或CMIP隧道;其余操作保持相同。这允许将这种高速缓冲存储器放在无线基站中,或放在基站和网关之间的路径上的RAN或聚合网络中的任何地方。然而,如果隧道是安全的(例如使用安全网关),则高速缓冲存储器仅可以放在基站中,因为基站可以对接收到的通过隧道发送的分组进行解密。
上述讨论接触到高速缓冲存储可以是有用的情形,但是将意识到,存在可以应用相同原理的很多其他情况。例如,针对使用基于m)P的RTP和基于TCP的HTTP的VoD,可以应用类似的高速缓冲存储处理。此外,除了 LTE之外,还可以针对2G和3G网络来使用该处理。此外,将意识到,尽管被描述为在移动网络中使用是有利的上述系统,其还可以在固定网络和线缆网络中使用。此外,上述讨论关注的是所有节点(服务器201、301、有效载荷剥离器330、高速缓冲存储器204、客户端207)被示出为位于相同网络中的网络架构。将意识到,通常不是这种情况。在服务器在一个网络中且客户端在另一个网络中的网络架构中,高速缓冲存储器是特别有用的。将意识到,这对于上述系统的操作是不产生差异的。例如,图8示出了服务器301(类似于图3所示)位于第一网络441中的布置。客
户端位于另一网络443中。从服务器301发送至客户端的分组经由路由器444、445、446、447通过核心IP网络442。如果核心IP网络442的一部分具有低带宽的区域210,核心IP网络包括有效载荷剥离器330和高速缓冲存储器204,它们如图3至7所述的方式工作。还可以想到不同的架构。将意识到,取决于部署有高速缓冲存储器的网络以及该网络的底层物理层,发送的分组的数目可能与它们的尺寸一样重要(或更重要)。上面的讨论专注于通过减少分组中有效载荷的尺寸来减少发送的数据量。然而,该系统还可以用于减少分组的数目。为了实现分组数目的减少,可以将一组被剥离的分组在一个“聚合”分组中一起发送。由于每个被剥离的分组的有效载荷极小(仅包含指针),因此有可能例如一次发送三个,或根据可以接受多少延迟以及在网络中多少分组损失是明显的来聚合任意数目。这可以用若干种方式来进行。在图3中,从有效载荷剥离器330流向高速缓冲存储器204的分组被唯一示出为被剥离的分组226。在更复杂的布置中,在有效载荷剥离器330和高速缓冲存储器204之间行进的分组可以具有以以下两种形式之一来对分组实质上进行编码的特殊格式 类型I分组(简单分组)对应于图3所示的被剥离的分组226,其中,分组的有效载荷由应用数据224和有效载荷指针227构成。 类型2分组(聚合分组)更为复杂。这些分组包含在其中保持的简单分组的列表。有可能想到一种递归结构,其中,聚合分组是将它们本身进一步结合以形成“超级聚合”分组,尽管对于全部实际原因,不太可能出现将类型2分组包含在另一个类型2分组中的理由。存在很多种实现这种格式的编码的方式,且在图9中提供了一个示例,其示出了类型2分组550。该分组包含字段551,指示在当前聚合分组(η)中包含了多少简单分组。下一个字段552包含简单分组(分组I)的长度(长度I),且之后是分组553本身。这对于每个分组进行重复,同时分组2 555的长度2 554在分组本身之前,直到分组η 557的长度η 556。可以用相同方式,通过让η= I来定义类型I分组。如果可以从分组本身容易获得分组的长度,则还可以在不需要每个简单分组553、555、557的分离的长度字段552、554、556的情况下对分组进行编码。如将意识到的,该格式仅是一个示例。可以根据底层网络,针对每个部署对该格式进行优化。可以需要或可以不需要对分组进行聚合。在一些情况下,可能需要作为聚合的一部分的每个分组的大量元信息。重要的特征是有效载荷剥离器330和高速缓冲存储器204都识别该格式,使得他们在进行分组的编码和解码时是同步的。还可以将其与上述回退机制集成,因为聚合分组的首部可以包含如前所述的伪目的端口 /源端口 /协议值/IPv6选项,使得如果客户端接收到错误的聚合分组,则其返回ICMP消息。图10是有效载荷剥离器单元330的示意图。有效载荷剥离器330包括用于从服务器接收全尺寸分组的接收机661。由移除每个分组的有效载荷的处理器662来处理分组,并用指向高速缓冲存储器204保持的文件的位置的指针来替换有效载荷(如图3所示)。存储介质663可以包含高速缓冲存储器保持的文件的记录,以使得处理器662能够确定在指针中应当编码的信息。发射机向高速缓冲存储器转发分组。图11是示出了有效载荷剥离器330如何处理分组的流程图。S71 :有效载荷剥离器330从服务器接收全尺寸分组。S72:分组剥离器可以了解是否在网络中对该分组中包含的内容进行了高速缓冲存储。如果不是,则向客户端不加改变地转发分组S73。S74 :如果内容被高速缓冲存储,则从分组中移除有效载荷,并用指针来替换有效载荷,该指针将标识在高速缓冲存储器保持的文件中哪里可以找到与有效载荷相对应的数据。这导致了被剥离的分组。修改被剥离的分组,以在首部中包括“回退”参数-即如上所述的不同的源或目的端口或协议号、或IPv6目的选项标识符。S75 :通过网络向高速缓冲存储器发送被剥离的分组。图12是高速缓冲存储器204的示意图。高速缓冲存储器204包括用于从有效载荷剥离器330或服务器201接收被剥离的分组的接收机861。存储介质863包含被高速缓冲存储的数据。每个被剥离的分组包含指针,指针标识存储介质863中保持的文件以及在文件中的位置和数据长度。处理器862从每个被剥离的分组中提取指针,标识存储介质863中的相关文件和数据,并将数据插入分组中作为有效载荷,以产生全尺寸分组。发射机864向客户端发送全尺寸分组。图13示出了高速缓冲存储器204的操作的流程图。S91 :在高速缓冲存储器处接收分组。S92 :检查分组(通过DPI或通过对首部中的标记进行搜索)以确定其包含完整有效载荷,或其是包含标识有效载荷数据的指针信息的被剥离的分组。S93 :如果分组包含完整有效载荷,则向客户端不加改变地转发该分组。S94 :如果该分组是被剥离的分组,则检查高速缓冲存储器存储介质,以查看由指针所标识的有效载荷数据是否存在。S94a:如果有效载荷数据不存在,则丢弃该分组,并向上游发送错误消息。S95 :如果有效载荷数据存在,则将其作为有效载荷插入分组以替换指针,以产生全尺寸分组。S96 :向网络中的客户端发送该全尺寸分组。图14是服务器201的示意图。服务器201包括处理器1062、存储介质1063和发射机1064。被剥离的分组由处理器1062产生,每个分组在其有效载荷中包含指向高速缓冲存储器204保持的文件中的位置的指针(如图3所示)。存储介质1063可以包含高速缓冲存储器保持的文件的记录,以使得处理器1062能够确定在指针中应当编码的信息。发射机1064向高速缓冲存储器转发分组。
图15是服务器201如何创建和转发分组的流程图。Slll :识别要向客户端发送的内容。S112:服务器可以了解该内容是否在网络中被高速缓冲存储。如果不是,则产生全尺寸分组SI 13并将其向客户端转发SI 14。S115:如果对内容进行了高速缓冲存储,则产生被剥离的分组。用指针来替换被剥离的分组的有效载荷,指针将标识高速缓冲存储器保持的文件中哪里可以找到与有效载荷相对应的数据。被剥离的分组还在首部中包括“回退”参数-即如上所述的不同的源或目的端口或协议号、或IPv6目的选项标识符。S116 :通过网络向高速缓冲存储器发送被剥离的分组。如上所述,在任何网络中进行高速缓冲存储的好处是限制网络业务的量,使得有可能用存储投资成本(相对廉价)来替换网络投资成本(昂贵的)。通过进一步将应用逻辑和状态与简单的有效载荷数据分离,有可能让高速缓冲存储器是应用不可知的。这使得有可能使用相同的高速缓冲存储器基础结构用于若干不同的应用,比如RTSP流传输和HTTP或P2P下载。由于高速缓冲存储器是简单的,且没有复杂的逻辑,可以使其具有鲁棒性且无故障。这样,多少可以将其视为可以由无资格的人员来替换和重启的一个硬件(实际上,其可以用硬件形式来实现)。此外,对于用户可以在会话的生存期间切换端点的系统,可以用更简单的方式来进行,因为不需要在高速缓冲存储器之间迁移会话状态。会话状态永远保持在其被最佳处理的地方-内容服务器中(或意识到应用的有效载荷剥离器)。回退机制具有以下好处高速缓冲存储器系统可在多样的环境中工作,S卩,到端点的网络路径存在,该网络路径具有或不具有在路径上的分布式高速缓冲存储器。这提供了在检测到回程(backhaul)的不同部分中的瓶颈时,将高速缓冲存储器系统逐渐引入网络中的可能性。此外,其还提供了以下可能性使用更低可用性,且从而使用低成本设备用于高速缓冲存储器,以及用于高速缓冲存储器的更长的维护间周期。此外,提出的机制还使得对高速缓冲存储器要处理的被剥离的分组进行简单和有效的识别成为可能。从而,其减少了高速缓冲存储器的DPI功能的处理容量要求。
权利要求
1.一种在分组数据网络中使用的高速缓冲存储器,包括 接收机,用于从上游节点接收分组; 存储介质,用于存储被高速缓冲存储的数据; 处理器,可操作地连接到所述接收机和所述存储介质,所述处理器被布置为 确定所述分组是否是被剥离的分组,所述被剥离的分组的有效载荷包含标识有效载荷数据段的指针信息; 如果是,则确定所述有效载荷数据段是否存储在所述存储介质中;以及如果是,则使用所述指针信息从所述存储介质中定位并获取所述有效载荷数据段;以及将所获取的有效载荷数据段插入所述分组的有效载荷中;以及 发射机,可操作地连接到所述处理器,用于向客户端转发所述分组。
2.根据权利要求I所述的高速缓冲存储器,其中,所述处理器被布置为将分组中的指针信息替换为所获取的有效载荷数据段。
3.根据权利要求I或2所述的高速缓冲存储器,其中,所述处理器被布置为执行深度分组检测,以标识所述分组的有效载荷是否包含所述指针信息。
4.根据权利要求I或2所述的高速缓冲存储器,其中,所述处理器被布置为针对用于标识所述分组的有效载荷是否包含指针信息的标记,来搜索所述分组的首部。
5.根据前述权利要求中任一项所述的高速缓冲存储器,其中,所述处理器被布置为测试从该上游节点接收到的所有分组,以确定它们是否是被剥离的分组。
6.根据前述权利要求中任一项所述的高速缓冲存储器,其中,所述指针信息包括 文件ID,标识在包含所述有效载荷数据段在内的存储介质中存储的文件; 位置ID,标识所述数据段在所述文件中的位置;以及 长度ID,标识所述数据段的长度。
7.根据前述权利要求中任一项所述的高速缓冲存储器,还被配置为使得如果所述分组是被剥离的分组,但是所述有效载荷数据段未存储在所述存储介质中,则所述发射机不向客户端发送所述分组,并且向上游节点发送错误消息。
8.根据前述权利要求中任一项所述的高速缓冲存储器,其中,如果所述分组是被剥离的分组且所述有效载荷数据段被存储在所述存储介质中,则所述处理器被布置为从所述分组首部中移除回退參数,并用从所述指针信息中获取到的正确值来替换所述回退參数,所述回退參数被设计为如果所述被剥离的分组到达所述客户端节点,则使所述客户端节点返回错误消息。
9.根据权利要求8所述的高速缓冲存储器,其中,所述处理器被布置为测试从上游节点接收到的所有分组,以确定他们是否包括所述回退參数。
10.根据权利要求8或9所述的高速缓冲存储器,其中,所述回退參数是以下各项之 目的端ロ ; 源端ロ ; 协议值;以及 最高比特被设置为“10”或“ 11”的IPv6目的选项类型。
11.根据前述权利要求中任一项所述的高速缓冲存储器,其中,如果所述分组不是被剥离的分组且所述存储介质不包含与所述分组的有效载荷相对应的数据段,则所述处理器被配置为获取所述分组的有效载荷并将其保存在所述存储介质中。
12.—种在分组数据网络中使用的有效载荷剥离器单元,所述有效载荷剥离器单元包括 接收机,用于接收分组; 处理器,可操作地连接到所述接收机,并被布置为从所述分组的有效载荷中移除有效载荷数据段,并将指针信息插入到所述分组中以产生被剥离的分组,所述指针信息用于使所述有效载荷剥离器的下游的高速缓冲存储器能够识别来自由所述高速缓冲存储器所保持的数据的有效载荷数据段;以及 发射机,可操作地连接到所述处理器,用于向所述高速缓冲存储器转发所述被剥离的分组。
13.根据权利要求12所述的有效载荷剥离器单元,还包括可操作地连接到所述处理器的存储介质,用于存储由高速缓冲存储器所保持的数据的记录,其中,所述处理器被布置为识别有效载荷数据段是否由高速缓冲存储器所保持,以确定是否从分组中移除有效载荷数据段以产生被剥离的分组。
14.根据权利要求12或13所述的有效载荷剥离器单元,其中,所述指针信息包括 文件ID,标识包含所述有效载荷数据段在内的高速缓冲存储器中存储的文件; 位置ID,标识所述数据段在所述文件中的位置;以及 长度ID,标识所述数据段的长度。
15.根据权利要求12、13或14所述的有效载荷剥离器单元,其中,所述处理器被布置为在所述被剥离的分组的首部中插入标记,以指示所述被剥离的分组包含指针信息而不是有效载荷数据。
16.根据权利要求12至15中任一项所述的有效载荷剥离器单元,其中,所述处理器被布置为向所述被剥离的分组的首部中插入回退参数,选择所述回退参数使得如果所述被剥离的分组到达所述客户端节点,则所述回退参数将向所述客户端节点指示返回错误消息而不将所述被剥离的分组向客户端应用转发。
17.根据权利要求16所述的有效载荷剥离器单元,其中,所述回退参数是以下各项之 目的端口 ; 源端口 ; 协议值;以及 最高比特被设置为“10”或“11”的IPv6目的选项类型。
18.根据权利要求16或17所述的有效载荷剥离器单元,其中,所述接收机被布置为从下游客户端节点或高速缓冲存储器接收错误消息,响应于此,所述处理器被配置为停止从预期发送到该客户端节点或高速缓冲存储器的分组中移除有效载荷数据段。
19.根据权利要求12至18中任一项所述的有效载荷剥离器单元,被布置为对已经提取有效载荷数据段的分组进行组合,以形成聚合分组。
20.一种用于在分组数据网络中发送数据的服务器,所述服务器包括 处理器,可操作地连接到存储介质,并被布置为产生要向客户端发送的被剥离的分组,以使得能够向所述客户端传输数据的有效载荷数据段,所述被剥离的分组包括指针信息,所述指针信息用于使所述服务器的下游高速缓冲存储器能够从所述高速缓冲存储器保持的数据中识别所述有效载荷数据段;以及 发射机,可操作地连接到所述处理器,用于向所述高速缓冲存储器转发所述分组。
21.一种用于通过ー个或多个网络来发送数据的系统,所述系统包括根据权利要求I至11中任一项所述的高速缓冲存储器和根据权利要求12至19中任一项所述的有效载荷剥离器或根据权利要求20所述的服务器。
22.一种用于通过ー个或多个分组数据网络来发送数据的系统,包括分组发送节点和高速缓冲存储器节点,所述分组发送节点被布置为向所述高速缓冲存储器节点或客户端节点发送被剥离的分组,所述被剥离的分组在其有效载荷内包括指向在所述高速缓冲存储器节点处的文件中存储的有效载荷数据段的指针; 所述高速缓冲存储器节点被布置为 接收所述被剥离的分组; 使用所述指针从所述高速缓冲存储器节点处存储的数据中识别所述有效载荷数据段; 将所述有效载荷数据段插入所述被剥离的分组以替代所述指针,以产生全尺寸分组;以及 向客户端发送所述全尺寸分组。
23.根据权利要求22所述的系统,其中,所述分组发送节点是分组剥离节点,所述分组剥离节点被布置为接收包含有效载荷数据段在内的全尺寸分组,从所述全尺寸分组中移除有效载荷数据段,并将其用指针来替换以产生被剥离的分组。
24.根据权利要求22所述的系统,其中,所述分组发送节点是服务器。
25.根据权利要求22、23或24所述的系统,其中,所述高速缓冲存储器节点被配置为使得如果未在其中存储有效载荷数据段,则丢弃被剥离的分组,并向所述分组发送节点返回错误消息。
26.根据权利要求22至25中任一项所述的系统,其中 所述分组发送节点被配置为向被剥离的分组的首部中插入回退參数; 所述高速缓冲存储器节点被配置为当产生全尺寸分组时,用正确值来替换所述回退參数;以及 如果被剥离的分组到达客户端,所述回退參数使所述客户端返回错误消息。
27.根据权利要求22至26中任一项所述的系统,其中,一个或多个分组数据网络包括多个高速缓冲存储器节点,每个高速缓冲存储器节点具有在其上存储的有效载荷数据段。
28.根据权利要求22至27中任一项所述的系统,其中,所述分组发送节点负责管理在所述高速缓冲存储器节点处存储的数据,或当从属于权利要求25吋,负责管理每个高速缓冲存储器节点。
29.一种通过一个或多个分组数据网络发送数据的方法,包括 从分组发送节点向高速缓冲存储器节点或客户端节点发送被剥离的分组,所述被剥离的分组在其有效载荷内包括指向在所述高速缓冲存储器节点处的文件中存储的有效载荷数据段的指针;在所述高速缓冲存储器节点处接收所述被剥离的分组; 使用所述指针从在所述高速缓冲存储器节点处存储的数据中标识所述有效载荷数据段; 将所述有效载荷数据段插入所述被剥离的分组中以替代所述指针,以产生全尺寸分组,以及 从所述高速缓冲存储器节点向客户端发送所述全尺寸分组。
30.根据权利要求29所述的方法,其中,所述分组发送节点接收包含有效载荷数据段在内的全尺寸分组,从全尺寸分组中移除有效载荷数据段并将其替换为指针,以产生被剥离的分组。
31.根据权利要求29所述的方法,其中,所述分组发送节点是服务器。
32.根据权利要求29、30或31所述的方法,其中,如果有效载荷数据段未存储在高速缓冲存储器节点中,则丢弃被剥离的分组,并向分组发送节点返回错误消息。
33.根据权利要求29至32中任一项所述的方法,其中 在分组发送节点处将回退参数插入被剥离的分组的首部中; 当在高速缓冲存储器节点处产生全尺寸分组时,用正确值替换所述回退参数;以及 如果被剥离的分组到达客户端,所述回退参数使所述客户端返回错误消息。
34.根据权利要求33所述的方法,其中,所述高速缓冲存储器认出所述回退参数,如果被剥离的分组中的指针所引用的有效载荷数据段未被高速缓冲存储,则高速缓冲存储器返回错误消息。
35.根据权利要求29至34中任一项所述的方法,其中,所述一个或多个分组数据网络包括多个高速缓冲存储器节点,每个高速缓冲存储器节点具有在其上存储的有效载荷数据段。
36.一种计算机程序产品,包括适于在分组数据网络中的高速缓冲存储器上执行的代码,可操作所述代码以 识别高速缓冲存储器接收到的分组的有效载荷是否包含标识由高速缓冲存储器存储的有效载荷数据段的指针信息; 如果是,则使用该指针信息来定位并获取有效载荷数据段,将所获取的有效载荷数据段插入所述分组的有效载荷,并向客户端转发所述分组。
37.一种计算机程序产品,包括适于在分组数据网络中的分组剥离器单元上执行的代码,可操作所述代码以 从所述分组的有效载荷中移除有效载荷数据段,以及将指针信息插入所述分组以产生被剥离的分组,所述指针信息用于使所述分组剥离器单元的下游的高速缓冲存储器能够从所述高速缓冲存储器保持的数据中识别有效载荷数据段;以及 向所述高速缓冲存储器转发所述被剥离的分组。
38.一种计算机程序产品,包括适于在分组数据网络中的服务器上执行的代码,可操作所述代码以 产生要向客户端发送的被剥离的分组,以使得能够向所述客户端传输有效载荷数据段,所述被剥离的分组包括用于使所述服务器下游的高速缓冲存储器能够从由所述高速缓冲存储器保持的数据中识别有效载荷数据段的指针信息;以及向所述高速缓冲存储器转发所述分组。
39.根据权利要求36、37或38所述的计算机程序产品,被承载在载体介质上。
全文摘要
本发明描述了用于通过一个或多个分组数据网络发送数据的方法和装置。从分组发送节点向高速缓冲存储器节点发送被剥离的分组,所述被剥离的分组在其有效载荷中包括指向在所述高速缓冲存储器节点处的文件中存储的有效载荷数据段的指针。当在所述高速缓冲存储器节点处接收到所述被剥离的分组时,所述指针用于从在所述高速缓冲存储器处存储的数据中识别所述有效载荷数据段。将所述有效载荷数据段插入到所述被剥离的分组中以替代所述指针,以产生全尺寸分组,从所述高速缓冲存储器节点向客户端发送所述全尺寸分组。
文档编号H04L29/06GK102804725SQ201080026896
公开日2012年11月28日 申请日期2010年1月26日 优先权日2009年6月17日
发明者佐尔坦·里夏德·图拉尼, 安德拉斯·塞萨, 阿约德尔·达莫拉, 斯特芬·海克维斯特, 阿提拉·米哈利, 拉斯·韦斯特伯格 申请人:瑞典爱立信有限公司