使用网络编码的无线ADHOC网络的制作方法

文档序号:14943839发布日期:2018-07-17 11:25阅读:182来源:国知局

本公开大体上涉及诸如无线adhoc网络或无线网状网络等装置对装置通信网络,并且更明确地说,涉及向此类无线网络应用网络编码。



背景技术:

针对形成诸如无线adhoc网络或无线网状网络等装置对装置通信网络存在各种使用案例。例如,一组公共安全人员(警察、消防员等)可形成装置对装置通信群组,其中装置在地理上分散而使得不能够在任何任意选取的装置集合之间形成直接通信链路。换句话说,装置可能在彼此的无线电覆盖范围之外。通过使用adhoc联网或网状联网方法,可通过网络中的中间节点将数据从源装置(即,源节点)转发到一个或多个目的地装置(即,目的地节点)。在许多情况下,执行此类数据转发操作的中间节点也可为目的地节点,并且这进一步改善网络效率。然而,通过中间节点转发数据还暗示着一些网络链路可能成为瓶颈。一些网状联网方法可涉及使用在网状网络中运行的复杂路由算法,但这种方法需要维护并交换路由表而且不会完全减轻瓶颈网络链路的问题。

网络编码是用于在从一个节点向多个节点传输数据时(即,在多播传输中)通过网状网络路由分组的另选方式。网络中的分组路由包含路由器在入站连接上接收分组,决定哪些出站链路继续转发那些分组,并且转发分组。相比之下,对于网络编码,中间节点取代路由器,并且“混合”入站分组。这允许中间节点传输较少混合分组而不是许多原始分组。目的地节点接收混合分组并且解码原始分组。混合包含计算传入分组的组合。为了便于计算,使用线性组合。

图1示出用于网络编码的已知方法,如rudolfahlswede、ningcai、shuo-yen、robertli和raymondw.yeung的“networkinformationflow”(ieeetrans.inf.theory,第46卷,第4期(2000年7月))[下文称为“ahlswede等人”]所论述。在图1中,网状网络由具有七个节点的图100表示,其中图100的每条边表示通信链路。每条边或通信链路操作以在给定时隙中传输一个分组。网状网络的目标是通过中间节点将一组分组从第一节点(节点1)传递到第六节点和第七节点(节点6和节点7)。

倘若节点1具有两个出站边并且两条边均可通往两个目的地节点6和节点7,则有可能在这两个边上传输不同分组。图1(a)示出在两个边1→2和1→3上传输分组p1和p2。分组p1可因此分别经由边2→6和3→7传输到节点6和节点7。节点4接收分组p1和分组p2两者。然而,在一个时隙中在边4→5上仅可传输一个分组。这意味着边4→5是网状网络中的瓶颈通信链路。

将图1(a)所示的网络视为用于将分组从节点1传送到节点6和节点7的管线,在第一时隙中,节点6可经由边2→6接收分组p1并且经由边5→6接收分组p2。然而,节点7当时在第一时隙中仅可经由边3→7接收一个分组p2。在第二时隙中,节点6将仅经由边2→6接收一个分组p1,而节点7将经由边3→7接收分组p2且经由边5→7接收分组p1。换句话说,归因于在每个时隙仅可传输一个分组的边4→5处所创建的瓶颈,在每个时隙中在节点6和节点7两者处仅可平均接收1.5个分组。

图1(b)示出网络编码方法。如在图1(a)中,边1→2、2→6和2→4载送分组p1,并且边1→3、3→7和3→4载送分组p2。然而,在这个示例中,节点4执行p1和p2的线性组合,并且在边4→5上传输该线性组合。更明确地说,在伽罗瓦域中执行线性组合操作。在分组p1和p2为二进制数字(即,二进制“0”或“1”)的示例中,线性组合被实施为异或运算(“xor”)。接着在边5→6和5→7上传输线性组合分组(即,p1、p2的xor)。节点6因而接收分组p1和分组两者。因为节点6知道分组p1的内容,所以其可通过执行分组p1和分组的xor运算来从恢复分组p2。类似地,节点7接收分组p2和分组并且从分组恢复分组p1。换句话说,图1(b)所示的方案使得节点6和节点7能够各自在每个时隙中接收两个分组。

在所述文献中已经广泛地论述了用于在任意网络中将分组从源装置多播到目的地装置的“线性网络码”(还称为线性码多播或lcm)的计算。装置被视为网络“节点”,其中源装置或源节点被命名为“s”,并且目的地装置或目的地节点(还称为“宿节点”)被命名为“t”。

因此,作为用于说明网络编码概念的数学非正式示例(即,在没有详细论述向量空间的情况下),给出具有源节点“s”和一组宿节点“t”的任意网络,其中任意网络由有向图g=(v,e,s,t)定义,其中v是顶点集合,是边集合,s是源顶点,并且t是宿节点集合,则用于有向图所表示的网络的线性网络码或lcm包含:

i.伽罗瓦域f;

ii.对于每个o∈e′、在f的元素上方,向每条边e∈e'、指派“编码向量”ev(e);以及

iii.对于每个t∈t,“全局转移矩阵”gt(t)。

需要满足以下额外条件:

a)lv(e),其中e=x→y必须为{lv(e')|e'∈e',e'=u→x,u∈v}的元素的线性组合,即,用于入站边的局部编码向量的线性组合。

b)对于每个t∈t:

i.gt(t)是r×r矩阵,其中r是从s到每个t∈t的边不相交路径(即,相异路径)的最小数目;

ii.gt(t)的每一行表示用于从s到t的边不相交路径中的一者的编码向量;并且

iii.gt(t)是满秩矩阵。

给出上文所陈述的定义和要求,从源装置“s”到每个目的地装置“t”的多播分组传输(其中“t”表示作为目的地装置集合“t”的元素的一个目的地装置(即,t∈t))包含以下过程。首先,源装置与目的地装置之间的每个居间装置构造“局部转移矩阵”。这些居间装置在本文中可互换地称为“顶点”、“顶点装置”或“节点”。源装置和目的地装置在本文中还称为“节点”,并且出于清楚起见,在必要时分别称为“源节点”和“目的地节点”。例如,转向图2,网络图200中的源装置由节点1表示,顶点装置由节点2到6和节点8表示,并且目的地装置由节点7和节点9表示。

每个顶点装置(命名为“节点v”)使用针对指向顶点装置的入站图边定义的编码向量(ev)和针对背向该顶点装置的出站图边定义的编码向量来构造局部转移矩阵“lv”。更明确地说,基于出站图边编码向量与入站图边编码向量之间的以下关系来确定顶点装置处的局部转移矩阵lv:

其中o1,o2,…,om∈e'为背向v的出站图边并且i1,i2,…im∈et为指向顶点装置v的入站图边。

用于源装置的局部转移矩阵“ls”被计算为针对背向源装置的出站图边定义的编码向量的单位。换句话说,基于以下关系来计算ls:

其中ir是r×r单位矩阵。

对于分组传输,源装置s构造“r”个分组数据片段,其被命名为[p1,p2,...,pr],使得每个数据片段pi是字母子集的元素。在源装置(即,源节点s)处,使用源局部转移矩阵ls计算出站边上的传出分组数据片段使得:pout(s)t=ls[p1,p2,…,pr]t

在每个后续网络节点(命名为“u”)处,一旦接收到所有入站边上的分组数据片段,便计算用于出站边的分组数据片段。如果是在通往网络节点u的入站边上接收到的分组数据片段,并且是待在来自网络节点u的出站边上传输的分组数据片段,则pout(u)t=lufin(u)t

在每个目的地装置处,一旦接收到所有入站边上的分组数据片段ptn(t),便通过使用全局转移矩阵的逆执行矩阵运算来恢复原始分组数据片段,使得:gt(t)-1pin(t)。

作为构造线性网络码(如上文论述,其还称为线性码多播或lcm)的简要概述,首先基于网络有向图(诸如图2所示的示例性网络有向图200)来确定简化网络。通过识别将源装置与目的地装置分开的“割截”来确定简化网络。更具体地说,将源装置“s”与目的地装置“t”分开的“割截”是边集合e,使得从s到t的任何路径含有来自所述集合的边。将源装置与目的地装置分开的“最小割截”是将源装置与目的地装置分开的最小大小的割截。给出这些定义,用于在给出图γ=(v,e,s,t)的情况下构造lcm的示例性程序如下:

1.设r=min{mincut(s,t)|t∈t},其中mincut(s,t)表示将s与t分开的最小割截。

2.确定由从s到每个t∈t的r个边不相交路径构成的简化网络γu=(v,,da,s,t)。

