CN111654445A - 一种数据包传输方法、信息处理方法、节点设备和介质 - Google Patents
一种数据包传输方法、信息处理方法、节点设备和介质 Download PDFInfo
- Publication number
- CN111654445A CN111654445A CN202010662432.4A CN202010662432A CN111654445A CN 111654445 A CN111654445 A CN 111654445A CN 202010662432 A CN202010662432 A CN 202010662432A CN 111654445 A CN111654445 A CN 111654445A
- Authority
- CN
- China
- Prior art keywords
- node
- data packet
- neighbor
- destination
- information
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/20—Communication route or path selection, e.g. power-based or shortest path routing based on geographic position or location
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种数据包传输方法、信息处理方法、节点设备和介质,该数据包传输方法包括:接收第二节点发送的IPv6数据包,其中,数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址;通过遍历邻居表,获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址,其中,其它邻居IPv6地址中包含其它邻居节点的位置信息,邻居表由第一节点通过定期执行邻居发现得到;基于其它邻居节点的位置信息和目的节点的位置信息,确定出其它邻居节点中距离目的节点最近的节点;将数据包传输给距离目的节点最近的节点。如此,能够减少路由发现的成本、降低数据包发送延迟。
Description
技术领域
本申请实施例涉及但不限于无线通信领域中的路由技术,尤其涉及一种数据包传输方法、信息处理方法、节点设备和介质。
背景技术
Ad-Hoc网络,又可以称为多跳网络(Multi-hop Network)、无基础设施网络(Infrastructureless Network)或自组织网络(Self-organizing Network)等,是一种多跳的、无中心的、自组织的无线网络。整个网络没有固定的基础设施,每个节点都是移动的,并且都能以任意方式动态地保持与其它节点的联系。在这种网络中,由于终端无线覆盖取值范围的有限性,两个无法直接进行通信的用户终端可以借助其它节点进行分组转发。每一个节点同时是一个路由器,它们能完成邻居发现以及维持到其它节点路由的功能。
在Ad-Hoc网络中,如何进行节点间的路由是一个重要的问题。为此有大量的路由协议产生,根据路由发现机制的不同,基本可以分为表驱动路由协议(又可以称为先验式路由协议)、按需路由协议(又可以称为反应式路由协议)以及混合式路由协议三种类型。但是,目前的路由协议在传输数据包时往往会存在路由发现的成本较高、数据包发送延迟较高的问题。
发明内容
有鉴于此,本申请实施例提供一种数据包传输方法、信息处理方法、节点设备和介质,能够减少路由发现的成本、降低数据包发送延迟。
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例主要提供如下技术方案:
第一方面,本申请实施例提供了一种数据包传输方法,应用于第一节点,所述方法包括:接收第二节点发送的IPv6(Internet Protocol Version 6,互联网协议第6版)数据包,其中,所述数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址;通过遍历邻居表,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址,其中,其它邻居IPv6地址中包含所述其它邻居节点的位置信息,所述邻居表由所述第一节点通过定期执行邻居发现得到;基于所述其它邻居节点的位置信息和所述目的节点的位置信息,确定出所述其它邻居节点中距离所述目的节点最近的节点;将所述数据包传输给所述距离所述目的节点最近的节点。
第二方面,本申请实施例提供了一种信息处理方法,应用于自组织网络中的节点,所述方法包括:获取本节点的位置信息以及本节点的初始互联网协议第6版IPv6地址;对本节点的位置信息进行编码,得到位置编码信息;将所述位置编码信息嵌入至所述初始IPv6地址中,生成并存储包含有本节点的位置信息的IPv6地址。
第三方面,本申请实施例提供了一种节点设备,包括:至少一个处理器;以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述实施例中的数据包传输方法的步骤,或者,以执行上述实施例中的信息处理方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括:存储的程序,其中,在所述程序运行时控制所述存储介质所在节点设备执行上述实施例中的数据包传输方法的步骤,或者,执行上述实施例中的信息处理方法的步骤。
本申请实施例提供的数据包传输方法、信息处理方法、节点设备和介质,第一节点接收第二节点发送的IPv6数据包,其中,数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址;然后,第一节点可以通过遍历邻居表,获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址,其中,其它邻居IPv6地址中包含其它邻居节点的位置信息,邻居表由第一节点通过定期执行邻居发现得到;接下来,第一节点可以基于其它邻居节点的位置信息和目的节点的位置信息,确定出其它邻居节点中距离目的节点最近的节点,将数据包传输给距离目的节点最近的节点。如此,基于包含有节点的位置信息的IPv6地址选择出本节点的邻居节点中距离目的节点最近的节点来传输数据包,缩短了节点之间的无线链路,提高了路由发现速度,从而,能够减少路由发现的成本,降低无线链路距离较长而导致发送延迟增加的问题,还能够减少数据包到达目的节点的跳数。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例中的数据包传输方法的流程示意图;
图2为本申请实施例中的数据包包头的示意图;
图3为本申请实施例中的信息处理方法的流程示意图;
图4A为本申请实施例中的唯一的本地IPv6单播地址的示意图;
图4B为本申请实施例中的节点的接口示意图;
图5为本申请实施例中的自组织网络的示意图;
图6为本申请实施例中的节点设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例提供一种数据包传输方法,该方法可以应用于自组织网络。在实际应用中,针对该自组织网路中的每个节点,该节点的IPv6地址包含有该节点所在位置的位置信息。
在一种示例性实施例中,该自组织网络可以包括:源节点、第一节点、第二节点、第一节点的邻居节点中除第二节点之外的其它邻居节点、目的节点。
这里,邻居节点,也可以称为一跳邻节点。那么,第一节点的邻居节点可以是指自组织网络中落在以第一节点为中心,第一节点的通信半径所能覆盖的面积内的节点,即该第一节点所能传输的通信范围内一跳能到达的节点。
图1为本申请实施例中的数据包传输方法的流程示意图,如图1所示,该数据包传输方法可以包括:
步骤101:第一节点接收第二节点发送的IPv6数据包;
其中,数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址。
步骤102:第一节点通过遍历邻居表,获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址;
其中,其它邻居IPv6地址中包含其它邻居节点的位置信息;邻居表由第一节点通过定期执行邻居发现得到。
步骤103:第一节点基于其它邻居节点的位置信息和目的节点的位置信息,确定出其它邻居节点中距离目的节点最近的节点。
步骤104:第一节点将数据包传输给距离目的节点最近的节点。
在一种示例性实施例中,第一节点通过定期执行邻居发现得到邻居表的过程可以包括:第一节点获取第一节点的IPv6地址和MAC(Media Access Control,介质访问控制)地址;第一节点基于第一节点的IPv6地址和MAC地址,构建HELLO报文;以预设时间间隔T,周期地广播发送该HELLO报文;第一节点监听并接收第一节点的邻居节点发来的HELLO报文;基于第一节点的邻居节点发来的HELLO报文,获得第一节点的邻居节点的IPv6地址;在邻居表里添加第一节点的邻居节点的IPv6地址,并将该邻居节点的邻居活跃时刻更新为当前系统时间。
此外,作为示例,在距离邻居节点的邻居活跃时刻的预设时间间隔之后,第一节点向该邻居节点单播HELLO报文,如此,可以更新邻居表,以便选择较为活跃的邻居节点作为距离目的节点最近的节点来传输数据包。
在一种示例性实施例中,步骤102可以包括以下步骤1021~步骤1022:
步骤1021:第一节点通过遍历邻居表,确定目的节点所在的子网是否出现在邻居表中;
步骤1022:若目的节点所在的子网出现在邻居表中,第一节点将数据包传输给第一节点的邻居节点中与目的节点所在的子网对应的节点。
作为示例,当目的节点所在子网出现在第一节点的邻居表中时,第一节点可以直接选择第一节点的邻居节点中与目的节点所在的子网对应的节点作为传输数据包的下一跳节点,即直接将数据包传输给第一节点的邻居节点中与目的节点所在的子网对应的节点。如此,可以提高路由发现的速度。
在一种示例性实施例中,在步骤1021之后,该方法还可以包括:步骤1023:若确定目的节点所在的子网未出现在邻居表中,第一节点获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址。
作为示例,当目的节点所在的子网并未出现在第一节点的邻居表中,则第一节点可以使用位置路由算法来进行路由发现,那么,第一节点就可以获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址,以便第一节点后续根据获取到的其它邻居节点的位置信息以及目的节点的位置信息,来确定出距离目的节点最近的节点作为传输数据包的下一跳节点。如此,能够便于缩短节点之间的无线链路,提高路由发现速度,进而便于减少路由发现的成本,避免无线链路距离较长而导致发送延迟增加的问题,减少数据包到达目的节点的跳数。
在一种示例性实施例中,步骤102可以包括以下步骤1024~步骤1025:
步骤1024:通过遍历邻居表,确定目的节点所在的子网的邻居状态是否为邻居可达状态;
步骤1025:若确定目的节点所在的子网的邻居状态为邻居可达状态,将数据包传输给第一节点的邻居节点中与目的节点所在的子网对应的节点。
这里,若目的节点所在的子网的邻居状态为邻居可达(Reachable)状态,表明第一节点的邻居节点中与目的节点所在的子网对应的节点是可达的。那么,选择第一节点的邻居节点中与目的节点所在的子网对应的节点作为传输数据包的下一跳节点,即直接将数据包传输给第一节点的邻居节点中与目的节点所在的子网对应的节点。如此,可以提高路由发现的速度。
在一种示例性实施例中,在步骤1024之后,该方法还可以包括:步骤1026:若确定目的节点所在的子网的邻居状态不为邻居可达状态,第一节点获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址。如此,能够便于缩短节点之间的无线链路,进而便于减少路由发现的成本,避免无线链路距离较长而导致发送延迟增加的问题,减少数据包到达目的节点的跳数。
作为示例,若目的节点所在的子网的邻居状态不为邻居可达状态,表明第一节点的邻居节点中与目的节点所在的子网对应的节点当前可能出现了诸如掉电、接口卡插拔等无法进行通信的情况,此时,该路路径失效,第一节点需要寻找另一条路由路径来传输数据包。那么,第一节点就可以获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址,以便第一节点后续根据获取到的其它邻居节点的位置信息以及目的节点的位置信息,来确定出距离目的节点最近的节点作为传输数据包的下一跳节点。如此,能够便于缩短节点之间的无线链路,提高路由发现速度,进而便于减少路由发现的成本,避免无线链路距离较长而导致发送延迟增加的问题,减少数据包到达目的节点的跳数。
在一种示例性实施例中,步骤102可以包括以下步骤1027~步骤1028:
步骤1027:确定数据包中是否存在用于指示路由类型为位置路由的预设标识信息;
步骤1028:若数据包中存在预设标识信息,通过遍历邻居表,获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址。
作为示例,可以将位置路由算法与如按需路由算法等其它路由算法结合,一般情况下,自组织网络中的节点可以使用上述步骤101~104中描述的位置路由算法,而在源节点接收到某个节点返回的出现用于指示网络不可到达的数据包时,源节点可以使用如按需路由算法等其它路由算法,进行针对目的IPv6地址的路径发现。那么,在源节点发出数据包时,源节点可以给数据包中携带用于指示路由类型为位置路由的预设标识信息,以便给自组织网络中接收到该数据包的其它节点指示是否使用位置路由算法来处理该数据包。那么,当第一节点确定接收到的数据包中存在用于指示路由类型为位置路由的预设标识信息时,第一节点可以执行步骤102~步骤104,以实现基于位置的快速路由。
在实施过程中,根据预设标识信息的设置方式的不同,步骤1027可以存在但不限于以下两种实施方式:
在第一种示例性实施例中,步骤1027可以包括:若数据包中包含第一协议的数据包头,确定第一协议的数据包头中流量类型字段的字段值是否为用于表示位置路由的预设值。
这里,流量类型字段也可以称为流量分类(class of traffic),用于指明数据包应该如何处理。
举例来说,流量类型字段201在数据包头中的位置如图2所示。
作为示例,若数据包的数据包头中流量类型字段的字段值为用于表示位置路由的预设值,则表明数据包中存在预设标识信息;若数据包的数据包头中流量类型字段的字段值不为用于表示位置路由的预设值,则表明数据包中不存在预设标识信息。
在第二种示例性实施例中,步骤1027可以包括:若数据包中包含第一协议的数据包头,确定数据包外是否嵌套有第二协议的数据包头。其中,第二协议与第一协议不相同,第二协议的数据包头用于指示路由类型为位置路由。
作为示例,若数据包外嵌套有第二协议的数据包头,表明数据包中存在预设标识信息;若数据包外并未嵌套有第二协议的数据包头,表明数据包中不存在预设标识信息。
举例来说,第一协议可以为IPv6协议,第二协议可以为用户数据报协议(UDP,UserDatagram Protocol)。
在一种示例性实施例中,步骤104可以包括以下步骤1041~步骤1044:
步骤1041:第一节点获取第一节点的位置信息;
步骤1042:第一节点基于第一节点的位置信息和目的节点的位置信息,获得第一节点到目的节点的距离;
步骤1043:第一节点确定第一节点到目的节点的距离是否大于距离目的节点最近的节点到目的节点的距离;
步骤1044:若第一节点到目的节点的距离大于距离目的节点最近的节点到目的节点的距离,第一节点将数据包传输给距离目的节点最近的节点。
举例来说,距离可以为如欧氏距离(也可称为欧几里得度量)等。
举例来说,第一节点可以通过第一节点中的定位装置直接获取到第一节点所在位置的位置信息,或者,第一节点可以从预先生成的包含有第一节点的为位置信息的第一IPv6地址中,提取出第一节点的位置信息。如此,第一节点就可以获取到第一节点的位置信息。
在一种示例性实施例中,在步骤1043之后,该方法还可以包括:步骤1045:若第一节点到目的节点的距离不大于距离目的节点最近的节点到目的节点的距离,丢弃数据包,并向源节点发送用于指示网络不可到达的数据包。
举例来说,以自组织网络使用TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)为例,用于指示网络不可到达的数据包可以是指ICMP(Internet Control Message Protocol,Internet控制报文协议)网络不可到达错误。
作为示例,当第一节点到目的节点的距离不大于距离目的节点最近的节点到目的节点的距离时,表明第一节点距离目的节点更近,此时,第一节点就可以丢弃该数据包。这样,可以避免第一节点将距离目的节点最近的节点作为传输数据包的下一跳节点,将数据包传输给该距离目的节点最近的节点,接下来,该距离目的节点最近的节点在接收到数据包后又将第一节点作为传输数据包的下一跳节点,将数据包传输给该第一节点。从而,能够避免在第一节点与该距离目的节点最近的节点(第一节点的邻居节点)之间出现路由环路。此外,第一节点可以向源节点发送用于指示网络不可到达的数据包,以告知源节点此次位置路由算法失败,以使源节点重新进行路由发现。
在一种示例性实施例中,在步骤101之后,该方法还可以包括:步骤1046:若第一节点的邻居节点中除第二节点之外没有其它邻居节点,第一节点丢弃数据包,并向源节点发送用于指示网络不可到达的数据包。
作为示例,当第一节点接收到的数据包是由第二节点发送的,且第一节点的邻居节点只有第二节点时,表明第一节点不可到达目的节点,此时,第一节点就可以丢弃该数据包。这样,可以避免第一节点将第二节点作为传输数据包的下一跳节点,从而,能够避免在第一节点与第二节点(第一节点的邻居节点)出现路由环路。此外,第一节点可以向源节点发送用于指示网络不可到达的数据包,以告知源节点此次位置路由算法失败,以使源节点重新进行路由发现。
在一种示例性实施例中,在步骤1045或者步骤1046之后,该方法还可以包括:第一节点将条目(目的节点所在网络,第一节点)加入到不可到达表中。如此,可以实现更新第一节点所维护的不可到达表。
在一种示例性实施例中,当第一节点将(目的节点所在网络,第一节点)加入到不可到达表中时,该方法还可以包括:第一节点针对条目(目的节点所在网络,第一节点)建立超时t1,在这一超时t1到达后,第一节点可以将该条目从不可到达表中删除。
由上述内容可知,本申请实施例提供的数据包传输方法,第一节点接收第二节点发送的IPv6数据包,其中,数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址;然后,第一节点通过遍历邻居表,获取第一节点的邻居节点中除第二节点之外的其它邻居节点的其它邻居IPv6地址,其中,其它邻居IPv6地址中包含其它邻居节点的位置信息,邻居表由第一节点通过定期执行邻居发现得到;接下来,基于其它邻居节点的位置信息和目的节点的位置信息,确定出其它邻居节点中距离目的节点最近的节点,将数据包传输给距离目的节点最近的节点。如此,基于包含有节点的位置信息的IPv6地址选择出本节点的邻居节点中距离目的节点最近的节点来传输数据包,缩短了节点之间的无线链路,提高了路由发现速度,从而,能够减少路由发现的成本,降低无线链路距离较长而导致发送延迟增加的问题,还能够减少数据包到达目的节点的跳数。
此外,由于节点的位置信息是直接部署在IPv6地址中的,更容易实现位置路由算法与TCP/IP网络结合。
基于同一发明构思,本申请实施例提供了一种信息处理方法,该方法可以应用于无线自组织网络中的每个节点。
图3为本申请实施例中的信息处理方法的流程示意图,如图3所示,该信息处理方法可以包括:
步骤301:获取本节点的位置信息以及本节点的初始IPv6地址;
步骤302:对本节点的位置信息进行编码,得到位置编码信息;
步骤303:将位置编码信息嵌入至初始IPv6地址中,生成包含有本节点的位置信息的IPv6地址。
在一种示例性实施例中,初始IPv6地址可以为指定的网段,例如,唯一的本地IPv6单播地址(ULA,Unique Local IPv6 Unicast Address)(也可称为唯一本地地址)。
在一种示例性实施例中,位置信息可以为二维坐标,如(x1,x2),也可以为三维坐标(x1,x2,x3),当然,还可以为其它,如经纬度信息、以某个坐标点为原点表示的相对位置等。这里,本申请实施例不做具体限定。
在一种示例性实施例中,步骤302可以包括:若位置信息为坐标信息,对本节点的坐标信息进行交叉编码,得到本节点对应的位置编码信息。
举例来说,以位置信息为三维坐标(x1,x2,x3)为例,将(x1,x2,x3)坐标转化为二进制;对x1、x2、x3的二进制表示依次取出最左侧比特(也称为最重要比特(MostSignificant Bit,MSB)),然后每三比特一组组成本节点对应的位置编码信息。
在一种示例性实施例中,步骤303可以包括:对位置编码信息进行加密,得到加密后的位置编码信息;将加密后的位置编码信息嵌入至初始IPv6地址中,生成包含有本节点的位置信息的IPv6地址。
这里,加密算法可以是任何安全的加密算法。例如,可以选择RC5算法,它是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数。在此算法中使用了三种运算:异或、加和循环。RC5算法有一个面向字的结构:RC5-w/r/b,这里w是字长,其值可以是16、32或64对于不同的字长明文和密文块的分组长度为2w位,r是加密轮数,b是密钥字节长度。它可以很容易的扩充到各个大小块的加密过程中。这样,自组织网络中的各个节点可以共享相同的密钥,从而实现一个自组织网络中的可信路由。
在实施过程中,根据位置编码信息的嵌入位置的不同,步骤303可以包括但不限于以下两种实现方式:
在一种示例性实施例中,步骤303可以包括:将位置编码信息嵌入至初始IPv6地址的后64位中,生成包含有本节点的位置信息的IPv6地址。如此,可以将位置信息编码到接口标识中,这样,各个节点之间只需要后64比特即可以知道某一个子网的可达性。
举例来说,可以使用用后64比特中的前56比特作为位置信息编码,最后8比特为随机值。那么,步骤302可以包括:对本节点的位置信息进行编码,得到56位的位置编码信息;对应地,步骤303可以包括:将初始IPv6地址的前64位(子网前缀)、56位的位置编码信息和预先设置的8位编码信息进行拼接,获得包含有本节点的位置信息的IPv6地址。
在另一种示例性实施例中,步骤303可以包括:将位置编码信息嵌入至初始IPv6地址的前64位生成包含有本节点的位置信息的IPv6地址。如此,可以将位置信息编码到子网前缀中,从而产生可聚类的IPv6地址。
举例来说,若初始IPv6地址为如图4A所示的唯一的本地IPv6单播地址,对本节点的位置信息进行编码,得到56位的位置编码信息;将唯一的本地IPv6单播地址的前8位、56位的位置编码信息和唯一的本地IPv6单播地址的后64位进行拼接,获得包含有本节点的位置信息的IPv6地址。
这里,唯一的本地IPv6单播地址为fc00::/7,其中,唯一的本地IPv6单播地址中的第8比特为L比特,L的值为1说明是本地指定的。
在实施过程中,根据节点的接口类型的不同,位置编码信息的嵌入位置的不同,步骤303可以包括但不限于以下两种实现方式:
在一种示例性实施例中,步骤303可以包括:若初始IPv6地址用于表示本节点的广域网接口的IPv6地址,则将位置编码信息嵌入至初始IPv6地址的后64位中,生成包含有本节点的位置信息的IPv6地址。
在另一种示例性实施例中,步骤303可以包括:若初始IPv6地址用于表示本节点的接入网接口的IPv6地址,则将位置编码信息嵌入至初始IPv6地址的前64位,生成包含有本节点的位置信息的IPv6地址。
举例来说,对于如图4B所示的具有接入网接口和广域网接口的节点来说,对于接入网接口,可以将该节点的位置信息映射到ULA中,得到该节点的接入网接口的IPv6地址,例如,fc:位置编码信息::1;对于广域网接口来说,可以将该节点的位置信息映射到初始IPv6地址的后64位中,得到该节点的广域网接口的IPv6地址,例如,XXXX:…:位置编码信息。
由上述内容可知,本申请实施例提供的信息处理方法,针对自组织网络中的每个节点,在获取到本节点的位置信息以及本节点的初始IPv6地址之后,可以对本节点的位置信息进行编码,得到位置编码信息,最后,将位置编码信息嵌入至初始IPv6地址中,生成并存储包含有本节点的位置信息的IPv6地址。如此,将该方法应用到基于位置进行数据包转发的场景时,能够为基于包含有节点的位置信息的IPv6地址,来快速选择出本节点的邻居节点中距离目的节点最近的节点来传输数据包提供基础,进而便于实现缩短了节点之间的无线链路、提高路由发现速度、减少路由发现的成本、避免无线链路距离较长而导致发送延迟增加的问题、减少数据包到达目的节点的跳数。
基于前述实施例,本申请实施例提供一种基于位置的路由方法,应用于以下场景中:以该方法应用于如图5所示的自组织网络中为例,该自组织网络包括:节点S、节点U1、节点R、节点L、节点M、节点N、节点D、节点U2。其中,设定:节点S为源节点、节点D为目的节点,并设定:在进行路由之前,自组织网络中的每个节点已经生成了包含有该节点的位置信息的IPv6地址,又设定:节点M从邻居节点L接收到数据包,需要进行路由发现。
那么,该方法可以包括以下步骤:
步骤1:节点M确定该数据包是否存在用于指示路由类型为位置路由的预设标识信息。
举例来说,步骤1可以包括但不限于以下几种实施方式:
方式1,该数据包的IPv6数据包头中的流量类型字段为用于表示位置路由的预设值,表明该数据包存在用于指示路由类型为位置路由的预设标识信息。
方式2,该数据中包含IPv6数据包头,且数据包外嵌套有UDP数据包头,表明该数据包存在用于指示路由类型为位置路由的预设标识信息。
方式3,该数据包使用了用于表示按需路由的特定协议或特定的端口,表明该数据包不存在用于指示路由类型为位置路由的预设标识信息,而是存在用于指示路由类型为按需路由的预设标识信息。
若节点M执行步骤1,确定数据包中存在用于指示路由类型为位置路由的预设标识信息,节点M可以执行步骤2~步骤13,进行基于位置的路由发现过程。
或者,若节点M执行步骤1,确定数据包中不存在用于指示路由类型为位置路由的预设标识信息,节点M可以执行按需路由。
此外,在进行按需路由时,节点M将检查不可到达表,如果节点M发现不可到达项,则不向相应的节点询问路由,当节点M获得最终节点路由时,将相应的路由更新到各个节点的路由表中。
步骤2:节点M确定该数据包是否为ICMP网络不可到达错误。
若该数据包为ICMP网络不可到达错误,则节点M可以执行步骤3。
或者,若该数据包不为ICMP网络不可到达错误,为正常的业务数据包,则节点M可以执行步骤4~步骤13。
步骤3:若该数据包为ICMP网络不可到达错误,节点M更新不可到达表,ICMP网络不可到达错误中包含的目的节点D的目的IPv6地址、目的节点D所在网络、该ICMP数据包来源邻居节点L加入到不可到达表中,并建立超时t1,在这一时间到达后将该条目从不可到达表中删除。
步骤4:如果节点M就是目的节点D,则节点M可以直接接收该数据包,不进行该数据包的转发。
步骤5:如果目的节点D所在的子网节点M直接可达,则节点M可以直接将该数据包发送给目的节点D。
步骤6:如果在节点M所维护的路由表中有目的节点D所在子网的下一跳信息,则节点M可以将数据包转发给相应的下一跳。
步骤7:如果在节点M所维护的不可到达表中有目的节点D所在子网的信息,则节点M可以丢弃这一数据包,并发送ICMP网络不可到达错误给源节点S。
步骤8:遍历节点M的邻居表,如果目的节点D所在子网出现在该邻居表中,则节点M可以将该数据包转给相应的邻居节点(即目的节点D所在子网所对应的节点M的邻居节点)。
步骤9:遍历节点M的邻居表,如果目的节点D所在子网的邻居状态为邻居可达状态,则节点M可以将该数据包转给相应的邻居节点(即目的节点D所在子网所对应的节点M的邻居节点)。
步骤10:节点M从数据包中获取目的节点D的目的IPv6地址;从目的IPv6地址中,提取目的节点D的位置信息;从邻居表中,获取节点M的各个邻居节点的IPv6地址;从各个邻居节点的IPv6地址中,提取各个邻居节点的位置信息;基于目的节点D的位置信息以及各个邻居节点的位置信息,计算各个邻居节点到目的节点D的距离,取出其中距离最小的项。
步骤11:如果距离最小的项所对应的邻居节点为数据包的来源节点L,则节点M可以丢弃这一数据包,并发送ICMP网络不可到达错误给源节点S,同时,更新不可到达表,将(目的节点D所在网络,节点M)加入到不可到达表中,并建立超时t1,在这一时间到达后该条目将从不可到达表中删除。
步骤12:如果距离最小的项大于节点M到目的节点D的距离,则节点M可以丢弃这一数据包,并发送ICMP网络不可到达错误给源节点S,同时更新不可到达表,将(目的节点D所在网络,节点M)加入到不可到达表中,并建立超时t1,在这一时间到达后该条目将从不可到达表中删除。
步骤13:如果距离最小的项所对应的邻居节点不为数据包的来源节点L,且距离最小的项不大于节点M到目的节点D的距离,则节点M可以转发该数据包给距离最小项所对应的邻居节点。
基于同一发明构思,本申请实施例提供一种节点设备。图6为本申请实施例中的节点设备的结构示意图,参见图6所示,该节点设备60包括:至少一个处理器601;以及与处理器601连接的至少一个存储器602、总线603;其中,处理器601、存储器602通过总线603完成相互间的通信;处理器601用于调用存储器602中的程序指令,以执行上述一个或多个实施例中的数据包传输方法的步骤,或者,以执行上述一个或多个实施例中的信息处理方法的步骤。
上述处理器可由中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。存储器可能包括计算机可读介质中的非永久性存储器,随机存储器(Random Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash RAM),存储器包括至少一个存储芯片。
需要说明的是,在本申请实施例中,如果以软件功能模块的形式实现上述一个或多个实施例中的数据包传输方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台节点设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例方法的全部或部分。
相应地,基于同一发明构思,本申请实施例再提供一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在程序运行时控制存储介质所在节点设备执行上述一个或多个实施例中的数据包传输方法的步骤,或者,执行上述一个或多个实施例中的信息处理方法的步骤。
在实际应用中,上述计算机可读存储介质可以如:ROM/RAM、磁碟、光盘等。
这里需要指出的是:以上节点设备或计算机可读存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请节点设备或计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文步骤的特定顺序的程度上,该方法或过程不应限于的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。因此,在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种数据包传输方法,应用于第一节点,所述方法包括:
接收第二节点发送的互联网协议第6版IPv6数据包,其中,所述数据包包括:包含有源节点的位置信息的源IPv6地址和包含有目的节点的位置信息的目的IPv6地址;
通过遍历邻居表,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址,其中,其它邻居IPv6地址中包含所述其它邻居节点的位置信息,所述邻居表由所述第一节点通过定期执行邻居发现得到;
基于所述其它邻居节点的位置信息和所述目的节点的位置信息,确定出所述其它邻居节点中距离所述目的节点最近的节点;
将所述数据包传输给所述距离所述目的节点最近的节点。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据包传输给所述距离所述目的节点最近的节点,包括:
获取所述第一节点的位置信息;
基于所述第一节点的位置信息和目的节点的位置信息,获得所述第一节点到所述目的节点的距离;
确定所述第一节点到所述目的节点的距离是否大于所述距离所述目的节点最近的节点到所述目的节点的距离;
若所述第一节点到所述目的节点的距离大于所述距离所述目的节点最近的节点到所述目的节点的距离,将所述数据包传输给所述距离所述目的节点最近的节点。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一节点到所述目的节点的距离不大于所述距离所述目的节点最近的节点到所述目的节点的距离,丢弃所述数据包,并向所述源节点发送用于指示网络不可到达的数据包;
或者,若所述第一节点的邻居节点中除所述第二节点之外没有其它邻居节点,丢弃所述数据包,并向所述源节点发送用于指示网络不可到达的数据包。
4.根据权利要求1所述的方法,其特征在于,所述通过遍历邻居表,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址,包括:
通过遍历邻居表,确定所述目的节点所在的子网是否出现在所述邻居表中;若确定所述目的节点所在的子网未出现在所述邻居表中,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址;
或者,通过遍历邻居表,确定所述目的节点所在的子网的邻居状态是否为邻居可达状态;若确定所述目的节点所在的子网的邻居状态不为邻居可达状态,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若确定所述目的节点所在的子网出现在所述邻居表中,将所述数据包传输给所述第一节点的邻居节点中与所述目的节点所在的子网对应的节点;
或者,若确定所述目的节点所在的子网的邻居状态为邻居可达状态,将所述数据包传输给所述第一节点的邻居节点中与所述目的节点所在的子网对应的节点。
6.根据权利要求1所述的方法,其特征在于,所述通过遍历邻居表,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址,包括:
确定所述数据包中是否存在用于指示路由类型为位置路由的预设标识信息;
若所述数据包中存在所述预设标识信息,通过遍历邻居表,获取所述第一节点的邻居节点中除所述第二节点之外的其它邻居节点的其它邻居IPv6地址。
7.根据权利要求6所述的方法,其特征在于,所述确定所述数据包中是否存在用于指示路由类型为位置路由的预设标识信息,包括:
若所述数据包中包含第一协议的数据包头,确定所述第一协议的数据包头中流量类型字段的字段值是否为用于表示位置路由的预设值;若所述数据包的数据包头中流量类型字段的字段值为用于表示位置路由的预设值,确定所述数据包中存在所述预设标识信息;若所述数据包的数据包头中流量类型字段的字段值不为用于表示位置路由的预设值,确定所述数据包中不存在所述预设标识信息;
或者,若所述数据包中包含第一协议的数据包头,确定所述数据包外是否嵌套有第二协议的数据包头;若所述数据包外嵌套有第二协议的数据包头,确定所述数据包中存在所述预设标识信息;若所述数据包外并未嵌套有第二协议的数据包头,确定所述数据包中不存在所述预设标识信息;其中,所述第二协议与所述第一协议不相同,所述第二协议的数据包头用于指示路由类型为位置路由。
8.一种信息处理方法,应用于自组织网络中的节点,所述方法包括:
获取本节点的位置信息以及本节点的初始互联网协议第6版IPv6地址;
对本节点的位置信息进行编码,得到位置编码信息;
将所述位置编码信息嵌入至所述初始IPv6地址中,生成并存储包含有本节点的位置信息的IPv6地址。
9.一种节点设备,包括:
至少一个处理器;
以及与所述处理器连接的至少一个存储器、总线;
其中,所述处理器、存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至7任一项所述的数据包传输方法的步骤,或者,以执行如权利要求8所述的信息处理方法的步骤。
10.一种计算机可读存储介质,包括存储的程序,其中,在所述程序运行时控制所述存储介质所在节点设备执行如权利要求1至7任一项所述的数据包传输方法的步骤,或者,执行如权利要求8所述的信息处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662432.4A CN111654445A (zh) | 2020-07-10 | 2020-07-10 | 一种数据包传输方法、信息处理方法、节点设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010662432.4A CN111654445A (zh) | 2020-07-10 | 2020-07-10 | 一种数据包传输方法、信息处理方法、节点设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111654445A true CN111654445A (zh) | 2020-09-11 |
Family
ID=72352570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010662432.4A Pending CN111654445A (zh) | 2020-07-10 | 2020-07-10 | 一种数据包传输方法、信息处理方法、节点设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654445A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101516082A (zh) * | 2009-03-23 | 2009-08-26 | 中国人民解放军国防科学技术大学 | 一种分级移动IPv6避免域间切换的方法 |
CN102158845A (zh) * | 2011-05-23 | 2011-08-17 | 山东大学 | 一种HMIPv6切换性能优化方法 |
US20160315859A1 (en) * | 2015-04-23 | 2016-10-27 | Qualcomm Incorporated | Data link interface internet protocol (ip) address generation |
CN106453090A (zh) * | 2016-10-19 | 2017-02-22 | 常熟理工学院 | 一种以数据为中心的通信方法 |
CN107105389A (zh) * | 2017-04-05 | 2017-08-29 | 南京邮电大学 | 车载网络中基于道路拓扑结构的地理信息路由方法 |
CN109617812A (zh) * | 2019-01-29 | 2019-04-12 | 广州大学 | 一种基于贪心嵌入的rpl路由方法、装置及网络拓扑 |
-
2020
- 2020-07-10 CN CN202010662432.4A patent/CN111654445A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101516082A (zh) * | 2009-03-23 | 2009-08-26 | 中国人民解放军国防科学技术大学 | 一种分级移动IPv6避免域间切换的方法 |
CN102158845A (zh) * | 2011-05-23 | 2011-08-17 | 山东大学 | 一种HMIPv6切换性能优化方法 |
US20160315859A1 (en) * | 2015-04-23 | 2016-10-27 | Qualcomm Incorporated | Data link interface internet protocol (ip) address generation |
CN106453090A (zh) * | 2016-10-19 | 2017-02-22 | 常熟理工学院 | 一种以数据为中心的通信方法 |
CN107105389A (zh) * | 2017-04-05 | 2017-08-29 | 南京邮电大学 | 车载网络中基于道路拓扑结构的地理信息路由方法 |
CN109617812A (zh) * | 2019-01-29 | 2019-04-12 | 广州大学 | 一种基于贪心嵌入的rpl路由方法、装置及网络拓扑 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10499313B2 (en) | Efficient hybrid resource and schedule management in time slotted channel hopping networks | |
US8612752B2 (en) | Communicating a packet from a mesh-enabled access point to a mesh portal in a multi-hop mesh network | |
US9800493B2 (en) | Routing messages in a computer network using deterministic and probalistic source routes | |
CN103339988B (zh) | 网络系统 | |
CN108123870B (zh) | 报文转发方法和装置 | |
EP3389310B1 (en) | Method for establishing routing table, electronic device and network | |
US9300569B2 (en) | Compressing data packet routing information using bloom filters | |
US20120155463A1 (en) | Increased Communication Opportunities with Low-Contact Nodes in a Computer Network | |
US20070153764A1 (en) | Compression of a routing header in a packet by a mobile router in an ad hoc network | |
CN112583705B (zh) | 混合网络的通信方法、设备和系统 | |
US20180262401A1 (en) | Systems and Methods for Selection of Parent Nodes in a Network | |
EP3603199B1 (en) | Selective backward routing in communication networks | |
US20150236752A1 (en) | Method for selection of unique next-time-interval internet protocol address and port | |
CN113726907B (zh) | 一种路由处理方法、网元设备、装置以及可读存储介质 | |
JP2006279168A (ja) | アドホック網を構成する通信装置、ブリッジ装置及び通信システム | |
US10917501B1 (en) | Packet control for a broadcast network | |
CN112187641B (zh) | 一种路由信息发送方法、报文发送方法及相关装置 | |
Ma et al. | Research on Identification and Addressing of the Internet of Things | |
Herberg et al. | Depth-first forwarding (DFF) in unreliable networks | |
CN111654445A (zh) | 一种数据包传输方法、信息处理方法、节点设备和介质 | |
KR20160142437A (ko) | RAPIEnet 네트워크 라우팅 방법 | |
US11218569B1 (en) | IP packet translation for low-overhead out-of-band data embedding | |
Ghosh et al. | Adip: an improved authenticated dynamic ip configuration scheme for mobile ad hoc networks | |
Hickman et al. | A variable length address assignment scheme for 6LoWPAN | |
Jain | Networking Layer Protocols for Internet of Things: 6LoWPAN and RPL |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200911 |
|
RJ01 | Rejection of invention patent application after publication |