小节点群动态转发混合路由方法及相关设备

文档序号:25596476发布日期:2021-06-22 17:15阅读:73来源:国知局
小节点群动态转发混合路由方法及相关设备

本说明书一个或多个实施例涉及水下通信技术领域,尤其涉及一种小节点群动态转发混合路由方法及相关设备。



背景技术:

水声网络具有高时延、信道资源有限等缺点,而且相比于地面无线通信信道,水声信道复杂多变。水下节点的能量有限且采用电池供电,更换供电电池十分困难。由于水声网络的特点使得极大多数现有的地面上的路由协议无发直接应用于水声网络。

目前,水下网络的路由协议的研发获得了越来越多的关注,已经有很多路由协议提出。能量感知路由考虑水下节点能量受限的因素,在路径选择时考虑通信消耗以及节点能量的剩余情况;基于轨迹的路由协议根据数据包转发的历史轨迹作为新路径建立的参考;基于地理信息的路由协议(如dfr定向泛洪协议)需要获得源节点和目的节点准确的位置信息,从而可以选择最优的邻居节点作为下一跳。

因为水下节点的位置动态变化,导致整个网络拓扑结构发生变化,现有的基于簇的路由协议设置的簇的规模较大而且过程复杂,很难及时进行簇的维护与更新;基于节点地理位置信息的路由协议对于不能使用gps的水下网络对节点进行精确定位是困难的。



技术实现要素:

有鉴于此,本说明书一个或多个实施例的目的在于提出一种小节点群动态转发混合路由方法及相关设备,以解决现有技术中面临的问题。

基于上述目的,本说明书一个或多个实施例提供了一种小节点群动态转发混合路由方法,包括:

随机部署模拟网络结构中的若干个水下节点,使每个所述水下节点进行节点发现以建立节点组;其中,所述节点组包括主节点、副节点和普通节点;每个所述水下节点都能够产生数据包,所述数据包以所述模拟网络结构中的宿节点为目的地址;

基于所述节点组,在所有所述水下节点间进行所述数据包的接收和转发;

其中,当存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点;

所述副节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点;

所述普通节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点。

基于同一发明目的,本说明书一个或多个实施例还提供了一种小节点群动态转发混合路由装置,包括:

节点组建立模块,随机部署模拟网络结构中的若干个水下节点,每个所述水下节点进行节点发现以建立节点组;其中,所述节点组包括主节点、副节点和普通节点;

数据包传输模块,基于所述节点组,在所有所述水下节点间进行所述数据包的接收和转发;其中,当存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点;所述副节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点;所述普通节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点。

基于同一发明目的,本发明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现小节点群动态转发混合路由方法。

从上面所述可以看出,本说明书一个或多个实施例提供的一种小节点群动态转发混合路由方法及相关设备:通过建立小规模分组提高了网络的灵活性,便于分组的检查和及时更新;结合了单播与多播的转发策略,让不同状态下的节点基于不同的数据转发策略进行数据传输从而减少数据包的冲突,提高数据包投递率,减少冗余数据传输能耗;而且路由协议简单,易于实施,路由决策时依赖较少的网络拓扑结构信息;同时水下节点仅需要保存其成组的信息无需保存过多的其他节点的信息,可以减少节点的内存消耗以及附加能耗,延长网络寿命。

附图说明

为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书一个或多个实施例提供的一种小节点群动态转发混合路由方法的流程图;

图2为本说明书一个或多个实施例提供的建立节点组的流程图;

图3为本说明书一个或多个实施例提供的随机部署水下节点的网络拓扑图;

图4为本说明书一个或多个实施例提供的进行数据包传输的网络拓扑图;

图5为本说明书一个或多个实施例提供的分组检查的流程图;

图6为本说明书一个或多个实施例提供的种小节点群动态转发混合路由装置结构示意图;

图7为本说明书一个或多个实施例提供的电子设备结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本说明书一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

如背景技术部分所述,因为水下节点的位置动态变化,导致整个网络拓扑结构发生变化,现有的基于簇的路由协议设置的簇的规模较大而且过程复杂,很难及时进行簇的维护与更新;基于节点地理位置信息的路由协议对于不能使用gps的水下网络对节点进行精确定位是困难的。