3.针对每个e∈er选择全局编码向量并且针对每个t∈t构造全局转移矩阵gt,使得:

a.如果e在第i个路径上影响t,则将gt的第i行设置为针对e所选择的编码向量;

b.gt为可逆的。

给出以上示例性过程并且再次转向图2的网络有向图200,目标是将分组数据从源节点1多播到目的地节点7和9。图3示出用于图2所示的网络的示例性简化网络图300。在图3的简化网络图300中,从节点1到节点7以及从节点1到节点9存在三个边不相交路径。因此,有可能在简化网络的一次使用中(例如,在一个分组传输时隙期间)将三个分组从节点1发送到节点7。类似地,有可能在简化网络的一次使用中或在一个分组传输时隙期间将三个分组从节点1发送到节点9。然而,如果待在相同时间间隔期间将三个分组从节点1多播到节点7和节点9,则边5→8变成瓶颈。

为了解决该瓶颈,可使用大小为256的伽罗瓦域基于上述过程创建线性网络码。因而,针对边生成以下全局编码向量:

lv(1→4)=[88211218]lv(4→7)=[12197255];

lv(1→5)=[5649150]lv(5→7)=[3434210];

lv(1→2)=[16436246]lv(2→5)=[9742223];

lv(5→8)=[106214103]lv(8→7)=[91158191];

lv(5→9)=[199181196]lv(2→6)=[182229237];

lv(6→9)=[65205239]lv(4→5)=[14415359];

lv(8→9)=[23293231];

接着将用于节点7处的目的地装置的全局转移矩阵303定义为:而将用于节点9处的目的地装置的全局转移矩阵309定义为图3还示出一组分组301遍历简化网络。如图所示,可从在每个目的地装置处接收的分组使用用于那个目的地装置的全局转移矩阵检索传输分组301。因此,如图3所示,针对节点7,将全局转移矩阵305的逆乘以接收分组307以获得原始传输分组301。针对节点9,将全局转移矩阵311的逆乘以接收分组313以获得原始传输分组301。

附图说明

图1是示出有向图的边可如何成为从源节点到目的地节点的分组传输的瓶颈和使用分组混合的解决方案的示例性网络有向图。

图2是具有一个源节点和两个目的地节点的示例性网络有向图。

图3是用于图2的网络有向图的示例性简化网络有向图,并且示出示例性网络编码方案。

图4是根据实施例的无线adhoc网络的图。

图5是根据实施例的示例性网络装置(其可为源装置、顶点装置或目的地装置)的框图。

图6是根据实施例的源装置中的用于构造网络有向图的示例性过程的流程图。

图7是根据实施例的顶点装置中的用于构造网络有向图的示例性过程的流程图。

图8是根据实施例的源装置中的用于将线性网络码传播到所有网络装置的示例性过程的流程图。

图9是根据实施例的具有多个源装置的网络图,其中每个源装置确定单独的线性网络码。

图10是根据实施例的图9所示的网络中的源装置中的示例性过程的流程图。

图11是根据实施例的图9所示的网络中的顶点装置中的示例性过程的流程图。

图12是根据实施例的具有两个源装置和一个共用顶点装置的网络的网络图。

图13是根据实施例的图12所示的网络中的源装置中的示例性过程的流程图。

图14是根据实施例的图12所示的网络中的目的地装置中的示例性过程的流程图。

图15是根据实施例的具有两层线性网络编码的网络的网络图。

图16是根据实施例的图15所示的网络中的源装置中的示例性过程的流程图。

图17是根据实施例的具有虚拟源装置和虚拟顶点装置的网络的网络图。

图18是根据实施例的图17所示的网络中的示例性过程的流程图。

图19是根据实施例的用于构造网络有向图的示例性过程的流程图。

图20是根据实施例的示出如何处理分组的网络图。

图21是根据示例性实施例的示例性网络装置(其可为源装置、顶点装置或目的地装置)的框图。

具体实施方式

简要地说,本公开提供用于使用网络编码组装无线adhoc网络的过程。使用所公开的过程以及其它过程组装的无线adhoc网络已经改善了吞吐量,因为在中间节点处的传输数目减到最小。所公开的过程提供用于一对多通信,诸如在将分组从一个源装置多播到若干目的地装置时,并且用于多对多通信,诸如在可将不同分组流从源装置传输到adhoc网络内的对应目的地装置集合时。

在本公开的一方面,一种设置无线adhoc网络的方法包括由源装置构造初始网络图。网络图表示源装置、至少一个中间装置以及在源装置与中间装置之间的至少一个通信路径。源装置将初始网络图发送到中间装置并且请求更新;响应于发送初始网络图而从中间装置接收第二网络图;并且通过执行初始网络图与第二网络图的联合来确定更新网络图。所述方法还可包括:使用更新网络图确定简化网络图;使用简化网络图确定线性网络码;以及将线性网络码发送到中间装置和至少一个目的地装置。在一些实施例中,所述方法还可包括:确定中间装置满足分组数据传输准则;以及响应于中间装置满足分组数据传输准则而构造表示源装置与中间装置之间的至少一个通信路径的初始网络图。在一些实施例中,所述方法还可包括:确定中间装置满足分组数据传输准则;以及响应于确定中间装置满足分组数据传输准则而将初始网络图发送到中间装置并且请求更新。

在本公开的另一个方面,一种设置无线adhoc网络的方法包括:由源装置构造初始网络图,其中网络图表示源装置、至少一个中间装置以及在源装置与中间装置之间的至少一个通信路径。源装置将初始网络图发送到中间装置并且请求初始网络图的更新;响应于发送初始网络图并且响应于如通过中间装置所测量的源装置的信号强度满足阈值而从中间装置接收第二网络图作为更新;以及通过执行初始网络图与第二网络图的联合来确定更新网络图。所述方法还可包括:使用更新网络图确定简化网络图;使用简化网络图确定线性网络码;以及将线性网络码发送到中间装置和至少一个目的地装置。

在本公开的另一个方面,一种设置无线adhoc网络的方法包括:由源装置从多个相邻装置接收源装置的无线接口测量并且确定哪些相邻装置测量满足第一阈值;由源装置构造初始网络图,其中网络图表示源装置、相邻装置测量满足第一阈值的任何相邻装置以及在源装置与初始网络图上所表示的每个相邻装置之间的至少一个通信路径。源装置将初始网络图发送到初始网络图上所表示的每个相邻装置,并且向所表示的每个相邻装置请求网络图更新;响应于发送初始网络图而从初始网络图被发送到的每个相邻装置接收网络图更新;以及通过执行初始网络图与网络图更新的联合来修正初始网络图。

所述方法还可包括每个相邻装置在构造网络图更新期间充当中间源装置,从多个下游相邻装置接收其自己作为中间源装置的无线接口测量,并且确定哪些下游相邻装置测量满足第一阈值;由中间源装置构造网络图更新,其中网络图更新表示中间源装置、下游相邻装置测量满足第一阈值的任何下游相邻装置以及在中间源装置与网络图更新上所表示的每个下游相邻装置之间的至少一个通信路径。相邻装置将网络图更新进一步发送到网络图更新上所表示的每个下游相邻装置,并且向所表示的每个下游相邻装置请求下游网络图更新;响应于发送网络图更新来从网络图更新被发送到的每个下游相邻装置接收下游网络图更新;以及通过执行网络图更新与下游网络图更新的联合来修正网络图更新。

在本公开的另一个方面,一种操作无线adhoc网络的方法包括:使用对应于第一源装置的第一线性网络码和对应于第二源装置的第二线性网络码配置在从第一源装置和第二源装置到多个目的地装置的通信路径上的中间装置;由中间装置从第一源装置或从第二源装置接收分组数据;由中间装置确定将向分组数据应用第一线性网络码还是第二线性网络码;以及使用第一线性网络码或第二线性网络码生成从中间装置到多个目的地装置中的至少一个目的地装置的传出分组数据。

在一些实施例中,由中间装置确定将向分组数据应用第一线性网络码还是第二线性网络码可通过以下步骤来完成:由中间装置从第一源装置接收使用第一线性网络码编码的分组数据或从第二源装置接收使用第二线性网络码编码的分组数据;以及检查用于识别被用于编码分组数据有效载荷的线性网络码的分组数据的未编码分组数据报头。

