首页> 中国专利> 支持信息为中心的网络中的上下文感知的内容请求的系统和方法

支持信息为中心的网络中的上下文感知的内容请求的系统和方法

摘要

本发明涉及一种用于支持网络中的上下文感知的内容检索的技术。路由器接收包括内容名称和上下文需求的兴趣消息。访问所述存储器以确定所述兴趣消息的所述内容名称是否匹配于存储在所述存储器中的内容名称。如果所述内容名称匹配于所述兴趣消息的所述内容名称,则所述路由器确定存储在所述存储器中的接口是否与所述内容名称关联。将所述兴趣消息中的所述上下文需求与存储在所述存储器中的接口所关联的所述上下文信息进行匹配,并且转发所述兴趣消息给其中一个接口,对于所述其中一个接口,所述兴趣消息中的所述上下文需求匹配与关于所述内容的所述接口的所述上下文信息。然后,所述路由器聚合所述转发的兴趣消息,所述兴趣消息包括所述存储器中的所述待定兴趣消息的所述上下文需求。

著录项

  • 公开/公告号CN108293023A

    专利类型发明专利

  • 公开/公告日2018-07-17

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201680066401.4

  • 发明设计人 董丽君;

    申请日2016-11-17

  • 分类号

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 05:59:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-07

    授权

    授权

  • 2018-08-10

    实质审查的生效 IPC(主分类):H04L12/741 申请日:20161117

    实质审查的生效

  • 2018-07-17

    公开

    公开

说明书

优先权申明

本申请要求2016年3月15日递交的发明名称为“支持信息为中心的网络中的上下文感知的内容请求的系统和方法(System And Method to Support Context-AwareContent Requests in Information Centric Networks)”的第15/070,822号美国非临时专利案的在先申请优先权,该申请要求2015年11月30日递交的第No.62/260,844号美国临时专利案的在先申请优先权,这两个在先申请的全部内容以引用的方式并入本文本中。

背景技术

在信息为中心的网络(Information-Centric Network,ICN)中,将全域的唯一名称分配给每个作为内容分发框架的一部分的实体,其中ICN也称为内容导向网络(contentoriented network,CON)。实体可以包括视频剪辑或网页等数据内容和/或路由器、交换机或服务器等基础结构元件。内容路由器使用名称前缀,名称前缀可以是完整的内容名称或内容名称的合适前缀,而不是网络地址,以便路由内容网络中的内容报文。在ICN中,包括发布、请求和管理(例如,修改、删除等)的内容分发可以基于内容名称而非内容位置进行。ICN的可能不同于传统因特网协议(Internet Protocol,IP)网络的一个方面是ICN能够将多个地理点和缓存内容临时互连,或者以更持久的方式存储内容。这可以允许从网络而非原始服务器提供内容。相应地,缓存/存储可以用于用户提取的实时数据或者用于属于用户或属于例如第三方提供商等内容提供商的持久数据。

发明内容

在一项实施例中,提供了一种支持网络中的上下文感知的内容检索的方法,包括:接收包括内容名称和上下文需求的兴趣消息;访问存储器,所述存储器包括缓存内容的内容存储库、跟踪待定兴趣消息的待定兴趣表(pending interest table,PIT)以及将内容信息与一个或多个接口相关联的转发信息库(forwarding information base,FIB)中的至少一种,以确定所述兴趣消息的所述内容名称是否匹配于存储在所述存储器中的内容名称;如果存储在所述存储器中的内容名称匹配于所述兴趣消息的所述内容名称,则确定存储在所述FIB中的一个或多个所述接口是否与所述内容名称关联,并且将所述兴趣消息中的所述上下文需求与存储在所述FIB中的所述一个或多个接口所关联的所述上下文信息进行匹配;转发所述兴趣消息给所述一个或多个接口中的一个接口,对于所述一个接口,所述兴趣消息中的所述上下文需求匹配于与所述内容相关的所述一个或多个接口的所述上下文信息;以及聚合所述转发的兴趣消息,所述兴趣消息包括所述PIT中的所述待定兴趣消息的所述上下文需求,并且将所述聚合的内容存储在所述PIT中。

在另一项实施例中,提供了一种访问网络中的上下文感知的内容的网络组件,包括:收发器,用于接收和转发兴趣消息和所述网络中的内容;存储器,用于存储内容存储库以缓存内容;待定兴趣表(pending interest table,PIT),用于跟踪内容的待定兴趣消息;转发信息库(forwarding information base,FIB),用于将上下文信息与一个或多个接口关联;耦合到所述存储器和所述收发器的处理器,用于:访问所述存储器以确定所述兴趣消息的所述内容名称是否匹配于存储在所述存储器中的内容名称;如果存储在所述存储器中的内容名称匹配于所述兴趣消息的所述内容名称,则确定存储在所述FIB中的一个或多个所述接口是否与所述内容名称相关联,并且将所述兴趣消息中的所述上下文需求与存储在所述FIB中的所述一个或多个接口所关联的所述上下文信息进行匹配;转发所述兴趣消息给所述一个或多个接口中的一个接口,对于所述一个接口,所述兴趣消息中的所述上下文需求匹配于与所述内容相关的所述一个或多个接口的所述上下文信息;以及聚合所述转发的兴趣消息,所述兴趣消息包括所述PIT中的所述待定兴趣消息的所述上下文需求,并且将所述聚合的内容存储在所述PIT中。

