一种基于6LoWPAN的邻居发现协议的制作方法

文档序号:7812905阅读:283来源:国知局
一种基于6LoWPAN的邻居发现协议的制作方法
【专利摘要】本发明公开了一种基于6LoWPAN的邻居发现协议,以解决传感器节点大量能量消耗的问题。本发明通过建立一个前缀信息表,并定义前缀消息请求(PIS)和前缀消息通告(PIA)两种新的报文来代替RS和RA报文传递前缀信息,实现路由器发现,从而减少链路层多播消息的使用;对pis和PIA报文的发送使用路由器动态通告方法来进行,以平衡对节省能量和对网络变化的敏感性两方面的要求,从而大大减少了LoWPAN网络的流量,同时又保证了与原NDP过程的兼容。
【专利说明】一种基于6L〇WPAN的邻居发现协议

【技术领域】
[0001] 本发明涉及一种改进的邻居发现协议,属于无线传感器网络【技术领域】。

【背景技术】
[0002] 随着无线传感器网络技术的逐步发展,网络的规模性、应用多样性以及与其它网 络的互通性成为了研究的重点问题。因特网作为一个已经发展多年、较为成熟的网络,较好 的实现各种数据交换和应用的扩展。因此,将无线传感器网络与因特网的融合是发展的必 然趋势。所以,无线传感器网络与IPv6协议的融合已成为近年来的研究热点。虽然将二者 融合可以带来很多好处,但是两者是应用于不同场合的网络,所以融合起来就会产生很多 问题。
[0003] 6LOWPAN技术不仅具有普及型和适用性的特点,而且能够提供庞大的地址空间,以 及支持无状态自动地址配置。6LowPAN技术的众多优势促使其应用领域日益广阔,随着嵌 入式系统和下一代互联网的广泛使用,必将有越来越多的电子产品组网甚至接入互联网, 6LowPAN必将在工业、办公以及家庭自动化、智能家居、环境监测等多个领域等领域得到广 泛的应用。问题是IPv6的NDP的多项特点并不适合于LoWPAN网络环境,原因是采用IP多 播的邻居发现过程会造成大量的节点能量消耗;此外NDP对邻居请求和邻居通告报文的复 杂处理需要大量的代码空间与处理器时间。这些特点对于资源紧张的传感器节点来说是沉 重的负担,因此必须对原先的NDP协议的功能和协议进行适当的修改,使得NDP在确保其基 本功能的基础上能符合WSN的特点。
[0004] 经检索,现有技术《一种基于6L0WPAN邻居发现的树状路由方法》(公布号为 CN102148756A)公开了一种树状路由方法,涉及无线传感网领域,包括如下步骤:a.在 6L〇WPAN传感器节点加入网络时,建立树状拓扑的根节点,对所述根节点配置网络的基本 信息;b.在网络中加入其它普通节点;c.路由的形成;且在所述步骤c中,若发生叶子节点 失效或离开、非叶子节点失效或离开、节点的移动三种情况之一时,则触发路由修复过程; 若没有情况发生,则保持处理结束,所述基于6L 〇WPAN邻居发现的树状路由方法无需发送 和接收额外的路由协议报文,节省了节点发送报文时产生的能耗,进而降低整个网络的能 耗和路由开销。但是此方法对于6L 〇WPAN链路层多播消息的使用仍然比较多,节点能耗和 路由开销依然不够理想。


【发明内容】