在本公开的另一个方面,一种无线adhoc网络包括第一源装置,其通过多个中间装置无线耦接到第一目的地装置,并且操作以使用对应于第一源装置的第一线性网络码来将分组数据从第一源装置发送到第一目的地装置。第二源装置通过多个中间装置无线耦接到第二目的地装置,并且操作以使用对应于第二源装置的第二线性网络码来将分组数据从第二源装置发送到第二目的地装置。多个中间装置各自配置有第一线性网络码和第二线性网络码两者。在一些实施例中,每个中间装置操作以从第一源装置接收使用第一线性网络码编码的分组数据或从第二源装置接收使用第二线性网络码编码的分组数据,并且确定将向分组数据应用第一线性网络码还是第二线性网络码。中间装置使用第一线性网络码生成去往第一目的地装置的传出分组数据,并且使用第二线性网络码生成去往第二目的地装置的传出分组数据。

在本公开的另一个方面,一种操作无线adhoc网络的方法包括:使用对应于中间装置的线性网络码配置在从第一源装置和第二源装置到多个目的地装置的通信路径上的中间装置;由中间装置从第一源装置或从第二源装置接收路由分组数据;以及使用对应于中间装置的线性网络码生成去往多个目的地装置中的至少一个目的地装置的传出分组数据。所述方法还可包括:从第一源装置接收用于第一目的地装置的分组数据并从第二源装置接收用于第二目的地装置的分组数据;使用线性网络码生成去往第一目的地和第二目的地装置的传出分组数据;将传出分组数据发送到第一目的地和第二目的地装置;以及由第一目的地装置和第二目的地装置接收并解码传出分组数据,其中第一目的地装置丢弃寻址到第二目的地装置的任何解码分组,并且第二目的地装置丢弃寻址到第一目的地装置的任何解码分组。

在本公开的另一个方面,一种无线adhoc网络包括第一源装置,其通过共用中间装置和在共用中间装置下游的多个中间装置无线耦接到第一目的地装置。第一源装置操作以将寻址到第一目的地装置的分组数据发送到共用中间装置。第二源装置通过共用中间装置和在共用中间装置下游的多个中间装置无线耦接到第二目的地装置,并且操作以将寻址到第二目的地装置的分组数据发送到共用中间装置。共用中间装置和在共用中间装置下游的多个中间装置各自配置有对应于共用中间装置的线性网络码。共用中间装置操作以从第一源装置或从第二源装置接收由中间装置传输的路由分组数据;并且使用线性网络码生成去往第一目的地装置和第二目的地装置中的一者或两者的传出分组数据。

在本公开的另一个方面,一种操作无线adhoc网络的方法包括:确定从第一源装置和第二源装置到一组目的地装置的通信路径上的中间装置群组,其中该群组中的每个中间装置具有通往对应目的地装置子集的通信路径,使得从第一源装置和第二源装置到组目的地装置中的每个目的地装置存在通信路径;使用对应于第一源装置的第一线性网络码并且使用对应于第二源装置的第二线性网络码配置中间装置群组中的每个中间装置;以及使用其自己与其对应目的地装置子集之间的添加线性网络码配置中间装置群组中的每个中间装置。

所述方法还可包括:由中间装置群组中的第一中间装置从第一源装置或从第二源装置接收分组数据;在从第一源装置发送分组数据的情况下使用第一线性网络码解码分组数据,或在从第二源装置发送分组数据的情况下使用第二线性网络码解码分组数据;以及使用对应于第一中间装置的线性网络码生成去往对应于第一中间装置的目的地装置子集的传出分组数据。

在本公开的另一个方面,一种无线adhoc网络包括第一源装置,其通过共用中间装置群组无线耦接到组目的地装置群组,并且操作以将寻址到目的地装置群组的一个或多个子集的分组数据发送到共用中间装置。第二源装置通过共用中间装置群组无线耦接到目的地装置群组并且操作以将寻址到目的地装置群组的一个或多个子集的分组数据发送到共用中间装置。共用中间装置群组中的每个共用中间装置配置有对应于第一源装置的第一线性网络码、对应于第二源装置的第二线性网络码以及对应于共用中间装置和目的地装置群组的对应子集的第三线性网络码,其中目的地装置群组包括对应于每个共用中间装置的目的地装置子集的全部。无线adhoc网络还可包括在共用中间装置下游的多个额外中间装置,其中每个额外中间装置配置有对应于其上游共用中间装置的第三线性网络码。

在本公开的另一个方面,一种操作无线adhoc网络的方法包括:由第一源装置构造第一网络图,其中第一网络图表示第一源装置、至少一个第一中间装置,以及在第一源装置、第一中间装置和一群组目的地装置之间的至少一个第一通信路径。第二源装置构造第二网络图,其表示第二源装置、至少一个第二中间装置,以及在第二源装置、第二中间装置和所述群组目的地装置之间的至少一个第二通信路径。第一源装置确定简化第一网络图,并且第二源装置确定简化第二网络图。接着将合成网络图确定为简化第一网络图和简化第二网络图的联合。通过添加虚拟源装置以及在虚拟源装置下游并且在第一源装置和第二源装置上游的多个虚拟中间装置来修改合成网络图。在合成网络图中选择通信路径,使得从虚拟源装置到目的地装置群组中的任何目的地装置不需要线性组合分组。接着使用合成网络图确定对应于虚拟源装置的线性网络码,并且第一源装置、第二源装置、至少一个第一中间装置、至少一个第二中间装置和目的地装置群组各自配置有线性网络码。

在本公开的另一个方面,一种无线adhoc网络包括第一源装置,其通过第一中间装置群组无线耦接到目的地装置群组,并且操作以将寻址到目的地装置群组中的一个或多个目的地装置的分组数据发送到中间装置群组。第二源装置通过第二组中间装置无线耦接到目的地装置群组,并且操作以将寻址到目的地装置群组中的一个或多个目的地装置的分组数据发送到第二中间装置群组。第一源装置、第二源装置、第一中间装置群组和第二中间装置群组中的每个中间装置,以及目的地装置群组中的每个目的地装置配置有对应于在第一源装置和第二源装置上游的虚拟源装置的线性网络码,使得从第一源装置和第二源装置发送到目的地装置群组中的任何目的地装置的分组不被线性组合。

现在转向附图,图4示出根据实施例的示例性无线adhoc网络400。示例性无线adhoc网络400包括源装置401和三个目的地装置,即目的地装置411、目的地装置412和目的地装置413。示例性adhoc网络400还包括位于源装置401与目的地装置之间的中间装置。换句话说,中间装置在源装置401的“下游”并且在目的地装置的“上游”。这些中间装置包括顶点装置407、顶点装置408和顶点装置409。网络还包括相邻装置410,其是源装置401的相邻者,但不是顶点装置。如本公开中所使用的术语“上游”和“下游”应当理解为用于相对于分组数据流动通过adhoc网络进行解释的目的的相对术语。更明确地说,分组数据从源向下游流动,通过诸如顶点装置等中间装置,并且继续流动到目的地装置。诸如应答等一些信息可向上游流动到源装置。

根据实施例,源装置401扫描无线接口402上的无线信号并且识别诸如相邻装置410等周围相邻装置。顶点装置407、408和409也是源装置401的相邻装置,并且也将通过无线信号扫描被发现。源装置401针对在无线接口402上从相邻装置中的每一者接收的无线信号测量无线电信号强度指示符(rssi)或等效物,诸如信号噪声干扰比(sinr)。如果所测量的相邻装置rssi或sinr等在用于分组数据传输的预定阈值内,则源装置401与相邻装置交换消息403并且请求额外测量信息。

相邻装置继而测量用于分组数据传输并且用于向源装置401报告应答的第二阈值。相邻装置各自经由消息403向源装置401报告其相应测量。如果在源装置401处并且在相邻装置处均满足无线电测量阈值,则源装置401将相邻装置指定为网络中的“顶点装置”。例如,源装置401将顶点装置407、408和409指定为顶点装置。相邻装置410不满足无线电测量阈值中的一者并且因此不被源装置401指定为顶点装置。因此,相邻装置410没有成为无线adhoc网络400的一部分。源装置401构造网络有向图并且将顶点装置添加作为图中的顶点或节点。源装置401接着在“图构造请求”(gc请求)405中将网络有向图的复本发送到所指定顶点装置中的每一者,在这个示例中所述所指定顶点装置为顶点装置407、408和409。

所指定顶点装置中的每一者接收gc请求,并且运行与源装置401相同的操作。也就是说,每个顶点装置扫描无线接口402上的无线信号并且识别周围相邻装置。换句话说,顶点装置在确定网络有向图的进一步部分时相对于其相邻装置充当源装置。在顶点装置的情况下,其一些相邻装置可能已经被源装置401指定为顶点装置。例如,顶点装置408是顶点装置407和顶点装置409的相邻装置。不管顶点装置的相邻装置先前是否已经被指定为顶点装置,将交换消息403并且将检查无线电测量阈值以确定相邻装置中的任一者是否应当将边添加到网络有向图。