在又一项实施例中,提供了一种存储计算机指令的非瞬时性计算机可读介质,用于支持网络中的上下文感知的内容检索,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:接收包括内容名称和上下文需求的兴趣消息;访问存储器,所述存储器包括缓存内容的内容存储库、跟踪待定兴趣消息的待定兴趣表(pending interest table,PIT)以及将内容信息与一个或多个接口相关联的转发信息库(forwarding information base,FIB)中的至少一种,以确定所述兴趣消息的所述内容名称是否匹配于存储在所述存储器中的内容名称;如果存储在所述存储器中的内容名称匹配于所述兴趣消息的所述内容名称,则确定存储在所述FIB中的一个或多个所述接口是否与所述内容名称相关联,并且将所述兴趣消息中的所述上下文需求与存储在所述FIB中的所述一个或多个接口所关联的所述上下文信息进行匹配;转发所述兴趣消息给所述一个或多个接口中的一个接口,对于所述一个接口,所述兴趣消息中的所述上下文需求匹配于与所述内容相关的所述一个或多个接口的所述上下文信息;以及聚合所述转发的兴趣消息,所述兴趣消息包括所述PIT中的所述待定兴趣消息的所述上下文需求,并且将所述聚合的内容存储在所述PIT中。

在一项示例实施例中,使用一种机制来支持网络中的上下文感知的内容检索。所述机制包括:接收单元,接收包括内容名称和上下文需求的兴趣消息;访问存储器的访问单元,所述存储器包括缓存内容的内容存储库、跟踪待定兴趣消息的待定兴趣表(pendinginterest table,PIT)以及将内容信息与一个或多个接口相关联的转发信息库(forwarding information base,FIB)中的至少一种,以确定所述兴趣消息的所述内容名称是否匹配于存储在所述存储器中的内容名称。所述机制还可以包括:确定单元,如果存储在所述存储器中的内容名称匹配于所述兴趣消息的所述内容名称,则所述确定单元确定存储在所述FIB中的一个或多个所述接口是否与所述内容名称关联,并且将所述兴趣消息中的所述上下文需求与存储在所述FIB中的所述一个或多个接口所关联的所述上下文信息进行匹配;转发单元,转发所述兴趣消息给所述一个或多个接口中的一个接口,对于所述一个接口,所述兴趣消息中的所述上下文需求匹配于与所述内容相关的所述一个或多个接口的所述上下文信息;以及聚合单元,聚合所述转发的兴趣消息,所述兴趣消息包括所述PIT中的所述待定兴趣消息的所述上下文需求;存储单元,将所述聚合的内容存储在所述PIT中。

本发明内容简单地介绍了下文在具体实施方式中进一步描述的概念的选择。本发明内容不是旨在识别所述要求保护的主题的关键特征或必要特征,也不是旨在帮助确定所述要求保护的主题的范围。所述要求保护的主题不限于解决背景技术中所述的任意或者所有缺点的实施方式。

附图说明

本发明的各方面通过示例的方式进行说明,并且不限于附图,附图中相同的符号指示相同的单元。

图1示出了信息为中心的网络的内容路由器的实施例。

图2示出了可以使用图1的内容路由器的信息为中心的网络架构的实施例。

图3示出了图1和图2的路由器所维护的数据结构。

图4A示出了根据图1和图2的路由器接收兴趣消息的的流程图。

图4B示出了根据图1和图2的路由器接收兴趣消息的流程图。

图5示出了根据图1和图2的路由器接收数据消息的流程图。

图6A示出了在图1的路由器中更新转发信息库的顺序图。

图6B示出了在图1的路由器中更新转发信息库的顺序图。

图7示出了根据图1和图2的实施例的路由器的实施例。

图8示出了可以用于实施各实施例的网络系统的框图。

具体实施方式

本发明涉及一种用于支持网络中的上下文感知的内容检索的技术。路由器接收包括内容名称和上下文需求的兴趣消息。访问存储器以确定兴趣消息的内容名称是否匹配于存储在存储器中的内容名称。如果内容名称匹配于兴趣消息的内容名称,则路由器确定存储在存储器中的一个或多个接口是否与内容名称关联。将兴趣消息中的上下文需求与存储在存储器中的一个或多个接口所关联的内容信息进行匹配,并且转发兴趣消息给其中一个接口,对于该接口,兴趣消息中的上下文需求匹配于关于内容的接口的上下文信息。然后,路由器聚合转发的兴趣消息,该兴趣消息包括存储器中的待定兴趣消息的上下文需求。

应当理解的是,本发明可通过多种不同的形式来体现,且不应解释为仅限于本文所提出的实施例。相反,提供这些实施例使得本发明透彻和完整,并且会向本领域技术人员充分地传达本发明。实际上,本发明旨在涵盖包含在所附权利要求书限定的本发明的范围和精神内的这些实施例的替代方案、修改方案和等价方案。另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,所属领域的普通技术人员将清楚,本发明可以在没有这些具体细节的情况下实践。

信息为中心的网络(Information-Centric Networking,ICN)已经成为未来互联网以及未来物联网(Internet of Things,IoT)的有前途的候选者。与现今的IP路由器不同于,ICN路由器可以合并内容路由、内容计算能力和本地内容缓存/存储能力。实现可靠而安全的内容分布在ICN中可能是个挑战,例如在用户对内容分发进行某种控制时。在部分ICN模型中,例如内容中心网络(content centric network,CCN)/命名数据网络(named datanetworking,NDN)模型中,可以使用内容名称(例如,前缀)来进行内容路由,这可以定义内容可达性以引导来自ICN路由器的内容检索。已经提出了因特网路由协议,例如开放式最短路径优先(Open Shortest Path First,OSPF)和边界网关协议(Border GatewayProtocol,BGP)来进行扩展以将内容前缀填充到每个ICN路由器(例如,在网络、与或组中),用于进行内容路由操作。

如上文所建议,ICN集成基于名称的路由和网络内缓存作为网络基础结构的基础。目前存在若干种针对ICN的提议,包括NDN。在NDN中,接收器,即数据消费者,通过交换两种类型的报文,即兴趣报文(或消息)以及数据报文(或消息),来驱动通信。在兴趣报文中,消费者将一条所需数据的名称置于兴趣报文中,并将兴趣报文发送到网络。路由器使用名称来转发兴趣给数据生产者。在数据报文中,一旦兴趣消息到达具有所请求数据的节点,该节点会返回数据报文,该数据报文包括名称和内容以及将这两者绑定的生产者的密钥签名。数据报文一般按照与兴趣消息所取的路径相反的方向返回到请求消费者。下文结合图1更详细地描述此流程。

在上下文感知的内容网络中,术语上下文可以是能够用于描绘实体情况的任何信息。术语实体可以是例如被认为与用户和应用之间的交互相关的人、地点或对象,包括用户和应用本身。用户通常在某些上下文中请求内容。例如,(1)用户可以在通过例如以下条件表示的上下文中请求电影:大小小于100MB、大小大于2GB和分辨率等于1080P;(2)在通过例如以下条件表示的上下文中检索温度读取数据:取值大于90F和取值小于30F;(3)在通过例如以下条件表示的上下文中检索优惠券:最终价格小于20美元和存储距离小于30英里。

超文本标记语言(Hypertext Transfer Protocol,HTTP)和约束应用协议(Constrained Application Protocol,CoAP)等应用层协议通过将请求条件化来提供一些上下文感知支持。例如,HTTP有如下报头:

·If-Match request-header字段。具有先前从资源获取的一个或多个实体的客户端可以通过在If-Match request-header字段中包括一列关联的实体标记来验证其中一个实体是当前的实体。

·If-Modified-Since request-header字段。如果所请求的变量从该字段中指定的时间起未被修改,那么将不会从服务器返回实体。

·If-None-Match request-header字段。具有先前从资源获取的一个或多个实体的客户端可以通过在If-None-Match header字段中包括一列关联的实体标记来验证没有一个实体是当前的实体。该特征的目的在于以最小的交易开销量来支持有效地更新缓存的信息。

·If-Unmodified-Since request-header字段。如果所请求的资源从该字段中指定的时间起未被修改,那么服务器必须执行所请求的操作,就如同If-Unmodified-Sinceheader不存在一样。

与HTTP类似,CoAP具有以下可以包括在报头中的选项:

·If-Match选项可以用于针对目标资源的一个或多个表示使请求以ETag的当前存在或取值为条件。

·If-None-Match选项可以用于使请求以目标资源不存在为条件。

此类应用层协议要求底层网络协议支持上下文感知。但是,作为底层网络协议的候选之一的NDN并不支持对内容请求的上下文感知。由于不知道上下文信息,所以当针对所请求的内容存在多个生产者,NDN路由器可能无法做出正确的决定来选择转发接口。因此,如果回复给客户端的内容并不满足客户端的上下文需求,那么在传输兴趣和内容时会浪费网络带宽。或者,NDN路由器可以将兴趣多播给所有的接口,这会增加网络负担,因为可能会从多个生产者返回多个匹配内容。

所述实施例公开了将上下文感知增加到ICN架构(例如,NDN架构)中的内容请求中,即客户端、NDN路由器(作为ICN的示例)和内容生产者支持的上下文感知。在客户端侧,上下文需求被添加到内容请求兴趣消息中。在NDN路由器侧,描述了控制具有上下文需求的兴趣消息的接收以及数据消息的接收的过程。具体而言,当接收数据消息时,NDN路由器了解关于不同生产者的内容的上下文信息,其中不同的生产者映射到不同的转发接口。所了解的上下文信息在FIB中维护,其中FIB可以协助NDN路由器来确定具有来自客户端的具体上下文需求的内容请求的正确转发接口。在内容生产者侧,下文还描述了处理具有上下文需求的兴趣消息的过程。内容生产者可以在返回的数据消息中携带部分相关上下文信息,这还可以帮助NDN路由器正确地转发将来的内容请求。

图1示出了信息为中心的网络的内容路由器的实施例。内容路由器100可以与ICN等网络中的一个或多个其它内容路由器(未示出)协作来缓存内容,其可如下配置。内容路由器100可以包括内容存储库(content store,CS)110、待定兴趣表(pending interesttable,PIT)120和转发信息库(forwarding information base,FIB)130。CS 110可以(例如,在存储或存储器单元中)用来(较短时间地)缓存或(较长时间地)存储内容数据。CS 110还可以通过对应的内容数据(所请求的内容)来接收和关联兴趣(用户的内容请求)。

PIT 120可以是用于记录和跟踪所接收的正提供或处于待定状态的兴趣(内容请求)(直到接收到对应的请求内容数据)的任何数据结构(例如,表、列表或数据库)。兴趣可以在PIT 120中与协作缓存内容路由器100的下一跳(或者下一跳接口)相关联,其中在该路由器上接收兴趣。

FIB 130可以是用于将内容与对应的(用于下一跳的)端口或接口关联的任何数据结构(例如,表、列表或数据库),其中在该端口或接口上接收和转发兴趣和内容数据。FIB130表项可以指示可以转发内容(兴趣和数据)的下一跳。FIB 130可以是可在数据面或转发面上维护和操作(以处理内容兴趣和数据)的数据结构或子数据结构(例如数据结构内的数据结构,诸如表、列表或数据库(图2))。数据面可以包括在CON中传送内容信息(兴趣和数据)的操作,控制面可以包括与控制包括数据面操作的网络操作相关的操作。上文的数据结构可以在内容路由器100的存储或存储器单元中进行存储和维护。

为了执行兴趣和数据报文转发功能,内容路由器100(例如,NDN路由器)维护上文所述的三种数据结构,即:(1)CS 110,作为路由器已经接收到的数据报文的临时缓存,其中所缓存的数据报文可以用于满足将来的兴趣;(2)PIT 120,用于存储路由器已经转发但还未得到满足的所有兴趣,其中每个PIT表项记录兴趣中携带的数据名称以及其入接口和出接口;(3)作为路由表的FIB 130,其将名称组成部分映射到接口,并且由基于名称前缀的路由协议进行填充,且针对每个前缀可以有多个输出接口。此外,内容路由器100可以包括转发策略和规则以处理报文转发。

在一项示例实施例中,当内容路由器100接收包括例如请求者希望请求的内容的名称的兴趣报文(传入的兴趣)时,内容路由器100首先检查以确认CS 110中是否存在该内容的本地缓存副本。如果CS 110中存在该内容的本地缓存副本,那么内容路由器100可以通过发送内容副本到兴趣的入接口来回复兴趣。

如果CS 110中不存在该内容的本地缓存副本,那么内容路由器100检查以确认PIT120中是否存在具有相同内容名称的待定兴趣。如果存在相同的兴趣且为待定状态,那么针对PIT 120中的内容名称将新兴趣的入接口添加到接口列表中。相应地,新兴趣无需再转发。

否则,内容路由器通过基于内容名称在FIB 130中执行查找,例如最长匹配查找,来转发兴趣。兴趣进而被存储在PIT 120中。如果FIB 130中没有维护匹配的表项,那么兴趣被转发到接口而不是入接口。

图2示出了上下文感知的ICN架构的实施例。上下文感知的ICN结构可以用于提供基于上下文的网络框架。上下文感知的ICN架构可以处理用户节点210(例如,智能移动设备)、内容路由节点220(例如,智能内容路由设备)和其它传输/中继/业务网络节点230(例如,智能媒体传输/中继/服务器设备)之间的不同逻辑层或业务的映射。本文所用的术语“智能”是指用于改进的上下文处理、处理、路由和缓存/存储的设备。

