CN109803244B - 数据传输的方法和装置 - Google Patents
数据传输的方法和装置 Download PDFInfo
- Publication number
- CN109803244B CN109803244B CN201711153244.3A CN201711153244A CN109803244B CN 109803244 B CN109803244 B CN 109803244B CN 201711153244 A CN201711153244 A CN 201711153244A CN 109803244 B CN109803244 B CN 109803244B
- Authority
- CN
- China
- Prior art keywords
- node
- indication
- fragment
- acquired
- target
- 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
Links
Images
Abstract
本发明实施例公开了一种数据传输的方法和装置。该方法包括:第一节点接收BR广播发送的数据包,数据包包括多个分片;确定第一状态指示,第一状态指示用于指示第一节点未接收到的分片;从第一节点的邻居节点集合中确定目标节点集合,目标节点集合中各节点与第一节点之间的链路质量高于邻居节点集合中除目标节点集合之外的其他节点与第一节点之间的链路质量;根据第一状态指示和目标节点集合中第一目标节点的第二状态指示确定第一目标节点的第一待获取分片指示;向第一目标节点发送第一待获取分片指示;接收第一目标节点发送的分片。能够提高信道的利用率低和数据传输的效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据传输的方法和装置。
背景技术
无线网状(mesh)网络是一种低功耗短距离无线通信网络。无线网状网络由一个边界路由器(Border Router,BR)和多个尾端节点(Node)组成网状结构。BR通常为该无线网状网络的网关设备,尾端节点可以通过BR与外部网络通信。无线网状网络由BR控制,BR可以控制这个网络的启动、停止以及刷新等,通常也作为各种应用数据的数据源。尾端节点可以接收数据,也可以作为中继进行数据转发,以此构成多跳网络。
尾端节点升级的过程包括广播阶段和单播阶段。在广播阶段中,BR将升级的分片,然后将每一个分片以广播的方式发送,在BR覆盖范围内的尾端节点可以接收到分片,还可以作为中继转发接收到的分片。BR广播发送完所有的分片后,广播阶段结束。由于无线网状网络的特性,无法保证所有的尾端节点在广播阶段均可以收到所有的分片,因此需要通过单播阶段进行重传。在单播阶段,BR轮询每一个尾端节点所缺失的分片,然后以单播的形式发送给各个尾端节点,直到所有的尾端节点都接收到所有分片报文,单播阶段结束。
BR在单播阶段通过串行的方式依次向各尾端节点发送分片,所以在BR通过某一信道向一个尾端节点发送分片时,网络中的其他尾端节点用于通信的信道就处于空闲状态,从而降低了信道的利用率,以及BR和节点之间数据传输的效率,进而降低尾端节点升级的效率。
发明内容
本申请提供了一种数据传输的方法和装置,能够解决信道的利用率低和尾端节点升级的效率低的问题。
第一方面,本申请提供了一种数据传输的方法,包括:
第一节点接收BR广播发送的数据包,数据包包括多个分片,BR和多个节点以网状网络建立通信连接,多个节点包括第一节点。第一节点确定分片的第一状态指示,第一状态指示用于指示第一节点未接收到的分片。第一节点从第一节点的邻居节点集合中确定目标节点集合,目标节点集合中各节点与第一节点之间的链路质量高于邻居节点集合中除目标节点集合之外的其他节点与第一节点之间的链路质量。第一节点根据第一状态指示和目标节点集合中第一目标节点的第二状态指示确定第一目标节点的第一待获取分片指示,第一目标节点为目标节点集合中与第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示第一目标节点所接收到的分片,第一待获取分片指示用于指示第一节点需要从第一目标节点中获取的分片。第一节点向第一目标节点发送第一待获取分片指示。第一节点接收第一目标节点发送的分片,第一目标节点发送的分片包括第一待获取分片指示所指示的分片。
本申请中,第一节点在接收BR广播发送的分片后,可以确定出指示第一节点未接收到分片的第一状态指示。然后第一节点可以根据各邻居节点与第一节点之间链路质量从邻居节点集合中确定出目标节点集合,并根据第一状态指示和目标节点集合中与第一节点之间链路质量最好的第一目标节点的第二状态指示确定出第一目标节点的第一待获取分片指示;进而从第一目标节点中获取到第一待获取分片指示所指示的分片。如此本申请中,第一节点可以从网络中邻居节点中获取未接收到的分片,不同的节点可以同时从各自的邻居节点中获取分片,从而不需要BR通过串行的方式依次向各尾端节点发送,进而可以提高信道的利用率,以及BR与尾端节点之间数据传输的效率,进而提高尾端节点的升级效率。
具体的,本申请中,第一节点可以根据链路度量值、传输信号的信号强度、传输信号的时延等等参数来确定与邻居节点集合中各节点之间的链路质量。
结合第一方面,在第一方面的第一种实施方式中,所述第一节点根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定所述第一目标节点的第一待获取分片指示之后,还包括:
所述第一节点判断所述第一待获取分片指示所指示的分片是否为所述第一节点未收到的所有分片;
当所述第一待获取分片指示所指示的分片不是所述第一节点未收到的所有分片时,所述第一节点根据所述第一待获取分片指示更新所述第一状态指示,更新后的第一状态指示用于指示所述第一节点除所述第一待获取分片指示所指示的分片之外未接收到的分片;
所述第一节点从所述目标节点集合中除所述第一目标节点之外的其他节点中确定第二目标节点,所述第二目标节点为所述目标节点集合中除所述第一目标节点之外的其他节点中与所述第一节点之间链路质量最好的节点;
所述第一节点根据更新后的第一状态指示和所述第二目标节点的第二状态指示确定所述第二目标节点的第二待获取分片指示,所述第二目标节点的第二状态指示用于指示所述第二目标节点所接收到的分片,所述第二待获取分片指示用于指示所述第一节点需要从所述第二目标节点中获取的分片;
所述第一节点向所述第二目标节点发送所述第二待获取分片指示;
所述第一节点接收所述第二目标节点发送的分片,所述第二目标节点发送的分片包括所述第二待获取分片指示所指示的分片。
结合第一方面或上述任一种实施方式,在第一方面的第二种实施方式中,在所述第一节点根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定所述第一目标节点的第一待获取分片指示之前,还包括:
所述第一节点广播发送第一消息,所述第一消息用于指示所述第一节点未接收到所述数据包包括的所有分片;
所述第一节点接收所述邻居节点集合中各节点发送的第二状态指示,所述第二状态指示用于指示所述第二状态指示对应节点所接收到的分片。
具体的,本申请中第一消息可以包括第一节点路由开销值(Rank),第一节点的路由开销值表示第一节点至BR的路由开销值
结合第一方面或上述任一种实施方式,在第一方面的第三种实施方式中,在所述第一节点接收BR广播发送的数据包之后,还包括:
所述第一节点接收第二节点发送的第二消息,所述第二消息表示所述第二节点未接收到所述数据包所包括的所有分片,所述第二节点为所述第一节点的一个邻居节点;
所述第一节点向所述第二节点发送第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
结合第一方面或上述任一种实施方式,在第一方面的第四种实施方式中,在所述第一节点向所述第二节点发送第三状态指示之后,还包括:
所述第一节点接收所述第二节点发送的第三待获取分片指示,所述第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;
所述第一节点向所述第二节点发送所述第三待获取分片指示所指示的分片
结合第一方面或上述任一种实施方式,在第一方面的第五种实施方式中,所述第二消息包括所述第二节点的路由开销值,所述第二节点的路由开销值表示所述第二节点至所述BR的路由开销值;
所述第一节点向所述第二节点发送第三状态指示,包括:
当所述第二节点的路由开销值大于所述第一节点的路由开销值时,所述第一节点向所述第二节点发送第三状态指示,所述第一节点的路由开销值表示所述第一节点至所述BR的路由开销值。
结合第一方面或上述任一种实施方式,在第一方面的第六种实施方式中,所述第一节点向所述第二节点发送所述第三待获取分片指示所指示的分片,包括:
当预设时间段内接收到第三节点发送的第四待获取分片指示时,所述第一节点广播发送所述第三待获取分片指示所指示的分片和所述第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
第二方面,本申请提供了一种数据传输的装置,所述装置位于第一节点,所述装置包括:
接收单元,用于接收边界路由器BR广播发送的数据包,所述数据包包括多个分片,所述BR和多个节点以网状网络建立通信连接,所述多个节点包括所述第一节点;
确定单元,用于确定第一状态指示,所述第一状态指示用于指示所述第一节点未接收到的分片;
所述确定单元还用于从所述第一节点的邻居节点集合中确定目标节点集合,所述目标节点集合中各节点与所述第一节点之间的链路质量高于所述邻居节点集合中除所述目标节点集合之外的其他节点与所述第一节点之间的链路质量;
所述确定单元还用于根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定所述第一目标节点的第一待获取分片指示,第一目标节点为所述目标节点集合中与所述第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示所述第一目标节点所接收到的分片,所述第一待获取分片指示用于指示所述第一节点需要从所述第一目标节点获取的分片;
发送单元,用于向所述第一目标节点发送所述第一待获取分片指示;
所述接收单元还用于接收所述第一目标节点发送的分片,所述第一目标节点发送的分片包括所述第一待获取分片指示所指示的分片。
结合第二方面,在第二方面的第一种实施方式中,所述装置还包括:
判断单元,用于判断所述第一待获取分片指示所指示的分片是否为所述第一节点未收到的所有分片;
更新单元,用于当所述第一待获取分片指示所指示的分片不是所述第一节点未收到的所有分片时,根据所述第一待获取分片指示更新所述第一状态指示,更新后的第一状态指示用于指示所述第一节点除所述第一待获取分片指示所指示的分片之外未接收到的分片;
所述确定单元还用于从所述目标节点集合中除所述第一目标节点之外的其他节点中确定第二目标节点,所述第二目标节点为所述目标节点集合中除所述第一目标节点之外的其他节点中与所述第一节点之间链路质量最好的节点;
所述确定单元还用于根据更新后的第一状态指示和所述第二目标节点的第二状态指示确定所述第二目标节点的第二待获取分片指示,所述第二目标节点的第二状态指示用于指示所述第二目标节点所接收到的分片,所述第二待获取分片指示用于指示所述第一节点需要从所述第二目标节点中获取的分片;
所述发送单元还用于向所述第二目标节点发送所述第二待获取分片指示;
所述接收单元还用于接收所述第二目标节点发送的分片,所述第二目标节点发送的分片包括所述第二待获取分片指示所指示的分片。
结合第二方面或第二方面的上述任一种实施方式,在第二方面的第二种实施方式中,所述发送单元还用于广播发送第一消息,所述第一消息用于指示所述第一节点未接收到所述数据包包括的所有分片;
所述接收单元还用于接收所述邻居节点集合中各节点的第二状态指示。
结合第二方面或第二方面的上述任一种实施方式,在第二方面的第三种实施方式中,所述接收单元还用于接收第二节点发送的第二消息,所述第二消息表示所述第二节点未接收到所述数据包所包括的所有分片,所述第二节点为所述第一节点的一个邻居节点;
所述发送单元还用于向所述第二节点发送第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
结合第二方面或第二方面的上述任一种实施方式,在第二方面的第四种实施方式中,所述接收单元还用于接收所述第二节点发送的第三待获取分片指示,所述第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;
所述发送单元还用于向所述第二节点发送所述第三待获取分片指示所指示的分片。
结合第二方面或第二方面的上述任一种实施方式,在第二方面的第五种实施方式中,所述第二消息包括所述第二节点的路由开销值,所述第二节点的路由开销值表示所述第二节点至所述BR的路由开销值;
所述发送单元在向所述第二节点发送第三状态指示时,具体用于向所述第二节点发送第三状态指示。
结合第二方面或第二方面的上述任一种实施方式,在第二方面的第六种实施方式中,所述发送单元在向所述第二节点发送所述第三待获取分片指示所指示的分片时,具体用于当预设时间段内接收到第三节点发送的第四待获取分片指示时,广播发送所述第三待获取分片指示所指示的分片和所述第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
第三方面,本申请提供一种数据传输的设备,包括:处理器、存储器和收发器;
所述存储器、所述收发器与所述处理器耦合;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述处理器执行所述指令时,所述信道探测周期的确定设备用于执行如第一方面或第一方面的任一种实施方式所述的数据传输的方法。
第四方面,本申请提供一种数据传输的系统,包括BR和多个节点,所述多个节点中任一个节点包括如第二方面或第二方面的任一种实施方式所述的数据传输的装置。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任一种实施方式所述的数据传输的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1是根据本发明实施例提供的网络架构示意图;
图2是根据本发明实施例提供的一种数据传输的方法的示意性流程图;
图3是根据本发明实施例提供的一种节点之间传输的报文格式的示意图;
图4是根据本发明实施例提供的一种数据传输的装置的示意性框图;
图5是根据本发明实施例提供的另一种数据传输的装置的示意性框图;
图6是根据本发明一实施例提供的一种数据传输的设备的示意性框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例可以用于无线网状网络中BR向各节点传输数据的场景。如图1所示,为本发明实施例使用的一种无线网状网络的架构示意图。图1所示,BR和多个节点组成网状网络结构,图1中示出了6个节点,分比为N1、N2、N3、N4、N5和N6,连接方式可以如图1所示。
在无线网状网络,BR需要向网络中所有节点传输数据包时,如果数据包较大时,BR则通常会将数据包分成多个分片在进行广播发送。本发明实施例以BR向网络中各节点发送用于升级的升级数据包为例进行说明。
BR在向网络中各节点发送用于升级的升级数据包时,先将用于升级的升级数据包分成多个分片,然后将分片广播给各节点。BR与各节点之间通常基于网络协议(InternetProtocol,IP)进行数据传输,所以BR广播发送分片时均以包括分片的IP报文广播发送。BR广播发送分片时,BR将升级分片广播发送给BR覆盖范围内的节点,这些节点接收BR广播发送的分片后,可以作为中继将接收的分片转发给其他节点,其他节点也可以作为中继设备,继续将接收的分片再转发,从而使网状网络中的各节点均可以接收分片。BR可以对分片设置分片的标识,用于表示出该分片是数据包的哪个分片,指示了该分片的在所有数据包片中的顺序。BR广播发送包括分片的IP报文时,将分片的标识携带在IP报文中,以便于各节点接收包括分片的IP后,可以根据IP报文中携带的标识来确定接收到和未接收到的分片。
由于BR广播发送分片过程,无法保证所有的节点均可以接收升级数据包所有的分片,所以在广播发送结束后,未接收到所有分片的节点需要获取到未接收到的分片,才能得到完整的升级数据包,以便完成升级。本发明实施例中,未接收到全部分片的节点不仅可以从BR中获得缺失的分片,还可以从其他节点中来获得缺失的分片,例如可以从邻居节点中获得未接收到的分片,从而提高信道的利用率和节点升级的效率。
本发明实施例提供了一种数据传输的方法,用于图1所示网络架构中的任一个节点,如图2所示,该方法包括以下步骤。
101,第一节点接收BR广播发送的数据包。
数据包包括多个分片。BR与多个节点以网状网络建立通信连接,具体结构可以如图1所示。BR向各节点发送数据包时,BR先将用于升级的数据包分成多个分片,然后将分片广播发送给各节点。BR通过广播发送所有分片将数据包广播给网状网络中的节点。
本发明实施例中第一节点为图1所示网络架构中任意一个节点。
102,第一节点确定分片的第一状态指示。
其中,BR广播发送分片后,第一节点可以确定其接收到的分片,以及未接收到的分片,进而可以得到第一状态指示。所述第一状态指示用于指示所述第一节点未接收到的分片。
需要说明的是,每个分片中可以包括分片标识,例如分片号,其指示了该分片在所有分片中的顺序。所以各节点在接收分片后,可以根据分片标识确定出未接收到的分片,以及接收到的分片,进而可以得到所述第一状态指示。
具体的,本发明实施例中,第一状态指示可以为分片状态掩码、编码列表、状态位图(bit map)等等。
例如,第一状态指示可以为分片状态掩码。分片状态掩码可以为二进制数,该二进制数的比特位数为所述数据包的所有分片的数量。该二进制数可以按照由低位到高位的顺序对应所述数据包的第一个至最后一个分片。其中,数值0表示对应的分片没有收到,数值1表示对应的分片已收到。举例来说,数据包一共包括8个分片,分别为分片1~分片8,分片状态掩码中由最低位至最高位依次对应分片1至分片8。假设第一节点收到分片1、分片4、分片5、分片6和分片8,则得到的分片状态掩码为二进制数“10111001”。
再例如,分片状态掩码还可以为由0和1组成的字符串,字符串的长度为所述数据包的所有分片的个数,该字符串依次与分片一一对应。其中字符0表示对应的分片没有收到,字符1表示对应的分片已收到。举例来说,所述数据包一共包括8个分片,分别为分片1~分片8,则第一节点会生成包括8个字符的分片状态掩码,其中第一个字符对应分片1,第二个字符对应分片2,……,依次类推,第八个字符对应分片8。假设第一节点收到分片1、分片4、分片5、分片6和分片8,则得到的分片状态掩码为字符串“10011101”。
再例如,第一状态指示还可以为编码列表。BR可以对数据包的分片进行编码,每个分片对应一个编码值,第一状态指示则为第一节点未接收到分片的编码列表。举例来说,所述数据包一共包括8个分片,分别为分片1~分片8,其中,分片1的编码值为1,分片2的编码值为2,分片3的编码值为3,分片4的编码值为4,分片5的编码值为5,分片6的编码值为6,分片7的编码值为7,分片8的编码值为8。假设第一节点收到分片1、分片4、分片5、分片6和分片8,则得到的第一状态指示为:{2、3、7},即表示第一节点未收到分片2、分片3和分片7。
需要说明的是,结合上述举例可知,第一状态指示还可以指示第一节点接收到的分片,例如,在为分片状态掩码时,第一状态指示还指示了第一节点接收到的分片,即第一状态指示既指示了第一节点接收到的分片也指示了第一节点未接收到的分片。
103,第一节点从第一节点的邻居节点集合中确定目标节点集合。
其中,目标节点集合中各节点与第一节点之间的链路质量高于邻居节点集合中除目标节点集合之外的其他节点与第一节点之间的链路质量。目标节点集合中的节点为用于为第一节点提供分片的邻居节点。
第一节点确定其未接收到所有的分片后,可以从网络的其他节点中获取未接收到的分片,例如,可以从其邻居节点中获取未接收到的分片。此时,第一节点在网状网络中的邻居节点构成第一节点的邻居节点集合。第一节点可以从邻居节点集合中选择与第一节点之间链路质量较高的邻居节点,来作为获取分片的节点,这些节点构成目标节点集合。
在无线网状网络,各节点通常可以与在其覆盖范围内的其他节点直接通信,对应不在覆盖范围内的节点,则通过多跳传输的方式通信。邻居节点通常是指彼此之间能够直接通信的节点。第一节点的邻居节点指能够与第一节点直接通信的节点。
本步骤中,第一节点从第一节点的邻居节点集合中确定目标节点集合,从目标节点集合所包括的节点中来获取分片。由于目标节点集合中各节点与第一节点之间的链路质量高于邻居节点集合中除目标节点集合之外的其他节点与第一节点之间的链路质量,所以从目标节点集合所包括的节点中来获取分片,可以保证数据传输的效率和质量,尽量降低数据传输的开销和代价。
本发明实施例中,第一节点可以根据链路度量值、传输信号的信号强度、传输信号的时延等等参数来确定与邻居节点集合中各节点之间的链路质量。
具体的,步骤103可以具体执行为:第一节点将邻居节点集合中与第一节点之间的链路度量值小于预设阈值的节点确定为目标节点集合中的节点。
由于邻居节点集合中各节点与第一节点之间的链路度量值越小,说明第一节点到达该节点的代价越小,链路质量越高,所以第一节点可以结合与各节点之间的链路度量值确定出目标节点集合,以便于降低第一节点获取未接收到分片的代价。即本发明实施例中根据预设阈值,将邻居节点集合中与第一节点之间的链路度量值小于预设阈值的节点确定为目标节点集合中的节点。预设阈值的大小可以根据场景设置不同的值,例如可以设置为512。
需要说明的是,第一节点可以根据第一节点与邻居节点之间数据传输的情况计算得出与该邻居节点之间的链路度量值。步骤102和步骤103之间在执行时没有严格的时间先后顺序,可以同时执行,也可以先执行步骤103再执行步骤102。
104,第一节点根据第一状态指示和目标节点集合中第一目标节点的第二状态指示确定第一目标节点的第一待获取分片指示。
其中,第一目标节点为目标节点集合中与第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示第一目标节点所接收到的分片,第一待获取分片指示用于指示第一节点需要从第一目标节点中获取的分片。
第一节点从目标节点集合中可以确定出与第一节点之间链路质量最好的节点,即为第一目标节点。由于节点与第一节点之间链路质量越高,第一节点从该节点获取分片的代价越小,所以第一节点优选从第一目标节点获取未接收到的分片。
第一节点根据第一目标节点的第二状态指示可以知道第一目标节点接收到的分片,所以再结合第一状态指示可以确定出第一节点需要从第一目标节点获取的分片,即第一待获取分片指示。第一节点需要从第一目标节点获取的分片为第一节点未接收到的、且第一目的节点接收到的分片。
需要说明的是,第一目标节点的第二状态指示也可以为分片状态掩码、编码列表、位图等等,其具体实现方式与第一状态指示相同,再次不在赘述。
第一待获取分片指示具体可以为分片状态掩码、编码列表、状态位图等。
例如,第一待获取分片指示为分片状态掩码。分片状态掩码可以为二进制数,该二进制数的比特位数为所述数据包的所有分片的数量。该二进制数按照由低位到高位的顺序对应所述数据包的第一个至最后一个分片。其中,数值0表示不需要获取对应的分片,数值1表示需要获取对应的分片。举例来说,数据包一共包括8个分片,分别为分片1~分片8,分片状态掩码中由最低位至最高位依次对应分片1至分片8。假设第一节点需要从第一目标节点获取的分片为:分片1、分片4、分片5、分片6和分片8,则得到的分片状态掩码为二进制数“10111001”。
再例如,第一待获取分片指示为分片状态掩码。分片状态掩码可以为由0和1组成的字符串,字符串的长度为所述数据包的所有分片的个数,该字符串依次与分片一一对应。其中字符0表示不需要获取对应的分片,字符1表示需要获取对应的分片。举例来说,数据包一共包括8个分片,分别为分片1~分片8,则第一节点会生成包括8个字符的分片状态掩码,其中第一个字符对应分片1,第二个字符对应分片2,……,依次类推,第八个字符对应分片8。假设第一节点需要从第一目标节点获取的分片为:分片1、分片4、分片5、分片6和分片8,则得到的分片状态掩码为字符串“10011101”。
再例如,第一待获取分片指示还可以为编码列表。BR可以对数据包的分片进行编码,每个分片对应一个编码值,第一待获取分片指示则为第一节点需要从第一目标节点获取的分片的编码列表。举例来说,数据包一共包括8个分片,分别为分片1~分片8,其中,分片1的编码值为1,分片2的编码值为2,分片3的编码值为3,分片4的编码值为4,分片5的编码值为5,分片6的编码值为6,分片7的编码值为7,分片8的编码值为8。假设第一节点需要从第一目标节点需要获取的分片为:分片1、分片4、分片5、分片6和分片8,则得到的第一待获取分片指示为:{2、3、7}。
在本发明实施例中,第一节点确定出第一目标节点的第一待获取分片指示,即确定出了需要从第一目标节点获取的分片。但是,第一节点需要从第一目标节点获取的分片并不一定是第一节点未接收的全部分片,即第一目标节点有可能不能为第一节点提供第一节点未接收到的全部分片,所以第一节点在确定出第一目标节点的第一待获取分片指示后,还需要判断第一节点需要从第一目标节点获取的分片是否为第一节点未接收的全部分片。如果第一节点需要从第一目标节点获取的分片不是第一节点未接收的全部分片,则第一节点还需要从目标节点集合中确定出其他节点,在从确定的其他节点中获取分片。
具体的,在步骤104之后,还可以执行为:第一节点判断第一待获取分片指示所指示的分片是否为第一节点未收到的所有分片;当第一待获取分片指示所指示的分片不是第一节点未收到的所有分片时,第一节点根据第一待获取分片指示更新第一状态指示,更新后的第一状态指示用于指示第一节点除第一待获取分片指示所指示的分片之外未接收到的分片;第一节点从目标节点集合中除第一目标节点之外的其他节点中确定第二目标节点,第二目标节点为目标节点集合中除第一目标节点之外的其他节点中与第一节点之间链路质量最好的节点;第一节点根据更新后的第一状态指示和第二目标节点的第二状态指示确定第二目标节点的第二待获取分片指示,第二目标节点的第二状态指示用于指示第二目标节点所接收到的分片,第二待获取分片指示用于指示第一节点需要从第二目标节点中获取的分片。
第一节点可以通过判断第一待获取分片指示所指示的分片是否为第一节点未收到的所有分片,来确定第一节点需要从第一目标节点获取的分片是否为第一节点未接收的全部分片。当第一待获取分片指示所指示的分片为第一节点未收到的所有分片时,说明第一节点需要从第一目标节点获取的分片即为第一节点未接收的全部分片。当第一待获取分片指示所指示的分片不为第一节点未收到的所有分片时,说明第一节点需要从第一目标节点获取的分片不是第一节点未接收的全部分片,则第一节点还需要从目标节点集合中确定出其他节点,再从确定的其他节点中获取分片。
当第一待获取分片指示所指示的分片不是第一节点未收到的所有分片时,第一节点需要确定第一节点未接收到的分片中除去从第一目标节点获取分片后剩余的分片是哪些。此时第一节点可以根据第一待获取分片指示更新第一状态指示,使更新后的第一状态指示能够指示出第一节点除第一待获取分片指示所指示的分片之外未接收到的分片,即第一节点未接收到的分片中除去从第一目标节点获取分片后剩余的分片。
第一节点为了减少获取分片的代价,可以从目标节点集合中除第一目标节点之外的其他节点中确定与第一节点之间链路质量最好的第二目标节点,并基于更新后的第一状态指示和第二目标节点的第二状态指示来确定第二目标节点的第二待获取分片指示。由于第二目标节点的第二状态指示可以指示出第二目标节点所接收到的分片,所以第一节点根据更新后的第一状态指示和第二目标节点的第二状态指示可以确定出第一节点需要从第二目标节点获取的分片,即确定出第二目标节点的第二待获取分片指示。
需要说明的是,在第一节点确定出第二目标节点的第二待获取分片指示后,还可以判断第一节点需要从第一目标节点获取的分片和从第二目标节点获取的分片之和是否为第一节点未接收的全部分片。如果第一节点需要从第一目标节点获取的分片和从第二目标节点获取的分片之和仍然不是第一节点未接收的全部分片,则第一节点还可以根据第二目标节点的第二待获取分片指示再次更新第一状态指示,使更新后的第一状态指示能够指示出第一节点除第一待获取分片指示所指示的分片和第二待获取分片指示所指示的分片之外未接收到的分片,即第一节点未接收到的分片除去从第一目标节点获取分片和从第二目标节点获取分片后剩余的分片,并且第一节点再次从目标节点集合中除第一目标节点和第二目标节点之外的节点中确定出第三目标节点,进而确定出需要从第三目标节点获取的分片,即第三目标节点的第二待获取分片指示,依此类推,直到第一节点获取到未接收到的全部分片。
在上述过程中,在第一节点在确定第二目标节点之前,第一节点可以将第一目标节点从目标节点集合中删除,然后从删除第一目标节点的目标节点集合中确定第二目标节点,即删除第一目标节点的目标节点集合中与第一节点之间链路质量最好的节点为第二目标节点。或者在第一节点在确定第二目标节点之前,第一节点还可以将第一目标节点进行标记,然后从目标节点集合的未标记节点中确定第二目标节点,即目标节点集合的未标记节点中与第一节点之间链路质量最好的节点为第二目标节点。
需要说明的是,当确定了上述目标节点集合中各节点均对应的待获取分片指示后,如果第一节点仍然还有未接收的分片,则可以再执行步骤102和步骤103,确定出新的目标节点集合,并再次执行步骤104。在上述过程中,目标节点集合中各节点的第二状态指示可以为各节点在接收BR广播的分片后广播发送的,也可以为第一节点在执行步骤104之前获取的。
例如,在图1所示网络结构中,以第一节点为N4为例,N4的邻居节点集合包括N1、N2、N3、N5和N6。本发明实施例中,第一状态指示、第二状态指示和第一待获取分片指示均以二进制数的分片状态掩码为例。假设数据包一共包括16个分片,分别为分片1~分片16,分片状态掩码中由最低位至最高位依次对应分片1至分片16,第一节点接收到了分片3、分片4、分片5、分片10、分片13、分片14、分片15和分片16,则第一节点确定分片的第一状态指示为1111 0010 0001 1100。
N4根据与各邻居节点之间的链路度量值确定目标节点集合。假设,N4与N1之间链路度量值为505、N4与N2之间链路度量值为300、N4与N3之间链路度量值为745、N4与N5之间链路度量值为455、N4与N6之间链路度量值为700。预设阈值为512,则可以确定出目标节点集合包括N1、N2和N5。假设,N1的第二状态指示为1001 0101 0010 0111,N1的第二状态指示为0100 1100 1010 0001,N5的第二状态指示为0010 1111 1111 1001。
然后N4可以根据分别与N1、N2和N5之间的链路度量值,首先确定出N2为第一目标节点,通过第一状态指示和N2的第二状态指示来确定出对应于N2的待获取分片指示,即第一待获取分片指示。本发明实施例中可以取第一状态指示和N2的第二状态指示的交集来确定出对应于N2的待获取分片指示,即为0100 0000 0000 0000。
由于N2并不能为N4提供N4未接收到的全部分片,所以N4还需要再确定出可以获取分片的节点。同时,N4可以根据N2的待获取分片指示来更新第一状态指示。本发明实施例中可以将第一状态指示与N2的待获取分片指示之间的异或值确定为更新后的第一状态指示,更新后的第一信息为1011 0010 0001 1100。由于已经确定出需要从N2获取的分片,所以可以将N2从目标节点集合中删除。将N2从目标节点集合中删除后,剩余N5和N1,此时可以根据与N4之间的链路度量值确定N5为第二目标节点,并根据更新后的第一状态指示和N5的第二状态指示可以确定出N5的待获取分片指示,即为0010 0010 0001 1000。以此类推,N4可以确定出N2的待获取分片指示为0100 0000 0000 0000、N5的待获取分片指示为001000100001 1000和N1的待获取分片指示为1001 0000 0000 0100。具体结果可以如表1所示。
表1
通过上述过程,N4可以确定出目标节点集合的各节点所对应的待获取分片指示。
105,第一节点向第一目标节点发送第一待获取分片指示。
其中,第一节点确定出第一目标节点的第一待获取分片指示后,可以向第一目标节点发送第一待获取分片指示,以通知第一目标节点需要向第一节点提供的分片。
106,第一节点接收第一目标节点发送的分片。
其中,第一目标节点发送的分片包括所述第一待获取分片指示所指示的分片。第一节点执行步骤105,第一目标节点可以在接收第一节点发送的第一待获取分片指示后,可以第一待获取分片指示所指示的分片,则第一节点可以接收第一目标节点发送的分片,从而可以获得步骤101中未接收到的分片。
在步骤104之后,如果第一节点还确定其他目标节点,以及其他目标节点的待获取分片指示,则第一节点还需要向确定的其他目标节点发送对应的待获取分片指示;并第一节点接收其他目标节点返回的分片。
具体的,第一节点还确定了第二目标节点,以及第二目标节点的第二待获取分片指示,则第一节点还需要向第二目标节点发送第二待获取分片指示;并第一节点接收第二目标节点发送的分片,第二目标节点发送的分片包括第二待获取分片指示所指示的分片。
需要说明的是,本发明实施例中在步骤103之后如果仍然未能获得数据包的所有分片,则可以再次执行步骤102至步骤106,以尝试获得所有的分片。
本发明实施例中,第一节点在接收BR广播发送的分片后,可以确定出指示第一节点未接收到分片的第一状态指示。然后第一节点可以根据各邻居节点与第一节点之间链路质量从邻居节点集合中确定出目标节点集合,并根据第一状态指示和目标节点集合中与第一节点之间链路质量最好的第一目标节点的第二状态指示确定出第一目标节点的第一待获取分片指示;进而从第一目标节点中获取到第一待获取分片指示所指示的分片。如此本发明实施例中,第一节点可以从网络中邻居节点中获取未接收到的分片,不同的节点可以同时从各自的邻居节点中获取分片,从而不需要BR通过串行的方式依次向各节点发送,进而可以提高信道的利用率,以及BR与节点之间数据传输的效率。在BR对尾端节点进行升级时,各尾端节点可以从网络中邻居节点中获取未接收到的升级数据包的分片,可以提高信道的利用率,提高尾端节点升级的效率。
在本发明实施例的一种实施方式中,在执行步骤103之前,还可以包括:第一节点广播发送第一消息,第一消息表示第一节点未接收到数据包包括的所有分片;第一节点接收邻居节点集合中各节点发送的第二状态指示,第二状态指示用于指示第二状态指示对应节点所接收到的分片。
第一消息表示第一节点未接收到数据包包括的所有分片,即表示从接收到第一消息的节点中获取分片的列表。第一节点在确定其未接收到所有分片时,可以广播发送第一消息,来通知第一节点的邻居节点其未接收到数据包包括的所有分片,需要从邻居节点中获取未接收到的分片。第一节点的邻居节点接收到第一消息后,可以向第一节点返回各自的第二状态指示,以便于第一节点确定从哪个节点中获取哪些分片。
具体的,第一消息可以包括第一节点的路由开销值,第一节点的路由开销值表示第一节点至BR的路由开销值。
Rank值表示了节点至BR的路由开销值,Rank值越大,节点至BR之间的路径越长。由于节点距离BR越近,接收更多分片的概率越大,所以Rank值小的节点接收到分片的数量很可能大于Rank值大的节点,即Rank值大的节点很可能无法为Rank值小的节点提供分片,所以第一节点可以在第一消息中携带其Rank。对于第一节点的邻居节点,在接收到第一消息后,可以将第一消息中的Rank值与其自身的Rank值进行比较。如果第一消息中的Rank值大于其自身的Rank值,则可以向第一节点返回第二状态指示;如果第一消息中的Rank值小于其自身的Rank值,则可以不向第一节点返回第二状态指示,从而减少网络中传输的数据。
本发明实施例中,由于第一节点的邻居节点中,Rank值大于第一节点的Rank值的节点不会向第一节点返回第二状态指示,则第一节点也不会从其中获取分片,所以此时第一节点的邻居节点集合可以为向第一节点发送对应第二状态指示的邻居节点的集合。
在本发明实施例的又一种实施方式中,在执行步骤101之后,还可以包括:第一节点接收第二节点发送的第二消息,第二消息表示第二节点未接收到数据包包括的所有分片,第二节点为第一节点的一个邻居节点;第一节点向第二节点发送第一节点第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
其中,在第一节点接收BR广播发送的分片后,第一节点作为其他节点的邻居节点,还可以接收其他邻居节点发送的、用于表示未接收到数据包包括的所有分片的消息,即接收第二节点发送的第二消息。第二节点为第一节点的一个邻居节点,第一节点接收第二节点发送的第二消息后,可以向第二节点返回第一节点的第三状态指示,以便于第二节点根据第三状态指示可以确定需要从第一节点获取的分片。第三状态指示用于指示第一节点所接收到分片,其也可以为分片状态掩码、编码列表、位图等等,具体实现方式与第一状态指示相同,再次不在赘述。当第一状态指示和第三状态指示均为分片状态掩码时,第一状态指示和第三状态指示相同。
在第一节点向第二节点发送第一节点的第三状态指示之后,第一节点还可以接收第二节点发送的第三待获取分片指示,第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;然后第一节点向第二节点发送第三待获取分片指示所指示的分片。
在第一节点向第二节点发送第三状态指示之后,如果第二节点需要从第一节点获取分片,其会向第一节点发送第三待获取分片指示,第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片。第一节点接收第三待获取分片指示之后,将第三待获取分片指示所指示的分片返回给第二节点。
本发明实施例中,第二节点发送的第二消息中可以包括第二节点的路由开销值,第二节点的路由开销值表示第二节点至BR的路由开销值。则第一节点向第二节点发送第三状态指示,可以具体执行为:当第二节点的路由开销值大于第一节点的路由开销值时,第一节点向第二节点发送第三状态指示。
第一节点接收第二消息后,可以根据第二消息中包括的第二节点的Rank值来判断是否需要向第二节点返回第三状态指示。当第二节点路由开销值大于第一节点路由开销值时,说明第二节点与BR的距离大于第一节点与BR之间的距离,即第一节点很可能接收的分片多余第二节点接收的分片,所以第一节点向第二节点发送第三状态指示。
第一节点向第二节点发送第三待获取分片指示所指示的分片的步骤,还可以执行为:当预设时间段内接收到第三节点发送的第四待获取分片指示时,第一节点广播发送第三待获取分片指示所指示的分片和第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
具体的,第一节点可能还会接收到其他邻居节点发送的待获取分片指示,待获取分片指示表示对应节点需要从第一节点获取的分片,即第一节点的邻居节点中除第二节点外的其他节点也有可能需要从第一节点获取分片,例如,第一节点可以接收第三节点发送的第四待获取分片指示。所以第一节点可以预设时间段,例如3秒。当第一节点在预设时间段内接收到第三节点发送的第四待获取分片指示时,第一节点可以将第三待获取分片指示所指示的分片和第四待获取分片指示所指示的分片同时通过广播发送的方式发送,从而节约通信开销,提高通信效率。
在上述实施例中,网状网络中第一节点与各节点进行数据传输时,传输数据的报文格式可以为预先设置。具体的报文格式可以如图3所示。
在图3中,应用标识(App ID)字段用于表示节点升级的功能。例如设置App ID的字段值为0x02时表示报文用于节点对0x02所对应应用的升级,App ID的字段值为0x03时表示报文用于节点对0x03所对应应用的升级。在数据包为App ID为0x02的应用升级时,报文中App ID字段值为0x02。
版本号(Version)字段用于表示当前传输分片的版本号,以便接收分片的节点能够确定出各不同版本的分片。
命令标识(Command ID)字段用于标识App ID对应功能的具体动作。例如,可以设置:0x01表示传输分片、0x02表示通知对端节点本端节点已收到的分片的分片状态掩码、0x03表示本端节点需要对端节点提供分片的分片状态掩码、0x04表示公告全网开始升级、0x05表示公告本端节点的Rank值(Rank表示本端节点到BR的路由开销值)、0x06表示公告全网广播阶段结束、0x07表示网络中局部节点广播重传开始、0x08表示网络中局部节点广播重传结束。本发明实施例中,第一节点广播第一消息时,第一消息用于表示从接收到第一消息的节点中获取分片的分片状态掩码,所以可以设置Command ID字段的字段值为0x03。
序列号(Sequence Number)字段用于表示广播报文的序号,各节点接收广播报文后,可以广播报文的序号判定是否接收的重复的报文,如果接收的重复的报文,则将重复的报文丢弃。
选项(Option)字段用于携带分片或携带分片的列表等等,可以根据需求来设置Option字段的字段值。
具体的,当Command ID为0x01表示传输分片时,Option字段用于携带分片,此时Option字段可以采用类型-长度-值(type-length-value,TLV)格式来携带分片,每个分片均包括数据标识(Data ID)字段、数据长度(Data Length)字段和数据净荷(Data Payload)字段。
数据标识字段表示携带的分片是所有分片中的第几分片,该字段和数据净荷字段的内容一一对应。数据长度(Data Length)字段表示携带的分片的长度。数据净荷(DataPayload)字段表示携带的分片的内容。
当Command ID为0x02或0x03时,Option字段用于携带分片的信息时,Option字段可以包括掩码长度(Mask Length)字段和掩码(Mask)字段。掩码长度字段用于表示掩码的位数。掩码字段表示掩码的具体内容。
当Command ID为0x05时,Option字段还可以用于携带路由开销值(Rank)值,格式可以包括数据类型字段和数据内容字段。数据类型字段可以表示Rank值的数据类型。数据内容字段可以表示具体的Rank值。
需要说明的是,本发明实施例中,各节点之间传输数据的格式,以及BR与节点之间传输数据的格式均可以为表2所示报文的格式,其中各字段的值可以根据预先设置的规则确定。
图4是根据本发明一实施例提供的数据传输的装置200的示意性框图。装置200可以位于第一节点,如图4所示,该装置200包括:
接收单元201,用于接收边界路由器BR广播发送的数据包,所述数据包包括多个分片,所述BR和多个节点以网状网络建立通信连接,所述多个节点包括所述第一节点;
确定单元202,用于确定第一状态指示,所述第一状态指示用于指示所述第一节点未接收到的分片;
所述确定单元202还用于从所述第一节点的邻居节点集合中确定目标节点集合,所述目标节点集合中各节点与所述第一节点之间的链路质量高于所述邻居节点集合中除所述目标节点集合之外的其他节点与所述第一节点之间的链路质量;
所述确定单元202还用于根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定所述第一目标节点的第一待获取分片指示,第一目标节点为所述目标节点集合中与所述第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示所述第一目标节点所接收到的分片,所述第一待获取分片指示用于指示所述第一节点需要从所述第一目标节点获取的分片;
发送单元203,用于向所述第一目标节点发送所述第一待获取分片指示;
所述接收单元201还用于接收所述第一目标节点发送的分片,所述第一目标节点发送的分片包括所述第一待获取分片指示所指示的分片。
本发明实施例中,第一节点在接收BR广播发送的分片后,可以确定出指示第一节点未接收到分片的第一状态指示。然后第一节点可以根据各邻居节点与第一节点之间链路质量从邻居节点集合中确定出目标节点集合,并根据第一状态指示和目标节点集合中与第一节点之间链路质量最好的第一目标节点的第二状态指示确定出第一目标节点的第一待获取分片指示;进而从第一目标节点中获取到第一待获取分片指示所指示的分片。如此本发明实施例中,第一节点可以从网络中邻居节点中获取未接收到的分片,不同的节点可以同时从各自的邻居节点中获取分片,从而不需要BR通过串行的方式依次向各节点发送,进而可以提高信道的利用率,以及BR与节点之间数据传输的效率。在BR对尾端节点进行升级时,各尾端节点可以从网络中邻居节点中获取未接收到的升级数据包的分片,可以提高信道的利用率,提高尾端节点升级的效率。
图5是根据本发明一实施例提供的另一种数据传输的装置200的示意性框图。
可以理解的是,如图5所示,所述装置200还可以包括:
判断单元204,用于判断所述第一待获取分片指示所指示的分片是否为所述第一节点未收到的所有分片;
更新单元205,用于当所述第一待获取分片指示所指示的分片不是所述第一节点未收到的所有分片时,根据所述第一待获取分片指示更新所述第一状态指示,更新后的第一状态指示用于指示所述第一节点除所述第一待获取分片指示所指示的分片之外未接收到的分片;
所述确定单元202还用于从所述目标节点集合中除所述第一目标节点之外的其他节点中确定第二目标节点,所述第二目标节点为所述目标节点集合中除所述第一目标节点之外的其他节点中与所述第一节点之间链路质量最好的节点;
所述确定单元202还用于根据更新后的第一状态指示和所述第二目标节点的第二状态指示确定所述第二目标节点的第二待获取分片指示,所述第二目标节点的第二状态指示用于指示所述第二目标节点所接收到的分片,所述第二待获取分片指示用于指示所述第一节点需要从所述第二目标节点中获取的分片;
所述发送单元203还用于向所述第二目标节点发送所述第二待获取分片指示;
所述接收单元201还用于接收所述第二目标节点发送的分片,所述第二目标节点发送的分片包括所述第二待获取分片指示所指示的分片。
可以理解的是,所述发送单元203还用于广播发送第一消息,所述第一消息用于指示所述第一节点未接收到所述数据包包括的所有分片;
所述接收单元201还用于接收所述邻居节点集合中各节点的第二状态指示。
可以理解的是,所述接收单元201还用于接收第二节点发送的第二消息,所述第二消息表示所述第二节点未接收到所述数据包所包括的所有分片,所述第二节点为所述第一节点的一个邻居节点;
所述发送单元203还用于向所述第二节点发送第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
可以理解的是,所述接收单元201还用于接收所述第二节点发送的第三待获取分片指示,所述第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;
所述发送单元203还用于向所述第二节点发送所述第三待获取分片指示所指示的分片。
可以理解的是,所述第二消息包括所述第二节点的路由开销值,所述第二节点的路由开销值表示所述第二节点至所述BR的路由开销值;
所述发送单元203在向所述第二节点发送第三状态指示时,具体用于向所述第二节点发送第三状态指示。
可以理解的是,所述发送单元203在向所述第二节点发送所述第三待获取分片指示所指示的分片时,具体用于当预设时间段内接收到第三节点发送的第四待获取分片指示时,广播发送所述第三待获取分片指示所指示的分片和所述第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
根据本发明实施例的数据传输的装置200,可对应于根据本发明实施例的数据传输的方法中的执行主体,并且数据传输的装置200中的各个模块的上述和其它操作和/或功能分别为了实现图2所示实施例中第一节点所执行的各个方法的相应流程,为了简洁,在此不再赘述。
图6是本发明实施例提供的数据传输的设备300的示意性结构图。如图6所示,设备300包括处理器301、存储器302和通信接口303。
处理器301可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器301还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器302可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器302还可以包括上述种类的存储器的组合。
通信接口303用于与外部设备通信,所述通信接口303为无线接口,例如,可以为天线,该天线可以包括阵列天线,多频段天线,微带天线,定向天线或其他任意类型天线。
设备300还可以包括总线304,总线304用于连接处理器301、存储器302和通信接口303,使处理器301、存储器302和通信接口303通过总线304进行相互通信。所述总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述设备300,用于实现本发明实施例图2所示的数据传输的方法中第一节点所执行的相应流程,为了简洁,在此不再赘述。
所述存储器302用于存储分片。所述存储器302还用于存储本发明实施例图2所示方法中涉及的各个表格。
可选地,存储器302还可以用于存储程序指令,处理器301调用该存储器302中存储的程序指令,可以执行图2所示方法中的一个或多个步骤,或其中可选的实施方式。
本发明实施例还提供了一种数据传输的系统,包括BR和多个节点。任意一个节点包括如上述图4或图5所示的数据传输的装置。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
Claims (14)
1.一种数据传输的方法,其特征在于,包括:
第一节点接收边界路由器BR广播发送的数据包,所述数据包包括多个分片,所述BR和多个节点以网状网络建立通信连接,所述多个节点包括所述第一节点;
所述第一节点确定第一状态指示,所述第一状态指示用于指示所述第一节点未接收到的分片;
所述第一节点从所述第一节点的邻居节点集合中确定目标节点集合,所述目标节点集合中各节点与所述第一节点之间的链路质量高于所述邻居节点集合中除所述目标节点集合之外的其他节点与所述第一节点之间的链路质量;
所述第一节点根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定第一待获取分片指示,第一目标节点为所述目标节点集合中与所述第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示所述第一目标节点所接收到的分片,所述第一待获取分片指示用于指示所述第一节点需要从所述第一目标节点获取的分片;
所述第一节点向所述第一目标节点发送所述第一待获取分片指示;
所述第一节点接收所述第一目标节点发送的分片,所述第一目标节点发送的分片包括所述第一待获取分片指示所指示的分片。
2.根据权利要求1所述的方法,其特征在于,所述第一节点根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定第一待获取分片指示之后,所述方法还包括:
所述第一节点判断所述第一待获取分片指示所指示的分片是否为所述第一节点未收到的所有分片;
当所述第一待获取分片指示所指示的分片不是所述第一节点未收到的所有分片时,所述第一节点根据所述第一待获取分片指示更新所述第一状态指示,更新后的第一状态指示用于指示所述第一节点除所述第一待获取分片指示所指示的分片之外未接收到的分片;
所述第一节点从所述目标节点集合中除所述第一目标节点之外的其他节点中确定第二目标节点,所述第二目标节点为所述目标节点集合中除所述第一目标节点之外的其他节点中与所述第一节点之间链路质量最好的节点;
所述第一节点根据更新后的第一状态指示和所述第二目标节点的第二状态指示确定第二待获取分片指示,所述第二目标节点的第二状态指示用于指示所述第二目标节点所接收到的分片,所述第二待获取分片指示用于指示所述第一节点需要从所述第二目标节点中获取的分片;
所述第一节点向所述第二目标节点发送所述第二待获取分片指示;
所述第一节点接收所述第二目标节点发送的分片,所述第二目标节点发送的分片包括所述第二待获取分片指示所指示的分片。
3.根据权利要求1或2所述的方法,其特征在于,在所述第一节点根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定所述第一目标节点的第一待获取分片指示之前,还包括:
所述第一节点广播发送第一消息,所述第一消息用于指示所述第一节点未接收到所述数据包包括的所有分片;
所述第一节点接收所述邻居节点集合中各节点的第二状态指示。
4.根据权利要求1所述的方法,其特征在于,在所述第一节点接收BR广播发送的数据包之后,还包括:
所述第一节点接收第二节点发送的第二消息,所述第二消息表示所述第二节点未接收到所述数据包所包括的所有分片,所述第二节点为所述第一节点的一个邻居节点;
所述第一节点向所述第二节点发送第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
5.根据权利要求4所述的方法,其特征在于,在所述第一节点向所述第二节点发送第三状态指示之后,还包括:
所述第一节点接收所述第二节点发送的第三待获取分片指示,所述第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;
所述第一节点向所述第二节点发送所述第三待获取分片指示所指示的分片。
6.根据权利要求4或5所述的方法,其特征在于,所述第二消息包括所述第二节点的路由开销值,所述第二节点的路由开销值表示所述第二节点至所述BR的路由开销值;
所述第一节点向所述第二节点发送第三状态指示,包括:
当所述第二节点的路由开销值大于所述第一节点的路由开销值时,所述第一节点向所述第二节点发送第三状态指示,所述第一节点的路由开销值表示所述第一节点至所述BR的路由开销值。
7.根据权利要求5所述的方法,其特征在于,所述第一节点向所述第二节点发送所述第三待获取分片指示所指示的分片,包括:
当预设时间段内接收到第三节点发送的第四待获取分片指示时,所述第一节点广播发送所述第三待获取分片指示所指示的分片和所述第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
8.一种数据传输的装置,其特征在于,所述装置位于第一节点,所述装置包括:
接收单元,用于接收边界路由器BR广播发送的数据包,所述数据包包括多个分片,所述BR和多个节点以网状网络建立通信连接,所述多个节点包括所述第一节点;
确定单元,用于确定第一状态指示,所述第一状态指示用于指示所述第一节点未接收到的分片;
所述确定单元还用于从所述第一节点的邻居节点集合中确定目标节点集合,所述目标节点集合中各节点与所述第一节点之间的链路质量高于所述邻居节点集合中除所述目标节点集合之外的其他节点与所述第一节点之间的链路质量;
所述确定单元还用于根据所述第一状态指示和所述目标节点集合中第一目标节点的第二状态指示确定第一待获取分片指示,第一目标节点为所述目标节点集合中与所述第一节点之间链路质量最好的节点,第一目标节点的第二状态指示用于指示所述第一目标节点所接收到的分片,所述第一待获取分片指示用于指示所述第一节点需要从所述第一目标节点获取的分片;
发送单元,用于向所述第一目标节点发送所述第一待获取分片指示;
所述接收单元还用于接收所述第一目标节点发送的分片,所述第一目标节点发送的分片包括所述第一待获取分片指示所指示的分片。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
判断单元,用于判断所述第一待获取分片指示所指示的分片是否为所述第一节点未收到的所有分片;
更新单元,用于当所述第一待获取分片指示所指示的分片不是所述第一节点未收到的所有分片时,根据所述第一待获取分片指示更新所述第一状态指示,更新后的第一状态指示用于指示所述第一节点除所述第一待获取分片指示所指示的分片之外未接收到的分片;
所述确定单元还用于从所述目标节点集合中除所述第一目标节点之外的其他节点中确定第二目标节点,所述第二目标节点为所述目标节点集合中除所述第一目标节点之外的其他节点中与所述第一节点之间链路质量最好的节点;
所述确定单元还用于根据更新后的第一状态指示和所述第二目标节点的第二状态指示确定第二待获取分片指示,所述第二目标节点的第二状态指示用于指示所述第二目标节点所接收到的分片,所述第二待获取分片指示用于指示所述第一节点需要从所述第二目标节点中获取的分片;
所述发送单元还用于向所述第二目标节点发送所述第二待获取分片指示;
所述接收单元还用于接收所述第二目标节点发送的分片,所述第二目标节点发送的分片包括所述第二待获取分片指示所指示的分片。
10.根据权利要求9或8所述的装置,其特征在于,所述发送单元还用于广播发送第一消息,所述第一消息用于指示所述第一节点未接收到所述数据包包括的所有分片;
所述接收单元还用于接收所述邻居节点集合中各节点的第二状态指示。
11.根据权利要求8所述的装置,其特征在于,所述接收单元还用于接收第二节点发送的第二消息,所述第二消息表示所述第二节点未接收到所述数据包所包括的所有分片,所述第二节点为所述第一节点的一个邻居节点;
所述发送单元还用于向所述第二节点发送第三状态指示,所述第三状态指示用于指示所述第一节点所接收到的分片。
12.根据权利要求11所述的装置,其特征在于,所述接收单元还用于接收所述第二节点发送的第三待获取分片指示,所述第三待获取分片指示用于指示所述第二节点需要从所述第一节点获取的分片;
所述发送单元还用于向所述第二节点发送所述第三待获取分片指示所指示的分片。
13.根据权利要求11或12所述的装置,其特征在于,所述第二消息包括所述第二节点的路由开销值,所述第二节点的路由开销值表示所述第二节点至所述BR的路由开销值;
所述发送单元在向所述第二节点发送第三状态指示时,具体用于向所述第二节点发送第三状态指示。
14.根据权利要求12所述的装置,其特征在于,所述发送单元在向所述第二节点发送所述第三待获取分片指示所指示的分片时,具体用于当预设时间段内接收到第三节点发送的第四待获取分片指示时,广播发送所述第三待获取分片指示所指示的分片和所述第四待获取分片指示所指示的分片,所述第四待获取分片指示用于指示所述第三节点需要从所述第一节点获取的分片,所述第三节点为所述第一节点的一个邻居节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711153244.3A CN109803244B (zh) | 2017-11-17 | 2017-11-17 | 数据传输的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711153244.3A CN109803244B (zh) | 2017-11-17 | 2017-11-17 | 数据传输的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109803244A CN109803244A (zh) | 2019-05-24 |
CN109803244B true CN109803244B (zh) | 2020-10-23 |
Family
ID=66555038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711153244.3A Active CN109803244B (zh) | 2017-11-17 | 2017-11-17 | 数据传输的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109803244B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021092760A1 (zh) * | 2019-11-12 | 2021-05-20 | 深圳市汇顶科技股份有限公司 | 数据传输的方法和ble设备 |
CN111629065B (zh) * | 2020-06-05 | 2021-10-29 | 宁波方太厨具有限公司 | 组网系统中设备ota升级的控制方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101132292A (zh) * | 2006-08-22 | 2008-02-27 | 华为技术有限公司 | 一种传输电子节目指南的方法及系统 |
US8270319B2 (en) * | 2006-12-14 | 2012-09-18 | Rockstart Bidco, LP | Method and apparatus for exchanging routing information and establishing connectivity across multiple network areas |
US9231851B2 (en) * | 2011-01-31 | 2016-01-05 | Futurewei Technologies, Inc. | System and method for computing point-to-point label switched path crossing multiple domains |
CN102355342A (zh) * | 2011-10-19 | 2012-02-15 | 山东中创软件工程股份有限公司 | 一种消息发送和接收的方法及装置 |
CN107889090B (zh) * | 2014-06-24 | 2019-09-10 | 谷歌有限责任公司 | 网状网络调试 |
US9385953B1 (en) * | 2015-02-03 | 2016-07-05 | Google Inc. | Mesh network addressing |
CN106453022A (zh) * | 2016-09-14 | 2017-02-22 | 上海斐讯数据通信技术有限公司 | 一种网络设备和数据包发送方法 |
CN106713047A (zh) * | 2017-01-12 | 2017-05-24 | 泰凌微电子(上海)有限公司 | 一种网状网络中的节点升级方法与系统 |
-
2017
- 2017-11-17 CN CN201711153244.3A patent/CN109803244B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109803244A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109981155B (zh) | 一种波束训练方法及相关设备 | |
US8626212B2 (en) | Group messaging at mobile terminal in autonomous network | |
US9231738B2 (en) | Communication method for relay node and next node of the relay node for network coding | |
WO2017133551A1 (zh) | 系统信息更新方法及装置 | |
CN109874155B (zh) | 一种小区切换方法及基站 | |
US10594598B2 (en) | Path setup in a mesh network | |
CN111357344B (zh) | 多载频选择方法及相关设备 | |
CN111050361A (zh) | 一种报文传送方法、装置及系统 | |
CN109803244B (zh) | 数据传输的方法和装置 | |
US20220263750A1 (en) | Executing multipath communication | |
CN106550376B (zh) | 一种终端唤醒方法以及装置 | |
CN110324161B (zh) | 一种传输协议的测试方法及设备 | |
CN111224895B (zh) | 一种hsr网络中时间敏感报文传输方法、装置及设备 | |
CN115669189A (zh) | 用于组播和广播服务的隧道重用 | |
WO2019201127A1 (zh) | 数据传输方法及装置 | |
WO2016154918A1 (zh) | 一种数据处理方法、装置及设备 | |
CN110972231B (zh) | 配置系统信息的方法、装置、存储介质及网络设备和终端 | |
TWI622308B (zh) | 服務識別方法及使用此方法的網路實體與使用者裝置 | |
CN108353071B (zh) | 小区多播业务处理方法以及设备 | |
KR101740456B1 (ko) | IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법 | |
CN111542029A (zh) | 蓝牙Mesh的节点绑定方法、TTL值优化方法及其系统、计算机可读存储介质 | |
EP3780727A1 (en) | Switching method and access network device | |
CN111865884A (zh) | 一种报文处理方法、装置及设备 | |
KR20200080785A (ko) | 사용자 단말 및 기지국의 동작 방법 및 그 사용자 단말 | |
WO2017028048A1 (zh) | 一种设备对设备d2d的数据传输方法、装置及系统 |
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 |