如在两个装置之间所测量的满足无线电信号测量阈值的要求在本文中称为“边存在规则”。换句话说,无线adhoc网络400中的使用无线接口402通信的任何两个装置检查无线接口402以确保能够支持分组数据传输与应答。如果能够基于满足预定无线电信号测量阈值来支持通信,则装置中的一者在网络有向图中添加“边”并且接着继续将网络有向图传到下一个装置。

因此,顶点装置407将确定其相邻装置是顶点装置408、目的地装置411和源装置401。顶点装置407将向网络有向图的其复本添加两个新边,即在其自己与顶点装置408之间的第一边和在其自己与目的地装置411之间的第二边。将不在顶点装置407与源装置401之间添加边,因为源装置401将已经添加了这个边。顶点装置407将接着将网络有向图的更新复本连同gc请求405一起发送到顶点装置408和目的地装置411。顶点装置407将接着等待从其将gc请求405发送到的每个装置接收gc响应406。

这个过程将针对无线adhoc网络400中的所有装置继续进行,直到达到目的地装置411、412和413为止。更明确地说,每个相邻装置成为用于包括在无线adhoc网络400中的候选者。如果相邻装置满足两个无线电测量阈值,则其被指定为顶点装置(如果尚未被如此指定的话),并且在其与至少一个其它装置之间添加边。在装置从其先前将gc请求405发送到的每个装置接收gc响应406之后,其将网络有向图更新为其从每个装置接收的更新网络有向图的联合。如本文中相对于网络有向图所使用的术语“联合”是指确定以下各项的操作:i)作为两个或更多个网络有向图中的各组顶点的联合的顶点集合;以及ii)作为两个或更多个网络有向图中的各组边的联合的边集合。图的联合因而得到包括通过联合操作确定的顶点集合和边集合的“合成”图。更新网络有向图(由联合操作确定)因此从上游传播通过无线adhoc网络400,直到源装置401从其将gc请求405发送到的每个装置接收到gc响应406为止。在示例性无线adhoc网络400中,源装置401将已经从顶点装置407、顶点装置408和顶点装置409接收到gc响应406。源装置401将接着将网络有向图更新为其从顶点装置407、顶点装置408和顶点装置409接收的网络有向图更新的联合。在那时,无线adhoc网络400的构造完成并且构造线性网络码的过程将开始。

本公开中所使用的各种术语包括“装置”、“源装置”、“相邻装置”、“顶点装置”、“目的地装置”、“操作装置”、“节点”、“路径”和“边”。如本文中所使用的“装置”是指具有无线通信能力的移动装置,诸如但不限于移动电话(诸如智能电话)、可穿戴装置(诸如智能手表)、膝上型计算机、平板计算机、电子书阅读器等。如本文中所使用的“源装置”是向“目的地装置”传输分组数据的装置,使得如本文中所使用的“目的地装置”是源装置将分组数据发送到的装置。如本文中所使用的“相邻装置”是在物理上足够靠近另一个装置以使得能够在两个装置之间建立并维持直接无线连接的装置。如本文中所使用的“顶点装置”是指可用于在源装置与目的地装置之间中继分组数据的装置。相邻装置可以是或可以不是顶点装置,这取决于是否能够形成并维持相对于分组数据传输和应答满足无线连接的预定要求的无线连接。每当在两个装置之间满足无线连接的预定要求时,就可在网络有向图中在两个装置之间绘制线条。此类线条在本文中称为“边”并且表示满足用于分组数据传输和应答的预定要求的无线连接。在网络有向图中,如本文中所使用的“节点”表示“装置”并且可更明确地表示源装置、顶点装置或目的地装置。因此,如本文中所使用的“网络有向图”是无线adhoc网络的表示,其中“节点”表示“源装置”、“顶点装置”和“目的地装置”,并且“边”表示此类装置之间的无线连接。任何两个装置之间的“路径”可由依序插入在两个装置之间的多个中间装置(即,多个中间节点或顶点)以及沿路径的各种节点之间的边构成。如本文中所使用的术语“操作装置”是当装置正在执行本文所述的过程的一个或多个操作时指代那个装置的相对术语。更明确地说,图中所提供的流程图指代“操作装置”执行过程操作,并且操作装置可为源装置、顶点装置(即,中间装置)或目的地装置,这取决于具体环境。例如,在出于设置adhoc网络的目的而向相邻装置传播有向图时,adhoc网络的每个相邻装置将最终担任操作装置的角色,直到adhoc网络设置完成为止。

在图5中示出示例性移动装置500。示例性移动装置500包括控制器501,其操作性地耦接到各种其它部件,包括一个或多个收发器503、无线电阈值测试逻辑507、线性网络码生成器509、非易失性非暂态存储器515和网络有向图生成器511。移动装置500的操作性地耦接到控制器501的各种部件中的每一者可因而向控制器501发送信息或从控制器501接收信息。一个或多个收发器503还操作性地耦接到一个或多个天线505。天线505通过适当射频(rf)耦接来操作性地耦接到收发器503。

无线电阈值测试逻辑507操作以与一个或多个收发器503通信以从相邻装置发送和接收消息并且从相邻装置获得无线接口测量数据。例如,无线接口测量数据可为接收信号强度指示符(rssi)、信噪比(snr)、信号噪声干扰比(sinr)等。收发器503可实施一个或多个无线接口以用于建立装置对装置通信。移动装置500针对无线adhoc网络中的装置对装置通信所使用的无线接口可以是,但不限于,长期演进、第四代(4glte)无线接口(诸如4glte未授权频带)、ieee802.11x()、等。

无线电阈值测试逻辑507可从收发器503获得rssi、sinr或其它无线接口测量数据或者一些其它射频(rf)系统相关测量,并且还可从相邻装置接收无线接口测量数据,并可评估那个数据以确定相邻装置是否应当为adhoc网络中的顶点装置。对于这个确定,无线电阈值测试逻辑507对照两个对应阈值评估两个测量。第一阈值是为了使无线接口信号强度处于足以用于分组数据通信的级别。第二阈值是为了确保能够从相邻装置接收到应答。因此,如果相邻装置能够成功地接收有序分组并且源装置能够在那些分组被接收时成功地接收应答,则相邻装置可被源装置指定为顶点装置。顶点装置可接着出于确定其哪些相邻装置可被指定为顶点装置的目的而担任源装置的角色。网络有向图生成器511操作以向相邻装置发送网络有向图517的初始版本。

网络有向图生成器511通过首先添加移动装置500的符合边存在规则的相邻装置作为网络有向图517中的顶点装置来生成网络有向图517。无线电阈值测试逻辑507经由收发器503从相邻装置获得无线接口测量并且相应地将相邻装置指派为顶点装置。控制器501接着将这个信息传递到网络有向图生成器511。网络有向图生成器511生成网络有向图517并将其存储在存储器515中,并且通过使用收发器503将复本连同图构造请求一起发送到每个指定顶点装置。网络有向图生成器511操作以从其将图构造请求发送到的每个装置接收网络有向图版本,并且将网络有向图517更新为所有接收的网络有向图版本的联合。

当移动装置500担任源装置的角色时,在完成网络有向图517的最后版本之后,网络有向图生成器511从线性网络码生成器509获得线性网络码。线性网络码生成器509操作以生成线性网络码并且将其与网络有向图517包括在一起。网络有向图生成器511操作以将网络有向图517(包括线性网络码)通过无线adhoc网络传播到每个顶点装置和目的地装置。

应当理解,示例性移动装置500中的上述部件中的任一者可被实施为在一个或多个处理器上执行的软件或固件(或软件和固件的组合),或者使用asic(专用集成电路)、dsp(数字信号处理器)、硬连线电路(逻辑电路)、状态机、fpga(现场可编程门阵列)或其组合来实施。因此,本文所述的图式中所示出的移动装置提供移动装置的示例并且不应理解为对可根据各种实施例使用的各种其它可能移动装置具体实施的限制。

更明确地说,无线电阈值测试逻辑507和/或网络有向图生成器511和/或线性网络码生成器570可单独地或组合地为单个部件,或可被实施为dsp、asic、fpga、运行可执行指令的cpu、硬连线电路、状态机等的任何组合,不限于此。因此,作为一个示例,无线电阈值测试逻辑507可使用asic或fpga来实施。在另一个示例中,网络有向图生成器511和线性网络码生成器509可各自为处理器所执行的软件或固件的组合,其收集gc响应,将整体网络有向图构造为所接收网络有向图的联合,并且生成线性网络码等。本公开涵盖这些示例性实施例和其它实施例。