为解决此问题,本说明书一个或多个实施例提供了一种小节点群动态转发混合路由方法及相关设备,该方法中除宿节点外的所有水下节点通过节点发现建立若干个节点组,每个节点组内包括发起节点发现的主节点、副节点和普通节点;进行数据传输时,主节点和未成组的水下节点向除自身外的水下节点转发数据包,位于节点组内的副节点和普通节点将接收到的数据包转发给本组的主节点;在传输过程中,还采用了隐式检查方式检查节点组是否存在,设置观察时间如果期间收到同组内节点转发的数据包则认为分组存在;若未收到同一组内节点转发的数据包则进行分组检查数据包的发送;收到分组存在确认数据包则认为分组存在否则建立新的分组。

本说明书一个或多个实施例提供的一种小节点群动态转发混合路由方法及相关设备,在不需要获取节点精确的位置信息的情况下可以达到较高的数据递送率并且降低了端到端延迟以及能量消耗从而延长网络寿命。

参考图1,本说明书一个或多个实施例提供的一种小节点群动态转发混合路由方法的步骤如下。

步骤s101,随机部署模拟网络结构中的若干个水下节点,使每个所述水下节点进行节点发现以建立节点组。

本步骤中,通过节点发现建立的节点组包括一个主节点、一个副节点和若干个普通节点,每个所述水下节点都能够产生数据包,所述数据包以所述模拟网络结构中的宿节点为目的地址。

步骤s102,基于所述节点组,在所有所述水下节点间进行所述数据包的接收和转发。

本步骤中,邻居节点指一个水下节点的通信范围内所有能够与该水下节点建立通信的其他水下节点。

步骤s103,当存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点。

本步骤中,位于同一节点组内的副节点和普通节点接收由同一节点组的主节点外的其余水下节点发出或转发的数据包,并将数据包转发给同一节点组的主节点,未成组节点接收或转发来自邻居节点的数据包。

步骤s104,所述副节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点。

步骤s105,所述普通节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点。

作为一个可选的实施例,在步骤s101建立节点组的过程中,还会有一部分水下节点成为未成组节点,这些未成组节点同样能够进行数据包的接收和转发,当存在与所述宿节点的通信路径时,所述未成组节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述未成组节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点。

作为一个可选的实施例,建立节点组的步骤如图2所示,包括。

步骤s201、根据每个水下节点与宿节点间的距离为每个水下节点设定延时等待时间。

本步骤中,将水下节点进行随机撒点部署,得到的水下节点网络拓扑如图3所示,此时节点处于未成组状态,每个节点根据自己到宿节点的距离d设定进行节点发现的延时等待时间tf=d/n,其中n可以设为1000。

步骤s202、每个水下节点的延时等待时间结束后,该水下节点以主节点的身份向其邻居节点发送节点发现包,接收到节点发现包的水下节点向主节点回复节点存在包。

本步骤中,所述延时等待时间tf结束,所述主节点广播节点发现包,并设定成组等待时间tg,所述主节点的每一个邻居节点收到节点发现包后向其回复节点存在包以通知所述主节点其存在,并记录待成组的节点标识以及设定角色通知时间tgn。宿节点收到节点发现包回复节点存在包以通知所述主节点其存在与宿节点通信的直接路径。

当成组等待时间tg结束所述主节点未获得与其成组的节点信息则会进入等待进行节点发现的初始状态,即未成组状态。

步骤s203、主节点选择好成组的副节点和普通节点后,向二者发送角色通知包,副节点和普通节点接收到角色通知包后,以对应的角色加入节点组。

本步骤中,主节点广播角色通知包,节点状态变为已成组的主节点,收到角色通知包的节点根据收到的包内信息以及记录的待成组的节点标识将自己以正确的角色加入节点组内,节点状态变为已成组的副节点或普通节点,如果角色通知时间tgn结束节点还未成功收到角色通知包则节点进入等待进行节点发现的初始状态。

作为一个可选的实施例,进行数据传输的网络拓扑如图4所示,其中,其中成组的主节点和未成组节点可以接收并转发来自其他所有节点的数据包r;成组的副节点和普通节点只能接收来自非同组的主节点转发的数据包r并单播转发给同组的主节点,包括:

当水下节点产生目的地址为宿节点的数据包r或者收到来自其他水下节点转发的数据包r时进行数据包r的转发;

