一种自组网通信协议的制作方法

文档序号:16309529发布日期:2018-12-19 05:13阅读:472来源:国知局
一种自组网通信协议的制作方法

本发明涉及通信领域,具体涉及一种自组网通信协议。

背景技术

无线自组网是一种不依赖于任何固定基础设施的无线自组多跳网络,它具有良好的移动性、抗毁自愈能力和灵活性的自组织特征,在紧急救援、会务通信以及军事应用等领域具有广阔的应用前景。但是目前大多数应用的自组网通信协议,配套的硬件都较昂贵。



技术实现要素:

针对上述现有技术的现状,本发明所要解决的技术问题在于提供一种硬件成本低的自组网通信协议。

本发明解决上述技术问题所采用的技术方案为:一种自组网通信协议,包括节点组网和节点通信,所述节点包括根节点(root节点)和普通节点,所述节点通信包括普通节点与根节点的通信和普通节点与普通节点的通信;

优选地,所述节点组网步骤如下:

(1)数据机构均为游离状态,初始化一个根节点;

(2)将根节点的权值设置为1,

(3)其他的游离节点首先发送求权包,如果收到赋权包,即将收到的包加入待选列表中,再等待1秒,1秒内收有新的包收到,则将新包加入待选列表中;如若没有收到新包,则取取待选列表中权值最高的节点的权值x作为本节点的权值,所述的发送求权包后如果没有收到赋权包,则随机等待若干(<5)秒,再发送求权包,重复过程,节点设权后,将不会存在无权值节点;

(4)根节点赋址,根节点收到求址包后,开始查询网络地址、真实地址、映射地址,判断其是否已经存在,如果存在则直接向节点发送赋址包。如果不存在,则在映射列表中新建映射,赋予新的网络地址,再发送赋址包;

(5)普通节点获址,普通节点发出求址包,如果收到赋址包,则将收到的赋址包地址设置为自身地址。如果未收到赋址包,等待若干(<5秒)后,重新发求址包;

(6)所有节点均具有权值和地址后,组网完成。

优选地,所述节点通信如下:

(1)普通节点与根节点的通信

1、普通节点向root节点发送急速向心包,向心包由自身权值大于上一跳的普通节点转发,包号为累加数(0-255)每发一个包改值+1,255后重置为0,包号是为了避免多个节点转发此包后,root节点多次收到来自同一节点同样的包;

该包存储结构为:

|包型|包号|上一跳权值||发送者网址|用户数据|

2、普通节点向root节点发送均衡向心包,其中负载值为1分钟内转发的包的个数(每转发一个包+1,1分钟归零,归零前向周边节点发送3次其负载值),其每次只向周边负载值最小的点转发(不成功则继续转发3次,再不行则换负载值第二小的点,若最终不成功则硬件上报错led或蜂鸣器提示)(未收到确认包则视为发送失败)缺点是速度较慢,优点是不需要包号来区分,且稳定传输;

发送负载值的包:(负载值为1字节)

|包型|发送者网络地址|负载值|

均衡向心包数据结构:

|包型|上一跳权值|发送者网络地址|目标网络地址|用户数据|

均衡向心包的确认包数据结构:

|包型||发送者网络地址|目标网络地址|

3、root节点向普通节点发送离心包,根节点先查询网络地址-权值映射列表,设定允许转发的最小权值,低于此权值不再转发,只有权值小于上一跳权值且大于最低转发权值的点才能转发;

数据结构:

|包型|上一跳权值|最低转发权值|接收者网络地址|用户数据

(2)普通节点与普通节点的通信

1、普通点向root发送通信包,通信包格式为:

|包型|包号|上一跳权值||发送者网址|目标网址|用户数据|

其向root点的通信过程类似急速向心包,

2、root点发送广播包,广播包格式为,

|包型|包号|上一跳权值|最低转发权值|发送者网址|目标网址|用户数据|

在root收到通信包后会转换为广播包(改变包号,添加最低转发权值)。

优选地,所述节点通信如下:所述自组网通信协议的通信包包括直达包、求权包、赋权包、求址包和赋址包,所述的直达包、求权包、赋权包、求址包和赋址包的包长度均为32字节,未使用的用0补齐,其中包型占4位。

与现有技术相比,本发明的优点在于:本自组网通信协议组网过程简单,通信过程简单,对硬件的要求低,因此需要配套使用的外部硬件成本低,且本自组网通信协议的通信包,包型占用空间少,因此使用者可自由支配的内存大。

附图说明

图1为本发明的流程图;

图2为本发明的节点游离状态示意图;

图3为本发明的普通节点设权流程图;

图4为本发明的普通节点获址流程图;

图5为本发明的根节点赋址流程图;

图6为本发明的组网后示意图。

具体实施方式

以下结合附图,对本发明的具体实施方式作进一步详述,以使本发明技术方案更易于理解和掌握。

如图1-6所示,一种自组网通信协议,包括节点组网和节点通信,所述节点包括根节点(root节点)和普通节点,所述节点通信包括普通节点与根节点的通信和普通节点与普通节点的通信。

所述节点组网步骤如下:

(1)数据机构均为游离状态,初始化一个根节点;

(2)将根节点的权值设置为1;,

(3)其他的游离节点首先发送求权包,如果收到赋权包,即将收到的包加入待选列表中,再等待1秒,1秒内收有新的包收到,则将新包加入待选列表中;如若没有收到新包,则取取待选列表中权值最高的节点的权值x作为本节点的权值,所述的发送求权包后如果没有收到赋权包,则随机等待若干(<5)秒,再发送求权包,重复过程,节点设权后,将不会存在无权值节点;,