图6的流程图示出在源装置(诸如源装置401)中构造用于无线adhoc网络(诸如示例性无线adhoc网络400)的网络有向图的过程。构造网络有向图的过程是在源装置与目的地装置之间建立线性网络码所需要的第一步骤。在下文中根据上文所提供的术语定义参考操作装置将图6流程图描述为过程。因此,应当理解,该过程将由源装置执行并且还将在更新网络有向图,并在无线adhoc网络中向下游传播gc请求时由担任操作装置的角色的下游装置(即,顶点装置)执行。因此,在本公开中使用术语“操作装置”来指代正在执行所描述的过程的操作的装置。因此,此类“操作装置”可为源装置或顶点装置,这取决于操作的具体环境。

过程在操作框601中开始,并且每个操作装置执行其相邻装置的无线接口测量且相邻装置测量通往操作装置的无线接口。接着在装置之间交换这个测量信息。在决策框603中,如果满足用于数据传输的第一阈值,则在决策框605中检查用于数据应答的第二阈值。对照第一阈值评估操作装置所执行的测量,并且对照第二阈值评估在测量交换604期间操作装置从每个相邻装置接收的测量。如果针对特定相邻装置满足两个阈值,则在操作框607中,操作装置将把那个相邻装置指定为顶点装置。操作装置针对所有其相邻装置执行这个阈值测试,直到所有相邻装置均已被测试为止,如决策框609所示。

如果在决策框609中索引(即,尚未被评估测量的相邻装置的数目)仍大于零,则操作装置前进到操作框611,将索引递减1,并且在操作框601处继续循环操作。如果不满足决策框603中的第一阈值,或如果不满足决策框605中的第二阈值,则过程也前进到操作框611,使索引递减1,并且在操作框601处继续循环操作。

对两个装置之间的无线接口满足决策框603和决策框605中所要求的两个阈值的要求在本公开中称为“边存在规则”,因为其是用于在网络有向图中在操作装置与相邻装置之间创建边的要求。换句话说,如果1)第二装置所传输的信号的在第一装置处的测量大于第一阈值,并且2)第一装置所传输的信号的在第二装置处的测量大于第二阈值,则将在网络有向图中在第一装置与第二装置之间添加边。

将第一阈值选择为足够高以确保能够维持从第一装置到第二装置的可靠连接性,并且使得可保持从第一装置到第二装置的相对高的数据速率。将第二阈值选择为足够高以确保能够维持从第二装置到第一装置的连接性并且使得可保持从第二装置到第一装置的相对低的数据速率。更明确地说,应当有可能响应于从第一装置到第二装置的传输来从第二装置向第一装置可靠地传输应答和其它反馈。因此,可预期第一阈值显著高于第二阈值。更具体地说,第一阈值必须足以支持装置之间的无线接口上的qpsk(正交相移键控)调制信号。第一阈值还可被设置为使得可支持qam(正交振幅调制)信号,诸如16-qam或64-qam,这取决于所需数据速率。与从第二装置发送回到第一装置的应答相关的第二阈值应当被设置为使得在无线接口上支持bpsk(二进制相移键控)调制。第一阈值与第二阈值之间的相对差值可为大约(例如)3db,即,第一阈值显著高于第二阈值。

在完成循环操作以使得操作装置已经针对所有其相邻装置评估两个阈值(即,在决策框609中n=0)并且已经在操作框607中将一些相邻装置指定为顶点装置之后,过程前进到操作框613。在操作框613中,操作装置将图构造请求(gc请求)连同操作装置所构造的初始网络有向图一起发送到每个指定顶点装置。gc请求识别源装置和目的地装置。如将理解,在图6的过程的第一次发生期间,操作装置将为源装置。

在操作框615中,操作装置等待来自操作装置将gc请求所发送到的每个指定顶点装置的响应。“gc响应”包括从顶点装置的角度来看的网络有向图的版本。更明确地说,顶点装置担任“操作装置”的角色,检测其相邻者,针对每个相邻装置评估边存在规则,并且相应地将其一个或多个相邻装置指定为进一步的顶点装置。换句话说,其执行图6所示的过程。顶点装置通过根据需要添加边来更新网络有向图的初始复本,并且将这个更新有向图作为gc响应的一部分发送回上游操作装置。

因此,在决策框617中,如果所有顶点装置均已经对其gc请求做出响应,则操作装置前进到操作框619。在操作框619中,操作装置通过执行在gc响应中从顶点装置接收的所有更新网络有向图的联合来构造网络有向图的更新版本。然后该过程结束,如图所示。如果在决策框617中仍存在来自一些顶点装置的未解决gc响应,则过程返回到操作框615并且进行等待,直到接收到gc响应为止。在一些实施例中,如果未在预定时间段中接收到gc响应,则超时功能将期满。在那种情况下,指定顶点装置将被操作装置视为不可用,并且操作装置将因而在网络有向图中移除通往该顶点装置的边。

进一步使用gc请求通过无线adhoc网络将网络有向图传播到后续顶点装置。图7是顶点装置中的用于构造网络有向图的示例性过程的流程图并且是在图6中开始的过程的接续。应当理解,图6和图7所示的过程一般适用于源装置和顶点装置,并且因此,将相对于“操作装置”描述图7,如上文关于图6的过程所论述。具体地说,从源装置开始的每个装置必须执行图6和图7的操作。换句话说,作用于从源装置或上游顶点装置接收的gc请求的顶点装置出于更新网络有向图的目的而像源装置一样运作。

因此,在操作框701中,可能已经是源装置或顶点装置的上游装置通过向被指定为顶点装置的其相邻装置中的每一者添加边来更新网络有向图。换句话说,上游装置在网络有向图中向满足上文论述的边存在规则要求的任何相邻装置添加边。

在操作框703中,操作装置(即,源装置或顶点装置)执行对被指定为顶点装置的其相邻装置中的每一者的检查。这可(例如)由顶点装置响应于从源装置或上游顶点装置接收的gc请求来进行。换句话说,操作装置已经通过图6流程图过程并且现在执行额外检查。具体地说,操作装置检查其相邻装置中的任一者是否为目的地装置,或其是否在从源装置发出的边上处于上游。因此,在决策框705中,操作装置检查其已经被指定为顶点装置的每个装置,以确定其是否为目的地装置。如果其是目的地装置,则过程前进到操作框709并且操作装置不发送gc请求。如果在决策框705中指定的顶点装置不是目的地装置,则过程前进到决策框707并且检查指定的顶点装置是否在上游,使得其在从源装置到操作装置的路径上。换句话说,操作装置将不对于向其发送gc请求的装置添加边,因为那个装置将已经测试并添加适当边。因此,如果在决策框707中顶点装置在上游,则过程前进到操作框709并且操作装置不发送gc请求。随后,在操作框709之后,在操作框715中,过程使相邻者索引“n”递减1,并且在操作框703中继续循环过程,直到已被指定为顶点装置的所有相邻装置均已被检查为止。

如果正在决策框705中检查的指定的顶点装置不是目的地装置,并且在决策框707中不是源装置(或在来自源装置的路径上),则过程前进到操作框711并且操作装置向指定的顶点装置发送gc请求。gc请求包括操作装置的标识信息、源装置的标识信息、目的地装置和操作装置的网络有向图的复本。当所有指定的顶点装置已被检查时,在决策框713中n的值将为零并且过程将前进到决策框717。

如果在决策框717处gc请求已被发送到指定的顶点装置(即,如果已经存在下游顶点装置),则操作装置等待来自每个指定的顶点装置的gc响应,如操作框719所示。在接收到gc响应时,在决策框721中操作装置检查是否仍存在未解决gc响应。如果是,则在操作框719中操作装置继续等待。还将针对每个gc响应设置定时器。如果未在定时器的预定时间段内接收到gc响应,则对应顶点装置将被假定为不可用并且将不被添加到网络有向图。在决策框721处所有gc响应均被接收到或已经超时之后,过程前进到操作框723。在操作框723中,操作装置将通过执行在每个gc响应中接收的网络有向图的联合来构造更新网络有向图。在操作框727中,操作装置将向发送gc请求的任何上游装置发送gc响应,包括更新网络有向图。然后该过程结束,如图所示。

如果在决策框717处没有发送gc请求,则过程前进到操作框725并且操作装置使用任何必要新边更新网络有向图。如果没有指定的顶点装置,则在操作框725中添加的边将通往目的地装置。在操作框727中,操作装置将向发送gc请求的任何上游装置发送gc响应。gc响应将包括更新的网络有向图。然后该过程结束,如图所示。