未成组的节点或者已经成组的主节点,若存在与宿节点的通信路径则利用单播转发策略将数据包r直接转发给宿节点,若不存在直接路径则利用多播转发策略将数据包r转发给其通信范围内所有的水下节点;成组的副节点或者普通节点,利用单播转发策略将不是来自同组的主节点的数据包r定向转发到组内的主节点。

当任何水下节点收到其他水下节点转发的数据包r时,如果已经处理过该数据包r则丢弃;若该水下节点未处理过该数据包r则进行数据包r的转发与交付过程:该节点为宿节点时将数据包r向上层交付,为水下节点时进行数据包r的转发。

作为一个可选的实施例,进行分组检查的步骤如图5所示,包括。

步骤s501、所述主节点成功建立所述节点组后,设置分组检查等待时间,分组检查等待时间结束后,对所述节点组进行定时检查。

本步骤中,在建立节点组时设置的分组检查等待时间tc结束后,节点组的主节点设置观察时间ty,进行检查。

步骤s502、根据所述水下节点间的业务量为待检查节点设定观察时间,所述主节点在观察时间内接收到来自所述待检查节点转发的所述数据包,确认所述节点组存在。

本步骤中,观察时间ty期间主节点收到来自组内另外所有节点转发的数据包或者副节点、普通节点收到来自组内的主节点转发的数据包则认为该分组存在,并重新进入分组检查等待阶段,节点状态不发生改变。

步骤s503、否则由所述主节点向所述待检查节点主动发送分组存在检查包并设定等待时间,在所述等待时间结束前收到所述待检查节点回复的分组存在确认包则认为所述节点组存在。

本步骤中,观察时间ty结束成组的节点未收到对应的同组节点转发的数据包则该节点广播分组存在检查包,并设置等待时间ta,与当前节点在同一组的节点收到分组存在检查包便回复分组存在确认包,认为节点组仍然存在,节点状态不发生改变并重新进入分组检查等待阶段。

步骤s504、当检测到所述节点组不存在时,需重新建立所述节点组,由原所述节点组的所述副节点进行所述节点发现并建立新的所述节点组。

本步骤中,等待时间ta结束时当前节点未收到同组的节点的分组存在确认包则认为分组已经断开,清空相应的分组信息,节点状态变为未成组状态,原成组的副节点进入节点发现过程,触发水下节点建立新的分组。

本说明书一个或多个实施例提供的一种小节点群动态转发混合路由方法,通过建立小规模分组提高了网络的灵活性,便于分组的检查和及时更新。结合了单播与多播的转发策略,让不同状态下的节点基于不同的数据转发策略进行数据传输从而减少数据包的冲突,提高数据包投递率,减少冗余数据传输能耗;而且路由协议简单,易于实施,路由决策时依赖较少的网络拓扑结构信息。其中,水下节点仅需要保存其成组的信息无需保存过多的其他节点的信息,可以减少节点的内存消耗以及附加能耗,延长网络寿命。

需要说明的是,本说明书一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本说明书一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种小节点群动态转发混合路由装置。

参考图6,所述小节点群动态转发混合路由装置,包括:

节点组建立模块601,随机部署模拟网络结构中的若干个水下节点,每个所述水下节点进行节点发现以建立节点组;其中,所述节点组包括主节点、副节点和普通节点。

数据包传输模块602,基于所述节点组,在所有所述水下节点间进行所述数据包的接收和转发;其中,当存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述主节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点;所述副节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点;所述普通节点能够将其产生和接收到的所述数据包以单播方式转发至同一所述节点组内的所述主节点。

上述的小节点群动态转发混合路由装置,使每个所述水下节点进行节点发现以建立节点组之后,部分所述水下节点成为未成组节点;当存在与所述宿节点的通信路径时,所述未成组节点能够将其产生和接收到的所述数据包以单播方式转发至所述宿节点;当不存在与所述宿节点的通信路径时,所述未成组节点能够将其产生和接收到的所述数据包以多播方式转发至通信范围内的其他全部所述水下节点。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的一种小节点群动态转发混合路由方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的一种小节点群动态转发混合路由方法。

图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的一种小节点群动态转发混合路由方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书一个或多个实施例的不同方面的许多其他变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本说明书一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其他部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本说明书一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本说明书一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本说明书一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其他存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本说明书一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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