[0005] 邻居发现协议的大部分功能的实现都需要IP多播的支持,而IEEE 802. 15. 4MAC 层不支持多播,只提供不可靠的广播但适配层使用受控广播泛洪算法来模拟多播,在整个 LowPAN网络中会造成传感器节点大量的能量消耗,为了解决上述节点能耗问题,本发明提 供了一种基于6L〇WPAN的邻居发现协议,其核心思想是:建立一个前缀信息表,并定义前缀 消息请求(PIS)和前缀消息通告(PIA)两种新的报文来代替RS和RA报文传递前缀信息, 实现路由器发现,从而减少链路层多播消息的使用;对PIS和PIA报文的发送使用动态通 告方法来进行,以平衡对节省能量和对网络变化的敏感性两方面的要求,从而大大减少了 LoWPAN网络的流量,同时又保证了与原NDP过程的兼容。
[0006] 本发明中的相关技术术语定义及缩略词为:
[0007] IPv6 :Internet Protocol Version 6 ;
[0008] 61owpan :IPv6 over Low-Power Wireless Personal Area Networks ;
[0009] WSN :Wireless Sensor Network,无线传感器网络;
[0010] NDP:Neighbor Discovery Protocol,邻居发现协议,是IPv6协议的一个基本的组 成部分,实现了类似IPv4中的地址解析协议(ARP). ICMPv4中的路由器发现、重定向的所有 功能,并提供邻居不可达测试机制;
[0011] RS:Router Solicitation,路由器请求;lowpan域中主机发送RS消息给路由以及 边界路由,用于请求RA消息;
[0012] RA :Router Advertisement,路由器通告;lowpan域中路由与边界路由周期性的 发送RA消息给主机或者作为RS消息的应答消息进行发送;
[0013] PIS :Prefix Information Solicitation,前缀信息请求;
[0014] PIA :Prefix Information Advertisemen,前缀信息通告。
[0015] 本发明的邻居发现协议具体包括基于前缀信息表的路由器发现机制和基于动态 通告方法的路由器发现机制 :
[0016] 一、基于前缀信息表的路由器发现机制
[0017] 定义一个前缀信息表来存储前缀和参数;
[0018] 每当主机接收到来自路由器或其他主机的PIA消息,就会根据收到的PIA消息更 新该ill缀fe息表;
[0019] 当主机收到PIS消息时,如果前缀信息表不为空的话(即当主机收到一个有效的 PIS消息时),主机会在其维护的前缀信息表中搜寻记录,如果能找到一条有效的记录,主 机就会根据该记录构建一条多播的PIA消息以应答该PIS消息,而不用去给路由器发送Pis 消息,从而减少链路层多播消息的使用;
[0020] 每当主机发出路由器请求的消息时,适配层能够识别该IPv6头部的IP层负载并 丢弃该路由器请求(RS),同时,适配层会构建一条前缀消息请求(PIS)消息发送给附近的 邻居以代替该路由器请求。
[0021] 二、基于动态通告方法的路由器发现机制
[0022] 对前缀消息请求和前缀消息通告两种报文的发送使用路由器动态通告方法来进 行,并且对于主机节点和路由器节点分别应用了不同的路由器动态通告方法,主机节点在 启动后不立即发送多播的PIS报文,路由器节点也不再使用一个相对固定的时间间隔发送 报文。
[0023] 1、主机节点的动态通告方法
[0024] 在使用路由器动态通告方法时,主机节点在启动后不立即发送多播的PIS报文, 而是等待TME_WAIT_PIA时间,如果经历该时间后仍未收到PIA报文,再发送多播的PIS报 文进行恳求。其中HME_WAIT_PIA是介于BASEJHME与BASE_TIME*2之间的随机值(BASE_ TIME为基础的路由器通告间隔),路由器可单播PIA报文给发送PIS的主机节点,不会增加 网络的负担。
[0025] 2、路由器节点的动态通告方法
[0026]当路由器的某个接口被配置为通告接口后,其PIA报文的发送间隔使用路由器动 态通告方法进行计算:
[0027] 首先初始化变量:初始化a = 0, interval = BASE_TIME*2a ;a为路由器通告因子, 根据实际情况设置,其最大值为MAX_FACT0R(自然数,依据网络拓扑的波动情况进行设置, 优选为5-6) ;interval为路由器通告时间间隔,BASE_TIME为基础的路由器通告间隔(优 选为10分钟);
[0028] 然后设置定时器间隔为interval,判断是否收到主机节点发送的PIS报文:若否, 即定时器超时,则发送一个多播PIA报文,并另a = a+Ι,重新设置定时器间隔,为下一次 PIA发送做准备;如果在路由器通告时间间隔内路由器收到了主机节点发送的PIS报文,则 令a = a/2,并将定时器间隔缩小2a倍,如果超过该定时器间隔后收到的主机发送的PIS小 于3个,则发送一个单播的PIA报文;如果收到的PIS已经达到3个,则发送一个多播的PIA 报文,并另a = a+Ι,重新设置定时器间隔,为下一次PIA发送做准备。
[0029] 通过采用上述技术方案,本发明获得了如下技术效果:
[0030] 首先,本专利的提出完全依据IETF组织所提出的邻居发现协议标准草稿,具有较 强的可行性与广泛的适用性;
[0031] 其次,主机可直接根据前缀信息表构建一个PIA消息用来应答PIS,而不用去给路 由器发送PIS消息,从而大大减少链路层多播消息的使用,减少了节点能源的消耗;
[0032] 最后,通过路由器动态通告方法避免了多播报文造成LoWPAN网络中的传感器节 点大量的能量消耗,平衡对节省能量和对网络变化的敏感性两方面的要求。