在图8的示例性过程中,源装置将线性网络码传播到所有网络装置。在源装置接收到来自其将对应gc请求发送到的装置的所有gc响应之后,源装置将更新网络有向图确定为其在gc响应中接收到的各种网络有向图的联合。在操作框801中,源装置确定简化网络有向图。

更明确地说,在操作框801中,源装置s计算简化网络γr=(v,er,s,t),并且在操作框803中,计算用于从s到t的多播(还称为线性码多播或“lcm”)的线性网络码,其被表示为其中:

i)f是伽罗瓦域;

ii)r是能够在简化网络的一次使用中从源装置s多播到每个目的地装置t∈t的分组的数目,即线性网络码容量;

iii)ev是向er中的每条边指派f的元素的长度r向量;以及

iv)是目的地装置t1,t2,…,tn∈t的全局转移矩阵。

在操作框805中,源装置s将线性网络码“lcms→t”发送到存在从顶点s到u的对应边的每个装置u。线性网络码lcms→t被传播到在简化网络有向图γr中具有对应顶点的每个装置。除目的地装置之外,接收线性网络码的每个装置计算并存储局部转移矩阵“lu”。每个目的地装置tt∈t存储其全局转移矩阵

在那时,建立无线adhoc网络,并且可将分组数据从源装置发送到目的地装置。可不时地更新adhoc网络中的装置对装置连接性。例如,如果先前包括在gc响应中的操作装置与下游装置之间的边不再满足边存在规则要求,则操作装置将向源装置或上游装置发送gc响应更新,指示该边不再存在。源装置将相应地更新网络有向图并且在需要时修正线性网络码。

现将描述利用上述过程来建立各种无线adhoc网络配置。图9中示出一个此类adhoc网络配置,图9为根据一个实施例的具有多个源装置的网络图,其中每个源装置确定单独线性网络码。

adhoc网络900表示分组数据的多流传输,并且更明确地说,多对多传输。换句话说,在网络900中,代替在网络中仅存在一个源装置,存在多个源装置s1,s2…,sk∈v。同样,存在对应目的地装置集合,其被指定为ti,使得t1,t2,…,每个源装置si将分组流传输到目的地装置集合中的每个目的地装置,即,t∈ti。在网络900中,s1和s2表示两个源装置,并且t1和t2表示两个目的地装置集合。源装置s1构造第一线性网络码901(),其由第一样式的虚线表示。源装置s2构造第二线性网络码902(),其由第二样式的虚线表示。共用顶点装置“u”由第一线性网络码901和第二线性网络码902两者利用。然而,从源装置s1和源装置s2到达顶点装置u处的分组在重新传输之前不被线性组合。而是,顶点装置u检查每个接收分组的分组报头并且确定哪个线性网络码适用于该分组。顶点装置u接着应用正确的对应局部转移矩阵并且生成传出分组。

网络900根据图10和图11所示的过程进行操作。图10提供根据一个实施例的源装置s1和源装置s2中的示例性过程。应当理解,为了解释清楚起见,示例性网络900被示出为具有两个源装置,然而网络可具有多个源装置。在操作框1001中,每个源装置确定各个线性网络码。更明确地说,在网络900中,针对每个si,计算线性网络码,使得:

在操作框1003中,源装置s1和源装置s2各自独立地将其相应线性网络码发送到顶点装置u、v和w以及目的地装置集合t1和t2中的目的地装置。也就是说,经由er,i中的边将线性网络码发送到对应于v中的顶点的每个可达装置。在操作框1005中,装置响应于接收到线性网络码而计算其相应局部转移矩阵lu,i。因此,网络900的装置被配置用于针对来自每个源装置的所有线性网络码(即,针对每个)进行网络编码。换句话说,网络900的装置被配置有多个局部转移矩阵,针对来自装置可从其接收分组数据传输的每个源装置的每个线性网络码配置一个局部转移矩阵。

在传播线性网络码和对应配置装置之后,可发生从源装置到目的地装置的分组数据传输。在每个源装置生成待传输的分组数据片段时,添加识别用以编码分组的数据有效载荷的线性网络码的分组报头。因此,根据其相应线性网络码(即,)传输分组。网络900中的顶点装置的操作在图11所示的示例性过程中示出。在操作框1101中,在从上游装置接收分组时,顶点装置检查分组报头以确定待应用的正确线性网络码。因此,在操作框1103中,顶点装置对接收到的一系列有效载荷执行对应于分组报头中所指示的线性网络码的线性网络码计算(即,报头不包括在lcm计算中)。顶点装置接着插入报头并且根据需要通过适用的线性网络码传输分组。在操作框1105中,顶点装置根据适用线性网络码在对应边上将每个编码分组传输到对应下游装置。

在一些实施例中,一个以上线性网络码中所涉及的网络装置可能需要依序传输用于线性网络码的分组或可能使用时分复用(tdm)方法,其中依序传输来自交替线性网络码的分组。因此,在示例性网络900中,顶点u可从源装置s1接收通过第一线性网络码901编码的分组并且从源装置s2接收通过第二线性网络码902编码的分组。顶点装置u相应地处理分组并且经由可利用线性网络码901或线性网络码902的路径903将其继续转发。下游顶点装置v和w接收分组并且检查分组报头。因此,例如,顶点装置v可使用线性网络码901将分组继续转发到目的地装置t1和t2并且使用线性网络码902将分组继续转发到装置t4和t5。

另一个示例性adhoc网络配置在图12中示出,图12示出根据一个实施例的具有两个源装置和一个共用顶点装置的网络1200。示例性网络1200的操作在图13和图14中示出,图13描述源装置中的示例性过程,并且图14描述目的地装置中的示例性过程。

转向图13和操作框1301,源装置s1和源装置s2识别共用顶点装置“c”,使得每个源装置具有通往顶点装置c的路径1201,并且使得顶点装置c具有通往装置集合t1和t2内的每个目的地装置的路径。在操作框1303中,共用顶点装置构造其自己与目的地装置之间的线性网络码。更明确地说,共用顶点装置c构造具有容量r的线性网络码其中r表示可同时发送到每个目的地装置的分组的数目。在操作框1305中,在没有任何网络编码的情况下,经由路径1201将分组从每个源装置路由到共用顶点装置c。共用顶点装置c聚积r个分组并且根据共用顶点装置线性网络码执行网络编码传输,即,经由路径1202将分组继续转发到下游顶点装置v和w,下游顶点装置分别经由路径1203和路径1205继续转发分组,其利用共用顶点装置线性网络码。

在操作框1401中,目的地装置可接收来自源装置s1或源装置s2的分组。在操作框1403中,目的地装置将使用共用顶点装置线性网络码解码分组。在操作框1405中,每个目的地装置将丢弃不是对其寻址(即,预期用于不同目的地装置)的任何分组。因此,在示例性网络1200中,从源装置s1和源装置s2向共用顶点装置c发送分组,共用顶点装置执行从源装置s1和源装置s2接收的r个分组的网络编码传输。目的地装置集合t1和t2的联合中的每个目的地装置ti接收网络编码分组,并且通过使用用于共用顶点装置c的线性网络码的全局转移矩阵来恢复来自源装置s1和源装置s2的原始分组。t1中的目的地装置接着丢弃其所接收的寻址到t2中的目的地装置的任何分组。

另一个示例性adhoc网络配置在图15中示出,图15示出根据一个实施例的具有两层线性网络编码的网络1500。示例性网络1500的操作在图16中示出,图16描述组装adhoc网络的示例性过程。在网络1500中,源装置s1和源装置s2各自独立地对若干共用顶点装置c1、c2和c3计算线性网络码。例如,源装置s1对共用顶点装置c1、c2和c3计算线性网络码1501,并且源装置s2对顶点装置c1、c2和c3计算线性网络码1502。线性网络码1501和线性网络码1502在图15中被示出为具有不同样式虚线的边。在adhoc网络1500中存在两个目的地装置集合t1和t2,其中集合t1包括目的地装置t1、t2、t3和t4;并且集合t2包括目的地装置t5、t6、t7和t8。共用顶点装置中的每一者可仅与目的地装置的子集通信。例如,共用顶点装置c1可仅与子集t′1通信,所述子集t′1包括目的地装置t1、t2和t3;共用顶点装置c2可仅与子集t′2通信,子集t′2包括目的地装置t4和t5;并且共用顶点装置c3可仅与子集t′3通信,子集t′3包括目的地装置t6、t7和t8。在示例性网络1500中,源装置s1将分组传输到目的地装置t1,并且装置s2将分组传输到目的地装置t2。

转向图16和操作框1601,源装置s1和源装置s2基于每个共用顶点装置具有来自两个源装置的路径并且使得每个源装置具有经过共用顶点装置去往所有目的地装置的路径来识别共用顶点装置c1、c2和c3。在操作框1603中,每个源装置对共用顶点装置构造线性网络码(即,源装置s1对共用顶点装置c1、c2和c3计算线性网络码1501并且源装置s2对顶点装置c1、c2和c3计算线性网络码1502)。在操作框1605中,每个共用顶点装置对于对应目的地装置子集构造线性网络码。例如,共用顶点装置c1对子集t′1构造线性网络码1503,子集t′1包括目的地装置t1、t2和t3;共用顶点装置c2对子集t′2构造线性网络码1504,子集t′2包括目的地装置t4和t5;并且共用顶点装置c3对子集t′3构造线性网络码1505,子集t′3包括目的地装置t6、t7和t8。构造线性网络码的过程包括构造网络有向图,如上文相对于图6和图7的过程所论述。

应当理解,示例性网络1500为了解释清楚起见示出两个源装置和三个共用顶点装置,但可使用任何数目的源装置和共用顶点装置(以及目的地装置)来形成adhoc网络。因此,更一般地说,在如图15所示的两层网络编码方法的情况下,源装置首先经由无线接口彼此通信并且识别共用顶点装置群组c1,c2,…,cl,使得存在从每个源装置si到每个共用顶点装置ci的通信路径,并且使得存在从每个共用顶点装置ck到每个目的地装置的通信路径,使得换句话说,选择共用顶点装置以使得每个源装置可形成通往其需要将分组发送到的每个目的地装置的通信路径。每个源装置si接着以线性网络码容量ri对每个共用顶点装置构造线性网络码(即,)。接着通过任何其它中间顶点装置将线性网络码传播到共用顶点装置,并且相应地使用线性网络码配置这些装置中的每一者。

每个共用顶点装置ck接着向其对应目的地装置子集构造具有容量的线性网络码接着通过任何其它中间顶点装置将共用顶点装置线性网络码传播到对应目的地装置子集,并且相应地使用线性网络码配置这些装置中的每一者。在adhoc网络的操作中,每个源装置si执行ri个分组的网络编码并且插入识别源装置和目的地装置的报头。源装置接着根据线性网络码(即,)传输网络编码分组。沿路径的任何中间顶点装置利用线性网络码来根据需要相应地执行网络编码操作。如果任何此类中间顶点装置接收对应于一个以上线性网络码的分组,则顶点装置将依序处理分组,使得不同线性网络码的分组不被混合。

在共用顶点装置处,每个共用顶点装置ck恢复来自一个或多个源装置的传输,并且根据用以其对应目的地装置子集的共用顶点装置的线性网络码(即,)执行个所接收分组的网络编码。每个共用顶点装置ck确保其对之执行网络编码的个分组具有在其对应目的地装置子集中的目的地装置(即,ck执行意图用于但从s1,s2…,sk中的任一者接收的任何个接收分组的网络编码)。仅对分组有效载荷而不对分组报头执行网络编码操作。共用顶点装置接着传输网络编码分组以及指示首先发送分组的源装置的报头。

对应目的地装置子集中的每个目的地装置(即,)接收用于对应共用顶点装置的线性网络码(即,)的网络编码分组并且使用用于线性网络码的对应全局转移矩阵恢复分组。应当理解,目的地装置子集不必是不相交集合,并且因而,目的地装置可经由一个以上线性网络码接收相同分组。

另一个示例性adhoc网络配置在图17中示出,图17示出根据一个实施例的具有虚拟源装置和虚拟顶点装置的网络1700。示例性adhoc网络1700包括虚拟源装置1701和从虚拟顶点装置群组到源装置s1的线性网络码1702。如本公开中所使用的术语“虚拟装置”是指数学构造而不是实际网络装置。这些数学构造的虚拟源装置和虚拟顶点装置提供线性网络编码的优点,如下文所述。

示例性网络1700的操作在图18中示出,图18描述组装adhoc网络的示例性过程。转向图18和操作框1801,源装置s1和源装置s2各自确定简化网络有向图。考虑所有目的地装置,即计算t=∪ti。对于每个源-目的地装置对(st,t),构造简化网络有向图γb,t=(v,er,t,si,ti)。针对每个源装置si计算ri=min{mincut(si,t)|t∈t}的值。在操作框1803中,将合成网络有向图确定为简化图γr,union=(v,er,union)的联合,其中er,union是er,i的联合。在操作框1805中,通过添加虚拟源装置1701来修改合成网络有向图。通过首先添加虚拟源装置svirtual来修改合成网络有向图γr,union。接着,在操作框1807中,添加一组虚拟顶点装置vvirtual,其中所添加的虚拟顶点装置的数目|vvirtual|=min{ri|ri=min{mincut(si,t)|t∈t}}。将虚拟顶点装置集合vvirtual分割为不重叠的虚拟顶点装置集合在操作框1807中,添加从虚拟源装置svirtual到集合vvirtual中的每个虚拟顶点装置的虚拟边。添加从每个虚拟顶点装置到源装置si的虚拟边。例如,添加从虚拟顶点装置1703到源装置s1的边1704。所得网络有向图为gu=(vu,eu),其中:

i.vu=v∪{svirtual}∪vvirtual,以及

从gu构造简化网络有向图γr,u=(vu,er,u,svirtual,t)。设ru=min{mincut(svirtual,t)|t∈t}。在操作框1809中,针对er,u中所存在的每条边(svirtual,vvirtual),选择边向量,使得其载送不被线性组合的分组。也就是说,选择边向量ev(svirtual,vvirtual)=[α1,α2,…],使得针对一些k,αk=1,并且针对所有l≠k,αi=0。在操作框1811中,接着构造从虚拟源装置1701到目的地装置1705的线性网络码(即,),其中以上限制应用于边线性网络码中的边载送未线性组合的分组。此外,边也载送未线性组合的分组,因为虚拟顶点具有单个入站边和单个出站边,但边可具有导致去往的入站分组与来自的出站分组不相同的边向量。另外,在操作框1811中,使用线性网络码配置在虚拟源装置与目的地装置之间的网络装置。

针对每个si,通往源装置si的入站边被定义为in(si),使得每个源装置si传输|in(si)|个分组。如下计算由源装置si传输的分组。针对每条边e∈in(si),源装置si选择其已经生成的分组p。源装置si对分组p执行计算,该计算待由(虚拟)顶点执行。应当理解,归因于应用于边向量的限制(即,其被选择为使得其载送不被线性组合的分组),这些计算不需要源装置si知道任何其它装置的分组。接着传输所计算得的分组。线性网络码中的每个中间装置执行如线性网络码所需要的网络编码操作。每个目的地装置丢弃不是对其寻址的分组。

在图17所示的虚拟源方法的其它优点当中,在中间网络装置处不需要复用。作为另一个优点,在源装置与中间装置之间不需要网络编码。

转向图19,示出根据一个实施例的用于构造网络有向图的示例性另选过程。在图19所示的过程中,装置不需要执行图6的过程中所需要的测量交换604。应当理解,图19所示的过程一般适用于源装置和顶点装置;然而,出于解释清楚起见将相对于“源装置”描述图19。图19的过程在被使用时将由源装置以及下游顶点装置执行,直到界定无线adhoc网络为止。

过程在操作框1901中开始,并且每个源装置扫描相邻装置并且开始循环操作来测量用于每个所检测到的相邻装置的无线接口。在决策框1903中,源装置执行相邻装置的无线接口测量并且检查是否满足用于数据传输的第一阈值。如果针对特定相邻装置满足用于数据传输的第一阈值,则在操作框1905中,源装置将把gc请求连同源装置所构造的初始网络有向图一起发送到那个相邻装置。gc请求还识别源装置和目的地装置。

过程接着前进到决策框1907,并且如果索引(即,相邻装置的数目)仍大于零,则源装置前进到操作框1911,使索引递减1,并且在操作框1901处继续循环操作。如果不满足决策框1903中的第一阈值,则过程也前进到操作框1911,使索引递减1,并且在操作框1901处继续循环操作。换句话说,不将gc请求发送到不满足第一阈值的相邻装置。

在完成循环操作以使得源装置已经针对所有其相邻装置评估第一阈值(即,在决策框1907中n=0)之后,接着过程前进到决策框1909。决策框1909的操作由相邻装置而非由源装置执行。更明确地说,在决策框1909中,相邻装置测量源装置无线接口并且确定测量是否大于第二阈值。在一些实施例中,如果不满足第二阈值,则在操作框1913中,相邻装置可向源装置发送gc响应,指示相邻装置不被指定为顶点装置。然后该过程结束,如图所示。