用户节点210可以包括用于基于上下文的业务或操作的多个逻辑块或组件,包括应用210A、应用上下文210B、内容分发上下文210C、接入适配210D和接入技术或接口210E,例如移动用户的无线接口(例如,近场通信(Near Field Communication,NFC)、蓝牙、无线保真(Wireless Fidelity,WiFi)、第三代/第四代移动通信(3rd/4th>

图3示出了图1和图2的路由器所维护的数据结构。为了从客户端侧支持上下文感知,客户端可以通过表示为条件的可选上下文需求来初始化兴趣消息。例如,条件可以通过上下文名称、运算符和上下文取值来表示。上文提供的关于上下文的示例对于可以应用的上下文名称类型、运算符和上下文取值具有代表性,但不限于此。可以存在通过AND、OR等运算符连接的多个上下文需求。例如,具有上下文需求的兴趣消息可以表现为:

可以理解,条件不限于上下文名称、运算符和上下文取值。

在图3的示例中,ICN路由器(例如,NDN路由器)用作示例目的。NDN路由器保存(存储)三个数据结构:CS 305、PIT 310和FIB 315。它们可以与例如图1所公开的CS 110、PIT120和FIB 130相同。此外,通过条件表示的相关上下文信息还分别记录在CS 305、PIT 310和FIB 315中。例如,内容名称为“/example.com/movie1”,其中上下文需求的大小大于1GB。

在下文的示例中,这些过程涉及NDN路由器100接收具有上下文需求的兴趣消息。作为响应,NDN路由器100会采取行动来更新PIT 310。此外,描述了与NDN路由器100接收数据消息相关的过程,这样NDN路由器100采取行动来更新CS 305、PIT 310和FIB 315。可以理解,下文的示例为非限制性的。

图4A示出了根据图1和图2的路由器接收兴趣消息的流程图。具体而言,该图示出了接收具有上下文需求的兴趣消息。在402A中,当NDN路由器100接收具有上下文需求(例如,包括条件)的兴趣时,在404A中,NDN路由器100采取的行动包括检查CS 305以确定是否存在匹配内容。

在406A中,如果NDN路由器100确定CS 305中存储了满足上下文需求的匹配内容,那么在408A中,NDN路由器100将缓存的内容返回给客户端(请求客户端)并丢弃兴趣。除了在CS 305中缓存内容外,相关上下文信息还可以保存在CS 305中。

另一方面,如果CS 305中没有存储匹配内容,那么在410A中,NDN路由器100确定PIT 310中是否存在具有相同内容名称的表项。如果PIT 310中存在这一表项,那么在412A中,NDN路由器100检查所接收的上下文需求是否可以与PIT 310中的现有上下文需求聚合在一起。例如,如果现有上下文需求为“大小大于1GB”且具有传入兴趣的上下文需求为“大小大于500M”,那么传入兴趣可以被聚合。相应地,传入兴趣的入接口和相关上下文需求被添加到PIT 310中的现有表项中。

在412A中,如果NDN路由器100确定上下文需求不能与PIT 310中的现有上下文需求聚合在一起,或者PIT 310中不存在具有相同内容名称的表项,那么在416A中,NDN路由器100检查FIB 315中的用于传入兴趣的转发接口(内容名称)。

图4B示出了根据图1和图2的路由器接收兴趣消息的流程图。该图中的流程从图4A所述的流程继续。在下文的示例中,按照416A(图4A)中的检查结果,在402B中,NDN路由器100确定FIB 310中是否存在具有与兴趣相同的内容名称的表项。如果表项存在,那么在404B中,NDN路由器100确定是否发现一个或多个转发接口与FIB 310中的内容名称相关联。但是,可以理解,这仅仅是示例,并且可以关联不止一个转发接口。

如果在404B中NDN路由器100确定存在单个转发接口,那么在416B中,NDN路由器100确定该转发接口是否具有任何关联的上下文信息。如果DND路由器100确定没有上下文信息与该转发接口相关联,那么在420B中,NDN路由器100转发兴趣给接口,在422B中,将兴趣连同兴趣中包括的对应上下文需求一起置于PIT 310中。

如果在416B中NDN路由器100确定转发接口具有关联的上下文信息,那么在418B中,NDN路由器100检查关联的上下文信息是否排斥客户端的指定上下文需求。也就是说,在418B中,NDN路由器100将上下文需求与具有相同上下文名称的关联上下文信息进行匹配。如果存在与具有不同上下文名称的转发接口相关联的其它上下文信息,则忽略该“其它”上下文信息。例如,在图3的示例中,上下文名称“example.com/movie1”具有用于检索内容的大小大于1GB的上下文需求。在FIB 315中,存在2条与转发接口相关联的上下文信息(接口列表=2)。相应地,仅比较名称为“大小”的上下文信息,而忽略该“其它”上下文信息(例如,分辨率等于1080p)。

如果无匹配,那么在414B中,NDN路由器100丢弃兴趣并返回失败响应给客户端侧。可选地,NDN路由器100可以将兴趣广播给接口,而不是广播给FIB 315中维护的接口或者兴趣的入接口。

如果在418B中NDN路由器100确定有匹配,那么NDN路由器100转发兴趣给接口420B。随后,在422B中,将兴趣连同PIT 310中包括的对应上下文需求一起作为聚合内容置于PIT 310中。

如果在404B中NDN路由器100确定不止一个转发接口与内容名称相关联,那么在406B中NDN路由器100将上下文需求与转发接口所关联的上下文信息进行比较,并且在412B中NDN路由器100通过匹配的上下文选择接口。

如果406B中不存在匹配转发接口,那么在408B中,NDN路由器100可以排除那些排斥客户端指定的上下文需求的接口。在410B中,NDN路由器100从在408B中确定的剩余接口中选择一个转发接口。该选择可使用任何已知的技术进行,例如随机选择、基于最近距离等标准来选择或者以针对服务器负载均衡的轮询方式来选择。在422B中,将兴趣连同对应的上下文需求一起置于PIT 310中。

图5示出了根据图1和图2的路由器接收数据消息的流程图。当在数据生产者上接收具有上下文需求的兴趣时,数据生产者按相同的路径将数据消息中的内容返回给客户端侧,其中数据生产者提供满足上下文需求的内容。在一项实施例中,数据生产者携带关于包含在上下文需求中的相同上下文名称的取值。例如,结合图3,上下文需求为大小大于1GB,用于检索名称为“example.com/movie1”的内容。在本示例中,数据生产者携带(或附加)关于其可以提供的内容大小的上下文信息。

因此,在一项实施例中,当NDN路由器100在通信路径中时,可以通过数据生产者的相同名称来了解完整的上下文信息。例如,数据生产者可以提供具有上下文信息的内容,例如200MB<大小<600MB。携带的信息(生产者可以提供的内容的上下文信息)包含与相同名称(例如,大小)相关的上下文信息以避免破坏数据消息。同时,原始上下文需求也可以携带在数据消息(返回的数据的上下文信息)中,这样,该通信路径中的NDN路由器100能够转发数据消息给对应的客户端侧。

在502中,NDN路由器100接收数据消息。在508中,NDN路由器100将携带的被返回的数据的上下文信息与存储在PIT 310中的具有相同内容名称的上下文信息进行比较。在514中,如果PIT 310中存储了具有相同内容名称和匹配的上下文需求的待定兴趣,那么在516中,将数据消息转发给兴趣的原始(发起)入接口(并且在518中,停止转发数据消息)。如果在PIT 310中没有发现待定兴趣,那么在518中,NDN路由器100停止转发数据消息。

NDN路由器100并行执行剩下的流程(504、510、512和506),这些步骤可以在后台可选地执行。例如,在506中,NDN路由器100确定是否基于本地缓存标准来缓存数据消息。在504中,数据消息(已缓存或未缓存)与存储在CS 305中的上下文信息相关联。如果数据消息携带原本可能由生产者提供的内容(在一项实施例中,与最初请求的内容具有相同的名称)的上下文信息,那么在520中,NDN路由器100记录上下文信息并将其与FIB 315中的对应接口相关联。在另一方面,如果不存在内容的所携带的上下文信息,其中该内容可以由如504中所确定的生产者提供,那么在512中,使接口的上下文处于未指定状态(留为空)。

图6A示出了在图1的路由器中更新转发信息库的顺序图。该图示出了如何在ICN网络中支持上下文感知的内容请求,例如通过NDN路由器。可以理解,下文的示例为非限制性的。顺序图示出了多个客户端(例如,客户端1(605))、客户端2(603)和客户端3(601))、路由器(例如,路由器1)、多个接口(例如,接口1的下一跳路由器609和接口2的下一跳路由器611)和多个生产者(例如,服务器1(613)和服务器2(615))。在该图中,虚线表示与特定客户端的协商。

客户端1(605)发送具有内容名称(例如,“movie.Frozen”)和上下文需求(即,大小小于200MB)的兴趣给相连的路由器1(607)。根据FIB 315中的数据结构(先于正在处理的客户端1(605)请求),前缀“movie.Frozen”存在于路由器1(607)中,其中该路由器在每个接口列表具有2个转发接口,例如,分别为接口1和2的下一跳路由器609和612(参见如标注为“路由器1中的FIB(FIB in Router 1)”的表)。在607A中,路由器1(607)选择,例如随机选择,一个接口以转发兴趣。这限制了传播兴趣消息的开销。

在示例中,选择接口1的下一跳路由器609。然后,接口1的下一跳路由器609将兴趣转发给一个生产者,例如服务器1(613)或者服务器2(615)(在这种情况下,选择服务器1)。服务器1(613)处理兴趣请求并提取内容名称和上下文需求。然后,服务器1(613)基于存储的信息确定其可以提供具有匹配的上下文信息的内容数据。服务器1(613)用内容数据进行回复,并且携带内容的上下文信息(例如,200MB<大小<600MB,这指示服务器1(613)能够提供给内容“movie.Frozen”的所有大小)以及返回的内容的原始上下文需求(即,大小小于200MB)。内容经由反向路径转发给路由器1(607),路由器1(607)将内容返回给客户端1(605)。

在607B中,在经由反向路径转发内容的过程中,路由器1基于本地缓存标准来缓存转发的内容,其中缓存的内容具有大小小于200MB的上下文信息。在607B中,路由器1将携带的上下文信息与转发接口1的下一跳路由器609关联,并指示具有上下文信息“200MB<大小<600MB”的内容“movie.Frozen”可以经由接口1的下一跳路由器609返回,如在处理来自客户端1(605)的请求后路由器1(607)的FIB 315中所指示(例如,参见标注为“客户端1的请求之后的路由器2中的FIB(FIB in Router 2After Client 1’s Request)”的表)。

随后,客户端2(603)发送具有内容名称(即,“movie.Frozen”)和上下文需求(即,大小小于300MB)的兴趣给相连的路由器1(607)。路由器1(607)基于在客户端1(605)请求之后更新的FIB 315来找出满足上下文需求的本地缓存副本,并将该副本返回给客户端2(603)。兴趣随后在路由器1(607)处丢弃。

图6B示出了在图1的路由器中更新转发信息库的顺序图,为图6A的延续。在路由器1(607)上处理客户端2(603)请求后,客户端3(601)发送具有内容名称(即,“movie.Frozen”)和上下文需求(即,大小大于1GB)的兴趣给路由器1(607)。在607D中,路由器1(607)能够排除(或跳过)接口1的下一跳路由器609并发送请求给接口2的下一跳路由器611,因为FIB 315中的关联上下文信息(即,200M<大小<600M)不满足兴趣的上下文需求(即,大小大于1GB)。因此,路由器1(607)在决定转发兴趣给接口2的下一跳路由器611时被视为是“上下文感知的”。

然后,接口2的下一跳路由器611将兴趣转发给一个生产者,例如服务器1(613)或者服务器2(615)(在这种情况下是服务器2)。服务器2(615)处理兴趣请求并提取内容名称和上下文需求。服务器2(615)基于存储的信息确定其可以提供具有匹配的上下文信息的内容数据。相应地,服务器2(615)用内容数据进行回复,并且携带内容的上下文信息(例如,1GB<大小<3GB,这指示服务器2(615)能够提供给内容“movie.Frozen”的所有大小)以及返回的内容的原始上下文需求(即,大小大于1GB)。

内容经由反向路径转发给路由器1(607)。路由器1(607)将内容返回给客户端2(603),路由器1(607)由于存储有限并基于本地缓存标准决定不缓存内容。在607E中,路由器1(607)将携带的上下文信息与转发接口2的下一跳路由器611关联,并指示具有上下文信息“1GB<大小<3GB”的内容“movie.Frozen”可以经由接口2的下一跳路由器611返回(例如,参见标注为“客户端2和客户端3的请求之后的路由器1中的FIB(FIB in Router 1AfterClient 2and 3’s Request)”的表)。

图7示出了根据本发明实施例的路由器的实施例。节点(例如,路由器)700可以是例如内容路由器100(图1)或上文所述的ICN中的任何其它节点或路由器。节点700可以包括多个输入/输出接口710/730和/或从其它节点接收和发送数据的接收器(receiver,Rx)712和发射器(transmitter,Tx)732,以及包括存储722和可编程内容转发面728的处理器720(或内容感知单元),用于处理数据和确定将数据发送到哪个节点。节点700还可以接收兴趣消息和数据消息,如上文所述。尽管示为单个处理器,但是处理器720并不限于此并且可以包括多个处理器。处理器720可以实施为一个或多个中央处理器(central processingunit,CPU)芯片、内核(例如,多核处理器)、现场可编程门阵列(field-programmable gatearray,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和/或数字信号处理器(digital signal processor,DSP),和/或可以是一个或多个ASIC的一部分。通过实施例中所述的任一步骤或步骤组合,处理器720可以用于实施本文所述的任何方案,例如图3至图6所示的流程。此外,处理器720可以通过硬件、软件或软硬件来实施。

存储722(或存储器)可以包括缓存724和长期存储726,而且可以用于存储路由表、转发表或本文公开的其它表或信息。尽管示为单个存储,但是存储722可以实施为只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)或辅助存储(例如,用于非易失数据存储的一个或多个磁盘驱动器或磁带驱动器)的组合。

可编程内容转发面728可以用于例如在应用层或L3实施内容转发和处理功能,其中内容可以基于内容名称或前缀以及可能还有将内容映射到网络业务的其它内容相关信息进行转发。此类映射信息可以在处理器720上的一个或多个内容表(例如,CS、PIT、FIB)中进行维护。可编程内容转发面728可以解释用户的内容请求并相应地,例如基于元数据和/或内容名称(前缀),从网络或其它内容路由器提取内容并且可以将内容例如临时地存储在存储722中。然后,可编程内容转发面728可以转发缓存内容给用户。可编程内容转发面728可以通过软件、硬件、或软硬件来实施,而且可以在IP层或L2上进行操作。

图8示出了可以用于实施各实施例的网络系统的框图。特定设备可以使用所示的所有组件,或者仅使用组件的一个子集,并且各设备的集成程度可能不同。此外,设备可以包括组件的多个实例,例如多个处理单元、处理器、存储器、发射器和接收器等。网络系统可以包括装配有一个或多个输入/输出设备的处理单元801,例如网络接口、存储接口,等等。处理单元801可以包括中央处理器(central processing unit,CPU)810、存储器820、大容量存储设备830和/或连接到总线的I/O接口860。总线可以是任何类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线等。

CPU 810可以包括任何类型的电子数据处理器。存储器820可以包括任意类型的系统存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)、它们的组合,等等。在一项实施例中,存储器820可以包括在开机时使用的ROM以及在执行程序时使用的程序和数据存储的DRAM。在实施例中,存储器820为非瞬时性的。大容量存储设备830可以包括任何类型的存储设备,用于存储数据、程序和其它信息,并使这些数据、程序和其它信息可以通过总线进行访问。大容量存储设备830可以包括如以下项中的一项或多项:固态驱动器、硬盘驱动器、磁盘驱动器、光盘驱动器等。

处理单元801还包括一个或多个网络接口850,网络接口850可以包括以太网电缆等有线链路和/或到接入节点或一个或多个网络880的无线链路。网络接口850允许处理单元801通过网络880与远程单元进行通信。例如,网络接口850可以通过一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一项实施例中,处理单元801耦合到局域网或广域网以进行数据处理和与远程设备通信,远程设备是例如其它处理单元、因特网、远程存储设施等。

根据实施例,提供了一种机制以通过利用和建立ICN架构以及对协议的变更最少的基础设计原则来支持ICN架构中的内容请求的上下文感知;路由器可以了解内容的上下文信息和其生产者,而无需额外的开销;路由器能够将上下文信息关联到转发接口以便用于将来的内容请求。相应地,系统大大降低了传输无法满足客户端需求的内容时的网络带宽,路由器在针对满足客户端上下文需求的内容选择转发接口时可以做出正确的决定,这减少了内容请求失败,而且路由器不需要将兴趣消息多播给所有存在的转发接口,这降低了传输该兴趣消息的网络带宽并减少了每个涉及的路由器所维护的控制状态。

上文所论述的上下文感知的内容机制提供了若干优点,包括但不限于(1)使用具有通过条件表示的可选上下文需求的兴趣消息格式的客户端侧的上下文感知,其中条件用上下文名称、运算符和上下文取值来表示;(2)通过以下操作支持路由器侧的上下文感知:处理来自客户端的具有上下文需求的兴趣消息,通过将上下文需求与接口的上下文信息进行匹配来决定转发接口,通过覆盖上下文需求来聚合待定兴趣,以及处理数据消息,将从对应的待定兴趣了解到的或生产者所携带的上下文信息进行关联;(3)通过以下操作支持内容生产者的上下文感知:处理具有上下文需求的兴趣消息,以及在数据消息中携带所请求的内容的相关上下文信息。

此外,上文所公开的机制提供了内容请求中的上下文感知,这些方案使ICN协议(例如,NDN协议和原语)更适合作为IoT应用的底层协议,不需要内容生产者来显式广播整个网络中的所有内容的所有上下文信息,内容的上下文信息和其生产者可以通过路由器隐式了解。因此,这些方案使路由器能够针对内容生产者正确地决定转发接口,其中内容生产者提供可以具有所需上下文的内容,并且无需将兴趣消息多播给所有转发接口,这减少了路由器所维护的控制状态。

根据本发明的各实施例,本文所述的方法可以通过执行软件程序的硬件计算机系统来实施。此外,在示例性、非限制性实施例中,实施方式可以包括分布式处理、组件/对象分布式处理和并行处理。可以构建虚拟计算机系统处理以实施上文所述的方法或功能中的一种或多种,本文所述的处理器可以用于支持虚拟处理环境。

本发明的各方面在本文中参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或方框图进行描述。可以理解的是,流程图说明和/或框图中的每个方框以及流程图说明和/或框图中的框组合可以通过计算机程序指令进行实施。这些计算机程序指令可以提供给通用计算机、专用计算机或者其它可编程数据处理装置的处理器以生成机器,这样这些通过计算机的处理器或其它可编程指令执行装置执行的指令创建用于实施流程图和/或框图的方框中指定的功能/动作的机制。

本文中所用的术语仅仅是出于描述特定方面的目的,并且并不打算限制本发明。除非上下文清楚说明,否则本文所用的单数形式“一”和“所述”包括其复数形式。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或新增一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组合。

本发明的描述是为了说明和描述的目的而呈现,但并不旨在穷举或限于所公开形式的公开内容。在不偏离本发明的范围和精神的前提下,多种修改和改变对本领域技术人员而言是显而易见的。选择和描述的本发明各个方面以便更好地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明适合预期特定用途的各种修改。

为了本文档的目的,与所公开的技术相关联的每个过程可以连续执行并由一个或多个计算设备执行。过程中的每个步骤可以由与其它步骤中使用的相同或不同的计算设备来执行,并且每个步骤不一定由单个计算设备执行。

虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。反向,上文描述的具体特征和动作被公开为实现权利要求的示例形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号