CN106850541B - 一种物联网中节点的地址确定方法和装置 - Google Patents
一种物联网中节点的地址确定方法和装置 Download PDFInfo
- Publication number
- CN106850541B CN106850541B CN201611145754.1A CN201611145754A CN106850541B CN 106850541 B CN106850541 B CN 106850541B CN 201611145754 A CN201611145754 A CN 201611145754A CN 106850541 B CN106850541 B CN 106850541B
- Authority
- CN
- China
- Prior art keywords
- node
- address
- determined
- target
- router
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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
- H04L45/7453—Address table lookup; Address filtering using hashing
- H04L45/7459—Address table lookup; Address filtering using hashing using Bloom filters
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Abstract
本发明实施例公开了一种物联网中节点的地址确定方法和装置,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种物联网中节点的地址确定方法和装置。
背景技术
物联网(Internet of Things,IoT)被设计和制定出来连接我们周围的任何可能的对象。这规模的种连接不仅能通过扩展/稳定技术(Wi-Fi,以太网等)来实现,还可以在IoT中通过一些新技术例如蓝牙低功耗、射频识别RFID等技术实现。以统一的方式寻址这些设备将最终实现这些连接的设备之间的更平滑和标准化的通信。
互联网协议第6版(IPv6)下的低功耗无线个人区域网络(Internet ProtocolVersion 6over low power wireless personal area network,6LoWPAN)是一种物联网网络,在该网络中,节点之间使用受限技术进行连接。6LoWPAN网络中的网络节点包括IPv6下的低功耗无线个人区域网络的端节点(6LoWPAN end Node,6LN)、IPv6下的低功耗无线个人区域网络的路由器(6LoWPAN Router,6LR)和IPv6下的低功耗无线个人区域网络的边界路由器(6LoWPAN Border Router,6LBR)。其中6LN与6LR和6LR连接,或者直接连接或者通过与6LBR连接的其他6LR连接。6LoWPAN网络中各个网络节点之间的连接关系可以参见图1所示网络拓扑结构(6LoWPAN Topology),其中三角形的节点为6LN,圆形的节点为6LR,矩形的节点为6LBR。
在6LoWPAN网络中,各个节点之间需要实现对隐私的保护,为此,6LoWPAN网络中的6LN需要定期分配和更改临时地址(例如独立同分布(independent and identicallydistributed,IID)的接口标识符)。由于地址需要经常更换,需要保证更换的地址与其他6LN的地址不能重复,或者说不能更换为已经被使用的地址,否则会导致一个地址指向不同的节点,造成网络错误。
为了防止上述问题,传统方式是通过在6LoWPAN网络中每次6LN形成一个地址时进行一次重复地址检测(Duplicate Address Detection,DAD)。其中,各个6LN会维护本地储存库作为验证生成的地址是否重复,6LR会维护邻居缓存条目(Neighbor Cache Entry,NCE)作为6LN实现上述功能的判断依据,6LBR会维护一般具有三个字段的DAD表由于判断地址重复。在执行DAD的过程中,通过使用无状态地址自动配置(Stateless address autoconfiguration,SLAAC),每个6LN形成一个地址例如IP地址,并且为该地址在6LR和6LBR之间进行DAD。6LoWPAN提供从6LN到6LBR的多跳的端到端DAD。重复地址请求(DuplicateAddress Request,DAR)可以由6LR发送,并由6LBR通过重复地址确认(Duplicate AddressConfirmation,DAC)进行回复来确定该地址是否是正在使用的地址。DAD周期需要大量的存储器来存储不同节点处的寻址信息。信息存储在传统数据库中,需要更多的遍历时间,空间效率低下,然而目前并没有较好的解决方案。
发明内容
为了解决上述技术问题,本发明实施例提供了一种物联网中节点的地址确定方法和装置,可以利用布隆过滤器的有效数据结构,在很短的时间内高速遍历缓存,空间效率高。
第一方面,本发明提供了一种物联网中节点的地址确定方法,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述方法包括:
目标节点获取所述待定节点地址;
所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
在第一方面的第一种可能的实现方式中,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:
所述端节点生成所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。
在第一方面的第二种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的邻居请求获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;
若确定出所述待定节点地址相对于所述路由器是重复的节点地址,所述路由器将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
在第一方面的第三种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
在第一方面的第四种可能的实现方式中,所述目标节点为所述物联网中的边界路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
第二方面,本发明提供了一种物联网中节点的地址确定装置,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述装置包括获取单元、查找单元和确定单元:
所述获取单元,用于获取所述待定节点地址;
所述查找单元,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;
所述确定单元,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
在第二方面的第一种可能的实现方式中,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。
在第二方面的第二种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
在第二方面的第三种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
在第二方面的第四种可能的实现方式中,所述目标节点为所述物联网中的边界路由器,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
由上述技术方案可以看出,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一种6LoWPAN网络中各个网络节点之间的拓扑结构示意图;
图2为本发明实施例提供的一种物联网中节点的地址确定方法的方法流程图;
图3为本发明实施例提供的一种6LoWPAN网络中通过布隆过滤器进行DAD的示意图;
图4为本发明实施例提供的一种物联网中节点的地址确定装置的装置结构图;
图5为本发明实施例提供的一种目标节点的硬件结构示意图。
具体实施方式
下面结合附图,对本发明的实施例进行描述。
鉴于使用传统技术进行DAD的过程中,物联网中涉及到的每一个节点都需要遍历自身所存储的已用地址信息,以避免出现新生成的节点地址是已经使用的节点地址。而传统方式遍历内存所耗时较长,导致更新节点地址的效率很低。
为此,本发明引入了布隆过滤器(Bloom Filter,BF)来用于服务于DAD过程中的节点地址遍历,布隆过滤器是一种用于存在性检测(membership query)的数据结构,广泛用于网络中的流分类和查找结构,保存在布隆过滤器中的数据将通过布隆过滤器的散列函数表(hash table)进行置位。
布隆过滤器可以在6LoWPAN网络中的6LN,6LR和6LBR中,以实现空间高效的数据结构。布隆过滤器是通过简单的方式,为海量元素提供匹配或不匹配状态。输入元素使用几个散列函数进行散列,结果用于索引位图以设置相应的位,即在散列函数表中的位置。对于输入到布隆过滤器中的元素,会根据该元素生成对应散列函数,并查询所生成的散列函数在散列函数表中所对应的位置,如果所生成的所有散列函数在散列函数表中均被占用了,那么就可以确定这个元素存在于布隆过滤器中。
布隆过滤器具有以下属性:添加节点地址或检查节点地址所花费的时间是常数,并且与过滤器中的项目数无关。这将大大减少检索时间,而这种匹配耗时的效果符合本发明的应用场景,即在判断是否有重复节点地址过程中,遍历海量节点地址的时间会大幅缩短。
由于布隆过滤器的存储空间有限,当保存的数据数量较多时,将原本匹配不到的待识别字符串错误确定为能够匹配到的情况会大量增加,这种情况可以称为假阳性(falsepositive)。假阳性的情况例如字符串布隆过滤器中保存的大量的字符串后,散列函数表中的位置可能基本上都被记录了,这种情况下,若向布隆过滤器中输入一个待定节点地址,该待定节点地址的散列函数值在散列函数表中对应的位置很有可能都已经被该布隆过滤器保存的其他节点地址的散列函数值所记录了,这种情况下,即使该待定节点地址与该布隆过滤器所保存的节点地址均不匹配,但是由于该待定节点地址的散列函数值在散列函数表中对应的位置都有记录,故布隆过滤器依然会确定该待定节点地址是与自身保存节点地址相匹配的结论。一个布隆过滤器的假阳性的程度随着这个布隆过滤器中所保存数据的数量增加而指数级增加,可见,布隆过滤器中保存数据的数量对假阳性的影响很大。由于布隆过滤器的特点,被布隆过滤器确定为未匹配的结果是准确的,而被布隆过滤器确定为匹配的结果的准确性可能需要商榷。而这种过滤效果符合本发明的目的,因为经历DAD的地址(IPv6)在进一步审查之前不会朝着6LBR的方向向着6LR传输,如果它被声明存在于布隆过滤器的高速缓存中的话。
布隆过滤器的效率取决于散列函数的数量,其与假阳性成反比。另一方面,较高数量的散列函数降低了给定布隆过滤器的速度,并且还更快地占用所分配的存储器。这方面的比较可以如下表1所示:
表1
其中,n所在行可以为布隆过滤器中的项目数;p所在行为假阳性概率(1p);m所在行为布隆过滤器中散列函数表的位数;k所在行为一个数据的散列函数在散列函数表中所记录位置的数量,或者说一个数据所对应的散列函数的个数;a所在行为散列函数表中可以容纳的节点地址IPv6(128位)的地址数。
可见,通过布隆过滤器,IPv6地址可以以存储器高效的方式存储,而且随着所存储地址的数量的增加,使用布隆过滤器进行检索的时间依然可以保持恒定。
接下来,将详细介绍如何将布隆过滤器应用到物联网中的地址确定过程中,图2为本发明实施例提供的一种物联网中节点的地址确定方法的方法流程图,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,所述方法包括:
S201:目标节点获取所述待定节点地址。
举例说明,目标节点可以是物联网中的一个节点,而待定节点地址可以是一个节点所新生成的节点地址,不过暂时尚未确定这个新生成的节点地址是否是一个已经被使用过的地址,因为只有在一个新生成的节点地址是未被使用过的地址时,才能将其更新为这个节点的节点地址。
本发明不限定目标节点是如何获取该待定节点地址,在本实施例中,主要说明的是目标节点是如何判断待定接地地址是否是相对于目标节点的重复地址。
S202:所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器。
S203:所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
由于目标节点所能获知的正在使用的节点地址都存储在布隆过滤器中,故将待定节点地址输入到布隆过滤器中,利用布隆过滤器中散列函数表进行匹配,可以快速确定该待定节点地址是否已经保存在布隆过滤器中。
接下来通过举例进行说明。一个利用布隆过滤器的示例和步骤如下,其中,针对字符m和k的定义可以参见表1的相关说明:
“m”位的数组,所有位都初始化为“0”。令m=11。
假定x为待定节点地址,目标节点需要针对x在布隆过滤器中进行查询,为了便于说明,与128位IPv6地址不同,在此简单示例x为10位长的待定节点地址。
散列函数的'k'是2,具体包括h(x)和g(x),其中h(x)为从输入参数中挑选奇数位,g(x)从输入参数中挑选偶数位。
对于x=0000011001,且将x作为布隆过滤器的输入参数时。
h(x)=1011=11mod 11(m比特阵列)=0。
g(x)=0111=7mod 11(m比特阵列)=7。
对于x=1001001001,且将x作为布隆过滤器的输入参数时。
h(x)=10010=18mod 11(m比特阵列)=7。
g(x)=01001=9mod 11(m比特阵列)=9。
对于这两个输入,下表2显示布隆过滤器的输出值:
表2
可见,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。
接下来将针对物联网中的6LoWPAN网络,以及6LoWPAN网络中各个节点进行说明。在6LoWPAN网络中,节点地址可以使用128位长的IPv6地址,IPv6寻址被认为适合于在地球上分配每平方米估计2000+个地址,这种丰富的寻址方案可以有效应用于具有海量设备的物联网中,作为每个物联网中的网络设备的节点地址。IPv6除了具有更大的地址空间,还包括许多其他功能,包括SLAAC,端到端连接,移动性,安全性等对于物联网来说都起着至关重要的作用。
由于一些6LoWPAN网络中的网络活动,例如网络活动相关、位置跟踪、地址扫描和设备的特定漏洞等,为了能够在6LoWPAN网络中保持隐私,6LoWPAN网络中的端节点(6LN)可以利用临时地址周期性地改变地址。这种周期性地址变化需要保证变化的地址不会出现重复,故将在朝向6LBR的每一跳处导出巨大的查询量,也就是说,待定节点地址在朝向6LBR转发的过程中,每经过一个节点,都需要有巨大的查询量。由于布隆过滤器具有减少/恒定检索时间的空间有效数据结构,从而可以使用布隆过滤器来减少在相关节点中遍历节点地址的内存开销。
而且,6LoWPAN ND(节点)中涉及多个中间节点(6LR),直到DAD周期到达边界路由器(6LBR)。每个6LR可以使用三种不同类型的条目来维护和查阅本地告诉缓存:NCE,以确保生成的地址尚未使用。由于布隆过滤器具有减少/恒定检索时间的空间有效数据结构,从而可以使用布隆过滤器来实现这种高速缓存。通过布隆过滤器的优化,将减少每个DAD周期所花费的总时间。
6LoWPAN网络中通过布隆过滤器进行DAD的示意图如图3所示,其中通过节点优化(ND Optimization),可以在6LoWPAN网络的节点中设置布隆过滤器,例如图中的黑色矩形标识布隆过滤器,两个方向的箭头指示着一次DAD的过程,其中实线箭头标识多跳的DAR,虚线箭头标识对应的多跳DAC。
在6LoWPAN网络中,6LN维护的是本地存储库,通过本地储存库以验证新生成的节点地址是否是“保留地址”或者说是重复地址。而在用6LBR启动DAD循环之前,6LR可以通过所维护的NCE确保新生成的节点地址不是重复地址,在6LoWPAN网络中有3种NCE,包括垃圾收集,注册,和暂定。此外,6LBR维护具有三个字段的DAD表并且保存在布隆过滤器中,通过高速缓存可以在决定节点地址是否重复时节省时间。
本发明/优化建议使用称为布隆过滤器的有效数据结构,其是空间有效的并且提供更快的检索时间。节点处理DAD请求需要找出所讨论的地址的NCE的类型,并且在该时刻通过遍历整个高速缓存来完成以达到决定。Bloom Filter缓存可以在短的恒定时间内遍历,结果可以导致节点遍历或不遍历NCE。这同样适用于6LBR,其中可以在DAD表之前查询Bloom过滤器缓存,以减少确定所讨论的地址是否是重复的时间。
接下来将分别根据6LoWPAN网络中可能的三种不同节点:6LN(一种端节点)、6LR(一种路由器)和6LBR(一种边界路由器),对布隆过滤器的应用进行说明。
可选的,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:
所述端节点生成所述待定节点地址。
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求(NeighborSolicitation,NS)。
上述方案具体可以应用的场景有:
在发送本地生成的邻居请求(NS)地址之前,6LN需要确保生成的地址不是禁止/保留地址。布隆过滤器的高速缓存是一种合适的数据结构,可以立即验证生成的地址是否是相对于该端节点为禁止/保留地址。
可选的,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的邻居请求获取所携带的所述待定节点地址。
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR。
若确定出所述待定节点地址相对于所述路由器是重复的节点地址,所述路由器将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
上述从6LN接收到NS的方案具体可以应用的场景有:
a)如果该待定节点地址作为另一个64位扩展唯一标识符(64-bit ExtendedUnique Identifier,EUI-64)的注册条目存在,则告知6LN所需确定的待定节点地址是重复的。
b)如果具有与该待定节点地址相同的EUI-64的注册条目存在,但是ARO生存期=0,则可以将针对该待定节点地址的DAR发送到6LBR。
c)如果该待定节点地址为一个暂时地址,则可以默认忽略6LN的邻居请求。
d)如果6LR所维护的NCE中不存在该待定节点地址,则6LR应针对该待定节点地址创建一个暂定地址,并将针对该待定节点地址的DAR发送到6LBR。
可选的,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
上述从6LBR接收到DAC的方案具体可以应用的场景有:
a)如果该待定节点地址与存储在所维护NCE中的已注册或临时地址不同,那么将静默地忽略针对该待定节点地址的DAR。
b)如果该待定节点地址在所维护NCE中为一个暂时地址,DAC状态=0,则6LR将该暂时地址标识为已注册,并将NA发送到6LN。
c)如果确定出在NCE中存在该待定节点地址,并且从6LBR返回的DAC状态是错误的,则6LR从NCE中删除该待定节点地址,并将NA发送到6LN,目的地址从EUI-64派生。
可选的,所述目标节点为所述物联网中的边界路由器,所述目标节点获取所述待定节点地址,包括:
所述路由器通过接收到的重复地址请求DAR获取所携带的所述待定节点地址。
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
上述方案具体可以应用的场景有:
由于6LBR接收针对该待定节点地址的DAR,6LBR可以根据DAD表中记载的节点地址作为判断依据:
a)如果DAD表存在与该待定节点地址相同的EUI-64,则6LBR将该DAR发送到状态=0的6LR,并将该待定节点地址的生命周期更改为新的生命周期。
b)如果在DAD表不存在与该待定节点地址相同的EUI-64,则6LBR将携带状态错误的DAR发送到6LR。
c)如果在DAD表不存在与该待定节点地址相同的EUI-64,则6LBR还可以针对该待定节点地址在DAD表中创建一个新条目。
综上所述,通过布隆过滤器,可以快速的确定出一个待定节点地址是否与布隆过滤器中所存储的节点地址相同,而不需要完全遍历整个高速缓存,不仅提高了效率,还可以缩短确定时间,而且,通过布隆过滤器,只需要使用1.5MB内存空间便可以足以保存100万个地址,具有极其高效的存储数据结构。
图4为本发明实施例提供的一种物联网中节点的地址确定装置的装置结构图,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述地址确定装置400包括获取单元401、查找单元402和确定单元403:
所述获取单元401,用于获取所述待定节点地址;
所述查找单元402,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;
所述确定单元403,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
可选的,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。
可选的,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
可选的,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
可选的,所述目标节点为所述物联网中的边界路由器,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
可见,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。
参阅图5,图5为本发明实施例提供的一种目标节点的硬件结构示意图,所述网管系统位于物联网中,为所述物联网中的一个节点,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述目标节点500包括存储器501和接收器502,以及分别与所述存储器501和所述接收器502连接的处理器503,所述存储器501用于存储一组程序指令,所述处理器503用于调用所述存储器501存储的程序指令执行如下操作:
触发所述接收器502获取所述待定节点地址;
将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;
通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
可选地,所述处理器503可以为中央处理器(Central Processing Unit,CPU),所述存储器501可以为随机存取存储器(Random Access Memory,RAM)类型的内部存储器,所述接收器502可以包含普通物理接口,所述物理接口可以为以太(Ethernet)接口或异步传输模式(Asynchronous Transfer Mode,ATM)接口。所述处理器503、接收器502和存储器501可以集成为一个或多个独立的电路或硬件,如:专用集成电路(Application SpecificIntegrated Circuit,ASIC)。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种物联网中节点的地址确定方法,其特征在于,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述方法包括:
目标节点获取所述待定节点地址,所述目标节点为所述物联网中的端节点、路由器6LR或边界路由器6LBR;
所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器,所述布隆过滤器通过散列函数表中的项目位置保存节点地址的散列函数;
所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,具体包括:
所述目标过滤器根据所述待定节点地址生成散列函数,并根据所述散列函数以及所述散列函数表进行查找;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
2.根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:
所述端节点生成所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器6LR发起携带有所述待定节点地址的邻居请求。
3.根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的路由器6LR,所述目标节点获取所述待定节点地址,包括:
所述路由器6LR通过接收到的邻居请求获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器6LR不是重复的节点地址,所述路由器6LR向所述物联网中的边界路由器6LBR发送携带有所述待定节点地址的重复地址请求DAR;
若确定出所述待定节点地址相对于所述路由器6LR是重复的节点地址,所述路由器6LR将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
4.根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的路由器6LR,所述目标节点获取所述待定节点地址,包括:
所述路由器6LR通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述路由器6LR不是重复的节点地址,所述路由器6LR忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
5.根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的边界路由器6LBR,所述目标节点获取所述待定节点地址,包括:
所述边界路由器6LBR通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:
若确定出所述待定节点地址相对于所述边界路由器6LBR不是重复的节点地址,所述边界路由器6LBR忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
6.一种物联网中节点的地址确定装置,其特征在于,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述装置包括获取单元、查找单元和确定单元:
所述获取单元,用于获取所述待定节点地址,所述节点为所述物联网中的端节点、路由器6LR或边界路由器6LBR;
所述查找单元,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器,所述布隆过滤器通过散列函数表中的项目位置保存节点地址的散列函数;
所述查找单元,具体用于所述目标过滤器根据所述待定节点地址生成散列函数,并根据所述散列函数以及所述散列函数表进行查找匹配;
所述确定单元,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。
7.根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器6LR发起携带有所述待定节点地址的邻居请求。
8.根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的路由器6LR,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器6LR不是重复的节点地址,向所述物联网中的边界路由器6LBR发送携带有所述待定节点地址的重复地址请求DAR;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器6LR是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。
9.根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的路由器6LR,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器6LR不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。
10.根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的边界路由器6LBR,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;
所述查找单元还用于若确定出所述待定节点地址相对于所述边界路由器6LBR不是重复的节点地址,所述边界路由器6LBR忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611145754.1A CN106850541B (zh) | 2016-12-13 | 2016-12-13 | 一种物联网中节点的地址确定方法和装置 |
PCT/CN2017/114823 WO2018108009A1 (zh) | 2016-12-13 | 2017-12-06 | 一种物联网中节点的地址确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611145754.1A CN106850541B (zh) | 2016-12-13 | 2016-12-13 | 一种物联网中节点的地址确定方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850541A CN106850541A (zh) | 2017-06-13 |
CN106850541B true CN106850541B (zh) | 2020-11-06 |
Family
ID=59140198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611145754.1A Active CN106850541B (zh) | 2016-12-13 | 2016-12-13 | 一种物联网中节点的地址确定方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106850541B (zh) |
WO (1) | WO2018108009A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850541B (zh) * | 2016-12-13 | 2020-11-06 | 华为技术有限公司 | 一种物联网中节点的地址确定方法和装置 |
CN107368437B (zh) * | 2017-07-24 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种末级缓存管理方法及系统 |
CN109542906B (zh) * | 2018-11-20 | 2021-11-30 | 北京小米移动软件有限公司 | 设备判定方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150483A (zh) * | 2007-11-02 | 2008-03-26 | 华为技术有限公司 | 路由表调整方法、路由查询方法和装置及路由表存储装置 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN102333036A (zh) * | 2011-10-17 | 2012-01-25 | 中兴通讯股份有限公司 | 一种实现高速路由查找的方法和系统 |
CN105763455A (zh) * | 2016-04-13 | 2016-07-13 | 南京邮电大学 | 一种基于6LoWPAN邻居发现的节点安全注册方法 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9608863B2 (en) * | 2014-10-17 | 2017-03-28 | Cisco Technology, Inc. | Address autoconfiguration using bloom filter parameters for unique address computation |
CN106850541B (zh) * | 2016-12-13 | 2020-11-06 | 华为技术有限公司 | 一种物联网中节点的地址确定方法和装置 |
-
2016
- 2016-12-13 CN CN201611145754.1A patent/CN106850541B/zh active Active
-
2017
- 2017-12-06 WO PCT/CN2017/114823 patent/WO2018108009A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150483A (zh) * | 2007-11-02 | 2008-03-26 | 华为技术有限公司 | 路由表调整方法、路由查询方法和装置及路由表存储装置 |
CN101901248A (zh) * | 2010-04-07 | 2010-12-01 | 北京星网锐捷网络技术有限公司 | 一种布隆过滤器的生成、更新以及查询元素方法和装置 |
CN102333036A (zh) * | 2011-10-17 | 2012-01-25 | 中兴通讯股份有限公司 | 一种实现高速路由查找的方法和系统 |
CN105991655A (zh) * | 2015-03-16 | 2016-10-05 | 思科技术公司 | 缓解基于邻居发现的拒绝服务攻击 |
CN105763455A (zh) * | 2016-04-13 | 2016-07-13 | 南京邮电大学 | 一种基于6LoWPAN邻居发现的节点安全注册方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106850541A (zh) | 2017-06-13 |
WO2018108009A1 (zh) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105635343B (zh) | 应用于dns查询的ip地址列表存储和查询方法 | |
Geravand et al. | Bloom filter applications in network security: A state-of-the-art survey | |
EP2560327B1 (en) | Routing table establishment method and device | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
CN106850541B (zh) | 一种物联网中节点的地址确定方法和装置 | |
CN100388725C (zh) | 一种刷新硬件表项的方法 | |
CN101621414A (zh) | 一种网络资源及拓扑的发现方法及装置 | |
CN113315814B (zh) | 一种IPv6网络边界设备快速发现方法及系统 | |
CN107547407A (zh) | 报文传输方法、装置和实现装置 | |
Reshmi et al. | Filter-based address autoconfiguration protocol (FAACP) for duplicate address detection and recovery in MANETs | |
CN110557335B (zh) | 三态内容寻址存储器tcam表项处理方法及装置 | |
Moreira et al. | Capacity and robustness tradeoffs in Bloom filters for distributed applications | |
US7948916B2 (en) | Method and apparatus for discovering topology information in a network | |
CN105763455B (zh) | 一种基于6LoWPAN邻居发现的节点安全注册方法 | |
Moeini et al. | Service specification and discovery in IoT networks | |
US20230041395A1 (en) | Method and Device for Processing Routing Table Entries | |
US20110007747A1 (en) | Internet Protocol Trace Back Using Dynamic Reconfigurable Logic Hardware | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
CN104994186A (zh) | 媒体访问控制地址的查询方法、处理器及装置 | |
Gao et al. | A bloom filter-based dual-layer routing scheme in large-scale mobile networks | |
KR101068716B1 (ko) | 센서 네트워크에서 패킷의 송신 경로를 역추적하는 방법 | |
Teubler et al. | Memory efficient forwarding information base for content-centric networking | |
CN109995659B (zh) | 一种网络通信方法及装置 | |
Pal et al. | Bloom filters & their applications | |
Hickman et al. | A variable length address assignment scheme for 6LoWPAN |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220119 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: Super fusion Digital Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |