一种应用于Ad‑hoc网络的IP地址动态分配方法与流程

文档序号:12377623阅读:608来源:国知局
一种应用于Ad‑hoc网络的IP地址动态分配方法与流程

本发明涉及通信技术领域,尤其涉及一种应用于Ad-hoc网络的IP地址动态分配方法。



背景技术:

Ad-hoc网络是一种没有基础设施支持的网络,具有自组性和机动性。随着移动技术的不断发展和人们日益增长的自由通信需求,Ad-hoc网络在军用、民用、商用等多方面得到了快速的发展和普及。

目前网络IP地址动态分配普遍采用集中式分布,网络中各节点向网络中心设备申请IP地址,由中心设备给网络中各节点动态分配IP地址。集中式动态分配IP地址一旦中心设备遇到故障,整个通信网络都不能正常工作,增加了网络不稳定性。Ad-hoc网络是无中心、自组织网络,采用集中式动态分配IP地址不适用于Ad-hoc网络,且网络普遍利用IP地址唯一性,把IP地址作为网络中节点的标识。在为新加入网络节点分配IP地址时,为确保IP地址在全网络的唯一性,要对IP地址进行重复地址检测,这样极大的增加了网络开销。



技术实现要素:

本发明提出了一种应用于Ad-hoc网络的IP地址动态分配方法,解决了Ad-hoc网络在高移动性情况下动态分配IP地址问题,增加了网络稳定性和可靠性,减小了网络开销。

为实现上述目的,本发明的技术方案包括如下,一种应用于Ad-hoc网络的IP地址动态分配方法,包括以下步骤:

步骤一:IP地址分层;

步骤二:定义簇头和簇集;

步骤三:簇头建立及维护地址表;

步骤四:节点检测与周围节点的连通性;

步骤五:节点定期发送更新消息;

步骤六:动态分配IP地址。

进一步根据所述IP地址动态分配方法,步骤一中IP地址分层,IP地址包括网络号和主机号,网络号由子网掩码确定位数,前两位10.1是网络号,后两位0.0到255.255,为可用的主机号,其中网络号为L3层;若不考虑网络号,IP地址从右往左按照0的数量划分层,0的数目为n,即位于第n层,根据主机号,若最小的主机号0.0,则该节点划分为2层,若主机号是1.0到255.0,则该节点划分到1层,所有主机号不含0的节点为L0层节点;L0、L1、L2、L3分别表示0层、1层、2层、3层;若网络号是10.0,且子网掩码是255.255.0.0,IP地址为10.0.0.0的节点仍属于L2层节点。

进一步根据所述IP地址动态分配方法,步骤二中定义簇头和簇集,其中分配IP地址最高到L3层,从高层到低层依次为L3、L2、L1、L0,L0位于最底层,其中L3、L2、L1层中各节点都是簇头;L2层中的节点与L3的簇头相连接,组成簇集;L1层中的节点与L2的簇头相连接,组成簇集;L0层中的节点与L1的簇头相连接,组成簇集;簇头在与自己直接相连的节点中随机选取一个节点作为下属头节点,当簇头离开网络,下属头节点成为新的簇头,原有簇集中的节点连接下属头节点,即新的簇头。

进一步根据所述IP地址动态分配方法,步骤三中簇头建立及维护地址表,地址表中簇头下有255个可用的IP地址,无论这些IP地址是否分配给节点,这些IP地址在簇头的地址表中均存在;

若某个IP地址被分配给某一节点,则节点会发消息给簇头,消息内容包括该节点的MAC地址、最新进入网络时间,簇头接收到消息,在地址表中记录与IP地址相对应的MAC地址及节点发送消息的最新时间;

若IP地址分配给节点,则在簇头的地址表中有与IP地址相对应的MAC地址和最新进入网络时间,可判断该IP地址被分配,若某个IP地址没有分配给节点,则没有与IP地址相对应的MAC地址和最新进入网路时间,可据此判断IP地址未分配;

簇头维护地址表的过程是,复制地址表到下属头节点中,防止自己突然离开或出现故障,造成地址表信息丢失,定期接收簇集中节点的更新消息,更新地址表。

进一步根据所述IP地址动态分配方法,步骤四中节点检测与周围节点的连通性,不同层的节点检测与周围节点的连通性有不同的处理方法,具体方法如下:

L0层的节点周期性扫描周围节点,确保任一时间点上,至少和本簇集内一个节点连通,若一个节点发现它和本簇集中的任一节点没有连接,但和其它簇集中的节点有连接,则它会发出改变地址请求,请求连接到新的可达簇集上;

若没有任何节点与它相连,则它发出广播信令检查是否存在可用网络,若存在可用网络则加入这个网络,若不存在可用网络则初始化一个网络;

L1、L2、L3层的每个节点都会尽力保持和本簇集中至少一个节点连通,若这个节点失去了和本簇集节点的连接,则它会改变地址,连接到其他簇集并通知下属头节点,让下属头节点改变地址成为新的簇头。

进一步根据所述IP地址动态分配方法,步骤五中节点定期发送更新消息,在网络中所有的节点定期发送更新消息给本簇集簇头,以保证簇头中地址表信息是网络中节点的最新信息,释放离开网络的节点信息,保证簇头地址表信息都是最新的,更新消息广播信令都在发到本簇集内部,不会发到本簇集外部。

进一步根据所述IP地址动态分配方法,步骤六中动态分配IP地址,根据构建好的网络,对于节点加入网络时的动态分配IP地址,具体方法如下:

首先节点发出广播信令检查是否存在可用网络,若没有收到应答广播信令,则认为不存在可加入网络,选择一个网络号和子网掩码,初始化网络,初始化节点的IP地址为可用IP地址中最小的IP地址;

若收到应答广播信令,则该节点加入这个网络,该节点称为请求节点,请求节点通过分配器加入已存在的网络,分配器是网络中与请求节点直接相连的节点;若请求节点与该网络中已存在的多个节点直接相连,则请求节点选择最低层的那个直连节点作为它的分配器,分配器可以给请求节点分配IP地址;若分配器是K层节点,K为1或2或3,若有可用空闲IP地址,则自动给请求节点分配一个K-1层的IP地址,请求节点发送自己的MAC地址和最新进入网络时间给簇头,簇头更新地址表,记录与IP地址相对应的MAC地址和请求节点最新进入网络时间,若无可用空闲IP地址,则由上层节点为该请求节点分配可用空闲IP地址;若分配器是L0层节点,分配器发消息给L1层簇头,由L1层簇头为该请求节点分配可用空闲IP地址;若L1层节点有可用空闲IP地址,则L1层节点通知分配器有可用空闲IP地址并将IP地址发给分配器,分配器将IP地址发给请求节点,请求节点收到后将自己的MAC地址和最新进入网络时间发给分配器,分配器把请求节点的MAC地址和最新进入网络时间发给L1层节点,L1层节点更新地址表,发送完消息后将更新地址表给分配器,分配器接收到完成消息后,会给请求节点发送完成消息,分配IP地址过程结束;若L1层节点没有可用空闲IP地址,则由L2层节点为该请求节点分配IP地址,若L2层节点没有可用空闲IP地址,则由L3层节点为该请求节点分配IP地址,最终请求节点会得到可用的空闲IP地址。

进一步根据所述IP地址动态分配方法,步骤六中动态分配IP地址,根据构建好的网络,对于节点离开网络时的动态分配IP地址,在一个节点离开网络后,Ad-hoc网络有自愈能力,能够根据一定规则自动重组新的完整网络,节点离开有两种方式,通过退出机制离开和突然离开,具体方法如下:

若L0层的节点通过退出机制离开网络,则与该节点直连可达的节点通知簇头节点离开,簇头修改地址表,使退出网络的节点IP地址空闲可用;

若L0层的节点突然离开网络,每个L1层的节点定期接收来自本簇集L0层节点的更新,L0层节点突然离开,簇头接收不到来自离开节点的更新消息,门限值时间后簇头仍接收不到来自离开节点的更新消息,簇头会发送一个消息给离开的节点,若簇头没有收到回复,则认为这个节点已离开网络,释放该节点的IP地址使其可用;

若L1、L2、L3层节点通过退出机制离开网络,通知下属头节点它要离开,同步下属头节点中存储的地址表,簇头离开网络后,下属头节点改变IP地址成为新的簇头;

若L1、L2、L3层节点突然离开网络,下属头节点并不知道簇头已离开网络,直到网络中的节点不能联系到簇头,通知下属头节点簇头已离开网络,下属头节点确认簇头已离开网络,则改变IP地址成为新的簇头。

进一步根据所述IP地址动态分配方法,步骤六中动态分配IP地址,根据构建好的网络,对于查找网络中节点时的动态分配IP地址,具体步骤如下:

(1)在LK层,K为0或1或2,节点询问位于LK+1层簇头要查找的节点是否在本簇集内,若要查找的节点在本簇集内,则返回要查找节点的IP地址,若要查找的节点不在本簇集内,则簇头发送查找地址请求给同层的其他节点;

(2)同层其他节点收到查找地址请求后,查找本簇集内是否有要查找节点,若要查找的节点在本簇集内,则返回要查找节点的IP地址,若要查找的节点不在本簇集内,则请求节点的簇头发送查找地址请求给上层节点;

(3)上层节点收到查找地址请求并发送查找地址请求给同层其他节点,同层其他节点查找要查找节点是否在本簇集内,若要查找的节点在本簇集内,则返回要查找节点的IP,若要查找的节点不在本簇集内,则上层节点发送查找地址请求给它的上层节点,重复步骤(3),直到找到要查找节点的IP地址或所有簇头均被访问完。

本发明与现有技术相比,具有如下优点:

1、本发明通过采用不相交的地址池(可用的IP地址范围)分配唯一的IP地址,无需进行重复地址检测,极大的减小了网络开销;

2、本发明通过采用分布式动态分配IP地址,使网络不会因一个节点故障导致整个网络无法正常工作,增加网络可靠性;

3、本发明通过利用一个节点离开网络后,网络能够根据一定规则自动重组新的完整网络的自愈行为,使网络在节点离开网络后仍保持完整性。

附图说明

图1为本发明所述的一种应用于Ad-hoc网络的IP地址动态分配方法流程图;

图2为本发明所述方法中的IP地址动态分配示意图;

图3为本发明所述方法中步骤六查找网络中节点的流程图。

具体实施方式

针对现有技术的不足,本发明对所述一种应用于Ad-hoc网络中的IP地址动态分配方法,为使本发明所述的技术方案更加清楚明白,以下结合附图,对本发明所述方案作进一步详细说明,如图1所示,具体步骤如下:

步骤一:IP地址动态分配。

IP地址包括网络号和主机号,网络号由子网掩码确定位数。本发明所使用的IP地址均采用点分十进制表示。前两位10.1是网络号,后两位0.0到255.255是可用的主机号。网络号为L3层,若不考虑网络号,参考图2,IP地址从右往左按照0的数量划分层,0的数目为n,即位于第n层,根据主机号,若最小的主机号0.0,则该节点划分为2层;若主机号是1.0到255.0,则该节点划分到1层;所有主机号不含0的节点为L0层节点。用L0、L1、L2、L3分别表示0层、1层、2层、3层。若网络号是10.0,且子网掩码是255.255.0.0,IP地址为10.0.0.0的节点仍属于L2层节点。

步骤二:定义簇头和簇集。

参考图2中的IP地址动态分配示意图,所示圆圈为Ad-hoc网络中的节点,该圆圈里面的数字表示具有相同网络号的IP地址的主机号,网络号是10.1。本发明分配IP地址最高到L3层,从高层到低层依次为L3、L2、L1、L0,L0位于最底层,其中L3、L2、L1层中各节点都是簇头。L2层中的节点与L3的簇头相连接,组成簇集;L1层中的节点与L2的簇头相连接,组成簇集;L0层中的节点与L1的簇头相连接,组成簇集。簇头在与自己直接相连的节点中随机选取一个节点作为下属头节点,当簇头离开网络,下属头节点成为新的簇头,原有簇集中的节点连接下属头节点,即新的簇头。

步骤三:簇头建立及维护地址表。

簇头建立地址表,地址表中有簇头下255个可用的IP地址,无论这些IP地址是否分配给节点,这些IP地址在簇头的地址表中均存在。当某个IP地址被分配给某一节点,则节点会发消息给簇头。消息内容包括该节点的MAC地址、最新进入网络时间。簇头接收到消息,在地址表中记录与IP地址相对应的MAC地址及节点发送消息的最新时间。

若IP地址分配给节点,则在簇头的地址表中具有有与IP地址相对应的MAC地址和最新进入网络时间,可据此判断,IP地址被分配;若某个IP地址没有分配给节点,则没有与IP地址相对应的MAC地址和最新进入网路时间,可据此判断IP地址未分配。

簇头维护地址表的过程是,复制地址表到下属头节点中,防止自己突然离开或出现故障,造成地址表信息丢失;定期接收簇集中节点的更新消息,更新地址表。

步骤四:节点检测与周围节点的连通性,不同层的节点检测与周围节点的连通性有不同的处理方法,具体方法如下:

L0层的节点周期性扫描周围节点,确保任一时间点上,至少和本簇集内一个节点连通。若一个节点发现它和本簇集中的任一节点没有连接,但和其它簇集中的节点有连接,则它会发出改变地址请求,请求连接到新的可达簇集上;若没有任何节点与它相连,则它发出广播信令检查是否存在可用网络;若存在可用网络则加入这个网络,若不存在可用网络则初始化一个网络。

L1、L2、L3层的每个节点都会尽力保持和本簇集中至少一个节点连通,若这个节点失去了和本簇集节点的连接,则它会改变地址,连接到其他簇集并通知下属头节点,让下属头节点改变地址成为新的簇头。

步骤五:节点定期发送更新消息。

在网络中所有的节点定期发送更新消息给本簇集簇头,以保证簇头中地址表信息是网络中节点的最新信息,释放离开网络的节点信息,保证簇头地址表信息都是最新的。更新消息广播信令都在发到本簇集内部,不会发到本簇集外部,大大减小网络开销。

步骤六:根据构建好的网络,动态分配IP地址。

(1)节点加入网络时的动态分配IP地址,具体方法如下:

首先节点发出广播信令检查是否存在可用网络,若没有收到应答广播信令,则认为不存在可加入网络,选择一个网络号和子网掩码,初始化网络,初始化节点的IP地址为可用IP地址中最小的IP地址。

若收到应答广播信令,则该节点加入这个网络,该节点称为请求节点,请求节点通过分配器加入已存在的网络,分配器是网络中与请求节点直接相连的节点;若请求节点与该网络中已存在的多个节点直接相连,则请求节点选择最低层的那个直连节点作为它的分配器,分配器可以给请求节点分配IP地址;若分配器是K层节点,K为1或2或3,若有可用空闲IP地址,则自动给请求节点分配一个K-1层的IP地址,请求节点发送自己的MAC地址和最新进入网络时间给簇头,簇头更新地址表,记录与IP地址相对应的MAC地址和请求节点最新进入网络时间,若无可用空闲IP地址,则由上层节点为该请求节点分配可用空闲IP地址;若分配器是L0层节点,分配器发消息给L1层簇头,由L1层簇头为该请求节点分配可用空闲IP地址;若L1层节点有可用空闲IP地址,则L1层节点通知分配器有可用空闲IP地址并将IP地址发给分配器,分配器将IP地址发给请求节点,请求节点收到后将自己的MAC地址和最新进入网络时间发给分配器,分配器把请求节点的MAC地址和最新进入网络时间发给L1层节点,L1层节点更新地址表,发送完消息后将更新地址表给分配器,分配器接收到完成消息后,会给请求节点发送完成消息,分配IP地址过程结束;若L1层节点没有可用空闲IP地址,则由L2层节点为该请求节点分配IP地址,若L2层节点没有可用空闲IP地址,则由L3层节点为该请求节点分配IP地址,最终请求节点会得到可用的空闲IP地址。

(2)节点离开网络时的动态分配IP地址,具体方法如下:

在一个节点离开网络后,Ad-hoc网络有自愈行为,能够根据一定规则自动重组新的完整网络。节点离开有两种方式,通过退出机制离开和突然离开,具体方法如下:

若L0层的节点通过退出机制离开网络,则与该节点直连可达的节点通知簇头节点离开,簇头修改地址表,使退出网络的节点IP地址空闲可用。

若L0层的节点突然离开网络,每个L1层的节点定期接收来自本簇集L0层节点的更新,L0层节点突然离开,簇头接收不到来自离开节点的更新消息,门限值时间后簇头仍接收不到来自离开节点的更新消息,簇头会发送一个消息给离开的节点,若簇头没有收到回复,则认为这个节点已离开网络,释放该节点的IP地址使其可用。

若L1、L2、L3层节点通过退出机制离开网络,通知下属头节点它要离开,同步下属头节点中存储的地址表,簇头离开网络后,下属头节点改变IP地址成为新的簇头。

若L1、L2、L3层节点突然离开网络,下属头节点并不知道簇头已离开网络,直到网络中的节点不能联系到簇头,通知下属头节点簇头已离开网络,下属头节点确认簇头已离开网络,则改变IP地址成为新的簇头。

(3)查找网络中节点时的动态分配IP地址,以下结合附图3进一步描述,具体步骤如下:

(1)在LK层,K为0或1或2,节点询问位于LK+1层簇头要查找的节点是否在本簇集内,若要查找的节点在本簇集内,则返回要查找节点的IP地址,若要查找的节点不在本簇集内,则簇头发送查找地址请求给同层的其他节点。

(2)同层其他节点收到查找地址请求后,查找本簇集内是否有要查找节点,若要查找的节点在本簇集内,则返回要查找节点的IP地址,若要查找的节点不在本簇集内,则请求节点的簇头发送查找地址请求给上层节点。

(3)上层节点收到查找地址请求并发送查找地址请求给同层其他节点,同层其他节点查找要查找节点是否在本簇集内,若要查找的节点在本簇集内,则返回要查找节点的IP,若要查找的节点不在本簇集内,则上层节点发送查找地址请求给它的上层节点,重复步骤(3),直到找到要查找节点的IP地址或所有簇头均被访问完。

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