(4)根节点赋址,根节点收到求址包后,开始查询网络地址、真实地址、映射地址,判断其是否已经存在,如果存在则直接向节点发送赋址包,如果不存在,则在映射列表中新建映射,赋予新的网络地址,再发送赋址包;

(5)普通节点获址,普通节点发出求址包,如果收到赋址包,则将收到的赋址包地址设置为自身地址。如果未收到赋址包,等待若干(<5秒)后,重新发求址包;

(6)所有节点均具有权值和地址后,组网完成。

所述节点通信如下:

(1)普通节点与根节点的通信

1、普通节点向root节点发送急速向心包,向心包由自身权值大于上一跳的普通节点转发,包号为累加数(0-255)每发一个包改值+1,255后重置为0,包号是为了避免多个节点转发此包后,root节点多次收到来自同一节点同样的包;

该包存储结构为:

|包型|包号|上一跳权值||发送者网址|用户数据|

2、普通节点向root节点发送均衡向心包,其中负载值为1分钟内转发的包的个数(每转发一个包+1,1分钟归零,归零前向周边节点发送3次其负载值),其每次只向周边负载值最小的点转发(不成功则继续转发3次,再不行则换负载值第二小的点,若最终不成功则硬件上报错led或蜂鸣器提示)(未收到确认包则视为发送失败)缺点是速度较慢,优点是不需要包号来区分,且稳定传输;

发送负载值的包:(负载值为1字节)

|包型|发送者网络地址|负载值|

均衡向心包数据结构:

|包型|上一跳权值|发送者网络地址|目标网络地址|用户数据|

均衡向心包的确认包数据结构:

|包型||发送者网络地址|目标网络地址|

3、root节点向普通节点发送离心包,根节点先查询网络地址-权值映射列表,设定允许转发的最小权值,低于此权值不再转发,只有权值小于上一跳权值且大于最低转发权值的点才能转发;

数据结构:

|包型|上一跳权值|最低转发权值|接收者网络地址|用户数据

(2)普通节点与普通节点的通信

1、普通点向root发送通信包,通信包格式为:

|包型|包号|上一跳权值||发送者网址|目标网址|用户数据|

其向root点的通信过程类似急速向心包;

2、root点发送广播包,广播包格式为,

|包型|包号|上一跳权值|最低转发权值|发送者网址|目标网址|用户数据|

在root收到通信包后会转换为广播包(改变包号,添加最低转发权值)。

所述节点通信如下:所述自组网通信协议的通信包包括直达包、求权包、赋权包、求址包和赋址包,所述的直达包、求权包、赋权包、求址包和赋址包的包长度均为32字节,未使用的用0补齐,其中包型占4位;

上述中一种自组网通信协议的工作过程如下:首先节点组网,组网步骤如下:

(1)数据机构均为游离状态,初始化一个根节点;

(2)将根节点的权值设置为1,

(3)其他的游离节点首先发送求权包,如果收到赋权包,即将收到的包加入待选列表中,再等待1秒,1秒内收有新的包收到,则将新包加入待选列表中;如若没有收到新包,则取取待选列表中权值最高的节点的权值x作为本节点的权值,所述的发送求权包后如果没有收到赋权包,则随机等待若干(<5)秒,再发送求权包,重复过程。节点设权后,将不会存在无权值节点;

(4)根节点赋址,根节点收到求址包后,开始查询网络地址、真实地址、映射地址,判断其是否已经存在,如果存在则直接向节点发送赋址包。如果不存在,则在映射列表中新建映射,赋予新的网络地址,再发送赋址包;

(5)普通节点获址,普通节点发出求址包,如果收到赋址包,则将收到的赋址包地址设置为自身地址,如果未收到赋址包,等待若干(<5秒)后,重新发求址包;

(6)所有节点均具有权值和地址后,组网完成;

然后所述节点通信,节点通信如下:

(1)普通节点与根节点的通信

1、普通节点向root节点发送急速向心包,向心包由自身权值大于上一跳的普通节点转发,包号为累加数(0-255)每发一个包改值+1,255后重置为0,包号是为了避免多个节点转发此包后,root节点多次收到来自同一节点同样的包;

该包存储结构为:

|包型|包号|上一跳权值||发送者网址|用户数据|

2、普通节点向root节点发送均衡向心包,其中负载值为1分钟内转发的包的个数(每转发一个包+1,1分钟归零,归零前向周边节点发送3次其负载值),其每次只向周边负载值最小的点转发(不成功则继续转发3次,再不行则换负载值第二小的点,若最终不成功则硬件上报错led或蜂鸣器提示)(未收到确认包则视为发送失败)缺点是速度较慢,优点是不需要包号来区分,且稳定传输;

发送负载值的包:(负载值为1字节)

|包型|发送者网络地址|负载值|

均衡向心包数据结构:

|包型|上一跳权值|发送者网络地址|目标网络地址|用户数据|

均衡向心包的确认包数据结构:

|包型||发送者网络地址|目标网络地址|

3、root节点向普通节点发送离心包,根节点先查询网络地址-权值映射列表,设定允许转发的最小权值,低于此权值不再转发,只有权值小于上一跳权值且大于最低转发权值的点才能转发;

数据结构:

|包型|上一跳权值|最低转发权值|接收者网络地址|用户数据

(2)普通节点与普通节点的通信

1、普通点向root发送通信包,通信包格式为:

|包型|包号|上一跳权值||发送者网址|目标网址|用户数据|

其向root点的通信过程类似急速向心包;

2、root点发送广播包,广播包格式为,

|包型|包号|上一跳权值|最低转发权值|发送者网址|目标网址|用户数据|

在root收到通信包后会转换为广播包(改变包号,添加最低转发权值);

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行同等替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神与范围。

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