【专利附图】

【附图说明】
[0033] 图1是本发明实施例中前缀消息请求的消息格式示意图。
[0034] 图2是本发明实施例中前缀消息通告的消息格式示意图。
[0035] 图3是主机节点的动态通告方法流程图。
[0036] 图4是路由器节点的动态通告方法流程图。

【具体实施方式】
[0037] 下面结合附图和实施例对本发明作进一步详细说明。
[0038]本实施例的基于前缀信息表的路由器发现机制中,适配层存在一个封装头栈,每 个封装头可以包含若千个域。除了 mesh寻址头和分段头之外,其它适配层定义的头都包 含一个完整的字节dispatch域,利用保留的dispach值,可以定义两种新的报文,pis的 dispatch 值为 01000100, PIA 的 dispatch 值为 01000010。
[0039] PIS的消息格式如图1所示,图中标记代表:
[0040] Length :8位整型,表示消息的长度;
[0041 ] Hop Limit :表示跳数限制,设为255。
[0042] PIA的消息格式如图2所示,图中标记代表:
[0043] Hop Left :表示剩余跳数,当该值为〇时,报文将不再继续传送;
[0044] Default Hop Limit :当前跳数限制,如果未指定则为〇 ;
[0045] RP :R〇uter Preference,表示路由优先级,可以使得主机在接收到多个前缀消息 通告消息之后选择最佳路由器,01代表高优先级,00代表中等优先级,11代表低优先级;
[0046] RF:Router flag,路由标志,该值为1表示发送端是一台路由器;
[0047] SF:Solicited flag,请求标志,该值为1表示该消息是对前缀信息请求消息的响 应;
[0048] OF:〇Verride flag,覆盖标志,该值为1时,表示PIA消息中的前缀信息应该覆盖 现有的前缀信息表的所有表项,该值为〇时,只有当路由器地址未知的时候,主机将新的前 缀信息添加到前缀信息表中;
[0049] Valid Lifetime:生存时间,其值为基于前缀信息和无状态地址自动配置的地址 的生存时间秒数,若为无限,则值应设为OxFFFFFFFF ;
[0050] Prefix :128位前缀信息,通过PIA的网络前缀可以自行配置出本节点的IPv6地 址。
[0051] 基于动态通告方法的路由器发现机制:
[0052] 主机节点的动态通告方法流程如图3所示,在使用路由器动态通告方法时,主机 节点在启动后不立即发送多播的PIS报文,而是等待TIME_WAIT_PIA时间,如果经历该时间 后仍未收到PIA报文,再发送多播的PIS报文进行恳求。其中TIME_WAIT_PIA是介于BASE_ TIME与BASE_TIME*2之间的随机值(BASEJHME为基础的路由器通告间隔)。
[0053] 路由器节点的动态通告方法流程如图4所示,当路由器的某个接口被配置为通告 接口后,其PIA报文的发送间隔使用路由器动态通告方法进行计算:
[0054] 首先初始化变量:初始化a = 0, interval = BASE_TIME*2a ;a为路由器通告因子, 根据实际情况设置,其最大值为MAX_FACT0R(自然数,优选为5-6) ;interval为路由器通告 时间间隔,BASEJTIME为基础的路由器通告间隔(优选为10分钟);
[0055] 然后设置定时器间隔为interval,判断是否收到主机节点发送的PIS报文:若否, 即定时器超时,则发送一个多播PIA报文,并另a = a+Ι,重新设置定时器间隔,为下一次 PIA发送做准备;如果在路由器通告时间间隔内路由器收到了主机节点发送的PIS报文,则 令a = a/2,并将定时器间隔缩小2a倍,如果超过该定时器间隔后收到的主机发送的PIS小 于3个,则发送一个单播的PIA报文;如果收到的PIS已经达到3个,则发送一个多播的PIA 报文,并另a = a+Ι,重新设置定时器间隔,为下一次PIA发送做准备。
[0056] 对于网络拓扑稳定的情况,节点使用路由器动态通告方法时,主机不会立即发送 PIS报文而是等待可能的PIA报文,如果没有收到,再向路由器恳求PIS报文。这样避免了 每个主机节点在其引导过程中都会多播PIS报文而造成大量的广播流量。而且网络拓扑稳 定后,路由器发送PIA报文的interval会逐渐拉长到一个很长的时间(几小时甚至十几小 时),基本上不会对网络节点的能量消耗产生什么影响,即避免了频繁广播PIA报文造成的 能量消耗。
[0057] 对于网络拓扑变动的情况,会有新的主机节点加入网络,并向路由器发送PIS恳 求,路由器再单播PIA报文给该主机节点作为回应。同时,路由器会按指数减小PIA的 interval来快速响应新加入的主机节点对PIA报文的需求。如果网络拓扑波动较大,即有 大量主机节点需要PIA报文,这时候仅靠单播的PIA报文将不再是最优的方案,因此,路由 器在收到3个PIS报文后会立即发送多播的PIA报文来响应这种波动。此时,在收到多个 PIS请求后,路由器通告因子a和PIA的interval已经减小为一个较小的值,路由器将在这 个波动期快速地通告PIA报文来适应网络的变化,当网络拓扑在波动后趋于稳定后,pia的 interval又会随着路由器通告因子的增大而逐渐增加,最终达到一个较大的值并进入慢速 的通告期。 ^8]上述式中所涉及到的技术特征,只要彼此间未构成冲突就可以相互组合。 if二上述实施例,一切采用等同替换或等效替换形成的技术方案均属于本发明要 求保护的范围。
【权利要求】
1. 一种基于6L0WPAN的邻居发现协议,其特征在于,包括基于前缀信息表的路由器发 现机制和基于动态通告方法的路由器发现机制,其中,基于前缀信息表的路由器发现机制 为: 定义一个前缀信息表来存储前缀和参数; 每当主机接收到来自路由器或其他主机的PIA消息,就会根据收到的PIA消息更新该 前缀信息表; 当主机收到PIS消息时,如果前缀信息表不为空的话,主机会在其维护的前缀信息表 中搜寻记录,如果能找到一条有效的记录,主机就会根据该记录构建一条多播的PIA消息 以应答该PIS消息; 每当主机发出路由器请求的消息时,适配层能够识别IPv6头部的IP层负载并丢弃路 由器请求,同时适配层会构建一条前缀消息请求消息发送给附近的邻居以代替该路由器请 求; 基于动态通告方法的路由器发现机制为: 对前缀消息请求和前缀消息通告两种报文的发送使用路由器动态通告方法来进行,并 且对于主机节点和路由器节点分别应用了不同的路由器动态通告方法,主机节点在启动后 不立即发送多播的PIS报文,路由器节点也不再使用一个相对固定的时间间隔发送报文。
2. 根据权利要求1所述的邻居发现协议,其特征是,所述基于动态通告方法的路由器 发现机制中,主机节点的动态通告方法为: 在使用路由器动态通告方法时,主机节点在启动后不立即发送多播的PIS报文,而是 等待TIME_WAIT_PIA时间,如果经历该时间后仍未收到PIA报文,再发送多播的PIS报文进 行恳求;其中HME_WAIT_PIA是介于BASE_TIME与BASE_TIME*2之间的随机值,路由器可单 播PIA报文给发送PIS的主机节点。
3·根据权利要求1或2所述的邻居发现协议,其特征是,所述基于动态通告方法的路由 器发现机制中,路由器节点的动态通告方法为: 当路由器的某个接口被配置为通告接口后,其PIA报文的发送间隔使用路由器动态通 告方法进行计算: 首先初始化变量:初始化a = 0, interval = BASE_TIME*2a ;a为路由器通告因子,根 据实际情况设置,其最大值为MAX_FACT0R interval为路由器通告时间间隔,BASEJTIME为 基础的路由器通告间隔; 然后设置定时器间隔为interval,判断是否收到主机节点发送的PIS报文:若否,即定 时器超时,则发送一个多播PIA报文,并另a二a+Ι,重新设置定时器间隔,为下一次PIA发 送做准备;如果在路由器通告时间间隔内路由器收到了主机节点发送的PIS报文,则令a =a/2,并将定时器间隔缩小2a倍,如果超过该定时器间隔后收到的主机发送的PIS小于3 个,则发送一个单播的PIA报文;如果收到的PIS已经达到3个,则发送一个多播的PIA报 文,并另a = a+Ι,重新设置定时器间隔,为下一次PIA发送做准备。
【文档编号】H04L12/741GK104219143SQ201410436395
【公开日】2014年12月17日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】孙知信, 王鹏, 宫婧, 骆冰清 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1