CN109076108B - 接收兴趣消息的网络节点、端点节点和方法 - Google Patents

接收兴趣消息的网络节点、端点节点和方法 Download PDF

Info

Publication number
CN109076108B
CN109076108B CN201780029606.XA CN201780029606A CN109076108B CN 109076108 B CN109076108 B CN 109076108B CN 201780029606 A CN201780029606 A CN 201780029606A CN 109076108 B CN109076108 B CN 109076108B
Authority
CN
China
Prior art keywords
bid
node
message
network node
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780029606.XA
Other languages
English (en)
Other versions
CN109076108A (zh
Inventor
A.S.吉尔
L.达坎托
K.特里西亚斯
R.万布兰登布格
E.克拉梅尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Original Assignee
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO, Koninklijke KPN NV filed Critical Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Publication of CN109076108A publication Critical patent/CN109076108A/zh
Application granted granted Critical
Publication of CN109076108B publication Critical patent/CN109076108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

本发明涉及一种网络节点(15),包括至少一个通信接口、至少一个存储器以及至少一个处理器。所述至少一个处理器被配置成:在所述至少一个通信接口上从下游节点(14)接收兴趣消息,所述兴趣消息包括所请求的数据对象的名称;确定是否针对将所请求的数据对象存储在所述至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上将所述兴趣消息转发到上游节点(16),所述兴趣消息取决于至少所述是否竞标的确定而包括所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所请求的数据对象的数据消息;从至少所述数据消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述数据消息转发到所述下游节点。

Description

接收兴趣消息的网络节点、端点节点和方法
技术领域
本发明涉及网络节点。
本发明进一步涉及接收兴趣消息的方法,特别地涉及接收兴趣消息和数据消息的方法。
本发明进一步还涉及接收HTTP请求的方法,特别地涉及接收HTTP请求和响应消息的方法。
本发明还涉及使计算机系统能够执行这种方法的计算机程序产品。
本发明进一步涉及用于发射兴趣消息的端点节点。
背景技术
以信息为中心的联网(ICN)是新的联网范例,该新的联网范例以使当前互联网基础设施远离面向主机的系统、向着面向数据的系统而演进为目标。在ICN中对数据本身进行寻址,而不是经由IP地址对端点进行寻址。通过将数据划分成组块并向那些组块中的每一个给予唯一且分层的名称,ICN允许客户端向网络询问给定的经命名的数据对象,而不必担心该数据被定位/存储在哪里。对数据进行命名的优点之一是:每个中间网络节点(诸如,交换机或路由器)具有高速缓存流经它的数据分组的能力。以该方式,如果新的消费者请求已经被高速缓存在网络中的数据,则它的请求不需要通过网络向该数据的原始生产者传播,而是可以取而代之地由保持该数据的副本的中间网络节点中的一个来服务。
当前ICN架构在它们的核处具有两种基本类型的消息:兴趣消息和数据消息。当应用想要取回特定数据对象时,它发送出针对该数据对象的兴趣消息。该兴趣消息的最重要部分是对象的名称,或者在其中对象的完整名称未知的情况下,该兴趣消息的最重要部分是前缀。
这种ICN架构的示例是“Named data networking”, Zhang et al., ACM SIGCOMMComputer Communication Review 44 Issue 3, July 2014, pages 66-73中描述的命名数据联网(NDN)。当网络节点接收到NDN中的兴趣消息时,它首先检查其本地高速缓存是否恰好包含与该兴趣消息中的名称匹配的命名数据对象。如果对应的命名数据对象被找到,则将它包在数据消息中并通过兴趣消息通过其而被接收到的接口将它发送回。
在其中该对象没有被高速缓存的情况下,下一个步骤是检查所请求的名称是否已经处于所谓的待定兴趣表(PIT)中。PIT维持现有待定数据对象请求以及它们通过其而被请求的对应接口的列表。当数据消息进入时,它被转发到根据PIT而具有针对对应名称的不满足的兴趣的所有接口。然后删除PIT中的条目。当在PIT中未列出传入兴趣消息中的名称时,将该名称连同该名称通过其而被接收到的接口一起添加。然后,根据转发信息库(FIB)和策略层在一个或多个传出接口上转发兴趣消息,以便在另一个节点处搜索所请求的数据。
在ICN中进行高速缓存具有下述潜力:减少消费者所经历的时延,而同时减少网络业务量。然而,由于从内容来源(其可以是中间高速缓存节点或原始生产者)到消费者的路径上的任何节点都可以对内容进行高速缓存,因此为了避免这种网络中高速缓存容量的低效使用以及在业务量和时延方面的次优性能,管理高速缓存节点的高速缓存决策变得至关重要。需要仔细管理的重要高速缓存决策是:1. 具体高速缓存应当存储哪个数据项目;以及2. 如果该高速缓存储存是满的,应当替换哪个数据项目。
显而易见的是,当节点仅仅基于“局部”信息(即,在每个高速缓存节点本身处可用的信息,诸如被请求的项目、被高速缓存的项目、请求的频率等)来独立于彼此做出这种决策(这是ICN中的标准方案)时,低效的高速缓存决策更有可能发生。然而,考虑某级别的“全局”图景(例如,新接收到的项目是否已经被高速缓存在相邻高速缓存中了, 高速缓存当前存储的数据是否比新接收到的项目更受欢迎)以在以信息为中心的网络中做出高效高速缓存决策变得必要。
由IEEE发布的“Age-based cooperative caching in information-centricnetworking”,Zhongxing Ming, Mingwei Xu, and Dan Wang., 23rd InternationalConference on Computer Communication and Networks, 2014公开了一种方法,其中项目连同指示到期时间的年龄字段一起存储在高速缓存中。当到期时间逝去时,由另一个项目替换该项目。连同项目一起存储在高速缓存中的年龄字段的值基于包括该项目的接收到的数据消息中的年龄字段。项目的年龄由沿路径的第一个节点基于该项目的受欢迎度来设置。沿路径的每个随后节点在转发数据消息之前增加(例如,加倍)数据消息中的年龄。结果是:边缘处的高速缓存包括大多数受欢迎的项目,而进一步远离边缘的高速缓存还包括较不受欢迎的项目。该方法的优势是:它不要求路由器之间的(分离的)信令。
该方法的缺点是:高速缓存未被高效地使用,这是因为某些受欢迎的项目很可能被高速缓存在边缘以及进一步远离边缘的一个或多个节点这两者处,而某些较不受欢迎的项目很可能根本未被高速缓存。
高速缓存的使用在其他类型的网络中也是已知的,这是由于将高速缓存用于防止每个请求都需要通过完整网络传播到可处置该请求的服务器是有利的。受欢迎的内容常常存储在高速缓存中以节省带宽、减小服务器负载并改进客户端响应时间。
例如,网络服务提供商(NSP)可以在它们的网络中使用高速缓存代理以更高效地利用它们的网络。高速缓存代理是能够高速缓存内容并充当针对HTTP请求和响应的中间网络节点的代理服务器。例如,在内容网络的情况下,多个高速缓存代理可以驻留在用户代理(UA)与内容服务提供商(CSP)之间的各种点上。主要的区别是:在ICN的上下文内,对数据进行寻址,而在HTTP中,对数据的位置进行寻址。
由于HTTP请求和响应两者都流经这些高速缓存代理,因此每个服务器针对其本身决定是否高速缓存所请求的数据对象。该决定可以基于局部策略。高速缓存代理可以决定例如仅高速缓存受欢迎的强烈请求的项目或评估HTTP报头以选择是否高速缓存该内容。
高速缓存代理的缺点是:每个服务器针对其本身决定是否存储数据对象,从而常常导致受欢迎的内容被存储在例如用户代理(UA)与内容服务提供商(CSP)之间的多个高速缓存代理中,并且较少请求的内容根本不被存储,因而低效地利用了可用高速缓存容量。
发明内容
本发明的第一目的是提供一种网络节点,该网络节点促进了以信息为中心的网络中的高速缓存的更高效使用。
本发明的第二目的是提供一种接收兴趣消息的方法,该方法促进了以信息为中心的网络中的高速缓存的更高效使用。
本发明的第三目的是提供一种端点节点,该端点节点促进了以信息为中心的网络中的高速缓存的更高效使用。
本发明的第四目的是提供一种网络节点,该网络节点促进了内容网络中的高速缓存的更高效使用。
本发明的第五目的是提供一种接收针对数据对象的HTTP请求的方法,该方法促进了网络中的高速缓存的更高效使用。
根据本发明,第一目的以如下方式实现:网络节点包括至少一个通信接口、至少一个存储器以及至少一个处理器,所述至少一个处理器被配置成:在所述至少一个通信接口上从下游节点接收兴趣消息,所述兴趣消息包括所请求的数据对象的名称;确定是否针对将所述所请求的数据对象存储在所述至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上将所述兴趣消息转发到上游节点,所述兴趣消息取决于至少所述是否竞标的确定而包括所述所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所述所请求的数据对象的数据消息;从至少所述数据消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述数据消息转发到所述下游节点。
发明人已经认识到,通过限制数据消息的路径中的高速缓存数据消息中接收到的项目的网络节点的数量,实现了以信息为中心的网络中的高速缓存的更高效的使用。这是通过下述操作来实现的:允许网络节点针对将项目存储在它们的高速缓存中进行竞标,从而与沿该路径的其他网络节点竞争或与沿该路径的相同组网络节点中的其他网络节点竞争。换言之,高速缓存项目的权限被竞拍。这降低了较不受欢迎的项目根本没有被高速缓存的概率。它还可以实现跨网络的内容的优化散播(较少的服务器命中),从而提高了它相对于内容生产者离线的鲁棒性。进一步地,它可以减少由请求节点经历的时延,而不增加网络业务量。更多的优势可以是例如:基于请求的地理和/或定时组分的优化的高速缓存、考虑到个体节点性质、具有最小开销的高速缓存中的节点间协调。
如果该至少一个通信接口包括多个通信接口,则兴趣消息优选地是在除兴趣消息在其上被转发的通信接口外的另一个通信接口上接收的。兴趣消息是根据节点的转发规则来转发的。通常在兴趣消息在其上被转发到上游节点的相同通信接口上从上游节点接收数据消息。如果该至少一个通信接口包括单个接口(例如,无线接口),则网络节点可以在它从其接收到兴趣消息的相同通信接口上转发兴趣消息。
该至少一个处理器可以在确定是否针对将所请求的数据对象存储在该至少一个存储器中进行竞标之前计算竞标值。例如,仅当所计算的竞标值高于或低于某个阈值或者落在某个范围内时,该至少一个处理器可以确定进行竞标。可替换地,该至少一个处理器可以在决定针对将所请求的数据对象存储在该至少一个存储器中进行竞标之后计算竞标值。例如,仅当该至少一个存储器具有空槽或者至少一个已经高速缓存的数据对象大于某个年龄时,该至少一个处理器可以计算竞标值。
竞标值可以是基于一个或多个参数来计算的。参数可以与节点的局部情形(诸如,高速缓存大小或上游链路的带宽)相关。附加地,参数可以捕捉该特定请求的“上下文”,其与内容和/或网络相关。例如,参数可以是内容相关的(例如,项目的受欢迎度或针对项目的期望时延)或网络相关的(例如,从兴趣消息的发起者到网络节点的跳的数量或由兴趣消息经历的网络时延)。下游节点是将兴趣消息发射到网络节点并从网络节点接收数据消息的节点,即,比当前节点更接近于原始数据请求者而定位的兴趣/数据路径上的节点。上游节点是从网络节点接收兴趣消息并将数据消息发射到网络节点的节点,即,比当前节点更远离于原始数据请求者而定位的兴趣/数据路径上的节点。
所述接收到的兴趣消息可以进一步包括接收到的竞标值,并且所述至少一个处理器可以被配置成:如果所述是否竞标的确定是肯定的并且所述所计算的竞标值表示比所述接收到的竞标值更高的竞标,则将所述所计算的竞标值包括在所述兴趣消息中。在第一实施例中,更高的竞标值表示更高的竞标,并且在第二实施例中,更低的竞标值表示更高的竞标。如果网络节点不是根据本发明的接收兴趣消息的第一个节点,则当兴趣消息由网络节点接收到时,兴趣消息将已经包括竞标值。在一个实施例中,如果所计算的竞标值不表示比接收到的竞标值更高的竞标,则网络节点已经输掉该竞标。在可替换实施例中,如果所计算的竞标值不表示更高的竞标且与接收到的竞标值不相同,则网络节点已经输掉该竞标。如果网络节点已经输掉该竞标,则它不在将接收到的兴趣消息转发到上游节点之前修改该兴趣消息中的接收到的竞标值。
所述至少一个处理器可以进一步被配置成将竞标信息记录在所述至少一个存储器中,所述竞标信息表示所述网络节点是否将所述所计算的竞标值包括在所述兴趣消息中。该竞标信息(例如真或假值)在网络节点转发兴趣消息之前被存储,且可以稍后在网络节点接收到数据消息时被使用,例如如接下来两段中所描述的那样。
所述至少一个处理器可以被配置成从至少所述数据消息和所述竞标信息确定所述网络节点是否赢得了所述竞标。当网络节点不能够仅仅从数据消息确定它是否已经赢得竞标时,所记录的竞标信息是有益的。例如,如果满足以下条件则网络节点可能仅能够从数据消息确定它已经赢得竞标:它在转发兴趣消息时具有最高的竞标,这由竞标信息指示且不能从数据消息确定。这在下一段中更详细地解释。
在可替换实施例中,例如当数据消息包括赢得了竞标的网络节点的唯一标识符(例如,IP地址或MAC地址)或可选地包括多个唯一标识符(如果竞拍算法允许在一个兴趣路径内发生多个竞拍)时,网络节点能够仅仅从数据消息确定它是否已经赢得竞标。在另一个可替换实施例中,当竞标值不太可能相同时,如果网络节点将其计算的竞标值包括在兴趣消息中并且赢得的一个或多个竞标值被包括在数据消息中,则将所计算的竞标值本身存储在该至少一个存储器中。这允许网络节点通过将所存储的竞标值与接收到的数据消息中的赢得的(一个或多个)竞标值进行比较来确定它是否已经赢得竞标。
所述数据消息可以包括忽略计数器,所述忽略计数器表示如所述上游节点或另一上游节点所确定的输掉所述竞标的下游节点的数量,并且所述至少一个处理器可以被配置成从至少所述忽略计数器和所述竞标信息确定所述网络节点是否赢得了所述竞标。网络节点能够确定到目前为止它是否具有最高的竞标,而不是确定仍要接收兴趣消息的任何网络节点是否将要计算出更高的竞标值。如果进一步沿兴趣消息路径的网络节点计算出更高的竞标值,则它知道沿该路径的先前节点或沿该路径的相同组网络节点中的先前节点没有赢得竞标,且可以将返回数据消息的忽略计数器设置到没有赢得竞标的先前节点的数量。当忽略计数器不为零时,将所计算的竞标值包括在兴趣消息中的网络节点可以随后确定它没有赢得竞标。
所述至少一个处理器可以进一步被配置成在将所述兴趣消息转发到所述上游节点之前递增所述兴趣消息中的节点计数器,所述节点计数器表示下游节点的数量。这允许计算出更高竞标值的进一步沿兴趣消息路径的网络节点确定没有赢得竞标的先前节点的数量,并将该数量存储在它的至少一个存储器中,如果它将它的竞标值包括在它转发的兴趣消息中的话。例如,可以通过增加相对于参考数字(例如,0、1、2、3等)的值或通过减少相对于参考数字(例如,1000、999、998等)的值来使节点计数器递增。网络节点在它是参与竞拍的一组网络节点中的第一个或最后一个节点时(例如,当节点计数器达到或超过阈值时)可以重置节点计数器。
所述至少一个处理器可以进一步被配置成:如果所述网络节点将所述所计算的竞标值包括在所述兴趣消息中,则将输掉竞标者计数记录在所述至少一个存储器中,所述输掉竞标者计数基于包括在所述接收到的兴趣消息中且表示如所述网络节点所确定的输掉所述竞标的下游节点的数量的所述节点计数器。例如,输掉竞标者计数可以用于当网络节点接收到数据消息并确定它已经赢得竞标时设置忽略计数器。例如,所述网络节点可以增加包括在所述接收到的兴趣消息中的所述节点计数器,存储所述增加的节点计数器作为所述输掉竞标者计数,并转发包括所述增加的节点计数器的所述兴趣消息。可替换地,例如,所述网络节点可以存储所述接收到的节点计数器作为所述输掉竞标者计数,增加包括在所述接收到的兴趣消息中的所述节点,并转发包括所述增加的节点计数器的所述兴趣消息。
所述至少一个处理器可以被配置成:如果所述网络节点赢得了所述竞标,则在将所述数据消息转发到所述下游节点之前基于所述输掉竞标者计数来设置所述数据消息中的所述忽略计数器。例如,当兴趣消息被接收到时,忽略计数器可以被设置到作为输掉竞标者计数而存储的节点计数器。例如,这允许网络节点使用数据消息来向沿兴趣消息路径的先前节点或沿兴趣消息路径的相同组网络节点中的先前节点(这些先前节点仍要接收数据消息)通知它们没有赢得竞标。
根据本发明,第二目的以如下方式实现:接收兴趣消息的方法包括以下步骤:在至少一个通信接口上从下游节点接收兴趣消息,所述兴趣消息包括所请求的数据对象的名称;确定是否针对将所述所请求的数据对象存储在至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上(或者根据节点的转发规则在不同的通信接口(如果有的话)上)将所述兴趣消息转发到上游节点,所述兴趣消息取决于至少所述是否竞标的确定而包括所述所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所述所请求的数据对象的数据消息;从至少所述数据消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述数据消息转发到所述下游节点。所述方法可以由运行在可编程设备上的软件来执行。该软件可以是作为计算机程序产品而提供的。
所述接收到的兴趣消息可以进一步包括接收到的竞标值,并且所述方法可以进一步包括以下步骤:如果所述是否竞标的确定是肯定的并且所述所计算的竞标值表示比所述接收到的竞标值更高的竞标,则将所述所计算的竞标值包括在所述兴趣消息中。
所述方法可以进一步包括将竞标信息记录在所述至少一个存储器中,所述竞标信息表示所述网络节点是否将所述所计算的竞标值包括在所述兴趣消息中。所述从至少所述数据消息确定所述网络节点是否赢得了所述竞标的步骤可以包括从至少所述数据消息和所述竞标信息确定所述网络节点是否赢得了所述竞标。所述接收到的数据消息可以包括忽略计数器,所述忽略计数器表示如所述上游节点或另一上游节点所确定的输掉所述竞标的下游节点的数量,并且所述从至少所述数据消息确定所述网络节点是否赢得了所述竞标的步骤可以包括从至少所述忽略计数器和所述竞标信息确定所述网络节点是否赢得了所述竞标。
所述方法可以进一步包括在将所述兴趣消息转发到所述上游节点之前递增所述兴趣消息中的节点计数器,所述节点计数器表示下游节点的数量。所述方法可以进一步包括:如果所述网络节点将所述所计算的竞标值包括在所述兴趣消息中,则将输掉竞标者计数记录在所述至少一个存储器中,所述输掉竞标者计数基于包括在所述接收到的兴趣消息中且表示如所述网络节点所确定的输掉所述竞标的下游节点的数量的所述节点计数器。所述方法可以进一步包括:如果所述网络节点赢得了所述竞标,则在将所述数据消息转发到所述下游节点之前基于所述输掉竞标者计数来设置所述数据消息中的所述忽略计数器。
根据本发明,第三目的以如下方式实现:端点节点包括至少一个通信接口和至少一个处理器,所述至少一个处理器被配置成:确定所请求的数据对象的名称;创建包括所述所请求的数据对象的所述名称以及用于插入竞标值的竞标字段的兴趣消息,所述竞标值被留着未定义,以便指示高速缓存所述所请求的数据对象的权限的竞拍应当开始;以及在所述至少一个通信接口上将所述兴趣消息发射到上游节点。
根据本发明,第四目的以如下方式实现:网络节点包括至少一个通信接口、至少一个存储器以及至少一个处理器,所述至少一个处理器被配置成:在所述至少一个通信接口上从下游节点接收针对数据对象的HTTP请求;确定是否针对将所述所请求的数据对象存储在所述至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上将所述HTTP请求转发到上游节点,所述HTTP请求取决于至少所述是否竞标的确定而包括所述所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所述所请求的数据对象的响应消息;从至少所述响应消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述响应消息转发到所述下游节点。
根据本发明,第五目的以如下方式实现:接收HTTP请求的方法包括以下步骤:在至少一个通信接口上从下游节点接收针对数据对象的HTTP请求;确定是否针对将所述所请求的数据对象存储在至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上(或者根据节点的转发规则在不同的通信接口(如果有的话)上)将所述HTTP请求转发到上游节点,所述HTTP请求取决于至少所述是否竞标的确定而包括所述所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所述所请求的数据对象的响应消息;从至少所述响应消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述响应消息转发到所述下游节点。所述方法可以由运行在可编程设备上的软件来执行,该软件可以是作为计算机程序产品而提供的。
此外,提供了用于实施本文中所描述的方法的计算机程序以及存储计算机程序的非暂时性计算机可读储存介质。计算机程序可以例如由现有设备下载或被上传到现有设备,或者可以在制造这些系统时被存储。
非暂时性计算机可读储存介质存储至少一个软件代码部分,所述软件代码部分在被计算机执行或处理时被配置成执行可执行操作,所述可执行操作包括:在至少一个通信接口上从下游节点接收兴趣消息,所述兴趣消息包括所请求的数据对象的名称;确定是否针对将所述所请求的数据对象存储在至少一个存储器中进行竞标;计算竞标值;在所述至少一个通信接口上将所述兴趣消息转发到上游节点,所述兴趣消息取决于至少所述是否竞标的确定而包括所述所计算的竞标值;在所述至少一个通信接口上从所述上游节点接收包括所述所请求的数据对象的数据消息;从至少所述数据消息确定所述网络节点是否赢得了所述竞标;如果所述网络节点赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器中;以及在所述至少一个通信接口上将所述数据消息转发到所述下游节点。
如本领域技术人员将领会的那样,本发明的方面可以体现为设备、方法或计算机程序产品。相应地,本发明的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,这些实施例在本文中一般全部可以被称为“电路”、“模块”或“系统”。本公开中描述的功能可以被实现为由计算机的处理器/微处理器执行的算法。此外,本发明的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有体现(例如,存储)在其上的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读储存介质。计算机可读储存介质可以是例如但不限于电子、磁、光学、电磁、红外或半导体系统、装置或设备、或者前述各项的任何合适组合。计算机可读储存介质的更具体示例可以包括但不限于以下内容:具有一条或多条线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光学储存设备、磁储存设备或前述各项的任何合适组合。在本发明的上下文中,计算机可读储存介质可以是下述任何有形介质:其可以包含或存储供指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合使用的程序。
计算机可读信号介质可以包括具有体现在其中的计算机可读程序代码的传播数据信号,该传播数据信号例如在基带中或作为载波的一部分。这种传播信号可以采取多种形式中的任一种,包括但不限于电磁、光学或其任何合适组合。计算机可读信号介质可以是下述任何计算机可读介质:其不是计算机可读储存介质,且可以传送、传播或传输供指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合使用的程序。
可以使用任何适当介质(包括但不限于无线、有线、光纤、线缆、RF等或前述各项的任何合适组合)来传输体现在计算机可读介质上的程序代码。用于实施针对本发明的方面的操作的计算机程序代码可以以一个或多个编程语言的任何组合编写,该一个或多个编程语言包括面向对象的编程语言(诸如,Java(TM)、Smalltalk、C++等等)以及传统的过程编程语言(诸如,“C”编程语言或类似的编程语言)。该程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络而连接到用户的计算机,或者可以做出到外部计算机的连接(例如,通过使用互联网服务提供商的互联网)。
下面参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的方面。将理解的是,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供到通用计算机、专用计算机或其他可编程数据处理装置的处理器(特别地,微处理器或中央处理单元(CPU))以产生机器,使得经由计算机、其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,该计算机可读介质可以指示计算机、其他可编程数据处理装置或其他设备以特定方式起作用,使得存储在该计算机可读介质中的指令产生包括实现流程图和/或框图的一个或多个框中指定的功能/动作的指令的制造品。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使要在计算机、其他可编程装置或其他设备上执行的一系列操作步骤产生计算机实现过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。
附图中的流程图和框图图示了根据本发明的各种实施例的设备、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示包括用于实现指定的(一个或多个)逻辑功能的一个或多个可执行指令的模块、段或代码部分。还应当注意的是,在一些可替换实现方式中,框中提到的功能可以不按图中指出的次序发生。例如,取决于所涉及的功能,接续地示出的两个框事实上可以基本上同时执行,或者这些框有时可以以相反的次序执行。还将注意的是,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
附图说明
本发明的这些以及其他方面从附图中显而易见,并将参考附图作为示例而进一步阐明,在附图中:
图1是本发明的网络节点的实施例的框图;
图2是本发明的方法的实施例的流程图;
图3示出了包括多个节点的网络路径的示例;
图4是示出本发明的方法的实施例中的在接收到兴趣消息之后执行的过程的流程图;
图5是示出图4的一个步骤的细节的流程图;
图6是示出图4的一个步骤的细节的流程图;
图7是示出图4的一个步骤的细节的流程图;
图8是示出本发明的方法的实施例中的在接收到数据消息之后执行的过程的流程图;
图9是示出图8的一个步骤的细节的流程图;
图10是示出图8的一个步骤的细节的流程图;
图11示出了被插入到本发明的兴趣消息、数据消息以及PIT中的字段和值的示例;
图12是用于执行本发明的方法的示例性数据处理系统的框图;以及
图13是本发明的端点节点的框图。
附图中的对应元件由相同的附图标记标示。
具体实施方式
本发明涉及网络节点,该网络节点包括至少一个通信接口、至少一个存储器以及至少一个处理器。在图1中所示出的实施例中,网络节点15包括两个通信接口31-2、一个存储器5以及一个处理器7。处理器7被配置成在通信接口31上从下游节点14接收兴趣消息。兴趣消息包括所请求的数据对象的名称。处理器7进一步被配置成确定是否针对将所请求的数据对象存储在存储器5中进行竞标。处理器7进一步被配置成计算竞标值。处理器7进一步被配置成在通信接口32上将兴趣消息转发到上游节点16。兴趣消息取决于至少是否竞标的确定而包括所计算的竞标值。处理器7进一步被配置成在通信接口32上从上游节点16接收包括所请求的数据对象的数据消息。处理器7进一步被配置成从至少数据消息确定网络节点是否赢得了竞标。处理器7进一步被配置成:如果网络节点赢得了竞标,则将数据对象存储在存储器5中。处理器7进一步被配置成在通信接口31上将数据消息转发到下游节点14。在该描述中,网络节点15还被称为“高速缓存节点”(以将它与可能未被配置成存储数据项目以及可能未被配置成改变兴趣和数据消息的兴趣/数据路径上的其他节点区分开)。
网络节点15可以是例如专用网络路由器,但还可以例如是用户设备(具有或不具有用户界面),该用户设备例如是移动电话或车辆中嵌入的设备。该至少一个处理器可以包括一个或多个通用处理器和/或一个或多个专用处理器。处理器7可以是例如ARM处理器。该至少一个存储器可以包括例如一个或多个磁硬盘、一个或多个光盘驱动器和/或一个或多个固态存储器。与像待定兴趣表(PIT)或网络节点配置之类的其他信息相比,(一个或多个)数据对象可以存储在相同的存储器中或不同的存储器中。该至少一个通信接口可以包括例如一个或多个光学端口和/或一个或多个以太网端口。
本发明的接收兴趣消息的方法包括至少八个步骤,见图2。步骤11包括在至少一个通信接口上从下游节点接收兴趣消息,该兴趣消息包括所请求的数据对象的名称。步骤13包括确定是否针对将所请求的数据对象存储在至少一个存储器中进行竞标。步骤15包括计算竞标值。例如,步骤15可以在步骤13之后或之前执行。当在步骤13中确定不竞标时,可以跳过步骤15。在步骤15中计算的竞标值可以被用在步骤13中以确定是否进行竞标。
步骤17包括在该至少一个通信接口上将兴趣消息转发到上游节点,该兴趣消息取决于至少是否竞标的确定而包括所计算的竞标值。步骤19包括在该至少一个通信接口上从上游节点接收包括所请求的数据对象的数据消息。步骤21包括从至少数据消息确定网络节点是否赢得了竞标。步骤23包括:如果网络节点赢得了竞标,则将数据对象存储在该至少一个存储器中。步骤25包括在该至少一个通信接口上将数据消息转发到下游节点。
换言之,位于兴趣消息传播通过的路径上的高速缓存节点参与竞拍,以赢得高速缓存将响应于该兴趣消息而(通过数据消息)返回的数据的权限。执行关于高速缓存的权限的竞拍允许请求路径上的高速缓存节点关于它们中的哪一个将要存储数据对象的副本进行协调,从而避免由于个体决策而导致的冗余高速缓存。为了限制推选并发信号通知竞拍获胜者的开销,不集中地执行竞拍,而是以分布式的方式执行竞拍:当前最高的竞标值被捎带在兴趣消息中,并且每个高速缓存节点基于兴趣消息中的竞标值以及高速缓存本身可以发出的自己的竞标(高速缓存节点可以发出的竞标的值可以基于该节点的局部参数以及请求上下文)来决定是否进行竞标。
如果高速缓存节点决定进行竞标,则它将在将兴趣消息转发到下一个节点之前用其自己的竞标值代替兴趣消息中的当前最高竞标。哪个节点已经赢得竞拍的最终决定通过将它捎带在返回数据消息中而被传送到参与的高速缓存节点。该方案允许高速缓存节点在关于它们中的哪个将要高速缓存项目的决定中进行合作,以及(可选地)使带到该决定的信息丰富(利用请求上下文),而不需要额外或繁重的信令。
对于要竞标的值的选择,高速缓存节点可以使用局部信息和请求上下文这两者。例如,描述请求上下文的参数可以被捎带在兴趣消息中以便最小化开销,或者可以被包括在特殊消息中。
为了控制数据冗余度,多个高速缓存节点可以高速缓存相同的数据对象。这可以通过将请求路径上的高速缓存节点群集在不同组中并针对每个组执行单独的竞拍而实现。在图3中,描绘了11个节点,其中9个是高速缓存节点11-19,1个是请求/兴趣所源自的用户设备31,以及1个是数据对象所源自的服务器35。高速缓存节点11-19被群集在三个组331-3中。某个数据对象被高速缓存在组332的高速缓存节点15中以及组333的高速缓存节点19中。例如,关于数据冗余度的决定可以基于局部信息和请求上下文的组合,或者可能由网络管理员基于网络统计来决定。
不在组331中高速缓存某个数据对象,因为该组中的高速缓存节点已经保持非常受欢迎的内容(例如,因为这些节点被定位成接近于另一个用户设备)并且由此没有组331的高速缓存节点参与了竞拍。这些高速缓存节点使用了竞拍阈值以确定是否参与竞拍:如果高速缓存节点具有比竞拍阈值更旧的数据,则它有资格参加竞拍。竞拍阈值的值可以基于局部和全局信息(如果可用的话)的组合,或可能由网络管理员基于网络统计来决定。已经基于所请求的数据对象的名称确定了图3中描绘的路由路径。
高速缓存节点可以在确定是否进行竞标时以及在计算竞标值时考虑一个或多个参数。以下是高速缓存节点可以考虑的局部方面的示例:
LRU:最近最少使用的项目的时间戳。应当适当地对LRU值进行加权,以便避免其中项目请求可能是实时应用的结果(像传感器输出)的情况,该实时应用的较旧的值未来是没有用的,且可能导致高速缓存资源的浪费。
LFU:最不频繁使用的项目的请求计数。LRU和LFU反映了如节点所感知的已经高速缓存的数据的受欢迎度。
BWIN:传入数据链路的带宽。在传入数据链路的带宽小的情况下,高速缓存节点想要竞标得更高以便避免较小链路上的更多业务量。BWIN反映了围绕高速缓存节点的网络的当前条件。附加地或可替换地,可以考虑传出数据链路的带宽。
CS:节点的高速缓存大小。CS反映了节点的高速缓存的高速缓存容量。
RC:高速缓存速率(即,每单位时间高速缓存的对象的数目)。传入数据占高速缓存大小的分数可以提供对高速缓存节点的性能的估计。RC反映了数据当前在节点的高速缓存中改变得有多快。因此,权重可以被分配到CS和/或RC,这将帮助更重要的高速缓存节点竞标得更高。
INC:相同兴趣消息到达节点但未被高速缓存的次数的计数。维持先前请求但从未高速缓存的兴趣的暂时计数。该计数有助于搜索高度受欢迎的数据项目,该数据项目然后可以在竞标过程期间被分配有更高的权重。INC反映了新接收到的数据的受欢迎度。
附加地,存在高速缓存节点可以考虑的若干个非局部参数(“请求上下文”):
HOP:与请求者的距离(以跳表示)。与高速缓存节点远离进行请求的用户(设备)的跳数有关的信息可以有助于针对进一步远离该用户(设备)的节点分配低的高速缓存概率,并且反之亦然。
L:兴趣消息的时延。
可以例如通过确定上面的局部和上下文参数中的一个或多个的加权和来计算竞标值,其中每个权重对每个方面给出更多或更少的强调。权重可以是例如依赖于网络的或者仅由网络管理员随意设置。
例如,可以由三个竞争节点(R1-R3)利用以下等式来计算竞标:
Figure 930569DEST_PATH_IMAGE003
Figure 50972DEST_PATH_IMAGE004
等式(1)。
对于该示例,假定所有三个节点将基于三个参数(即,每个节点的最近最少使用(LRU)值、最不频繁使用(LFU)值以及高速缓存大小(CS))来决定它们的竞标。可以从该示例中推断出针对任何其他种类的参数的等式的使用。节点不交换与它们对网络的视点有关的信息,且因此可以具有与例如每个参数的可观察范围有关的不同设置。例如,从R1的观点来看,LRU值的最大观察范围可能是1秒,而从R3的观点来看,LRU值的最大观察范围可能是10秒。
为了该示例,我们假定高速缓存节点具有竞标等式中使用的每个参数的以下观察/估计值。
表1
节点R1 节点R2 节点R3
LRU(ms) 10 200 1000
LRU<sub>最大范围</sub> 1000 1000 1000
LFU(次/秒) 50 10 10
LFU<sub>最大范围</sub> 100 100 20
CS(MB) 200 500 500
CS<sub>最大范围</sub> 1000 1000 1000
α<sub>1</sub> 2 2 2
α<sub>2</sub> 2 2 2
α<sub>3</sub> 2 2 10
w<sub>1</sub> 0.4 0.3 0.4
w<sub>2</sub> 0.4 0.4 0.3
w<sub>3</sub> 0.2 0.3 0.3
下面给出关于上面呈现的值的重要性的一些澄清:
LRU:由R1存储的最近最少使用的数据对象是最近访问的,而由R3存储的最近最少使用的数据对象是大约2秒之前访问的。关于该参数,这应当导致R3计算出比R1和R2更高的竞标(长时间未被访问的数据对象优选地是用于代替的第一候选)。所有的节点恰好具有与该参数的最大值有关的相同视角。
LFU:由R1存储的最不频繁使用的数据对象比由其他节点存储的最不频繁使用的数据对象被访问地频繁得多。这意味着:关于LFU值,R1应当报价出低的竞标。由于该参数的高值应当优选地转化成低竞标值,因此在等式1中使用该参数的倒数,即
Figure 96288DEST_PATH_IMAGE005
或LFU-1,这两者都以分子和分母(针对范围值)表示。节点R3具有与该参数的最大值是什么有关的不同视点,这将导致与节点R2不同的针对该参数的竞标,即使它们实际上具有相同的LFU值。
CS:与其他节点相比,节点R1具有更小的可用高速缓存,这导致等式1中的来自R1的关于该参数的更小竞标值(在具有小存储器的高速缓存中较不经常地进行高速缓存可以是优选的)。由于这还可以被视为该节点的弱点,因此还优选的是,将确定R1是否将高速缓存数据对象的是最重要的方面。由于该原因,对该参数给出的权重(R1的w3)比针对其他两个参数(LRU和LFU)的权重小得多,以便负面地影响数据对象被高速缓存在具有最小高速缓存大小的节点处的可能性。
灵敏度参数(α13):这些值确定每个参数在其范围内的灵敏度,这是由于它们定义了反正切函数的“陡峭度”。可以在大多数情况下使用默认值(例如,在该示例中为2),但如果对于具体节点而言参数被认为足够重要,并且在落入该参数的范围内的竞标值中要求更高的粒度,则可以增加该参数的灵敏度值(例如,在该示例中,将针对R3的α3增加至10)。
参数权重(w1-w3):这些权重确定每个参数对节点最终竞标值的贡献。取决于节点的优势或劣势,不同参数可以更重要或更不重要。这些参数可以由应用或网络管理员来设置,并且它们可以是半静态可调整的。在该示例中,针对节点的所有权重之和合计为1(在该实施例中,竞标值是处于0与1之间的值)。
使用上面的信息,可以针对每个节点求解等式,以便找到它们将使用的竞标值。通过填入在表1中提及的值,可以确定每个节点的竞标值。
R1竞标值:
Figure 68661DEST_PATH_IMAGE006
等式(2)
Figure 148612DEST_PATH_IMAGE007
R2竞标值:
Figure 174337DEST_PATH_IMAGE008
等式(3)
Figure 441371DEST_PATH_IMAGE009
R3竞标值:
Figure 905850DEST_PATH_IMAGE010
等式(4)
Figure DEST_PATH_IMAGE011
由于Bid(R3)>Bid(R2)>Bid(R1),因此节点R3是竞标/竞拍的获胜者,并且它将要在数据对象被返回时高速缓存该数据对象。
对于每个竞拍组,可以存在0个、1个或更多个竞标/竞拍获胜者,即,赢得高速缓存的权限的高速缓存节点。例如,如果竞拍组中的所有高速缓存节点都有具有高于它们的LRU值的值的竞拍阈值(这意味着这些节点已经高速缓存了非常受欢迎/最近的数据)并且没有可用的高速缓存槽存在,则这些节点中没有一个将要竞标,并且因此,在该竞拍组中不存在获胜者,并且这些节点中没有一个将要高速缓存兴趣消息中请求的数据对象。尽管优选地以这种方式实现竞拍机制以允许竞拍组中仅一个高速缓存节点将最终对项目进行高速缓存,但是竞拍机制可以可替换地对在竞拍组中竞标出相同最高值的所有高速缓存节点授予高速缓存的权限。
为了支持执行竞拍,可以利用以下两个字段扩展兴趣消息:
bid_win(获胜竞标值):该字段包含当前获胜的竞标。每当当前节点的竞标高于该值时,当前节点都将更新该字段。如果当前节点的竞标低于或等于该字段的值,则该字段保持不变。在可替换实施例中,如果当前节点的竞标等于该字段的值时,则也更新该字段。
bid_num(节点计数器):该字段保持跟踪参与的高速缓存节点的数目。因此,每个高速缓存节点将使该字段递增1。如果bid_exp已经被定义(见下面的配置信息)并且bid_num超过bid_exp,则bid_num将重置到零并且bid_win将被设置为空。这还将利用新的一组高速缓存节点标志着前一个竞拍的结束以及新竞拍的开始。
附加地,兴趣消息可以携带“请求上下文”参数的列表,像下面所提及的参数:
hop_count:该字段保持跟踪与请求者的距离。每个路由器将使该字段递增1。
latency:该字段保持跟踪由兴趣消息经历的时延。每个路由器利用从前一跳测量/估计的时延来使它增加。
为了支持执行竞拍,可以利用以下字段扩展数据消息:
ignore(忽略计数器):该字段表示没有赢得竞拍且因此不会高速缓存数据对象的即将到来的高速缓存节点的数目。实质上,该字段保持跟踪数据消息在它将被高速缓存之前必须经过多少个高速缓存节点,并且因此,它的值在每个跳处减少。当它达到值0时,可以高速缓存该数据(取决于PIT(见下面)的“高速缓存”字段是被设置为真还是假),并且该字段“ignore”因此将被设置为该特定高速缓存节点的值bid_ig(见下面的PIT):也就是说,重置需要忽略的随后高速缓存节点的计数。
为了支持执行竞拍,可以利用以下两个字段扩展存储在节点的至少一个存储器中的PIT:
cache(竞标信息):如果高速缓存节点已经更新兴趣消息的bid_win字段,则将该字段设置为真,否则将它设置为假。“真”意味着:高速缓存节点已经给出它存储传入数据对象的可用性(即,它已经关于高速缓存数据对象进行竞标)。“假”意味着:高速缓存节点将关于进行高速缓存而忽略传入数据对象。
bid_ig(输掉竞标者计数):如果高速缓存字段为真,则将该字段设置为兴趣消息的bid_num字段的值,否则它将仍然为空。
此外,为了支持竞拍,高速缓存节点可以存储附加参数,如下文中所描述:
bid_exp:该字段表示可参与一个竞拍组的高速缓存节点的数目。如果它不存在,则兴趣路径上的所有高速缓存将参与相同的竞拍。
auction_thresh(竞拍阈值):具有比该阈值更近的数据的高速缓存节点不会在竞拍中出现。如果它不存在,则高速缓存节点将在竞拍中出现,与其所存储的数据的新鲜度无关。
借助于图4至10来解释发射兴趣消息的过程以及接收数据消息的过程的示例。出于该示例的目的,由内容请求者(即,兴趣消息所源自的节点)发送出的兴趣消息将看起来像没有任何附加字段的标准兴趣消息。这允许内容请求者是竞拍不可知的。
在可替换实施例中,内容请求者可能知道竞拍机制,且可以将附加字段(例如,bid_winbid_num)包括在兴趣消息中以便于竞拍。这些字段的值将被留着为空或未定义,或者将包含不处于实际潜在值的范围内的值,以向路径中的第一个节点发信号通知竞标应当在那里开始。
图4是示出本发明的方法的实施例中的在接收到兴趣消息之后执行的过程的流程图。高速缓存节点将在步骤41中接收到传入兴趣消息之后在步骤42中确定所请求的数据对象是否被存储在其高速缓冲存储器中。如果所请求的对象已经被高速缓存节点所高速缓存,则它在步骤43中确定竞拍因此结束,它在步骤44中做出包括该数据对象的数据消息,并在步骤45中在兴趣路径上将该数据消息发送回。
如果所请求的对象未被高速缓存节点所高速缓存,则它在步骤46中检查兴趣消息是否包括竞拍专用字段,诸如bid_winbid_num。如果不是,则高速缓存节点确定它是参与竞拍的兴趣路径上的第一个节点,并执行步骤50。在图5中提供了步骤50的细节。
如果兴趣消息包括竞拍专用字段,则高速缓存节点在步骤47中确定它不是参与竞拍的兴趣路径上的第一个节点。它然后在步骤48中检查bid_num是否等于bid_exp-1,且如果bid_num等于bid_exp-1(即,如果高速缓存节点是新竞拍组的第一个节点),则执行步骤49(且因此应当忽略在兴趣消息中携带的bid_win字段)。如果bid_num不等于bid_exp-1(即,高速缓存节点是与其前任相同的竞拍组的一部分),则高速缓存节点执行步骤51。在图6和7中分别提供了步骤49和51的细节。
高速缓存节点在它的实际到期时间之前超控bid_exp值以结束当前竞拍可以是可能的。当高速缓存节点具有低带宽上行链路时或者当高速缓存节点被定位在不同类型的网络的接合点处(例如,在固定网络和车载自组织网络(VANET)的边界处或者在大陆链路之间的边界处)时,这可以是有益的。
参与竞拍的第一个高速缓存节点将首先在步骤81中检查其竞拍阈值(如果已定义的话),见图5,并且如果在节点中高速缓存的数据比竞拍阈值更旧,或者如果仍存在高速缓存槽可用,则它将决定进行竞标。为了这样做,它将在步骤82中例如以先前所描述的方式计算竞标值。它然后将在步骤83中将高速缓存条目设置成在PIT中为真,并在步骤84中将bid_ ig条目设置成在PIT中为0。在步骤84之后,高速缓存节点将在步骤53中将请求上下文添加到兴趣消息,在步骤54中将具有值0的bid_num字段添加到兴趣消息,并在步骤88中如由规则ICN转发策略所定义的那样将兴趣消息转发到下一跳之前,在步骤55中将具有所计算的竞标值的bid_win字段添加到兴趣消息作为其值。
如果在节点中高速缓存的数据比竞拍阈值更新并且不存在高速缓存槽可用,则高速缓存节点将在步骤85中决定不进行竞标。它然后将在步骤86中将高速缓存条目设置成在PIT中为假,并将在步骤87中留着bid_ig条目在PIT中未定义。在步骤87之后,高速缓存节点将在步骤56中将请求上下文添加到兴趣消息,在步骤57中将具有值0的bid_num字段添加到兴趣消息,并在步骤88中将兴趣消息转发到下一跳之前,在步骤58中将没有值的bid_win字段添加到兴趣消息。
新竞拍组的第一个高速缓存节点将首先在步骤81中检查其竞拍阈值(如果已定义的话),见图6,并且如果在节点中高速缓存的数据比竞拍阈值更旧或者如果仍存在高速缓存槽可用,则它将决定进行竞标。为了这样做,它将在步骤82中例如以先前所描述的方式计算竞标值。它然后将在步骤83中将高速缓存条目设置成在PIT中为真,并在步骤84中将bid_ ig条目设置成在PIT中为0。在步骤84之后,高速缓存节点将在步骤63中更新兴趣消息中的请求上下文,在步骤64中将兴趣消息的bid_num字段设置为0,并在步骤88中将兴趣消息转发到下一跳之前,在步骤65中将bid_win字段设置为所计算的竞标值。
如果在节点中高速缓存的数据比竞拍阈值更新并且不存在高速缓存槽可用,则高速缓存节点将在步骤85中决定不进行竞标。它然后将在步骤86中将高速缓存条目设置成在PIT中为假,并将在步骤87中留着bid_ig条目在PIT中未定义。在步骤87之后,高速缓存节点将在步骤66中更新兴趣消息中的请求上下文,在步骤67中将兴趣消息的bid_num字段设置为0,并在步骤88中将兴趣消息转发到下一跳之前,在步骤68中将兴趣消息的bid_win字段设置为没有值。
如果高速缓存节点处于与其前任相同的竞拍组中,则它将首先在步骤81中检查其竞拍阈值(如果已定义的话),见图7,并且如果在节点中高速缓存的数据比竞拍阈值更旧或者如果仍存在高速缓存槽可用,则它将决定进行竞标。为了这样做,它将在步骤82中例如以先前所描述的方式计算竞标值。它然后将在步骤71中检查所计算的竞标是否高于接收到的兴趣消息的bid_win值。如果是这样,则它将在步骤83中将高速缓存条目设置成在PIT中为真,并在步骤72中将bid_ig条目设置成在PIT中为bid_num+1。在步骤72之后,高速缓存节点将在步骤73中更新兴趣消息中的请求上下文,在步骤74中使兴趣消息的bid_num字段的值增加1,并在步骤88中将兴趣消息转发到下一跳之前,在步骤75中将bid_win字段设置为所计算的竞标值。
如果在步骤71中所计算的竞标不高于接收到的兴趣消息的bid_win值,或者如果在节点中高速缓存的数据比竞拍阈值更新并且不存在高速缓存槽可用,则高速缓存节点将在步骤85中决定不进行竞标。它然后将在步骤86中将高速缓存条目设置成在PIT中为假,并将在步骤87中留着bid_ig条目在PIT中未定义。在步骤87之后,高速缓存节点将在步骤76中更新兴趣消息中的请求上下文,在步骤77中使兴趣消息的bid_num字段的值增加1,并在步骤88中将兴趣消息转发到下一跳之前,在步骤78中留着兴趣消息的bid_win字段的值不变。
一旦兴趣消息到达保持数据对象的副本的节点(已高速缓存数据对象的副本的中间节点或产生节点本身,例如图3的服务器35),该节点就会将数据对象打包在数据消息中,并将在兴趣路径上将它发送回。由保持数据对象的副本的节点发送出的数据消息可以具有标准数据消息的格式,这允许内容提供商是竞拍不可知的。在可替换实施例中,内容提供商可以知道竞拍机制,且可以将附加字段(例如,ignore字段)包括在数据消息中以便于竞拍。图4至7的流程图描述了高速缓存节点接收针对所请求的数据对象的兴趣消息,针对该所请求的数据对象,当前没有兴趣被记录在PIT中。当高速缓存节点接收到已经在PIT中针对其而记录兴趣的兴趣消息时,下游节点将与已经记录的兴趣/请求数据对象名称相关联,但是,将不转发兴趣消息。因此,对于涉及该新兴趣的内容,竞拍在该节点处结束。
图8是示出本发明的方法的实施例中的在接收到数据消息之后执行的过程的流程图。一旦节点在步骤120中接收到数据消息,它就首先在步骤121中检查在其PIT中是否存在针对数据对象的任何条目。如果在PIT中不存在针对数据对象的条目,则该节点在步骤127中确定数据消息已经到达其最终目的地(即,兴趣消息的发起者),并且不采取进一步的动作。如果在PIT中存在针对数据对象的条目,则该节点在步骤122中确定该节点是关于接收到的数据消息的中间节点。如果该节点在步骤123中确定它支持高速缓存,则它在步骤124中处置在PIT中记录的第一兴趣。在图9中提供了步骤124的细节。如果该节点在步骤123中确定它不支持高速缓存,则它在步骤128中在与针对该数据对象而在PIT中记录的一个或多个兴趣相关联的(一个或多个)通信接口上转发数据消息(不变)。
在步骤124中已经处置PIT中的第一兴趣之后,该节点在步骤125中确定在PIT中是否存在针对该数据对象的任何其他兴趣。如果不存在其他兴趣被记录在PIT中,则该节点将在步骤129中停止该过程。如果存在其他兴趣被记录在PIT中,则将针对这些其他兴趣中的每一个执行步骤126。在图10中提供了步骤126的细节。
对于PIT中的第一兴趣,高速缓存节点将在步骤141中检查其PIT中的cache字段的值是否被设置为“真”,见图9。如果是这样,则它将在步骤91中检查数据消息是否包含ignore字段,且如果是,则检查ignore字段是否被设置为0。如果ignore字段不存在,则这意味着没有(参与竞拍的)其他上游节点已经高速缓存了数据对象。如果ignore字段不存在或被设置为0,则该节点将在步骤142中继续高速缓存项目,且然后将在步骤143中将数据消息的ignore字段设置为其PIT的bid_ig字段的值。在步骤143之后,在步骤144中做出具有新ignore值的数据消息,并在步骤145中在兴趣路径上将该数据消息进一步向下转发。
然而,如果在步骤91中确定ignore字段的值大于0,则该节点将在步骤93中决定不高速缓存该数据项目。该节点然后将在步骤144中做出具有新ignore值的数据消息以及在步骤145中在兴趣路径上将该数据消息进一步向下转发之前,在步骤95中使ignore字段的值减少1。
相反,如果在步骤141中确定其PIT中的cache字段的值被设置为“假”,则该节点将在步骤92中决定不高速缓存该数据对象。然后,该节点将在步骤145中沿兴趣路径进一步向下转发未触及的数据消息,即,转发到它从其接收到兴趣消息的下游节点。
对于除在PIT中记录的第一兴趣外的兴趣而言,高速缓存节点将在步骤141中检查其PIT中的cache字段的值是否被设置为“真”,见图10。如果是这样,则该节点将在步骤106中检查数据对象是否已经被高速缓存,例如当处理针对该对象的PIT中的先前兴趣时。如果否,则该节点将在步骤142中继续高速缓存该数据对象,且然后继续到步骤143。如果该数据对象已经被高速缓存,则跳过步骤142,并且在步骤106之后直接执行步骤143。在步骤143中,该节点会将数据消息的ignore字段设置为其PIT的bid_ig字段的值。在步骤143之后,在步骤144中做出具有新ignore值的数据消息,并在步骤145中在兴趣路径上将该数据消息进一步向下转发。
相反,如果在步骤141中确定其PIT中的cache字段的值被设置为“假”,则该节点将在步骤102中决定不高速缓存该数据对象。然后,该节点将在步骤105中将该数据消息的ignore字段设置为0,在步骤144中做出具有新ignore值的数据消息,并在步骤145中在兴趣路径上将该数据消息进一步向下转发。
在可替换实施例中,可以期望的是,在请求者与数据源之间仅高速缓存数据一次。在该情况下,路径上的所有节点可以参加相同的竞拍(即,将存在仅一个竞拍组),并且高速缓存节点可以不存储bid_exp字段(或者可以忽略bid_exp字段的值)。例如,当bid_exp具有特殊值(例如0)时,高速缓存节点可以知道存在仅一个竞拍组。
如果竞拍组的数目由数据对象的源来决定,则bid_exp字段也可能不存在。更多的字段可以附着到兴趣消息,这可以有助于将额外的信息传送到上行链路高速缓存节点。该信息然后可以由具有所请求的内容的高速缓存节点或由服务器来使用,以便然后选择bid_ exp的适当值。因此,取代在从用户到源的路上设置bid_exp,在该情况下,将在从服务器向着用户的返回路径上设置bid_exp值。
图11示出了被插入到本发明的兴趣消息、数据消息以及PIT中的字段和值的示例。图11描绘了与图3相同的网络路径。在该示例中,节点的竞标仅基于其LRU值,并且3个节点的bid_exp和3秒的auction_thresh被使用。在该示例中,网络节点仅当其LRU值高于或等于竞拍阈值auction_thresh时才进行竞标。LRU值表示最近最少使用的高速缓存数据对象是在多久以前被访问的。
兴趣消息所源自的用户设备31是竞拍不可知的,即,它将不具有附加字段的传统兴趣消息发射到高速缓存节点11。高速缓存节点11从用户设备31接收兴趣消息,但决定不进行竞标,这是因为其LRU值(1秒)低于竞拍阈值。它将其PIT的竞标信息(例如,cache字段的值)设置为假,并留着其PIT的输掉竞标者计数器(例如,bid_ig字段的值)未定义。由于它是参加竞拍的第一个节点,因此它在将兴趣消息转发到高速缓存节点12之前确实将bid(还被称为bid_win)和bid_num字段添加到兴趣消息。留着竞标值未定义,并且将bid_num值(即,节点计数器)设置为0。
高速缓存节点12从(下游)高速缓存节点11接收兴趣消息,但决定不进行竞标,这是因为其LRU值(1秒)低于竞拍阈值。它将其PIT的竞标信息(例如,cache字段的值)设置为假,并留着其PIT的输掉竞标者计数(例如,bid_ig字段的值)未定义。关于兴趣消息,高速缓存节点12留着竞标值未定义,将bid_num值(即,节点计数器)增加到2,且然后将兴趣消息转发到(上游)高速缓存节点13
高速缓存节点13从高速缓存节点12接收兴趣消息,但决定不进行竞标,这是因为其LRU值(2秒)低于竞拍阈值。它将其PIT的竞标信息(例如,cache字段的值)设置为假,并留着其PIT的输掉竞标者计数(例如,bid_ig字段的值)未定义。关于兴趣消息,高速缓存节点13留着竞标值未定义,将bid_num值增加到2,且然后将兴趣消息转发到高速缓存节点14
高速缓存节点14从高速缓存节点13接收兴趣消息,并首先确定bid_num等于bid_ exp-1,即,高速缓存节点14是新竞拍组的第一个节点。高速缓存节点14然后决定计算竞标值,这是因为其LRU值(5秒)高于竞拍阈值。它计算出竞标值为5(等于LRU值)。在可替换实施例中,竞标值被归一化在值0与1之间(LRU值5可以根据等式1而归一化,且例如取得值0.5)。高速缓存节点14然后将其PIT的竞标信息(例如,cache字段的值)设置为真,并将其PIT的输掉竞标者计数(例如,bid_ig字段的值)设置为0。它然后将兴趣消息的竞标值设置为其计算的竞标值,并在将兴趣消息转发到高速缓存节点15之前将bid_num(即,节点计数器)重置为零。
高速缓存节点15从高速缓存节点14接收兴趣消息,并决定计算竞标值,这是因为其LRU值(6秒)高于竞拍阈值。它计算出竞标值为6(等于LRU值)。由于所计算的竞标值(6)高于接收到的竞标值(5),因此高速缓存节点15将兴趣消息的竞标值设置为所计算的竞标值,将其PIT的竞标信息(例如,cache字段的值)设置为真,并将其PIT的输掉竞标者计数(例如,bid_ig字段的值)设置为bid_num+1(即,1)。它进一步将bid_num(即,节点计数器)值增加到1,且然后将兴趣消息转发到高速缓存节点16
高速缓存节点16从高速缓存节点15接收兴趣消息,并决定计算竞标值,这是因为其LRU值(4秒)高于竞拍阈值。它计算出竞标值为4(等于LRU值)。由于所计算的竞标值(4)低于接收到的竞标值(6),因此高速缓存节点16留着兴趣消息中的竞标字段不变,将其PIT的竞标信息(例如,cache字段的值)设置为假,并将其PIT的输掉竞标者计数设置为未定义。它进一步将bid_num(即,节点计数器)值增加到2,且然后将兴趣消息转发到高速缓存节点17
高速缓存节点17从高速缓存节点16接收兴趣消息,并首先确定bid_num等于bid_ exp-1,即,该高速缓存节点17是新竞拍组的第一个节点。高速缓存节点17然后决定计算竞标值,这是因为其LRU值(4秒)高于竞拍阈值。它计算出竞标值为4(等于LRU值)。高速缓存节点17然后将其PIT的竞标信息(例如,cache字段的值)设置为真,并将其PIT的输掉竞标者计数(例如,bid_ig字段的值)设置为0。它然后将兴趣消息的竞标值设置为其所计算的竞标值,并在将兴趣消息转发到高速缓存节点18之前将bid_num(即,节点计数器)重置为零。
高速缓存节点18从高速缓存节点17接收兴趣消息,并决定计算竞标值,这是因为其LRU值(5秒)高于竞拍阈值。它计算出竞标值为5(等于LRU值)。由于所计算的竞标值(5)高于接收到的竞标值(4),因此高速缓存节点18将兴趣消息的竞标值设置为所计算的竞标值,将其PIT的竞标信息(例如,cache字段的值)设置为真,并将其PIT的输掉竞标者计数(例如,bid_ig字段的值)设置为bid_num+1(即,1)。它进一步将bid_num(即,节点计数器)值增加到1,且然后将兴趣消息转发到高速缓存节点19
高速缓存节点19从高速缓存节点18接收兴趣消息,并决定计算竞标值,这是因为其LRU值(6秒)高于竞拍阈值。它计算出竞标值为6(等于LRU值)。由于所计算的竞标值(6)高于接收到的竞标值(5),因此高速缓存节点19将兴趣消息的竞标值设置为所计算的竞标值,将其PIT的竞标信息(例如,cache字段的值)设置为真,并将其PIT的输掉竞标者计数(例如,bid_ig字段的值)设置为bid_num+1(即,2)。它进一步将bid_num(即,节点计数器)值增加到2,且然后将兴趣消息转发到服务器35。
当服务器35从高速缓存节点19接收到兴趣消息时,它不识别bidbid_num字段,但是它确定它已经存储所请求的数据对象,并在数据消息中将所请求的数据对象发射到高速缓存节点19。服务器35是竞拍不可知的,即,它将不具有附加字段的传统数据消息发射到高速缓存节点19
高速缓存节点19从服务器35接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为真,且从接收到的数据消息确定忽略计数器不存在。它推断出:它已经赢得其竞拍组中的竞标并高速缓存数据对象。它然后在将数据消息转发到高速缓存节点18之前将忽略计数器添加到数据消息并将它设置为输掉竞标者计数的值(例如,bid_ig字段的值),即,2。
高速缓存节点18从(上游)高速缓存节点19接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为真,且从接收到的数据消息确定忽略计数器未被设置为0。它推断出:它已经输掉其竞拍组中的竞标且不高速缓存数据对象。它然后在将数据消息转发到(下游)高速缓存节点17之前使忽略计数器的值减少1(即,减少到1)。
高速缓存节点17从高速缓存节点18接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为真,且从接收到的数据消息确定忽略计数器未被设置为0。它推断出:它已经输掉其竞拍组中的竞标且不高速缓存数据对象。它然后在将数据消息转发到高速缓存节点16之前使忽略计数器的值减少1(即,减少到0)。
高速缓存节点16从高速缓存节点17接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为假。它推断出:它未针对存储数据对象进行竞标,且不高速缓存数据对象。它留着忽略计数器的值在0处不变,并将数据消息转发到高速缓存节点15
高速缓存节点15从高速缓存节点16接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为真,且从接收到的数据消息确定忽略计数器被设置为0。它推断出:它已经赢得其竞拍组中的竞标并高速缓存数据对象。它然后在将数据消息转发到高速缓存节点14之前将数据消息的忽略计数器设置为输掉竞标者计数的值(例如,bid_ig字段的值),即,1。
高速缓存节点14从高速缓存节点15接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为真,且从接收到的数据消息确定忽略计数器未被设置为0。它推断出:它已经输掉其竞拍组中的竞标且不高速缓存数据对象。它然后在将数据消息转发到高速缓存节点13之前使忽略计数器的值减少1(即,减少到0)。
高速缓存节点13从高速缓存节点14接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为假。它推断出:它未针对存储数据对象进行竞标,且不高速缓存数据对象。它留着忽略计数器的值在0处不变,并将数据消息转发到高速缓存节点12
高速缓存节点12从高速缓存节点13接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为假。它推断出:它未针对存储数据对象进行竞标,且不高速缓存数据对象。它留着忽略计数器的值在0处不变,并将数据消息转发到高速缓存节点11
高速缓存节点11从高速缓存节点12接收数据消息,并从其PIT确定竞标信息(例如,cache字段的值)被设置为假。它推断出:它未针对存储数据对象进行竞标,且不高速缓存数据对象。它留着忽略计数器的值在0处不变,并将数据消息转发到用户设备31。用户设备31确实识别出忽略计数器,但确定在PIT中不存在针对该数据对象的条目并且数据消息因此已经到达内容请求者。
在另一个实施例中,高速缓存节点是由网络服务提供商(NSP)使用以更高效地利用它们的网络的高速缓存代理服务器。不同类型的代理服务器可以驻留在用户代理(UA)与内容服务提供商(CSP)之间的各种点上。当代理服务器能够高速缓存内容时,它通常被称为高速缓存代理。
通过将特殊竞标HTTP实体报头添加到HTTP请求和响应,或者通过添加或扩展高速缓存控制(Cache-Control)报头,可以在高速缓存代理中启用基于竞拍的高速缓存。在HTTP请求和响应中添加或扩展高速缓存控制报头可以在不必改变HTTP协议规范的情况下完成,且根据RFC 2616第14.9.6节而后向兼容。RFC 2616第7.1节还支持在HTTP请求和响应中添加额外实体报头。
基于竞拍的高速缓存是通过以下操作来启用的:将bid_win和bid_num字段以及可选地字段hop_count和时延添加到HTTP请求的高速缓存控制报头或实体报头;以及将ignore字段添加到HTTP响应的高速缓存控制报头或实体报头。包括一个或多个表或数据库的高速缓存代理还将利用bid_ig、cache以及可选地bid_exp和auction_thresh字段加以扩展。图3-11然后也适用于该实施例,其中兴趣消息要被解读为HTTP请求,并且数据消息要被解读为HTTP响应。
当中间高速缓存代理接收到HTTP请求、是第一个节点并决定投放竞标(图5中的附图标记82)时,该高速缓存代理首先检查高速缓存控制报头或实体报头是否存在于HTTP请求中。如果存在,则它检查bid_num和bid_win字段是否存在于高速缓存控制报头或实体报头中。如果存在,则它继续图5的流程。如果高速缓存控制报头或实体报头不存在于HTTP请求中,则高速缓存代理会将其添加。如果高速缓存控制报头或实体报头存在于HTTP请求中但不包括bid_num和bid_win字段,则它将这些字段添加到实体报头或通过添加这些字段来扩展HTTP请求的高速缓存控制报头。然后,它将继续图5的流程。
图12描绘了图示可执行如参考图2和图4至10描述的方法的示例性数据处理系统的框图。
如图12中所示,数据处理系统300可以包括通过系统总线306耦合到存储器元件304的至少一个处理器302。由此,数据处理系统可以将程序代码存储在存储器元件304内。进一步地,处理器302可以执行经由系统总线306从存储器元件304访问的程序代码。在一个方面中,数据处理系统可以被实现为适合于存储和/或执行程序代码的计算机。然而,应当领会的是,数据处理系统300可以以能够执行在本说明书内描述的功能的包括处理器和存储器的任何系统的形式实现。
存储器元件304可以包括一个或多个物理存储器设备,诸如例如本地存储器308和一个或多个大容量储存设备310。本地存储器可以指代一般在程序代码的实际执行期间使用的随机存取存储器或(一个或多个)其他非永久性存储器设备。大容量储存设备可以被实现为硬盘驱动器或其他永久性数据储存设备。处理系统300还可以包括一个或多个高速缓冲存储器(未示出),该一个或多个高速缓冲存储器提供至少某程序代码的暂时储存,以便减少在执行期间必须从大容量储存设备310取回程序代码的次数。
被描绘为输入设备312和输出设备314的输入/输出(I/O)设备可选地可以耦合到数据处理系统。输入设备的示例可以包括但不限于键盘、诸如鼠标之类的指点设备等等。输出设备的示例可以包括但不限于监视器或显示器、扬声器等等。输入和/或输出设备可以直接地或通过居间I/O控制器耦合到数据处理系统。
在一实施例中,输入和输出设备可以被实现为组合输入/输出设备(在图12中用围绕输入设备312和输出设备314的虚线图示)。这种组合设备的示例是触摸敏感显示器,有时也被称为“触摸屏显示器”或简称为“触摸屏”。在这种实施例中,可以通过物理对象(诸如例如,触笔或用户的手指)在触摸屏显示器上或附近的移动来提供对设备的输入。
网络适配器316还可以耦合到数据处理系统,以使它能够变得通过居间私有或公共网络而耦合到其他系统、计算机系统、远程网络设备和/或远程储存设备。网络适配器可以包括:数据接收器,用于接收由所述系统、设备和/或网络发射到数据处理系统300的数据;以及数据发射器,用于将数据从数据处理系统300发射到所述系统、设备和/或网络。调制解调器、线缆调制解调器和以太网卡是可与数据处理系统300一起使用的不同类型的网络适配器的示例。
如图12中所绘制,存储器元件304可以存储应用318。在各种实施例中,应用318可以被存储在本地存储器308中、被存储在一个或多个大容量储存设备310中或与本地存储器和大容量储存设备分离。应当领会的是,数据处理系统300可以进一步执行可便于执行应用318的操作系统(未在图12中示出)。以可执行程序代码的形式实现的应用318可以由数据处理系统300执行,例如由处理器302执行。响应于执行该应用,数据处理系统300可以被配置成执行本文中所描述的一个或多个操作或方法步骤。
本发明还涉及端点节点330,端点节点330包括至少一个通信接口331和至少一个处理器335,见图13。该至少一个处理器335被配置成:确定所请求的数据对象的名称(例如,通过允许用户指定该名称);创建包括所请求的数据对象的名称以及用于插入竞标值的竞标字段的兴趣消息,该竞标值被留着未定义(例如,没有值或值“0”),以便指示高速缓存所请求的数据对象的权限的竞拍应当开始;以及在该至少一个通信接口331上将兴趣消息发射到上游节点11。端点节点330可以是例如用户设备31,且可以包括例如用户界面(例如,触摸屏)。端点节点330可以是例如膝上型电脑、平板电脑、移动电话或嵌入车辆中的设备。该至少一个处理器335可以是例如ARM或Qualcomm处理器。端点节点330可以进一步包括对于端点节点而言典型的其他部件,例如存储器和电源。该至少一个通信接口331可以包括例如无线数据(例如,蜂窝和/或WiFi)收发器。
本发明的各种实施例可以被实现为供计算机系统使用的程序产品,其中程序产品的(一个或多个)程序定义了实施例(包括本文中所描述的方法)的功能。在一个实施例中,(一个或多个)程序可以被包含在多种非暂时性计算机可读储存介质上,其中如本文中所使用的那样,表述“非暂时性计算机可读储存介质”包括所有计算机可读介质,其中唯一例外是暂时性传播信号。在另一个实施例中,(一个或多个)程序可以被包含在多种暂时性计算机可读储存介质上。说明性计算机可读储存介质包括但不限于:(i)在其上永久存储信息的不可写储存介质(例如,计算机内的只读存储器设备,诸如CD-ROM驱动器可读的CD-ROM盘、ROM芯片或任何类型的固态非易失性半导体存储器);以及(ii)在其上存储可更改信息的可写储存介质(例如,闪存、磁盘驱动器或硬盘驱动器内的软盘、或者任何类型的固态随机存取半导体存储器)。计算机程序可以在本文中所描述的处理器302上运行。
本文中所使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。如本文中所使用,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文以其他方式清楚指示。将进一步理解的是,术语“包括”和/或“包括有”在本说明书中使用时指定存在所声明的特征、整数、步骤、操作、元件和/或部件,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组。
下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物意图包括用于与如具体要求保护的其他要求保护的元件组合地执行功能的任何结构、材料或动作。已经出于说明的目的呈现了本发明的实施例的描述,但是该描述不意图是穷尽的或限于以所公开的形式存在的实现方式。在不脱离本发明的范围和精神的情况下,许多修改和变型将对本领域普通技术人员来说显而易见。选择并描述了实施例,以便最佳地解释本发明的原理和一些实际应用,并使本领域其他普通技术人员能够将针对具有各种修改的各种实施例的本发明理解为适合于所想到的特定使用。

Claims (16)

1.一种网络节点(15),包括:
至少一个通信接口(31-2);
至少一个存储器(5);以及
至少一个处理器(7),被配置成:
在所述至少一个通信接口(31)上从下游节点(14)接收兴趣消息,所述兴趣消息包括所请求的数据对象的名称,
确定是否针对将所述所请求的数据对象存储在所述至少一个存储器(5)中进行竞标,
计算竞标值,
在所述至少一个通信接口(32)上将所述兴趣消息转发到上游节点(16),所述兴趣消息取决于至少所述是否竞标的确定而包括所述所计算的竞标值,
在所述至少一个通信接口(32)上从所述上游节点(16)接收包括所述所请求的数据对象的数据消息,
从至少所述数据消息确定所述网络节点(15)是否赢得了所述竞标,
如果所述网络节点(15)赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器(5)中,以及
在所述至少一个通信接口(31)上将所述数据消息转发到所述下游节点(14)。
2.如权利要求1所述的网络节点(15),其中所述接收到的兴趣消息进一步包括接收到的竞标值,并且所述至少一个处理器(7)被配置成:如果所述是否竞标的确定是肯定的并且所述所计算的竞标值表示比所述接收到的竞标值更高的竞标,则将所述所计算的竞标值包括在所述兴趣消息中。
3.如权利要求1或2所述的网络节点(15),其中所述至少一个处理器(7)进一步被配置成:将竞标信息记录在所述至少一个存储器(5)中,所述竞标信息表示所述网络节点(15)是否将所述所计算的竞标值包括在所述兴趣消息中。
4.如权利要求3所述的网络节点(15),其中所述至少一个处理器(7)被配置成:从至少所述数据消息和所述竞标信息确定所述网络节点(15)是否赢得了所述竞标。
5.如权利要求4所述的网络节点(15),其中所述接收到的数据消息包括忽略计数器,所述忽略计数器表示如所述上游节点(16)或另一上游节点所确定的输掉所述竞标的下游节点的数量,并且所述至少一个处理器(7)被配置成从至少所述忽略计数器和所述竞标信息确定所述网络节点(15)是否赢得了所述竞标。
6.如权利要求5所述的网络节点(15),其中所述至少一个处理器(7)进一步被配置成:在将所述兴趣消息转发到所述上游节点(16)之前,递增所述兴趣消息中的节点计数器,所述节点计数器表示下游节点的数量。
7.如权利要求6所述的网络节点(15),其中所述至少一个处理器(7)进一步被配置成:如果所述网络节点(15)将所述所计算的竞标值包括在所述兴趣消息中,则将输掉竞标者计数记录在所述至少一个存储器(5)中,所述输掉竞标者计数基于所述接收到的兴趣消息中包括且表示如所述网络节点(15)所确定的输掉所述竞标的下游节点的数量的所述节点计数器。
8.如权利要求7所述的网络节点(15),其中所述至少一个处理器(7)被配置成:如果所述网络节点(15)赢得了所述竞标,则在将所述数据消息转发到所述下游节点(14)之前基于所述输掉竞标者计数来设置所述数据消息中的所述忽略计数器。
9.如权利要求1或2所述的网络节点(15),其中所述至少一个处理器(7)被配置成:通过检查至少一个空槽是否在所述至少一个存储器(5)上可用和/或最近最少高速缓存的项目是否比一定年龄阈值更旧,来确定是否针对将所述所请求的数据对象存储在所述至少一个存储器(5)中进行竞标。
10.如权利要求1或2所述的网络节点(15),其中所述至少一个处理器(7)被配置成:通过检查所述所计算的竞标值是否表示超过一定竞拍阈值的竞标,来确定是否针对将所述所请求的数据对象存储在所述至少一个存储器(5)中进行竞标。
11.一种端点节点(330,31),包括:
至少一个通信接口(331);以及
至少一个处理器(335),被配置成:
确定所请求的数据对象的名称,
创建包括所述所请求的数据对象的所述名称以及用于插入竞标值的竞标字段的兴趣消息,所述竞标值被留着未定义,以便指示高速缓存所述所请求的数据对象的权限的竞拍应当开始,以及
在所述至少一个通信接口(331)上将所述兴趣消息发射到上游节点(11)。
12.一种在网络节点处接收兴趣消息的方法,包括以下步骤:
在至少一个通信接口上从下游节点接收(11)兴趣消息,所述兴趣消息包括所请求的数据对象的名称;
确定(13)是否针对将所述所请求的数据对象存储在至少一个存储器中进行竞标;
计算(15)竞标值;
在所述至少一个通信接口上将所述兴趣消息转发(17)到上游节点,所述兴趣消息取决于至少所述是否竞标的确定而包括所述所计算的竞标值;
在所述至少一个通信接口上从所述上游节点接收(19)包括所述所请求的数据对象的数据消息;
从至少所述数据消息确定(21)所述网络节点是否赢得了所述竞标;
如果所述网络节点赢得了所述竞标,则将所述数据对象存储(23)在所述至少一个存储器中;以及
在所述至少一个通信接口上将所述数据消息转发(25)到所述下游节点。
13.一种存储至少一个软件代码部分的非暂时性计算机可读储存介质,所述软件代码部分在计算机系统上运行时被配置用于执行如权利要求12所述的方法。
14.一种网络节点(15),包括
至少一个通信接口(31-2);
至少一个存储器(5);以及
至少一个处理器(7),被配置成:
在所述至少一个通信接口(31)上从下游节点(14)接收针对数据对象的HTTP请求,
确定是否针对将所述所请求的数据对象存储在所述至少一个存储器(5)中进行竞标,
计算竞标值,
在所述至少一个通信接口(32)上将所述HTTP请求转发到上游节点(16),所述HTTP请求取决于至少所述是否竞标的确定而包括所述所计算的竞标值,
在所述至少一个通信接口(32)上从所述上游节点(16)接收包括所述所请求的数据对象的响应消息,
从至少所述响应消息确定所述网络节点(15)是否赢得了所述竞标,
如果所述网络节点(15)赢得了所述竞标,则将所述数据对象存储在所述至少一个存储器(5)中,以及
在所述至少一个通信接口(31)上将所述响应消息转发到所述下游节点(14)。
15.一种在网络节点处接收针对数据对象的HTTP请求的方法,包括以下步骤:
在至少一个通信接口上从下游节点接收(11)所述HTTP请求;
确定(13)是否针对将所述所请求的数据对象存储在至少一个存储器中进行竞标;
计算(15)竞标值;
在所述至少一个通信接口上将所述HTTP请求转发(17)到上游节点,所述HTTP请求取决于至少所述是否竞标的确定而包括所述所计算的竞标值;
在所述至少一个通信接口上从所述上游节点接收(19)包括所述所请求的数据对象的响应消息;
从至少所述响应消息确定(21)所述网络节点是否赢得了所述竞标;
如果所述网络节点赢得了所述竞标,则将所述数据对象存储(23)在所述至少一个存储器中;以及
在所述至少一个通信接口上将所述响应消息转发(25)到所述下游节点。
16.一种存储至少一个软件代码部分的非暂时性计算机可读储存介质,所述软件代码部分在计算机系统上运行时被配置用于执行如权利要求15所述的方法。
CN201780029606.XA 2016-05-13 2017-05-12 接收兴趣消息的网络节点、端点节点和方法 Active CN109076108B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16169624.0A EP3244590B1 (en) 2016-05-13 2016-05-13 Network node, endpoint node and method of receiving an interest message
EP16169624.0 2016-05-13
PCT/EP2017/061465 WO2017194738A1 (en) 2016-05-13 2017-05-12 Network node, endpoint node and method of receiving an interest message

Publications (2)

Publication Number Publication Date
CN109076108A CN109076108A (zh) 2018-12-21
CN109076108B true CN109076108B (zh) 2021-07-27

Family

ID=56008499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780029606.XA Active CN109076108B (zh) 2016-05-13 2017-05-12 接收兴趣消息的网络节点、端点节点和方法

Country Status (6)

Country Link
US (1) US10715592B2 (zh)
EP (2) EP3244590B1 (zh)
KR (1) KR102160494B1 (zh)
CN (1) CN109076108B (zh)
ES (1) ES2703186T3 (zh)
WO (1) WO2017194738A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111557086B (zh) * 2017-11-17 2023-08-22 皇家Kpn公司 从与兴趣匹配的多个项中进行选择
US20190158621A1 (en) * 2017-11-21 2019-05-23 Koninklijke Kpn N.V. Auctioning the serving and/or caching of a data object
US20220255867A1 (en) * 2019-05-02 2022-08-11 Intel Corporation Enabling quality of service (qos) in information centric networking (icn)
CN112000299B (zh) * 2020-09-27 2022-08-16 苏州浪潮智能科技有限公司 一种节点数据转发方法及相关装置
CN113098783B (zh) * 2021-03-26 2022-06-14 辽宁大学 基于链路带宽和时延的命名数据网络拥塞控制方法
KR20230046592A (ko) * 2021-09-30 2023-04-06 한국전자통신연구원 엔디엔 콘텐츠 스토어의 콘텐츠 임시저장 방법 및 장치
CN114153760B (zh) * 2021-12-02 2022-07-29 北京乐讯科技有限公司 基于权重的健值存储缓存淘汰方法、系统及存储介质
CN117156008B (zh) * 2023-09-14 2024-03-22 北京宝联之星科技股份有限公司 一种边缘节点的数据缓存方法、系统和可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271148A (zh) * 2010-05-13 2011-12-07 三星电子株式会社 内容中心网络的终端以及终端与集线器的通信方法
EP2562978A1 (en) * 2011-08-12 2013-02-27 Alcatel Lucent Content router of a content centric network
CN103200640A (zh) * 2013-03-05 2013-07-10 北京交通大学 一种包结构、兴趣包转发、源切换和源代理选择方法
CN104025555A (zh) * 2011-07-12 2014-09-03 华为技术有限公司 在命名数据网络中使用多路径路由和内容缓存的无缝移动方案
CN104247371A (zh) * 2012-04-20 2014-12-24 华为技术有限公司 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现
CN104584512A (zh) * 2012-02-28 2015-04-29 华为技术有限公司 内容导向网络中协作缓存的方法
CN104753797A (zh) * 2015-04-09 2015-07-01 清华大学深圳研究生院 一种基于选择性缓存的内容中心网络动态路由方法
CN104780205A (zh) * 2015-03-24 2015-07-15 清华大学深圳研究生院 内容中心网络的内容请求及传输方法和系统
CN105049466A (zh) * 2014-05-01 2015-11-11 帕洛阿尔托研究中心公司 用于信息中心网络的可计算内容存储

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558859B2 (en) * 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
CN102549524B (zh) * 2009-07-20 2015-05-06 卡林戈公司 存储集群中的自适应功率保存
KR101978177B1 (ko) * 2012-12-07 2019-08-28 삼성전자주식회사 컨텐츠 중심 네트워크에서 노드가 컨텐츠를 저장하는 방법 및 컨텐츠 제공자가 컨텐츠를 전송하는 방법
US20150256601A1 (en) * 2014-03-10 2015-09-10 Palo Alto Research Center Incorporated System and method for efficient content caching in a streaming storage
US9979644B2 (en) 2014-07-13 2018-05-22 Cisco Technology, Inc. Linking to content using information centric networking

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271148A (zh) * 2010-05-13 2011-12-07 三星电子株式会社 内容中心网络的终端以及终端与集线器的通信方法
CN104025555A (zh) * 2011-07-12 2014-09-03 华为技术有限公司 在命名数据网络中使用多路径路由和内容缓存的无缝移动方案
EP2562978A1 (en) * 2011-08-12 2013-02-27 Alcatel Lucent Content router of a content centric network
CN104584512A (zh) * 2012-02-28 2015-04-29 华为技术有限公司 内容导向网络中协作缓存的方法
CN104247371A (zh) * 2012-04-20 2014-12-24 华为技术有限公司 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现
CN103200640A (zh) * 2013-03-05 2013-07-10 北京交通大学 一种包结构、兴趣包转发、源切换和源代理选择方法
CN105049466A (zh) * 2014-05-01 2015-11-11 帕洛阿尔托研究中心公司 用于信息中心网络的可计算内容存储
CN104780205A (zh) * 2015-03-24 2015-07-15 清华大学深圳研究生院 内容中心网络的内容请求及传输方法和系统
CN104753797A (zh) * 2015-04-09 2015-07-01 清华大学深圳研究生院 一种基于选择性缓存的内容中心网络动态路由方法

Also Published As

Publication number Publication date
EP3244590A1 (en) 2017-11-15
EP3456029A1 (en) 2019-03-20
CN109076108A (zh) 2018-12-21
US10715592B2 (en) 2020-07-14
EP3456029B1 (en) 2020-04-29
KR20190002670A (ko) 2019-01-08
KR102160494B1 (ko) 2020-09-29
WO2017194738A1 (en) 2017-11-16
ES2703186T3 (es) 2019-03-07
EP3244590B1 (en) 2018-09-26
US20190306234A1 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
CN109076108B (zh) 接收兴趣消息的网络节点、端点节点和方法
US11463550B2 (en) Request management for hierarchical cache
KR102301353B1 (ko) 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법
KR101978177B1 (ko) 컨텐츠 중심 네트워크에서 노드가 컨텐츠를 저장하는 방법 및 컨텐츠 제공자가 컨텐츠를 전송하는 방법
EP2813058B1 (en) A method for scalable routing in content-oriented networks
EP3032805B1 (en) Method and system for optimal caching of content in an information centric network (icn)
US10567538B2 (en) Distributed hierarchical cache management system and method
CN105407128B (zh) 在ccn中的中间路由器上兴趣保持活动的方法及系统
US20100293294A1 (en) Peer-to-peer communication optimization
EP3070910B1 (en) Pending interest table behavior
US10469348B2 (en) Centrality-based caching in information-centric networks
WO2020160007A1 (en) Semantics and deviation aware content request and multi-factored in-network content caching
US20170093714A1 (en) Packet routing and forwarding in information centric networking
US9678881B2 (en) Data distribution device and data distribution method
US20190158621A1 (en) Auctioning the serving and/or caching of a data object
WO2019096970A1 (en) Selecting from a plurality of items which match an interest
WO2023274267A1 (zh) 内容资源分发方法、内容分发网络、集群及介质
CN110807160A (zh) 内容获取方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant