聚合目标和探索查询转让专利

申请号 : CN201680026387.5

文献号 : CN107637047A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : Y-T·于V·D·帕克

申请人 : 高通股份有限公司

摘要 :

在本公开内容的一个方面,提供了一种方法、计算机可读介质和装置。该装置可以是第一节点。第一节点从第二节点接收第一分组。第一节点确定第一分组是请求响应分组并与第一事务相关联的查询分组。第一节点确定第一节点是与第一分组相关联的第一下一跳节点。第一节点确定该查询分组包括用于本地探索的指示。第一节点延迟对第一分组的进一步路由。

权利要求 :

1.一种在第一节点处通信的方法,包括:从第二节点接收第一分组;

确定所述第一分组是请求响应分组并与第一事务相关联的查询分组;

确定所述第一节点是与所述第一分组相关联的第一下一跳节点;

确定所述查询分组包括用于本地探索的指示;以及延迟对所述第一分组的进一步路由。

2.根据权利要求1所述的方法,其中,关于所述第一分组是所述查询分组的所述确定是在下层处执行的,并且其中,所述下层是物理(PHY)层、媒体访问控制(MAC)层或者链路层。

3.根据权利要求1所述的方法,还包括:判断另一个节点是否发送了与所述第一事务相关联的响应分组;

响应于确定所述另一个节点没有发送与所述第一事务相关联的所述响应分组,对所述第一分组进行进一步路由;以及响应于确定所述另一个节点发送了与所述第一事务相关联的所述响应分组,丢弃所述第一分组。

4.根据权利要求3所述的方法,其中,所述查询分组包括:对查询的指示;

所述第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址;

其中,关于所述第一分组是所述查询分组的所述确定是基于对所述查询的所述指示;

其中,关于所述第一节点是所述第一下一跳节点的所述确定是基于所述第一地址;以及其中,所述另一个节点在所述一组节点中。

5.根据权利要求3所述的方法,其中,所述响应分组包括:对响应的指示,

对所述第一事务的指示;以及

其中,关于是否发送了与所述第一事务相关联的所述响应分组的所述判断是基于判断接收的下层分组是否包含对响应的所述指示和对所述第一事务的所述指示来做出的。

6.根据权利要求1所述的方法,还包括:在下层处确定所述第一节点是与包括在所述第一分组的上层分组相关联的所述第一下一跳节点。

7.根据权利要求6所述的方法,还包括:尝试接收至少一个第二分组;

响应于接收到所述至少一个第二分组,判断所述至少一个第二分组是否包括与所述第一事务相关联的响应分组;

响应于没有接收到所述至少一个第二分组,或者响应于确定所述至少一个第二分组不包括与所述第一事务相关联的响应分组,向上层发送包括在所述第一分组中的所述上层分组;以及响应于确定所述至少一个第二分组包括与所述第一事务相关联的响应分组,(a)避免向所述上层发送包括在所述第一分组中的所述上层分组,或者(b)避免向所述第二节点发送从所述上层接收的响应分组。

8.根据权利要求7所述的方法,其中,尝试接收所述至少一个第二分组是在预先配置的时间段T中执行的,所述方法还包括:响应于确定所述第一节点是所述第一下一跳节点,在所述下层处,在所述预先配置的时间段T期间,对所述第一分组进行缓存。

9.根据权利要求7所述的方法,其中,所述第一分组是在第一信道上接收的,并且其中,尝试接收所述至少一个第二分组是在所述第一信道上执行的。

10.根据权利要求9所述的方法,还包括:在所述上层处接收到所述上层分组时,确定与所述上层分组相关联的第二下一跳节点;

在所述下层处,将所述上层分组包括在第三分组中;以及在第二信道上,向与所述上层分组相关联的所述第二下一跳节点发送所述第三分组。

11.一种用于通信的装置,所述装置是第一节点,所述装置包括:用于从第二节点接收第一分组的单元;

用于确定所述第一分组是请求响应分组并与第一事务相关联的查询分组的单元;

用于确定所述第一节点是与所述第一分组相关联的第一下一跳节点的单元;

用于确定所述查询分组包括用于本地探索的指示的单元;以及用于延迟对所述第一分组的进一步路由的单元。

12.根据权利要求11所述的装置,其中,所述用于确定所述第一分组是查询分组的单元被配置为在下层处执行所述确定,并且其中,所述下层是物理(PHY)层、媒体访问控制(MAC)层或者链路层。

13.根据权利要求11所述的装置,还包括:用于响应于确定所述第一节点是与所述第一分组相关联的所述第一下一跳节点,延迟对所述第一分组的进一步路由的单元;

用于判断另一个节点是否发送了与所述第一事务相关联的响应分组的单元;

用于响应于确定所述另一个节点没有发送与所述第一事务相关联的所述响应分组,对所述第一分组进行进一步路由的单元;以及用于响应于确定所述另一个节点发送了与所述第一事务相关联的所述响应分组,丢弃所述第一分组的单元。

14.根据权利要求13所述的装置,其中,所述查询分组包括:对查询的指示;

所述第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址;

其中,关于所述第一分组是所述查询分组的所述确定是基于对所述查询的所述指示;

其中,关于所述第一节点是所述第一下一跳节点的所述确定是基于所述第一地址;以及其中,所述另一个节点在所述一组节点中。

15.根据权利要求13所述的装置,其中,所述响应分组包括:对响应的指示,

对所述第一事务的指示;以及

其中,关于是否发送了与所述第一事务相关联的所述响应分组的所述判断是基于判断接收的下层分组是否包含对响应的所述指示和对所述第一事务的所述指示来做出的。

16.根据权利要求11所述的装置,还包括:用于在下层处确定所述第一节点是与包括在所述第一分组的上层分组相关联的所述第一下一跳节点的单元。

17.根据权利要求16所述的装置,还包括:用于尝试接收至少一个第二分组的单元;

用于响应于接收到所述至少一个第二分组,判断所述至少一个第二分组是否包括与所述第一事务相关联的响应分组的单元;

用于响应于没有接收到所述至少一个第二分组,或者响应于确定所述至少一个第二分组不包括与所述第一事务相关联的响应分组,向上层发送包括在所述第一分组中的所述上层分组的单元;以及用于(a)响应于确定所述至少一个第二分组包括与所述第一事务相关联的响应分组,避免向所述上层发送包括在所述第一分组中的所述上层分组,或者(b)响应于确定所述至少一个第二分组包括与所述第一事务相关联的响应分组,避免向所述第二节点发送从所述上层接收的响应分组的单元。

18.根据权利要求17所述的装置,其中,尝试接收所述至少一个第二分组是在预先配置的时间段T中执行的,所述装置还包括:用于响应于确定所述第一节点是所述第一下一跳节点,在所述下层处,在所述预先配置的时间段T期间,对所述第一分组进行缓存的单元。

19.根据权利要求17所述的装置,其中,所述第一分组是在第一信道上接收的,并且其中,尝试接收所述至少一个第二分组是在所述第一信道上执行的。

20.根据权利要求19所述的装置,还包括:用于在所述上层处接收到所述上层分组时,确定与所述上层分组相关联的第二下一跳节点的单元;

用于在所述下层处,将所述上层分组包括在第三分组中的单元;以及用于在第二信道上,向与所述上层分组相关联的所述第二下一跳节点发送所述第三分组的单元。

21.一种用于通信的装置,所述装置是第一节点,所述装置包括:存储器;以及

至少一个处理器,其被耦合到所述存储器并且被配置为:从第二节点接收第一分组;

确定所述第一分组是请求响应分组并与第一事务相关联的查询分组;

确定所述第一节点是与所述第一分组相关联的第一下一跳节点;

确定所述查询分组包括用于本地探索的指示;以及延迟对所述第一分组的进一步路由。

22.根据权利要求21所述的装置,其中,所述至少一个处理器还被配置为:响应于确定所述第一节点是与所述第一分组相关联的所述第一下一跳节点,延迟对所述第一分组的进一步路由;

判断另一个节点是否发送了与所述第一事务相关联的响应分组;

响应于确定所述另一个节点没有发送与所述第一事务相关联的所述响应分组,对所述第一分组进行进一步路由;以及响应于确定所述另一个节点发送了与所述第一事务相关联的所述响应分组,丢弃所述第一分组。

23.根据权利要求22所述的装置,其中,所述查询分组包括:对查询的指示;

所述第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址;

其中,关于所述第一分组是所述查询分组的所述确定是基于对所述查询的所述指示;

其中,关于所述第一节点是所述第一下一跳节点的所述确定是基于所述第一地址;以及其中,所述另一个节点在所述一组节点中。

24.根据权利要求22所述的装置,其中,所述响应分组包括:对响应的指示,

对所述第一事务的指示;以及

其中,关于是否发送了与所述第一事务相关联的所述响应分组的所述判断是基于判断接收的下层分组是否包含对响应的所述指示和对所述第一事务的所述指示来做出的。

25.根据权利要求21所述的装置,其中,所述至少一个处理器还被配置为:在下层处确定所述第一节点是与包括在所述第一分组的上层分组相关联的所述第一下一跳节点。

26.根据权利要求25所述的装置,其中,所述至少一个处理器还被配置为:尝试接收至少一个第二分组;

响应于接收到所述至少一个第二分组,判断所述至少一个第二分组是否包括与所述第一事务相关联的响应分组;

响应于没有接收到所述至少一个第二分组,或者响应于确定所述至少一个第二分组不包括与所述第一事务相关联的响应分组,向上层发送包括在所述第一分组中的所述上层分组;以及响应于确定所述至少一个第二分组包括与所述第一事务相关联的响应分组,(a)避免向所述上层发送包括在所述第一分组中的所述上层分组,或者(b)避免向所述第二节点发送从所述上层接收的响应分组。

27.根据权利要求26所述的装置,其中,所述至少一个处理器还被配置为:尝试在预先配置的时间段T中,接收所述至少一个第二分组,以及响应于确定所述第一节点是所述第一下一跳节点,在所述下层处,在所述预先配置的时间段T期间,对所述第一分组进行缓存。

28.根据权利要求26所述的装置,其中,所述第一分组是在第一信道上接收的,其中,尝试接收所述至少一个第二分组是在所述第一信道上执行的,并且其中,所述至少一个处理器还被配置为:在所述上层处接收到所述上层分组时,确定与所述上层分组相关联的第二下一跳节点;

在所述下层处,将所述上层分组包括在第三分组中;以及在第二信道上,向与所述上层分组相关联的所述第二下一跳节点发送所述第三分组。

29.一种在第一节点处通信的方法,包括:构造用于请求响应分组并与第一事务相关联的查询分组,其中,所述查询分组包括用于本地探索的指示和用于目标请求的指示;以及在与多个本地节点共享的信道上,发送所述查询分组。

30.根据权利要求29所述的方法,其中,所述查询分组包括:对查询的指示;

对所述第一事务的指示;

与所述目标请求相关联的下一跳节点的至少一个第一地址;以及与所述本地探索相关联的一组节点的至少一个第二地址。

说明书 :

聚合目标和探索查询

[0001] 相关申请的交叉引用
[0002] 本申请要求于2015年5月8日递交的并且名称为“AGGREGATING TARGETED AND EXPLORATION QUERIES”的美国专利申请No.14/708,149的权益,故以引用方式将该专利的全部内容明确地并入本文。

技术领域

[0003] 概括地说,本公开内容涉及通信系统,并且更为具体地说,本公开内容涉及以信息为中心网络(ICN)中的聚合目标和探索查询的技术。

背景技术

[0004] 本文所提供的背景描述是出于一般性地呈现本公开内容的上下文的目的。可能并不作为在本申请提交时的现有技术的在背景技术部分以及本说明书的各个方面中描述的指出姓名的发明人的工作所进行的程度,从未明示地或暗示承认其为相对于本公开内容的现有技术。
[0005] 查询-响应事务是ICN的基本要素。可以基于内容标识符而不是主机标识符,对ICN查询分组进行路由。但是,在物理(PHY)层、媒体访问控制(MAC)层或者链路层,则需要指示地址。因此,当将分组传送到PHY/MAC/链路层时,ICN可以通过各种方式将内容标识符映射到地址。需要一种改进的可以减少资源使用的查询机制。

发明内容

[0006] 在本公开内容的一个方面,提供了一种方法、计算机可读介质和装置。该装置可以是第一节点。第一节点从第二节点接收第一分组。第一节点确定第一分组是请求响应分组并与第一事务相关联的查询分组。第一节点确定该第一节点是与第一分组相关联的第一下一跳节点。第一节点确定该查询分组包括用于本地探索的指示。第一节点延迟对第一分组的进一步路由。
[0007] 在本公开内容的另一个方面中,提供了一种方法、计算机可读介质和装置。该装置可以是第一节点。第一节点构造用于请求响应分组并与第一事务相关联的查询分组。该查询分组包括用于本地探索的指示和用于目标请求的指示。第一节点在与多个本地节点共享的信道上,发送该查询分组。

附图说明

[0008] 图1是示出一种ICN系统的图。
[0009] 图2是示出在ICN系统中使用的媒体MAC层分组(帧)的图。
[0010] 图3是示出使用查询-响应事务的设备之间的分组通信的图。
[0011] 图4是示出使用查询-响应事务的设备之间的分组通信的另一个图。
[0012] 图5是处理查询分组的方法(处理)的流程图。
[0013] 图6是本地探索的方法(处理)的流程图。
[0014] 图7是本地探索的另一种方法(处理)的流程图。
[0015] 图8是操作查询节点的方法(处理)的流程图。
[0016] 图9是示出示例性装置中的不同模块/单元/组件之间的数据流的概念性数据流图。
[0017] 图10是示出用于使用处理系统的装置的硬件实现的例子的图。

具体实施方式

[0018] 下面结合附图描述的具体实施方式,旨在对各种配置进行描述,而不是旨在表示在这些配置中才可以实现本文所描述的概念。出于对各种概念有一个透彻理解的目的,具体实施方式包括特定的细节。但是,对于本领域普通技术人员来说显而易见的是,可以在不使用这些特定细节的情况下实现这些概念。在一些实例中,为了避免对这些概念造成模糊,公知的结构和组件以框图形式示出。
[0019] 下文参照附图更全面地描述新颖性系统、装置、计算机程序产品和方法的各个方面。但是,本公开内容可以以多种不同的形式实现,并且其不应被解释为受限于贯穿本公开内容给出的任何特定结构或功能。相反,提供这些方面只是使得本公开内容变得透彻和完整,并将向本领域的普通技术人员完整地传达本公开内容的保护范围。根据本文的教导,本领域普通技术人员应当理解的是,本公开内容的保护范围旨在覆盖本文所公开的新颖性系统、装置、计算机程序产品和方法的任何方面,无论其是独立于本发明的任何其它方面实现的还是结合本发明的任何其它方面实现的。例如,可以使用本文阐述的任意数量的方面来实现装置或可以实现方法。此外,本发明的保护范围旨在覆盖这种装置或方法:其可以通过使用其它结构、功能、或者除了本文所阐述的本发明的各个方面之外的结构和功能、或不同于本文所阐述的本发明的各个方面的结构和功能来实现。应当理解的是,本文所公开的任何方面可以通过权利要求的一个或多个要素来体现。
[0020] 虽然本文描述了一些特定的方面,但是这些方面的多种变型和排列也落入本公开内容的保护范围之内。虽然提及了优选的方面的一些益处和优点,但是本公开内容的保护范围并不受到特定的益处、用途或目的的限制。相反,本公开内容的方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些通过示例的方式在附图和优选方面的下文描述中进行了说明。具体实施方式和附图仅仅是对本公开内容的说明而不是限制,本公开内容的保护范围由所附权利要求书及其等同物进行界定。
[0021] 流行的无线网络技术可以包括各种类型的无线局域网(WLAN)。WLAN可以用于采用广泛使用的网络协议,将邻近的设备互连在一起。本文所描述的各个方面可以应用于诸如无线协议之类的任何通信标准。
[0022] 在一些方面,可以使用正交频分复用(OFDM)、直接序列扩频(DSSS)通信、OFDM和DSSS通信的组合或者其它方案,根据电气和电子工程师协会(IEEE)802.11协议来发送无线信号。对IEEE 802.11协议的实现可以用于传感器、计量和智能网格网络。有利的是,实现IEEE 802.11协议的某些设备的方面,可以比实现其它无线协议的设备消耗更少的功率,和/或可以用于跨越相对较长的范围(例如,大约一公里或者更长)来发送无线信号。
[0023] 在一些实现中,WLAN包括各种设备,这些设备是用于接入无线网络的组件。例如,可以存在两种类型的设备:接入点(AP)和客户端(其还称为站或“STA”)。通常,AP可以充当用于WLAN的集线器或者基站,STA充当WLAN的用户。例如,STA可以是膝上型计算机、个人数字助理(PDA)、移动电话等等。在一个例子中,STA经由遵循WiFi(例如,IEEE 802.11协议)的无线链路来连接到AP,以获得与互联网或者与其它广域网的通常连接。在一些实现中,还可以将STA用作AP。
[0024] 站还可以包括、实现为或者称为接入终端(AT)、用户站、用户单元、移动站、远程站、远程终端、用户终端、用户代理、用户设备、用户装备或某种其它术语。在一些实现中,接入终端可以包括蜂窝电话、无绳电话、会话发起协议(SIP)电话、无线本地环路(WLL)站、个人数字助理(PDA)、具有无线连接能力的手持设备、或者连接到无线调制解调器的某种其它适当处理设备。因此,本文所教示的一个或多个方面可以并入到电话(例如,蜂窝电话或智能电话)、计算机(例如,膝上型计算机)、便携式通信设备、耳机、便携式计算设备(例如,个人数据助理)、娱乐设备(例如,音乐或视频设备、或卫星无线设备)、游戏设备或系统、全球定位系统设备或者被配置为经由无线介质进行通信的任何其它适当设备。
[0025] 在本公开内容的上下文中,应当给予术语“关联”或者“相关联”或者其任何变型可能的最广泛的含义。举例而言,当第一装置与第二装置相关联时,应当理解的是,这两个装置可以是直接关联,或者可以存在中间装置。为了简短起见,用于在两个装置之间建立关联的过程将使用握手协议来描述,其中该握手协议需要由装置中的一个装置进行“关联请求”,接着由另一个装置进行“关联响应”。本领域普通技术人员应当理解的是,握手协议可能需要其它的信令,举例而言,用于提供认证的信令。
[0026] 在本文中使用诸如“第一”、“第二”等等之类的指定对要素的任何引用,通常并不限制这些要素的数量或顺序。相反,在本文中将这些指定使用成区分两个或更多要素或者要素的实例的便利方法。因此,对于第一要素和第二要素的引用并不意味仅可以使用两个要素,或者第一要素必须在第二要素之前。
[0027] 如上面所讨论的,本文所描述的某些设备可以实现例如IEEE 802.11标准。这些设备(无论是使用成STA或AP,还是使用成其它设备)可以用于智能计量或者在智能网格网络中使用。这些设备可以提供传感器应用或者在家庭自动化中使用。替代地或另外地,这些设备可以用于健康保健背景,例如,用于个人健康保健。此外,它们还可以用于监视,以实现距离扩展的互联网连接(例如,结合热点使用)或者实现机器对机器通信。
[0028] 查询-响应事务是ICN的基本要素。在ICN中,可以使用两种类型的查询:探索查询和目标查询。探索查询可以用于探索邻域,以获得匹配于内容标识符的响应。目标查询可以用于将查询分组直接发送到与内容标识符相关联的目标。ICN的优点之一是其可以灵活地实现这两种类型的查询-响应事务,而无需干预使用ICN的应用。换言之,ICN可以允许应用探索本地副本以减少延迟,并同时可靠地获取内容(即使本地副本不存在)。
[0029] 可以基于内容标识符而不是主机标识符,对ICN查询分组进行路由。但是,在物理(PHY)层、媒体访问控制(MAC)层或者链路层,则需要指示地址。因此,当将分组传送到PHY/MAC/链路层时,ICN可以通过各种方式将内容标识符映射到地址。
[0030] 在一种技术中,可以通过在PHY/MAC/链路层处使用多播或广播地址,在更高层处处理/丢弃分组以进行更广泛的探索,来实现探索查询。可以通过使用目标地址映射来应用基于目的地的路由,使用下一跳节点的单播地址来实现目标查询。
[0031] 在无线网络中,ICN系统可能频繁地在探索查询和目标查询之间切换,这是因为首先在本地邻居中探索内容可用性,而在本地邻居搜索失败时穿过单个路径进行高效的远程内容获取是有益的。在某些配置中,在探索失败的情况下,ICN系统可能需要两次查询传输:第一传输查询多播地址,随后第二传输使用下一跳节点的单播地址来重复该查询。对于一次内容获取尝试而言,使用两次查询可能需要额外的资源使用。因此,需要一种改进的可以减少资源使用的查询机制。
[0032] 在某些配置中,下一跳节点和查询节点的探索节点共享相同的通信信道。因此,目标的下一跳节点能够监听来自探索节点的响应。例如,AP管理网络中的个人设备的通信的小型家庭网络,可以实现这样的配置。在这种情况下,AP充当下一跳节点,个人设备是探索节点。
[0033] 在一种技术中,设备处的上层(例如,传输控制协议(TCP)层、用户数据报协议(UDP)层或者互联网协议(IP)层)可以将查询分组与PHY/MAC/链路层处的两个地址(探索地址和下一跳地址)进行关联。这两个地址可以通过该上层来提供。探索地址指示用于探索查询的地址(例如,用于探索一跳邻居的广播地址)。下一跳地址指示用于目标查询的地址(例如,中继到目的地的下一跳的单播地址)。
[0034] 在一种技术中,上层可以选择来指示以下各项:(a)仅仅下一跳地址;(b)仅仅探索地址;或者(c)下一跳地址和探索地址二者。在这两个地址均被指定的情况下,下一跳节点的PHY/MAC/链路层将对该查询分组的处理(例如,路由)延迟某一段时间,以允许探索。在该等待时间期间,下一跳节点监听公共信道。如果下一跳节点在该等待时间期间接收到针对该查询的任何响应,则下一跳节点丢弃该查询分组。否则,PHY/MAC/链路层将该查询分组传送到上层进行处理(例如,路由)。
[0035] 这些技术可以减少去往两个地址的传输,从而减少上层的事务延迟。
[0036] 具体而言,在某些配置中,对于查询分组而言,查询节点的上层可以指定分组类型(即,查询或者响应),并将下面中的至少一项指定成目的地:(1)仅仅下一跳地址;(2)仅仅探索地址;和(3)下一跳地址和探索地址二者。对于响应分组而言,响应节点的上层可以指定查询节点地址(即,查询分组的发送方地址)、下一跳地址和下文所描述的事务标识符(ID)。在具有状态性系统的某些配置中,响应分组的发射机和接收机可以通过仅仅使用事务ID来推断下一跳地址、探索地址和/或查询节点地址。
[0037] 在一种技术中,现有的以太网MAC层应用程序接口(API)可以扩展成:入队(分组、去向地址(toAddress)、探索地址、分组类型),其中,重新使用该去向地址来表示下一跳地址。
[0038] 在某些配置中,下一跳节点、查询节点和潜在的本地响应方(其通过探索地址来指定)共享公共传输信道,本地响应方将经由公共信道来发送响应。因此,查询节点和响应节点的PHY/MAC/链路层只发送一次查询分组或者响应分组,并且这些查询分组和响应分组均可以包括两个目的地地址。此外,可以实现一种机制,以将查询分组和响应分组关联到已知事务。
[0039] 在上层只指定下一跳地址和探索地址中的一个的情况下,查询节点或者响应节点的PHY/MAC/链路层处的分组处理过程可以类似于传统的MAC层的分组处理过程。
[0040] 查询节点可以执行下面的操作中的一个或多个操作:从上层接收查询分组;从上层接收分组类型;从上层接收探索地址;从上层接收下一跳地址;向下一跳和探索地址发送该分组;发送分组类型;发送中继地址;发送探索地址;发送查询节点地址;以及接收响应分组。
[0041] 通过探索地址所指定的探索节点可以执行下面操作中的一个或多个操作:接收查询分组;接收分组类型;接收探索地址;接收下一跳地址;接收查询节点地址;向上层发送查询分组;从上层接收响应分组;从上层接收分组类型;从上层接收查询节点地址;从上层接收下一跳地址;以及向下一跳节点和查询节点发送响应分组。
[0042] 通过下一跳地址所指定的下一跳节点可以执行下面操作中的一个或多个操作:接收查询分组;接收分组类型;接收探索地址;接收下一跳地址;接收查询节点地址;设置用于查询分组的等待时间;对查询分组进行缓存;以及监听公共信道。此外,当在等待时间到期之前,在下一跳节点处接收到响应分组时,下一跳节点可以执行下面操作中的一个或多个操作:接收响应分组;接收下一跳地址;如果下一跳地址与缓存的查询分组的地址相匹配,则丢弃该缓存的查询分组。当在等待时间到期之前,在下一跳节点处没有接收到响应分组时,下一跳节点可以在该等待时间之后,向上层发送查询分组。
[0043] 图1是示出ICN系统的图100。具体而言,图1示出了在网络A 151中存在设备121-125和网关116。网络A 151具有由设备121-125和网关116进行共享的公共信道132。可以将相同网络(例如,局域网(LAN))中的设备视作为彼此之间是本地的。例如,可以将设备121-
125和网关116视作为彼此之间是本地的。此外,网关116还通过中继信道142,与网络B 152进行通信。可以将不同网络中的设备视作成彼此之间是远程的。例如,可以将信息提供者
162视作为距设备121-125是远程的,反之亦然。网络B 152包含信息提供者162。信息提供者
162存储包括有信息项172的一个或多个信息项。
[0044] 在某些配置中,网关116可以是AP,网络A 151可以是由网关116进行管理的WLAN。在某些配置中,网络A 151可以是有线LAN(例如,以太网),并且网关116可以是用于桥接网络A 151和网络B 152的边缘路由器。
[0045] 设备121-125中的每一个设备可以寻求信息提供者162上可用的信息项。通过在网络A 151中可用并进行分发的网络信息(例如,网络拓扑),设备121-125中的每一个设备可以确定用于向信息提供者162发送请求的下一跳节点(例如,网关116)。
[0046] 设备可以发送针对于信息提供者的查询,以请求信息项。作为响应,信息提供者可以向请求的设备发送响应。该响应可以包括所请求的信息项(当该项在信息提供者处可用时)。替代地,该响应可以包括诸如否定确认(NACK)之类的指示,其指示所请求的项在信息提供者处不可用。该查询和相应的响应可以与事务相关联。事务包括一个或多个查询和一个或多个相应的响应。可以向属于相同事务的查询和响应分配相同的事务ID。此外,在一个事务中,可以将来自请求方的查询发送给多个响应者。每个响应者可以将响应发送回给请求方。该查询和多个响应具有相同的事务ID,指示该查询和这些响应属于相同的事务。
[0047] 例如,设备121处的上层应用可能期望通过查询,从信息提供者162请求信息项172(即,诸如音乐文件A之类的特定项)。因此,在第一事务中,设备121处的上层应用可以发送具有第一事务ID“10101”和针对于信息提供者162的第一查询,以请求音乐文件A。信息提供者162经由网关116接收该查询,并且作为响应,发送具有第一事务ID(即,“10101”)和具有音乐文件A的副本的响应。随后,在第二事务中,设备122处的上层应用可以发送具有第二事务ID(即,“10110”)和针对于信息提供者162的第二查询,以请求音乐文件A。因此,设备122可以从信息提供者162接收具有第二事务ID(即,“10110”)和音乐文件A的副本的响应。此外,来自设备122的查询还可以发送给设备121。由于设备121先前从信息提供者162接收到音乐文件A,因此设备121也可以向设备122提供音乐文件A。因此,设备121可以向设备122发送包括请求的信息项和第二事务ID(即,“10110”)的响应。设备122可以认为来自设备121和信息提供者162中的任何一个的响应都满足该请求,这是由于每个响应都包含所请求的特定项(即,音乐文件A)和第二事务ID(即,“10110”)。
[0048] 图2是示出在ICN系统中使用的MAC层分组(帧)的图200。MAC层请求分组210包括前导222、目的地地址字段224、探索地址字段226、源地址字段228、类型/长度字段230、事务ID字段232、请求字段234、填充字段236以及校验和字段238。MAC层响应分组250包括前导262、目的地地址字段264、源地址字段266、类型/长度字段268、事务ID字段270、响应字段272、填充字段274以及校验和字段276。
[0049] 返回参见图1,如上所述,设备121的上层应用可以决定要请求信息项172的副本。在某些配置中,上层应用可以决定要对探索邻居进行探索,并且请求探索邻居返回信息项
172的副本。探索邻居的设备被称为探索节点或者被探索节点。探索邻居可以具有本地存储的信息项的副本。探索邻居可能能够从与信息提供者162不同的源获得信息项的副本。该源可以是处于网络A 151之中的、但不能由设备121访问的设备。该源可以位于另一个远程网络中或者对于探索邻居而言可用的专用网络中。由本地探索的节点提供的信息项的副本(其中,本地探索的节点可以使用各种机制(例如,如上所述)来获得该副本),在下文的描述中可以被称为本地副本。
[0050] 在某些配置中,上层应用可以决定直接从信息提供者162请求远程副本,而不用对探索邻居进行探索。在某些配置中,上层应用可以决定通过对探索邻居进行探索和从信息提供者162进行请求二者,来获得信息项172的副本。
[0051] 设备121的上层应用可以构造上层查询分组。该上层查询分组可以包括信息提供者162和设备121的上层网络地址、以及用于指示要从信息提供者162获得的特定的信息项172(例如,音乐文件A)的查询信息。上层应用还可以指定类型参数,以指示该上层查询分组是查询类型。基于该查询信息,信息提供者162可以识别和定位信息项172。上层应用可以生成或者例如从服务器获得事务的第一事务ID(例如,“10101”),在该事务中设备122要获得信息项172。上层应用可以将事务ID包括在上层查询分组中。上层应用可以向MAC层发送上层查询分组、事务ID以及是通过对探索邻居进行探索、还是通过从信息提供者162进行请求、还是通过这二者来获得信息项172的指示。
[0052] 当上层应用决定通过对探索邻居进行本地探索来获得信息项172时,上层应用还可以向MAC层发送这些探索邻居的信息。在某些配置中,该信息可以是诸如标志之类的简单指示。因此,在从上层应用接收到该指示时,MAC层可以将预先配置的缺省地址(例如,广播地址)用作探索邻居的MAC地址。在某些配置中,上层应用可以向MAC层发送用于指示探索邻居的特定设备的指示,MAC层可以相应地获得这些设备的MAC地址。在某些配置中,上层应用可以向MAC层发送探索邻居的MAC地址。用于到达探索邻居的MAC地址被称为探索MAC地址,具体而言,其可以是:(a)探索邻居的每个设备的MAC地址、(b)针对于探索邻居的所有设备的组索引/MAC地址、或者(c)针对于网络A 151的公共信道132上的所有设备的广播MAC地址。当上层应用决定通过从信息提供者162远程请求来获得信息项172时,上层应用还向MAC层发送将用于到达信息提供者162的下一跳节点的信息(例如,标识或者MAC地址)。
[0053] 在该例子中,设备121的上层应用可能期望只通过从信息提供者162进行请求,来获得信息项172。设备121的上层应用可以基于从网络A 151中的设备接收的网络信息,确定网关116是为了向信息提供者162发送查询的下一跳节点。因此,上层可以向MAC层提供网关116的MAC地址(其是下一跳MAC地址)。
[0054] 设备121的MAC层从上层接收该上层查询分组和相应的指示。随后,MAC层相应地构造与所接收的数据相对应的MAC层请求分组210。
[0055] 通常,当设备的MAC层接收到用于通过从信息提供者远程地请求信息项来获得该项的指示以及下一跳节点的MAC地址时,MAC层将该下一跳节点的MAC地址包括在目的地地址字段224中。当设备的MAC层接收到用于通过对探索邻居进行本地探索来获得该信息项的指示以及探索邻居的探索MAC地址时,MAC层将该探索MAC地址包括在探索地址字段226中。此外,设备的MAC层可以接收到用于通过本地探索和远程请求二者来获得信息项的指示。相应地,MAC层将下一跳MAC地址和探索MAC地址二者包括在MAC层请求分组210中。
[0056] 在该例子中,由于上层应用指示设备121的MAC层在不通过本地探索的情况下,从信息提供者162获得信息项172,因此MAC层可以将下一跳MAC地址(即,网关116的MAC地址)包括在目的地地址字段224中,而在探索地址字段226中不包括信息。此外,设备121的MAC层在类型/长度字段230中,指示该MAC层请求分组210是查询类型。MAC层将上层查询分组包括在请求字段234中,将事务ID包括在事务ID字段232中。此外,MAC层还相应地准备用于前导222、源地址字段228、填充字段236以及校验和字段238的数据。照此,设备121的MAC层构造MAC层请求分组210。
[0057] 随后,设备121的MAC层在公共信道132上发送MAC层请求分组210。设备122-125可以在公共信道132上,接收MAC层请求分组210。由于下一跳MAC地址和探索MAC地址不是针对于设备122-125中的任何一个设备,因此设备122-125可以忽略MAC层请求分组210。
[0058] 此外,网关116还在公共信道132上,接收MAC层请求分组210。在该例子中,网关116检查MAC层请求分组210中的下一跳MAC地址和探索MAC地址,并且确定不存在探索MAC地址,下一跳MAC地址是网关116的地址。因此,网关116的MAC层提取出上层查询分组,并且向上层发送上层查询分组。网关116的上层对该上层查询分组进行检查,并且确定该上层查询分组的目的地是信息提供者162,并且信息提供者162处于网络B 152中。随后,网关116的上层通过网关116的MAC层和中继信道142,向信息提供者162发送该上层查询分组。
[0059] 在另一个例子中,设备121可能期望通过本地探索来获得信息项172,并且可以将探索MAC地址(例如,其与设备122-125相关联)包括在MAC层请求分组210中。在检测到探索MAC地址时,网关116的MAC层可以将MAC层请求分组210缓存预先配置的时间段T,并且可以监听由探索邻居发送的任何MAC层响应分组250。由于设备122-125中没有一个设备具有信息项172的本地副本,因此设备122-125不会向设备121发送包括第一事务ID(即,“10101”)和信息项172的响应分组250。因此,网关116将不会在预先配置的时间段T内,检测到具有第一事务ID的MAC层响应分组250。因此,网关116进一步将MAC层请求分组210中包括的上层查询分组请求,路由到信息提供者162。
[0060] 随后,信息提供者162接收该上层查询分组。基于上层查询分组中的查询信息,信息提供者162获取信息项172,并随后构造上层响应分组。该上层响应分组可以包括从上层查询分组获取的事务ID和信息项172。此外,信息提供者162还可以指定类型参数,以指示该上层响应分组是响应类型。随后,信息提供者162在中继信道142上,向网关116发送该上层响应分组。
[0061] 网关116从信息提供者162接收该上层响应分组。在对该上层响应分组进行处理之后,网关116的上层可以使用允许该上层基于某种查询信息来识别和定位信息项172的机制,存储从上层响应分组中提取的信息项172的本地副本。随后,上层向网关116的MAC层发送上层响应分组、针对于设备121的下一跳MAC地址和事务ID。
[0062] 在可选的或者替代的配置中,上层还将信息项172与从上层响应分组中提取的事务ID进行关联,并使用该事务ID来识别信息项172。此外,可以将与本地副本相关联的事务ID存储在MAC层。此外,可以将与每个事务ID相关联的探索地址、下一跳地址和/或查询节点地址,存储在MAC层。因此,网关116的MAC层可以通过检查存储在该MAC层处的事务ID,来判断该上层是否具有与特定的事务ID相关联的本地副本。
[0063] 随后,网关116的MAC层使用接收的数据,来构造MAC层响应分组250。例如,网关116的MAC层将上层响应分组包括在响应字段272中,将设备121的MAC地址包括在目的地地址字段264中,将事务ID包括在事务ID字段270中。网关116的MAC层在类型/长度字段268中,指定该MAC层响应分组250是响应类型。此外,网关116的MAC层还相应地准备用于前导262、源地址字段266、填充字段274以及校验和字段276的数据。照此,网关116的MAC层构造MAC层响应分组250。随后,网关116在公共信道132上,向设备121发送MAC层响应分组250。
[0064] 设备121的MAC层接收MAC层响应分组250。随后,MAC层从该MAC层响应分组250中提取上层响应分组,并向上层发送上层响应分组。类似于上面参照网关116的上层所描述的内容,设备121的上层可以存储从该上层响应分组中提取的信息项172的可获取的本地副本。(在可选的或者替代的配置中,信息项172与设备121处的事务ID相关联,类似于上面参照网关116的上层和MAC层所描述的内容。)
[0065] 随后,网络A 151中的另一个设备可以发送查询,以获得信息项172的副本。具体而言,在该例子中,设备122的上层应用可能期望通过从信息提供者162进行请求和对设备121、123、124和网关116进行探索二者,来获得信息项172。
[0066] 设备122的上层应用可以基于从网络A 151中的设备接收的网络信息,确定设备121、123、124和网关116是探索邻居,以及网关116是用于向信息提供者162发送数据的下一跳节点。如上所述,设备122的上层应用可以决定请求信息项172的副本(例如,音乐文件A)。
[0067] 设备122的上层应用可以构造上层查询分组。该上层查询分组可以包括信息提供者162的上层网络地址,以及用于指示要从信息提供者162获得的特定的信息项172(例如,音乐文件A)的查询信息。基于该查询信息,信息提供者162可以识别和定位该信息项172。上层应用可以生成或者例如,从服务器获得事务的第二事务ID(例如,“10110”),在该事务中设备122将获得信息项172。上层应用可以将事务ID包括在上层查询分组中。上层应用还可以指定类型参数,以指示该上层查询分组是查询类型。(在可选的或者替代的配置中,上层应用可以从例如服务器获得与信息项172相关联的第一事务ID(例如,“10101”)。设备121使用该第一事务ID,从信息提供者162获得了信息项172的副本)。
[0068] 设备122的MAC层从上层接收上层查询分组和相应的指示。随后,该MAC层相应地构造与所接收的数据相对应的MAC层请求分组210。由于MAC层接收到用于通过从信息提供者162远程请求来获得信息项172的指示,并接收到下一跳节点(在该例子中,其是网关116)的MAC地址,因此,该MAC层将网关116的MAC地址包括在目的地地址字段224中。由于设备122的MAC层也接收到用于通过对探索邻居进行本地探索来获得信息项172的指示,并接收到与探索邻居(在该例子中,其是设备121、123、124和网关116)相关联的探索MAC地址,因此该MAC层可以将探索MAC地址包括在探索地址字段226中。
[0069] 设备121的MAC层在类型/长度字段230中,指定该MAC层请求分组210是查询类型。此外,设备122的MAC层还将上层查询分组包括在请求字段234中,以及将第二事务ID包括在事务ID字段232中。(在可选的或者替代的配置中,事务ID字段232包括第一事务ID)。此外,MAC层还相应地准备用于前导222、源地址字段228、填充字段236以及校验和字段238的数据。照此,设备122的MAC层构造MAC层请求分组210。
[0070] 设备122的MAC层在公共信道132上,发送MAC层请求分组210。随后,设备121、123、124和网关116在公共信道132上接收该MAC层请求分组210。网关116的MAC层对MAC层请求分组210的目的地地址字段224和探索地址字段226进行检查。在该例子中,目的地地址字段
224包含网关116的MAC地址,并且探索地址字段226包含目标针对于设备121、123、124和网关116的MAC地址。因此,网关116的MAC层学习到这些MAC地址。
[0071] 在某些配置中,当网关116的MAC层检测到在目的地地址字段224中包含的下一跳MAC地址是该网关116的MAC地址,并且探索地址字段226包含探索MAC地址时,该MAC层不立即地向上层发送请求字段234中包括的上层查询分组以进行进一步路由(例如,确定上层查询分组的目的地和下一跳节点,以便到达该目的地、以及向下一跳节点发送上层查询分组)。网关116的MAC层判断探索MAC地址是否针对于网关116。如果探索MAC地址是针对于网关116的(例如,探索MAC地址是该网关116被配置为进行监听的组MAC地址),则网关116确定设备122在请求目标的探索邻居(在该例子中,其包括网关116)以定位信息项172的本地副本。
[0072] 因此,网关116的MAC层可以向上层发送上层查询分组,以定位信息项172的本地副本(例如,使用与用于路由的处理相分离的用于定位本地副本的处理)。在某些配置中,MAC层可以向上层发送用于探索的指示。例如,MAC层可以从上层查询分组中移除下一跳地址。因此,上层知道该请求是针对于本地探索,故避免开始当上层不能获得本地副本时的新的用于路由的MAC层请求。具体而言,当网关116也是探索节点中的一个时,网关116的MAC层可以对上层查询分组的副本进行复制和缓存,并且可以随后向上层发送该上层查询分组和探索指示。随后,如果上层使用具有相同的事务ID的响应分组进行响应,则MAC层可以丢弃在该MAC层处缓存的复制的副本。如果上层没有在预先配置的或者随机的等待时间内进行响应,则MAC层可以向上层发送所缓存的副本以进行路由。
[0073] 上层可以从上层查询分组中提取查询信息,并可以使用该查询信息来判断该上层是否具有本地存储的信息项172的副本,或者上层是否可以从另一个源(其与信息提供者162不同)获得副本。(在可选的或者替代的配置中,网关116的MAC层可以使用在MAC层处存储的事务ID,如上所述,以判断上层是否具有由在MAC层请求分组210中的事务ID所标识的本地副本。转而,上层尝试使用该事务ID,来定位在上层上存储的信息项172的本地副本。)[0074] 在该例子中,如上所述,网关116在上层处具有信息项172的本地副本。因此,网关
116的上层获取该信息项172的本地副本,并随后构造上层响应分组。该上层响应分组包括从上层查询分组获取的事务ID和信息项172。此外,信息提供者162还指定类型参数,以指示该上层响应分组是响应类型。随后,网关116的上层向MAC层发送该上层响应分组、针对设备
122的下一跳MAC地址以及第二事务ID(例如,“10110”)。(在可选的或者替代的配置中,使用第一事务ID(例如,“10101”)来替代第二事务ID)。
[0075] 随后,网关116的MAC层构造MAC层响应分组250,具体而言,该MAC层响应分组250包括下一跳MAC地址(即,在该例子中,设备122的MAC地址)和上层响应分组(其类似于上面参照网关116所描述的内容)。随后,网关116在公共信道132上发送该MAC层响应分组250。
[0076] 在另一个例子中,网关116不具有信息项172的本地副本。替代地,网关116确定MAC层响应分组250包含不针对于网关116的探索MAC地址。此外,网关116还确定在MAC层响应分组250中指示的下一跳MAC地址是网关116的MAC地址。网关116等待预先配置的时间段T。在该预先配置的时间段T期间,网关116的MAC层不向上层发送MAC层请求分组210中的上层查询分组来进行路由,并将上层查询分组缓存在网关116的MAC层。在该预先配置的时间段T期间,网关116的MAC层随后尝试在公共信道132上检测具有第二事务ID的MAC层响应分组250。当网关116的MAC层检测到该MAC层响应分组250时,网关116的MAC层可以认为设备122能够从设备121的探索邻居接收到具有信息项172的副本的至少一个MAC层响应分组250。因此,网关116的MAC层可以丢弃与事务ID相关联的上层查询分组,该上层查询分组已经缓存在该MAC层。
[0077] 在另一种配置中,网关116的MAC层并不将上层查询分组缓存在MAC层,而是在对MAC层请求分组210进行接收和处理之后,向上层发送MAC层请求分组210中的上层查询分组以进行路由。当等待从信息提供者162发送的响应分组时,网关116的MAC层尝试在公共信道132上检测具有第二事务ID的MAC层响应分组250。当网关116的MAC层在公共信道132上检测到该MAC层响应分组250时,MAC层可以丢弃随后从信息提供者162接收的响应分组,而不是向设备122发送响应分组。
[0078] 此外,设备121和设备123-124(即,探索邻居中的其它设备)也接收到MAC层请求分组210。具体而言,在接收到MAC层请求分组210时,设备121的MAC层检查该MAC层请求分组210的目的地地址字段224中的下一跳MAC地址和探索地址字段226中的探索MAC地址。设备
121的MAC层确定下一跳MAC地址不是针对于设备121的。此外,设备121的MAC层还确定该探索MAC地址是针对于设备121的,并且作为响应,具体而言,从该MAC层请求分组210中提取上层查询分组和事务ID。
[0079] 随后,具体而言,MAC层向设备121的上层应用发送该上层查询分组。上层可以从该上层查询分组中提取查询信息,并可以使用该查询信息来判断上层是否具有本地存储的信息项172的副本,或者上层是否可以从另一个源(其与信息提供者162不同)获得副本。在该例子中,如上所述,设备121在上层具有信息项172的本地副本。(在可选的或者替代的配置中,设备121的MAC层可以使用在MAC层处存储的事务ID,如上所述,来判断上层是否具有由在MAC层请求分组210中的事务ID所标识的本地副本。转而,上层尝试使用该事务ID,来定位被存储在上层上的信息项172的本地副本。)
[0080] 此外,设备121是设备122的响应节点,设备122发送MAC层请求分组210并是查询节点。根据上层查询分组,设备121的上层应用可以确定该查询节点(即,设备122)的上层地址。随后,上层应用构造包括信息项172的上层响应分组,并将设备121的上层地址指定成上层目的地地址。此外,上层应用还可以确定用于向设备121发送该上层响应分组的下一跳MAC地址。随后,设备121的上层应用向MAC层发送下一跳MAC地址和上层响应分组。随后,设备121的MAC层构造MAC层响应分组250,具体而言,该MAC层响应分组250包括下一跳MAC地址(即,在该例子中,设备122的MAC地址)和上层响应分组(其类似于上面参照网关116所描述的内容)。随后,设备121的MAC层在公共信道132上发送具有第二事务ID的该MAC层响应分组250。(在可选的或者替代的配置中,使用第一事务ID(例如,“10101”)来替代第二事务ID)。
[0081] 类似地,在从设备122接收到MAC层请求分组210时,设备123的MAC层检查该MAC层请求分组210的目的地地址字段224中的下一跳MAC地址和探索地址字段226中的探索MAC地址。设备123的MAC层确定下一跳MAC地址不是针对于设备123的。此外,设备123的MAC层还确定该探索MAC地址是针对于设备123,并且作为响应,具体而言,从该MAC层请求分组210中提取上层查询分组和事务ID。
[0082] 具体而言,MAC层向设备123的上层应用发送该上层查询分组。在该例子中,设备123的上层应用确定其不能获得所请求的项的副本。设备123不是设备122的响应节点,设备
122发送MAC层请求分组210并是查询节点。因此,设备123可以不对从设备122接收的MAC层请求分组210进行响应。此外,在该例子中,设备124也不是设备122的响应节点。设备124可以不对从设备122接收的MAC层请求分组210进行响应。(在可选的或者替代的配置中,设备
123的MAC层可以使用在MAC层处存储的事务ID,如上所述,来判断上层是否具有由在MAC层请求分组210中的事务ID所标识的本地副本。在该例子中,设备123的MAC层确定所存储的事务ID不包括该MAC层请求分组210中的事务ID。因此,MAC层可以丢弃该MAC层请求分组210。)[0083] 图3是示出使用查询-响应事务的设备之间的分组通信的图300。设备121-123和网关116中的每一个具有上层332和下层334。在操作301处,设备122(即,查询节点)的上层332(例如,UDP/TCP/IP层)构造上层查询分组,并指定类型参数以指示该上层查询分组是查询类型。该上层查询分组请求信息项172。此外,上层332还确定下一跳MAC地址、探索MAC地址、以及设备122的上层地址(即,查询节点的地址)。在该例子中,下一跳MAC地址是网关116的MAC地址。探索MAC地址是针对于包括设备121和设备123的探索邻居。随后,上层332向下层
334(例如,PHY/MAC/链路层)发送上层查询分组。
[0084] 在构造了MAC层请求分组210之后,在操作302处,设备122的下层334在一个传输中向公共信道上的所有接收机发送该MAC层请求分组210。具体而言,该MAC层请求分组210包括:类型参数、用于该事务的事务ID、下一跳MAC地址、探索MAC地址、以及设备122的MAC地址和上层查询分组。
[0085] 在操作303处,包括网关116、设备121、设备123的所有接收机,都接收到MAC层请求分组210。
[0086] 在操作304-1处,网关116(即,下一跳节点)的下层334对MAC层请求分组210进行缓存,并设置等待时间(例如,预先配置的时间段T)。在操作304-2处,设备121和设备123(即,与探索MAC地址相关联的设备)的下层334从MAC层请求分组210中提取上层查询分组,并向上层332发送该上层查询分组和MAC层请求分组210中包括的事务ID。
[0087] 在操作305处,设备121的上层332(其可以获得信息项172的副本并是响应节点,如上所述)构造上层响应分组,以及指定类型参数来指示该上层响应分组是响应类型以及从下层接收的事务ID。该上层响应分组包括信息项172和目标针对于设备122(即,查询节点)的目的地地址。随后,上层332可以向下层334发送上层响应分组、下一跳MAC地址、类型参数和事务ID。
[0088] 在操作306处,设备121的下层334构造MAC层响应分组250,以包括上层响应分组和其它信息,如上所述。随后,设备121的下层334在一个传输中,在公共信道132上发送该MAC层响应分组250。
[0089] 在操作307处,包括设备122和网关116的所有接收机都在公共信道132上接收到MAC层响应分组250。
[0090] 在操作308-1处,在公共信道132上接收到MAC层响应分组250时,网关116的下层334丢弃MAC层请求分组210。在操作308-2处,在公共信道132上接收到MAC层响应分组250时,设备122(即,查询节点)的下层334提取上层响应分组,并向设备121的上层332发送上层响应分组。
[0091] 图4是示出使用查询-响应事务的设备之间的分组通信的另一个图400。设备121-123和网关116中的每一个具有上层432和下层434。在操作401处,设备122(即,查询节点)的上层432(例如,UDP/TCP/IP层)构造上层查询分组,并指定类型参数以指示该上层查询分组是查询类型。该上层查询分组请求与事务ID相关联的信息项172。此外,上层432还确定下一跳MAC地址、探索MAC地址、以及设备122的上层地址(即,查询节点的地址)。在该例子中,下一跳MAC地址是网关116的MAC地址。探索MAC地址是针对于包括设备121和设备123的探索邻居。随后,上层432向下层434(例如,PHY/MAC/链路层)发送上层查询分组。
[0092] 在构造了MAC层请求分组210之后,在操作402处,设备122的下层434在一个传输中向公共信道132上的所有接收机发送该MAC层请求分组210。具体而言,该MAC层请求分组210包括:类型参数、用于该事务的事务ID、下一跳MAC地址、探索MAC地址、以及设备122的MAC地址和上层查询分组。
[0093] 在操作403处,包括网关116、设备121、设备123的所有接收机,都接收到MAC层请求分组210。
[0094] 在操作404-1处,网关116(即,下一跳节点)的下层434对MAC层请求分组210进行缓存,并设置等待时间(例如,预先配置的时间段T)。在操作404-2处,设备121和设备123(即,与探索MAC地址相关联的设备)的下层434从MAC层请求分组210中提取上层查询分组,并向上层432发送该上层查询分组和MAC层请求分组210中包括的事务ID。
[0095] 在操作405处,在预先配置的时间段T之后,网关116的下层434确定其没有检测到具有该MAC层请求分组210中包括的事务ID并在公共信道132上发送的任何MAC层响应分组250。下层434从MAC层请求分组210中提取上层查询分组,并向上层432发送上层查询分组。
随后,上层432通过下层434和中继信道142,向信息提供者162发送该上层查询分组。
[0096] 图5是处理查询分组的方法(处理)的流程图500。该方法可以由第一节点(例如,设备121-125和网关116、装置902/902’)来执行。
[0097] 在操作513处,第一节点从第二节点接收第一分组。在某些配置中,查询分组包括:对查询的指示;对第一事务的指示;第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址。例如,参见图1,网关116从设备122接收MAC层请求分组210。
[0098] 在操作516处,第一节点确定第一分组是请求响应分组并与第一事务相关联的查询分组。该响应分组可以具有所请求的信息项,或者可以是NACK响应。在某些配置中,关于第一分组是查询分组的确定是基于对所述查询的指示。例如,参见图1,网关116确定MAC层请求分组210是这种查询分组。
[0099] 在某些配置中,关于第一分组是查询分组的确定是在第一节点的下层处执行的。该下层是物理(PHY)层、媒体访问控制(MAC)层或者链路层。
[0100] 在操作519处,第一节点确定该第一节点是与第一分组相关联的第一下一跳节点。在某些配置中,关于第一节点是第一下一跳节点的确定是基于第一地址。例如,参见图1,网关116确定其是用于向信息提供者162发送请求的针对设备122的下一跳节点。
[0101] 在操作523处,第一节点判断该查询分组是否包括用于本地探索的指示。例如,参见图1,网关116判断MAC层请求分组210是否包括探索MAC地址。
[0102] 在操作526处,当第一节点确定该查询分组不包括用于本地探索的指示时,第一节点对第一分组进行进一步路由。例如,参见图1,当网关116的MAC层确定MAC层请求分组210不包括探索MAC地址时,网关116的MAC层向上层发送该MAC层请求分组210中包括的上层分组。
[0103] 当第一节点确定该查询分组包括用于本地探索的指示时,该处理转到图6中所示出的操作613。
[0104] 图6是本地探索的方法(处理)的流程图600。该方法可以在图5中所示出的操作523之后,由第一节点(例如,设备121-125和网关116、装置902/902’)来执行。
[0105] 在操作613处,第一节点延迟对第一分组的进一步路由。例如,参见图1,网关116的MAC层延迟对MAC层请求分组210的进一步路由。
[0106] 在操作616处,第一节点判断用于本地探索的指示是否针对于第一节点。例如,参见图1,网关116判断在MAC层请求分组210中包括的探索MAC地址是否针对于网关116。
[0107] 当第一节点确定用于本地探索的指示不是针对于第一节点时,该处理转到操作626。当第一节点确定用于本地探索的指示是针对于第一节点时,在操作619处,第一节点判断该第一节点是否具有所请求的信息项的响应分组。例如,参见图1,网关116判断其是否可以获得信息项172的副本。
[0108] 当第一节点确定该第一节点具有响应分组时,在操作623处,第一节点向第二节点发送具有所请求的信息项并与第一事务相关联的响应分组。例如,参见图1,网关116向设备122发送包括信息项172的MAC层响应分组250。
[0109] 当第一节点确定该第一节点不具有响应分组时,该处理转到操作626处。
[0110] 在操作626处,第一节点判断与第一事务相关联的响应分组是否由另一个节点发送。在某些配置中,所述另一个节点处于所述节点组中。在某些配置中,该响应分组包括:对响应的指示和对第一事务的指示。关于是否发送了与第一事务相关联的响应分组的判断是基于判断所接收的下层分组是否包含对响应的指示和对第一事务的指示来做出的。
[0111] 当第一节点确定另一个节点没有发送与第一事务相关联的响应分组时,在操作633处,第一节点对第一分组进行进一步路由。例如,参见图1,响应于接收到从设备121发送的MAC层请求分组210,网关116没有检测到从设备122-125发送的MAC层响应分组250,因此进一步将MAC层请求分组210中包括的上层查询分组路由到信息提供者162。
[0112] 当第一节点确定另一个节点发送了与第一事务相关联的响应分组时,在操作629处,第一节点丢弃第一分组。例如,参见图1,响应于接收到从设备122发送的MAC层请求分组210,当网关116检测到由设备121发送的MAC层响应分组250时,网关116丢弃从设备122接收的MAC层请求分组210。
[0113] 图7是本地探索的另一种方法(处理)的流程图700。该方法可以在图5中所示出的操作519之后,由第一节点(例如,设备121-125和网关116、装置902/902’)来执行。
[0114] 在某些配置中,在操作713处,第一节点在下层确定该第一节点是与包括在第一分组的上层分组相关联的第一下一跳节点。在某些配置中,在操作716处,响应于确定第一节点是第一下一跳节点,第一节点在下层处,在预先配置的时间段T期间,对第一分组进行缓存。例如,参见图1,网关116将从设备122接收的MAC层请求分组210缓存预先配置的时间段T。
[0115] 在某些配置中,在操作719处,第一节点尝试在预先配置的时间段T内,接收至少一个第二分组。在某些配置中,第一分组是在信道上接收的。尝试接收至少一个第二分组是在第一信道上执行的。
[0116] 在某些配置中,在操作723处,第一节点判断该第一节点是否已经接收到第二分组。当第一节点确定该第一节点没有接收到第二分组时,该处理转到操作733处。当第一节点确定该第一节点已经接收到第二分组时,在操作726处,第一节点判断所述至少一个第二分组是否包括与第一事务相关联的响应分组。当第一节点确定所述至少一个第二分组不包括与第一事务相关联的响应分组时,该处理转到操作733处。例如,参见图1,响应于接收到从设备121发送的MAC层请求分组210,并且没有接收到来自探索节点的MAC层响应分组250,网关116的MAC层向网关116的上层发送该MAC层请求分组210中的上层查询分组。
[0117] 当第一节点确定所述至少一个第二分组包括与第一事务相关联的响应分组时,在操作729处,第一节点避免向上层发送第一分组中包括的上层分组。例如,参见图1,在接收到从设备122发送的MAC层请求分组210并将其进行缓存之后,响应于从设备121接收到MAC层响应分组250,网关116的MAC层避免向网关116的上层发送MAC层请求分组210中的上层查询分组。
[0118] 在操作733处,第一节点向上层发送第一分组中包括的上层分组。在操作736处,在上层处接收到上层分组时,第一节点确定与该上层分组相关联的第二下一跳节点。在操作739处,第一节点在下层处,将该上层分组包括在第三分组中。在操作743处,第一节点在第二信道上,向与该上层分组相关联的第二下一跳节点发送第三分组。
[0119] 图8是操作查询节点的方法(处理)的流程图800。该方法可以由第一节点(例如,设备121-125和网关116、装置902/902’)来执行。
[0120] 在操作813处,第一节点(即,查询节点)构造用于请求响应分组并与第一事务相关联的查询分组。该查询分组包括用于本地探索的指示和用于目标请求的指示。该响应分组包括请求的信息项。在操作816处,第一节点在与多个本地节点共享的信道上,发送该查询分组。例如,参见图1,设备122在公共信道132上,发送包括下一跳MAC地址和探索MAC地址的MAC层请求分组210。
[0121] 在某些配置中,该查询分组包括:对查询的指示、对第一事务的指示、与所述目标请求相关联的下一跳节点的至少一个第一地址、以及与本地探索相关联的一组节点的至少一个第二地址。
[0122] 图9是示出示例性装置902中的不同模块/单元/组件之间的数据流的概念性数据流图900。该装置可以是第一节点。该装置包括接收模块904、上层906、下层908和传输模块910。用于通信的装置902/902’可以被配置为从第二节点950和另一个节点960接收信号。
[0123] 在一个方面,接收模块904可以被配置为从第二节点接收第一分组。下层908可以被配置为确定第一分组是请求响应分组并与第一事务相关联的查询分组,其中该响应分组具有所请求的信息项。上层906和/或下层908可以被配置为确定第一节点是与第一分组相关联的第一下一跳节点。下层908可以被配置为确定该查询分组包括用于本地探索的指示。下层908可以被配置为延迟对第一分组的进一步路由。
[0124] 在某些配置中,下层908可以被配置为:响应于确定第一节点是与第一分组相关联的第一下一跳节点,延迟对第一分组的进一步路由。接收模块904和/或下层908可以被配置为:判断另一个节点是否发送了与第一事务相关联的响应分组。上层906和/或下层908可以被配置为:响应于确定该另一个节点没有发送与第一事务相关联的响应分组,而进一步对第一分组进行路由。下层908可以被配置为:响应于确定该另一个节点发送了与第一事务相关联的响应分组,而丢弃第一分组。
[0125] 在某些配置中,该查询分组包括:对查询的指示、对第一事务的指示、第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址。关于第一分组是查询分组的确定是基于对查询的指示。关于第一节点是第一下一跳节点的确定是基于第一地址。该另一个节点在该组节点中。在某些配置中,该响应分组包括对响应的指示和对第一事务的指示。关于是否发送了与第一事务相关联的响应分组的判断是基于判断所接收的下层分组是否包含对响应的指示和对第一事务的指示来做出的。
[0126] 在某些配置中,下层908可以被配置为:确定第一节点是与包括在第一分组的上层分组相关联的第一下一跳节点。在某些配置中,下层908可以被配置为:尝试接收至少一个第二分组。下层908可以被配置为:响应于接收到所述至少一个第二分组,判断所述至少一个第二分组是否包括与第一事务相关联的响应分组。下层908可以被配置为:响应于没有接收到所述至少一个第二分组,或者响应于确定所述至少一个第二分组不包括与第一事务相关联的响应分组,向上层发送包括在第一分组中的上层分组。下层908可以被配置为:响应于确定所述至少一个第二分组包括与第一事务相关联的响应分组,避免向上层发送包括在第一分组中的上层分组,或者避免向第二节点发送从上层接收的响应分组。
[0127] 在某些配置中,下层908可以被配置为:在预先配置的时间段T中,接收该至少一个第二分组。下层908可以被配置为:响应于确定第一节点是第一下一跳节点,在下层处,在预先配置的时间段T期间,对第一分组进行缓存。在某些配置中,上层906和/或908可以被配置为:在上层处接收到上层分组时,确定与上层分组相关联的第二下一跳节点。下层908可以被配置为:将上层分组包括在第三分组中。下层908和/或传输模块910可以被配置为:在第二信道上,向与上层分组相关联的第二下一跳节点发送第三分组。
[0128] 在另一个方面,上层906和/或下层908可以被配置为:构造用于请求响应分组并与第一事务相关联的查询分组。该查询分组包括用于本地探索的指示和用于目标请求的指示。下层908和/或传输模块910可以被配置为:在与多个本地节点共享的信道上,发送该查询分组。
[0129] 在某些配置中,该查询分组包括:对查询的指示、对第一事务的指示、与目标请求相关联的下一跳节点的至少一个第一地址、以及与本地探索相关联的一组节点的至少一个第二地址。
[0130] 图10是示出用于使用处理系统1014的装置902’的硬件实现的例子的图1000。处理系统1014可以使用总线架构来实现,其中该总线架构通常用总线1024来表示。根据处理系统1014的具体应用和整体设计约束,总线1024可以包括任意数量的相互连接总线和桥接。总线1024将包括一个或多个处理器和/或硬件模块(其用处理器1004、模块904、906、908、
910表示)的各种电路以及计算机可读介质/存储器1006链接在一起。此外,总线1024还可以链接诸如时钟源、外围设备、电压调节器和电源管理电路之类的各种其它电路,其中这些电路是本领域所公知的,因此没有做任何进一步的描述。
[0131] 处理系统1014可以耦合到收发机1010。收发机1010耦合到一付或多付天线1020。收发机1010提供通过传输介质与各种其它装置进行通信的单元。收发机1010从所述一付或多付天线1020接收信号,从所接收的信号中提取信息,并将提取的信息提供给处理系统
1014(具体而言,接收模块904)。此外,收发机1010还从处理系统1014接收信息(具体而言,传输模块910),并基于所接收的信息,生成要应用于所述一付或多付天线1020的信号。处理系统1014包括耦合到计算机可读介质/存储器1006的处理器1004。处理器1004负责通用处理,其包括执行计算机可读介质/存储器1006上存储的软件。当该软件由处理器1004执行时,使得处理系统1014执行上文针对任何特定装置所描述的各种功能。计算机可读介质/存储器1006还可以用于存储当执行软件时由处理器1004所操作的数据。此外,该处理系统还包括模块904、906、908和910中的至少一个。这些模块可以是在处理器1004中运行、驻留/存储在计算机可读介质/存储器1006中的软件模块、耦合到处理器1004的一个或多个硬件模块、或者其某种组合。
[0132] 处理系统1014可以是设备121-125和网关116的组件。在一种配置中,用于通信的装置902/902’包括用于执行图5-8中所示出的操作的单元。
[0133] 具体而言,在一个方面,装置902/902’包括:用于从第二节点接收第一分组的单元。装置902/902’包括:用于确定第一分组是请求响应分组并与第一事务相关联的查询分组的单元,其中该响应分组具有所请求的信息项。装置902/902’包括:用于确定第一节点是与第一分组相关联的第一下一跳节点的单元。装置902/902’包括:用于确定该查询分组包括用于本地探索的指示的单元。装置902/902’包括:用于延迟对第一分组的进一步路由的单元。
[0134] 用于确定第一分组是查询分组的单元可以被配置为:在下层执行该确定。该下层是物理层、MAC层或者链路层。
[0135] 装置902/902’可以被配置为包括:用于响应于确定第一节点是与第一分组相关联的第一下一跳节点,延迟对第一分组的进一步路由的单元。装置902/902’可以被配置为包括:用于判断另一个节点是否发送了与第一事务相关联的响应分组的单元。装置902/902’可以被配置为包括:用于响应于确定该另一个节点没有发送与第一事务相关联的响应分组,而进一步对第一分组进行路由的单元。装置902/902’可以被配置为包括:用于响应于确定该另一个节点发送了与第一事务相关联的响应分组,而丢弃第一分组的单元。
[0136] 查询分组可以包括:对查询的指示、对第一事务的指示、第一下一跳节点的至少一个第一地址;以及一组节点的至少一个第二地址。关于第一分组是查询分组的确定可以是基于对所述查询的指示。关于第一节点是第一下一跳节点的确定可以是基于第一地址。该另一个节点可以在该组节点中。
[0137] 响应分组可以包括对响应的指示、对第一事务的指示。关于是否发送了与第一事务相关联的响应分组的判断可以是基于判断所接收的下层分组是否包含对响应的指示和对第一事务的指示来做出的。
[0138] 装置902/902’可以被配置为包括:用于在下层处,确定第一节点是与包括在第一分组的上层分组相关联的第一下一跳节点的单元。装置902/902’可以被配置为包括:用于尝试接收至少一个第二分组的单元。装置902/902’可以被配置为包括:用于响应于接收到所述至少一个第二分组,判断所述至少一个第二分组是否包括与第一事务相关联的响应分组的单元。装置902/902’可以被配置为包括:用于响应于没有接收到所述至少一个第二分组,或者响应于确定所述至少一个第二分组不包括与第一事务相关联的响应分组,向上层发送包括在第一分组中的上层分组的单元。装置902/902’可以被配置为包括:用于响应于确定所述至少一个第二分组包括与第一事务相关联的响应分组,避免向上层发送包括在第一分组中的上层分组的单元,或者用于响应于确定所述至少一个第二分组包括与第一事务相关联的响应分组,避免向第二节点发送从上层接收的响应分组的单元。
[0139] 尝试接收所述至少一个第二分组是在预先配置的时间段T中执行的。装置902/902’可以被配置为包括:用于响应于确定第一节点是第一下一跳节点,在下层处,在预先配置的时间段T期间,对第一分组进行缓存的单元。可以在第一信道上接收第一分组。尝试接收所述至少一个第二分组可以是在第一信道上执行的。
[0140] 装置902/902’可以被配置为包括:用于在上层处接收到上层分组时,确定与上层分组相关联的第二下一跳节点的单元。装置902/902’可以被配置为包括:用于在下层处,将上层分组包括在第三分组中的单元。装置902/902’可以被配置为包括:用于在第二信道上,向与上层分组相关联的第二下一跳节点发送第三分组的单元。
[0141] 在另一个方面,装置902/902’包括:用于构造请求响应分组并与第一事务相关联的查询分组的单元。该查询分组包括用于本地探索的指示和用于目标请求的指示。装置902/902’包括:用于在与多个本地节点共享的信道上,发送该查询分组的单元。
[0142] 该查询分组可以包括:对查询的指示、对第一事务的指示、与目标请求相关联的下一跳节点的至少一个第一地址、以及与本地探索相关联的一组节点的至少一个第二地址。
[0143] 前述的单元可以是装置902的前述模块中的一个或多个,和/或被配置为执行这些前述单元所述的功能的装置902’的处理系统1014。
[0144] 应当理解的是,本文所公开的处理/流程图中的方框的特定顺序或者层次只是示例方法的一个例子。应当理解的是,根据设计优先选择,可以重新排列这些处理/流程图中的方框的特定顺序或层次。此外,可以对一些方框进行组合或省略。所附的方法权利要求以示例顺序给出各种方框的要素,但并不意味着其受到给出的特定顺序或层次的限制。
[0145] 为使本领域任何普通技术人员能够实现本文所描述的各个方面,上面围绕各个方面进行了描述。对于本领域普通技术人员来说,对这些方面的各种修改都是显而易见的,并且本文定义的总体原理也可以适用于其它方面。因此,权利要求并不限于本文所示出的方面,而是符合与权利要求语言相一致的全部范围,其中,除非特别说明,否则用单数形式修饰某一要素并不意味着“一个和仅仅一个”,而可以是“一个或多个”。本文所使用的“示例性”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何方面不一定被解释为比其它方面更优选或更具优势。除非另外特别说明,否则术语“一些”指代一个或多个。诸如“A、B或C中的至少一个”、“A、B和C中的至少一个”以及“A、B、C或者其任意组合”之类的组合,包括A、B和/或C的任意组合,并且可以包括多个A、多个B或者多个C。具体而言,诸如“A、B或C中的至少一个”、“A、B和C中的至少一个”以及“A、B、C或者其任意组合”之类的组合,可以是仅仅A、仅仅B、仅仅C、A和B、A和C、B和C或者A和B和C,其中,任意的这种组合可以包含A、B或C中的一个或多个成员。贯穿本公开内容描述的各个方面的要素的所有结构和功能等同物以引用方式明确地并入本文中,并且旨在由权利要求所涵盖,这些结构和功能等同物对于本领域普通技术人员来说是公知的或将要是公知的。此外,本文中没有任何公开内容是想要奉献给公众的,不管这样的公开内容是否明确记载在权利要求书中。权利要求的要素不应被解释为功能模块,除非该要素明确采用了“功能性模块”的措辞进行记载。