然而,如果在决策框1909中满足第二阈值,则在操作框1915中,相邻装置将其自己指定为顶点装置。在操作框1917中,相邻装置针对其自己相应的相邻装置执行图19的相同操作(即,在图19中相邻装置成为操作装置),向满足第一阈值的每个相邻装置发送gc请求,获得响应,并且执行所接收的网络有向图更新的联合。

在操作框1919中,示出源装置的过程并且源装置等待来自源装置将gc请求发送到的每个相邻装置的响应。如上所述,gc响应包括从顶点装置的角度来看的网络有向图的版本。在决策框1921中,如果所有相邻装置已经对其gc请求做出响应,则源装置前进到操作框1923。在操作框1923中,源装置通过执行在gc响应中从相邻装置接收的所有更新网络有向图的联合来构造网络有向图的更新版本。然后该过程结束,如图所示。如果在决策框1921中仍存在来自一些相邻装置的未解决gc响应,则过程返回到操作框1919并且进行等待,直到接收到gc响应为止。在一些实施例中,如果未在预定时间段中接收到gc响应,则超时功能将期满。在那种情况下,相邻装置将被源装置视为不可用,并且源装置将因而不在网络有向图中向那个相邻装置添加任何边。利用图19的过程的装置还利用图7的过程,使得不向目的地装置或上游顶点装置发送gc请求。

图20是根据实施例的示出如何处理分组的网络图。在上述各种adhoc网络配置中,分组可具有不同大小。网络图2000解决当根据实施例执行网络编码时如何在adhoc网络中处理不同大小的分组。因为在各种实施例中在伽罗瓦域f中执行网络编码操作,所以需要将在装置处处理的分组分解为数据片段,使得每个数据片段为log2|f|个位长。

因此,分组“p”被处理为一系列分组数据片段p1,p2,…,pn∈f,其通过采用p的log2|p|个连续比特并且在底数|f|中确定其值来构造。在图20中被表示为节点“u”和“v”的每个源装置在每个分组数据片段中包括指示原始分组p的长度的报头。在表示为节点“w”的中间装置处,如图20所示执行网络编码操作。例如,如果装置w接收两个分组,即在来自装置v的边2001上的p=[p1,p2,…,pk,…pn]和在来自装置u的边2002上的q=[q1,q2,…,qk],则装置w将在边2003上传输网络编码分组m=[m1,m2,…,mm,…mn],其中针对i≤k,mi=lw[pi,qi]并且针对i>k,mi=lw[pi,0]。换句话说,装置w使用局部转移矩阵编码来自两个分组p和q的分组数据片段,直到所有分组数据片段已被传输到装置x为止。目的地装置接收并根据全局转移矩阵解码分组。随后,基于报头中所指示的分组的长度,将分组截短到正确大小。

另一个示例性移动装置2100在图21中示出。示例性移动装置2100包括至少一个内部通信总线2105,其提供各种部件之间的操作性耦接。移动装置2100的操作性地耦接到通信总线2105的各种部件中的每一者可因而向处理器2110发送信息或从处理器2110接收信息。除了处理器2110之外,移动装置2100的部件包括但不限于收发器2103、天线2107、位置检测逻辑2109(诸如但不限于gps接收器)、显示器和用户界面2113、非易失性非暂态存储器2115以及音频设备2117。可在所有实施例中不存在位置检测逻辑2109。天线2107通过rf耦接2111操作性地耦接到收发器2103。

处理器2110操作以执行存储在存储器2115中的指令(本文中还称为“可执行指令”、“可执行代码”或“代码”),包括操作系统可执行代码2131,以运行至少一个操作系统2130、内核2150和应用层2180(或“用户空间”),其中执行应用程序可执行代码2141以运行一个或多个应用程序2140。

在一些实施例中,处理器2110还操作以执行无线电阈值测试代码2121以实施无线电阈值测试逻辑2120,并且执行网络有向图生成器代码2161以实施网络有向图生成器2160。处理器2110还操作以执行线性网络码生成器代码2171以实施线性网络码生成器2170。无线电阈值测试逻辑2120可通过使用一个或多个api(应用程序编程接口)和内核2150来与收发器2103交互和通信。无线电阈值测试逻辑2120操作以与收发器2103通信以从相邻装置发送和接收消息并且从相邻装置获得无线接口测量数据。例如,无线接口测量数据可为接收信号强度指示符(rssi)、信噪比(snr)、信号噪声干扰比(sinr)等。收发器2103可实施一个或多个无线接口以用于建立装置对装置通信。移动装置2100针对无线adhoc网络中的装置对装置通信所使用的无线接口可以是,但不限于。长期演进、第四代(4glte)无线接口(4glte未授权频带)、ieee802.11x()、等。

无线电阈值测试逻辑2120可经由内部通信总线2105并且经由内核2150从收发器2103获得rssi、sinr或其它无线接口测量数据或者一些其它射频(rf)系统相关测量。无线电阈值测试逻辑2120还可从相邻装置接收无线接口测量数据,并且可评估那个数据以确定相邻装置是否应当为adhoc网络中的顶点装置。

对于这个确定,无线电阈值测试逻辑2120对照两个对应阈值评估两个测量。第一阈值是为了使无线接口信号强度处于足以用于分组数据通信的级别。第二阈值是为了确保能够从相邻装置接收应答。因此,如果相邻装置能够成功地接收有序分组并且源装置能够在那些分组被接收时成功地接收应答,则相邻装置可被源装置指定为顶点装置。顶点装置可接着出于确定其哪些相邻装置可被指定为顶点装置的目的而担任源装置的角色。

网络有向图生成器2160操作以与操作系统2130并且与收发器2103通信。网络有向图生成器2160可与操作系统2130、收发器2103和内核2150通信。网络有向图生成器2160操作以从无线电阈值测试逻辑2120获得顶点装置标识信息。网络有向图生成器2160还可与无线电阈值测试逻辑2120并且与线性网络码生成器2170通信。网络有向图生成器2160操作以向相邻装置发送网络有向图2129的初始版本。

网络有向图生成器2160通过首先添加移动装置2100的符合边存在规则的相邻装置作为有向图2129中的顶点装置来生成有向图2129。无线电阈值测试逻辑2120从相邻装置并且从收发器2103获得无线接口测量并且相应地将相邻装置指定为顶点装置。接着将这个信息传递到网络有向图生成器2160。网络有向图生成器2160生成网络有向图2129并将其存储在存储器2115中,并且通过与收发器2103通信以发送信息来将复本连同图构造请求一起发送到每个指定顶点装置。网络有向图生成器2160操作以从其将图构造请求所发送到的每个装置接收网络有向图版本,并且将网络有向图2129更新为所有接收的网络有向图版本的联合。

当移动装置2100担任源装置的角色时,在完成网络有向图2129的最后版本之后,网络有向图生成器2160从线性网络码生成器2170获得线性网络码。线性网络码生成器2170操作以生成线性网络码并且将其与网络有向图2129包括在一起。网络有向图生成器2160操作以将网络有向图2129(包括线性网络码)通过无线adhoc网络传播到每个顶点装置和目的地装置。

应当理解,示例性移动装置2100的上述软件部件(即,可执行指令或可执行代码)中的任一者或示例性移动装置2100的其它上述部件中的任一者可被实施为在一个或多个处理器上执行的软件或固件(或软件和固件的组合),或使用asic(专用集成电路)、dsp(数字信号处理器)、硬连线电路(逻辑电路)、状态机、fpga(现场可编程门阵列)或其组合来实施。因此,本文所述的图式中所示出的移动装置提供移动装置的示例并且不应理解为对可根据各种实施例使用的各种其它可能移动装置具体实施的限制。

更明确地说,无线电阈值测试逻辑2120和/或网络有向图生成器2160和/或线性网络码生成器2170可单独地或组合地为单个部件,或可被实施为dsp、asic、fpga、运行可执行指令的cpu、硬连线电路、状态机等的任何组合,不限于此。因此,作为一个示例,无线电阈值测试逻辑2120可使用asic或fpga来实施。在另一个示例中,网络有向图生成器2160和线性网络码生成器2170可各自为处理器所执行的软件或固件的组合,其收集gc响应,将整体网络有向图构造为所接收网络有向图的联合,并且生成线性网络码等。本公开涵盖这些示例性实施例和其它实施例。

尽管已经示出并描述了各种实施例,但应当理解,本发明不限于此。本领域的技术人员将在不脱离如所附权利要求书所定义的本发明的范围的情况下想到许多修改、改变、变型、替换和等效物。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1