WO2018108009A1 - Method and device for determining address of node in internet of things - Google Patents

Method and device for determining address of node in internet of things Download PDF

Info

Publication number
WO2018108009A1
WO2018108009A1 PCT/CN2017/114823 CN2017114823W WO2018108009A1 WO 2018108009 A1 WO2018108009 A1 WO 2018108009A1 CN 2017114823 W CN2017114823 W CN 2017114823W WO 2018108009 A1 WO2018108009 A1 WO 2018108009A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
address
determined
target
node address
Prior art date
Application number
PCT/CN2017/114823
Other languages
French (fr)
Chinese (zh)
Inventor
热西提 桑吉阿卜都
陈国义
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2018108009A1 publication Critical patent/WO2018108009A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • H04L45/7459Address table lookup; Address filtering using hashing using Bloom filters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Definitions

  • the present invention relates to the field of data processing, and in particular, to a method and apparatus for determining an address of a node in an Internet of Things.
  • the Internet of Things is designed and developed to connect with any possible objects around us. This type of connectivity can be achieved not only through extension/stabilization technology (Wi-Fi, Ethernet, etc.), but also through IoT through new technologies such as Bluetooth low energy, RFID and other technologies. Addressing these devices in a uniform manner will ultimately enable smoother and more standardized communication between these connected devices.
  • the Internet Protocol Version 6 over low power wireless personal area network (6LoWPAN) is an Internet of Things (IoT network) in which the use of nodes is limited. Technology is connected.
  • the network nodes in the 6LoWPAN network include a 6LoWPAN end Node (6LN) of the low-power wireless personal area network under IPv6, a router (6LoWPAN Router, 6LR) of the low-power wireless personal area network under IPv6, and IPv6.
  • 6LoWPAN Border Router (6LBR) for low-power wireless personal area networks.
  • the 6LN is connected to the 6LR and 6LR, either directly or through other 6LRs connected to the 6LBR.
  • connection relationship between the network nodes in the 6LoWPAN network refer to the network topology (6LoWPAN Topology) shown in Figure 1.
  • the nodes of the triangle are 6LN
  • the nodes of the circle are 6LR
  • the nodes of the rectangle are 6LBR.
  • the 6LN in the 6LoWPAN network needs to periodically allocate and change the temporary address (for example, an independent and identically distributed (IID) interface identifier). Since the address needs to be replaced frequently, it is necessary to ensure that the replaced address cannot be duplicated with other 6LN addresses, or cannot be replaced with an already used address. Otherwise, an address will point to a different node, causing a network error.
  • IID independent and identically distributed
  • the conventional method is to perform Duplicate Address Detection (DAD) by forming an address each time 6LN is formed in the 6LoWPAN network.
  • DAD Duplicate Address Detection
  • Each 6LN maintains the local repository as the address generated by the verification.
  • the 6LR maintains the Neighbor Cache Entry (NCE) as the basis for the 6LN to implement the above functions.
  • the 6LBR maintains the DAD table with three fields. Because the judgment address is repeated.
  • SLAAC Stateless address auto configuration
  • each 6LN forms an address such as an IP address, and DAD is performed between 6LR and 6LBR for the address.
  • 6LoWPAN provides multi-hop end-to-end DAD from 6LN to 6LBR.
  • a Duplicate Address Request can be sent by the 6LR, and the 6LBR replies with a Duplicate Address Confirmation (DAC) to determine if the address is the address being used.
  • the DAD cycle requires a large amount of memory to store different nodes Addressing information. The information is stored in the traditional database, which requires more traversal time and space efficiency. However, there is no better solution at present.
  • an embodiment of the present invention provides a method and a device for determining an address of a node in an Internet of Things, which can utilize the effective data structure of the Bloom filter to traverse the cache at a high speed in a short time, and has high space efficiency.
  • the present invention provides a method for determining an address of a node in an Internet of Things, wherein each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and performs duplicate address detection.
  • the method includes:
  • the target node acquires the to-be-determined node address
  • the target node takes the to-be-determined node address as an input parameter and brings it into a target filter for repeated address lookup.
  • the target filter is configured by the target node to store the used node address. filter;
  • the target node determines whether the to-be-determined node address is a duplicate node address by using the target filter.
  • the target node is an end node in the Internet of Things, and the target node acquires the to-be-determined node address, including:
  • the end node generates the to-be-determined node address
  • the end node If it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, the end node initiates a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
  • the target node is a router in the Internet of Things, and the target node acquires the to-be-determined node address, including:
  • the router acquires the to-be-determined node address carried by the received neighbor request
  • the router sends a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
  • the router sends a result of the sender requesting the neighbor request to return the pending node address as a duplicate node address.
  • the target node is a router in the Internet of Things, and the target node acquires the to-be-determined node address, including:
  • the router acquires the to-be-determined node address carried by the received duplicate address confirmation DAC;
  • the router ignores the DAR corresponding to the DAC and adds the pending node address to the target filter.
  • the target node is a boundary road in the Internet of Things
  • the target node obtains the to-be-determined node address, including:
  • the router acquires the to-be-determined node address carried by the received duplicate address request DAR;
  • the router ignores the DAR and adds the pending node address to the target filter.
  • the present invention provides an address determining apparatus for a node in an Internet of Things, wherein each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and performs duplicate address detection.
  • the device includes an obtaining unit, a searching unit, and a determining unit:
  • the obtaining unit is configured to acquire the address of the to-be-determined node
  • the searching unit is configured to bring the to-be-determined node address as an input parameter into a target filter for performing a duplicate address search, where the target filter is configured by the target node, and is used to store a node address being used. Bloom filter;
  • the determining unit is configured to determine, by using a lookup of the target filter, whether the to-be-determined node address is a duplicate node address.
  • the target node is an end node in the Internet of Things
  • the obtaining unit is further configured to generate the to-be-determined node address
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, initiate a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
  • the target node is a router in the Internet of Things
  • the acquiring unit is further configured to acquire, by using the received neighbor request, the carried-on node address to be carried;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, send a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is a duplicate node address, the sender that sends the neighbor request returns a result that the pending node address is a duplicate node address.
  • the target node is a router in the Internet of Things
  • the acquiring unit is further configured to acquire, by using the received duplicate address confirmation DAC, the carried node to be carried. address;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, ignore the DAR corresponding to the DAC, and add the to-be-determined node address to the target filter. .
  • the target node is a border router in the Internet of Things
  • the acquiring unit is further configured to request the DAR to be carried by the received duplicate address request Node address
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the to-be-determined node address to the target filter.
  • each node in the Internet of Things is equipped with a Bloom filter, which passes through Bloom.
  • the filter records the node address being used.
  • the target node can take the pending node address as an input parameter and bring it into its own configured target filter.
  • Duplicate address lookup in a Bloom filter Since the target filter stores the address of the node being used, the effective data structure of the Bloom filter can be used to match the Bloom filter according to the input parameters obtained from the address of the node to be determined.
  • the hash function table can determine whether the input parameter is in the hash function table in a short time, so it is possible to improve the efficiency of determining the address without traversing all the cache contents.
  • FIG. 1 is a schematic diagram of a topology structure between network nodes in a 6LoWPAN network
  • FIG. 2 is a flowchart of a method for determining an address of a node in an Internet of Things according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of performing DAD through a Bloom filter in a 6LoWPAN network according to an embodiment of the present invention
  • FIG. 4 is a structural diagram of an apparatus for determining an address of a node in an Internet of Things according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of hardware of a target node according to an embodiment of the present invention.
  • each node involved in the Internet of Things needs to traverse its used address information stored to avoid the newly generated node address being the used node address.
  • the traditional way of traversing memory takes a long time, resulting in low efficiency in updating node addresses.
  • the present invention introduces a Bloom Filter (BF) for serving node address traversal in a DAD process
  • a Bloom filter is a data structure for a membership query. Widely used for stream classification and lookup structures in the network, the data stored in the Bloom filter will be set by the Bloom filter's hash table.
  • the Bloom filter can be used in 6LN, 6LR and 6LBR in the 6LoWPAN network to achieve a space efficient data structure.
  • the Bloom filter provides a matching or mismatched state for a large number of elements in a simple way.
  • the input elements are hashed using several hash functions, and the result is used to index the bitmap to set the corresponding bit, which is the position in the hash function table.
  • a corresponding hash function is generated according to the element, and the position of the generated hash function in the hash function table is queried, if all the generated hash functions are scattered The column function table is occupied, then you can determine that this element exists in the Bloom filter.
  • the Bloom filter has the following properties: The time it takes to add a node address or check the node address is constant and independent of the number of items in the filter. This will greatly reduce the retrieval time, and the effect of this matching time-consuming is in accordance with the application scenario of the present invention, that is, in judging whether there is a duplicate node address, the time for traversing the massive node address is greatly shortened.
  • the error of the unrecognized string to be identified that cannot be matched is determined to be a large increase. This case may be called a false positive (false Positive).
  • a false positive such as a large number of strings saved in a string bloom filter
  • the position in the column function table may be basically recorded. In this case, if a pending node address is input to the Bloom filter, the hash function value of the pending node address is in the corresponding position in the hash function table. It is very likely that the value of the hash function of the other node address that has been saved by the Bloom filter has been recorded.
  • the Bloom filter still determines that the address of the pending node matches the address of the self-storing node.
  • the degree of false positives in a Bloom filter increases exponentially as the amount of data stored in the Bloom filter increases, and it can be seen that the amount of data stored in the Bloom filter has a large effect on false positives. Due to the characteristics of the Bloom filter, the results determined by the Bloom filter as unmatched are accurate, and the accuracy of the results determined by the Bloom filter as a match may need to be discussed. This filtering effect is in line with the object of the present invention, since the address (IPv6) experiencing DAD will not be transmitted towards the 6LR in the direction of 6LBR until further review, if it is declared to exist in the Bloom filter's cache.
  • the efficiency of the Bloom filter depends on the number of hash functions, which is inversely proportional to the false positive. On the other hand, a higher number of hash functions reduces the speed of a given Bloom filter and also consumes the allocated memory faster. A comparison of this can be shown in Table 1 below:
  • the row can be the number of items in the Bloom filter; the false positive probability of the behavior of p (1p); the number of bits of the hash function table in the behavior of the Bloom filter; the behavior of k is a hash of the data
  • the number of positions recorded by the function in the hash function table, or the number of hash functions corresponding to a data; a is the number of addresses of the node address IPv6 (128 bits) that can be accommodated in the hash function table.
  • the IPv6 address can be stored in a memory efficient manner, and as the number of stored addresses increases, the time for searching using the Bloom filter can remain constant.
  • FIG. 2 is a flowchart of a method for determining an address of a node in the Internet of Things according to an embodiment of the present invention.
  • Each node in the network is configured with a Bloom filter, and the Bloom filter records the address of the node being used.
  • the method includes:
  • the target node acquires the to-be-determined node address.
  • the target node may be a node in the Internet of Things
  • the pending node address may be a newly generated node address of a node, but it has not been determined yet whether the newly generated node address is an already used address because Only when a newly generated node address is an unused address can it be updated to the node address of this node.
  • the present invention does not limit how the target node obtains the pending node address.
  • the main description is how the target node determines whether the pending ground address is a duplicate address relative to the target node.
  • the target node takes the to-be-determined node address as an input parameter, and brings it into a target filter for performing repeated address lookup.
  • the target filter is configured by the target node and is used to store the node address being used. Bloom filter.
  • the target node determines, by using the target filter, whether the address of the to-be-determined node is a duplicate node address.
  • the pending node address is input into the Bloom filter, and the hash function table in the Bloom filter is used for matching, which can be quickly determined. Whether the pending node address has been saved in the Bloom filter.
  • the target node needs to query the bundle filter for x.
  • the simple example x is a 10-bit long pending node address.
  • the 'k' of the hash function is 2, specifically including h(x) and g(x), where h(x) is an odd number selected from the input parameters and g(x) is an even number selected from the input parameters.
  • each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used.
  • the target node obtains the address of the pending node
  • the pending node address can be taken as an input parameter and brought into the target filter of its own configuration, that is, a Bloom filter for duplicate address lookup. Since the target filter stores the address of the node being used, the Bloom filter can be utilized.
  • the valid data structure matches the hash function table of the Bloom filter according to the input parameter obtained from the address of the node to be determined, and can determine whether the input parameter is in the hash function table in a short time, so it is not necessary to traverse all
  • the cached content improves the efficiency of determining the address.
  • the 6LoWPAN network in the Internet of Things and the nodes in the 6LoWPAN network will be described.
  • the node address can use a 128-bit IPv6 address, and IPv6 addressing is considered to be suitable for allocating an estimated 2000+ addresses per square meter on the earth.
  • IPv6 addressing is considered to be suitable for allocating an estimated 2000+ addresses per square meter on the earth.
  • This rich addressing scheme can be effectively applied to a large number of devices.
  • IPv6 In the Internet of Things, as the node address of a network device in each Internet of Things.
  • IPv6 With a larger address space, it also includes many other features, including SLAAC, end-to-end connectivity, mobility, security, etc., which play a vital role in the Internet of Things.
  • end nodes (6LN) in 6LoWPAN networks can utilize temporary address periodicity in order to be able to maintain privacy in the 6LoWPAN network. Change the address. This periodic address change needs to ensure that the changed address does not repeat, so a huge amount of query will be derived at each hop towards the 6LBR, that is, each pending one will be forwarded towards the 6LBR. Nodes, all need to have a huge amount of queries. Since the Bloom filter has a spatially efficient data structure with reduced/constant retrieval time, a Bloom filter can be used to reduce the memory overhead of traversing the node address in the relevant node.
  • multiple intermediate nodes (6LRs) are involved in the 6LoWPAN ND (node) until the DAD period reaches the border router (6LBR).
  • Each 6LR can use three different types of entries to maintain and consult the local tell cache: NCE to ensure that the generated address is not yet in use.
  • NCE the local tell cache
  • a Bloom filter can be used to implement such a cache. By optimizing the Bloom filter, the total time spent on each DAD cycle will be reduced.
  • FIG. 3 A schematic diagram of DAD through the Bloom filter in the 6LoWPAN network is shown in Figure 3.
  • ND Optimization node optimization
  • a Bloom filter can be set in the node of the 6LoWPAN network, for example, the black rectangle in the figure identifies the Bloom filter.
  • the arrows in both directions indicate the process of a DAD, where the solid arrow identifies the multi-hop DAR and the dashed arrow identifies the corresponding multi-hop DAC.
  • the 6LN maintains a local repository through which the local repository is verified to verify whether the newly generated node address is a "reserved address" or a duplicate address.
  • the 6LR can ensure that the newly generated node address is not a duplicate address through the maintained NCE.
  • the 6LBR maintains a DAD table with three fields and saves it in the Bloom filter, which saves time by determining whether the node address is duplicated.
  • the present invention/optimization suggests using an efficient data structure called a Bloom filter that is space efficient and provides faster retrieval time.
  • the node processing the DAD request needs to find the type of NCE of the address in question, and at that point it is done by traversing the entire cache to reach the decision.
  • the Bloom Filter cache can be traversed in a short constant time, and the result can cause the node to traverse or not traverse the NCE.
  • 6LBR where the Bloom filter cache can be queried before the DAD table to reduce the time to determine if the address in question is a duplicate.
  • 6LN an end node
  • 6LR a router
  • 6LBR a border router
  • the target node is an end node in the Internet of Things, and the target node obtains the address of the to-be-determined node, including:
  • the end node generates the to-be-determined node address.
  • the end node If it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, the end node initiates a Neighbor Solicitation (NS) carrying the pending node address to the router in the Internet of Things.
  • NS Neighbor Solicitation
  • the Bloom filter's cache is a suitable data structure that immediately verifies that the generated address is a forbidden/reserved address relative to the end node.
  • the target node is a router in the Internet of Things, and the target node acquires the address of the to-be-determined node, including:
  • the router acquires the to-be-determined node address carried by the received neighbor request.
  • the router sends a duplicate address request DAR carrying the pending node address to the border router in the Internet of Things.
  • the router sends a result of the sender requesting the neighbor request to return the pending node address as a duplicate node address.
  • the DAR for the pending node address may be sent to the 6LBR.
  • the 6LN neighbor request may be ignored by default.
  • the 6LR shall create a tentative address for the pending node address and send the DAR for the pending node address to the 6LBR.
  • the target node is a router in the Internet of Things, and the target node acquires the address of the to-be-determined node, including:
  • the router acquires the to-be-determined node address carried by the received duplicate address confirmation DAC;
  • the router ignores the DAR corresponding to the DAC and adds the pending node address to the target filter.
  • the 6LR identifies the temporary address as registered and sends the NA to 6LN.
  • the 6LR deletes the pending node address from the NCE and sends the NA to 6LN, the destination address is derived from EUI-64 .
  • the target node is a border router in the Internet of Things, and the target node acquires the to-be-served Fixed node address, including:
  • the router acquires the to-be-determined node address carried by the received duplicate address request DAR.
  • the router ignores the DAR and adds the pending node address to the target filter.
  • the 6LBR Since the 6LBR receives the DAR for the address of the pending node, the 6LBR can be judged according to the node address recorded in the DAD table:
  • the 6LBR sends the DAR carrying the status error to the 6LR.
  • the 6LBR can also create a new entry in the DAD table for the pending node address.
  • the Bloom filter it is possible to quickly determine whether a pending node address is the same as the node address stored in the Bloom filter, without completely traversing the entire cache, which not only improves efficiency, but also improves efficiency. Shorten the determination time, and with the Bloom filter, you only need to use 1.5MB of memory space to save enough 1 million addresses, with extremely efficient storage data structure.
  • the address determining apparatus 400 includes an obtaining unit 401, a searching unit 402, and a determining unit 403:
  • the obtaining unit 401 is configured to acquire the to-be-determined node address
  • the searching unit 402 is configured to bring the to-be-determined node address as an input parameter into a target filter for performing a duplicate address search, where the target filter is configured by the target node, and is used to store a node in use. Address of the Bloom filter;
  • the determining unit 403 is configured to determine, by using a lookup of the target filter, whether the to-be-determined node address is a duplicate node address.
  • the target node is an end node in the Internet of Things
  • the obtaining unit is further configured to generate the to-be-determined node address
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, initiate a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
  • the target node is a router in the Internet of Things
  • the acquiring unit is further configured to acquire, by using the received neighbor request, the carried-to-be-determined node address;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, send a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is a duplicate node address, the sender that sends the neighbor request returns a result that the pending node address is a duplicate node address.
  • the target node is a router in the Internet of Things
  • the acquiring unit is further configured to acquire, by using the received duplicate address confirmation DAC, the carried-to-be-determined node address;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, ignore the DAR corresponding to the DAC, and add the to-be-determined node address to the target filter. .
  • the target node is a border router in the Internet of Things
  • the acquiring unit is further configured to acquire the to-be-determined node address that is carried by the received duplicate address request DAR;
  • the searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the to-be-determined node address to the target filter.
  • each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used.
  • the target node obtains the address of the pending node
  • the pending node address can be taken as an input parameter and brought into the target filter of its own configuration, that is, a Bloom filter for duplicate address lookup. Since the target filter stores the address of the node being used, the Bloom filter can be utilized.
  • the valid data structure matches the hash function table of the Bloom filter according to the input parameter obtained from the address of the node to be determined, and can determine whether the input parameter is in the hash function table in a short time, so it is not necessary to traverse all
  • the cached content improves the efficiency of determining the address.
  • FIG. 5 is a schematic diagram of a hardware structure of a target node according to an embodiment of the present invention.
  • the network management system is located in an Internet of Things, and is a node in the Internet of Things.
  • a Bloom filter that records the node address being used by the Bloom filter.
  • the target node 500 includes a memory 501 and a receiver 502 for the pending node address, and the memory and the memory, respectively.
  • 501 is coupled to the receiver 502, the processor 503 is configured to store a set of program instructions, and the processor 503 is configured to invoke the program instructions stored in the memory 501 to perform the following operations:
  • the target filter is configured by the target node to store a Bloom filter of the node address being used;
  • the to-be-determined node address is a duplicate node address.
  • the processor 503 may be a central processing unit (CPU), and the memory 501 may be an internal memory of a random access memory (RAM) type, and the receiver 502 may be The physical interface may be an Ethernet interface or an Asynchronous Transfer Mode (ATM) interface.
  • the processor 503, the receiver 502, and the memory 501 may be integrated into one or more independent circuits or hardware, such as an Application Specific Integrated Circuit (ASIC).
  • ASIC Application Specific Integrated Circuit

Abstract

Disclosed are a method and device for determining an address of a node in the Internet of things. Each node in the Internet of things is configured with a Bloom filter; a currently used node address is recorded by the Bloom filter; in a DAD process, with regard to a node address to be determined, when a target node acquires the node address to be determined, the target node may use the node address to be determined as an input parameter and introduces same into a target filter configured thereby, namely a Bloom filter, so as to carry out a duplicate address search. Since the currently used node address is stored in the target filter, an effective data structure of the Bloom filter may be used. According to a hash function table of a Bloom filter matching the input parameter obtained by means of the node address to be determined, it can be determined whether the input parameter is in the hash function table in a very short time, such that not all cache content needs to be traversed, and address determination efficiency is improved.

Description

一种物联网中节点的地址确定方法和装置Method and device for determining address of node in internet of things
本申请要求于2016年12月13日提交中国专利局、申请号为201611145754.1、申请名称为“一种物联网中节点的地址确定方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。The present application claims priority to Chinese Patent Application No. 201611145754.1, filed on Dec. 13, 2016, the entire disclosure of which is incorporated herein by reference. Combined in this application.
技术领域Technical field
本发明涉及数据处理领域,特别是涉及一种物联网中节点的地址确定方法和装置。The present invention relates to the field of data processing, and in particular, to a method and apparatus for determining an address of a node in an Internet of Things.
背景技术Background technique
物联网(Internet of Things,IoT)被设计和制定出来连接我们周围的任何可能的对象。这规模的种连接不仅能通过扩展/稳定技术(Wi-Fi,以太网等)来实现,还可以在IoT中通过一些新技术例如蓝牙低功耗、射频识别RFID等技术实现。以统一的方式寻址这些设备将最终实现这些连接的设备之间的更平滑和标准化的通信。The Internet of Things (IoT) is designed and developed to connect with any possible objects around us. This type of connectivity can be achieved not only through extension/stabilization technology (Wi-Fi, Ethernet, etc.), but also through IoT through new technologies such as Bluetooth low energy, RFID and other technologies. Addressing these devices in a uniform manner will ultimately enable smoother and more standardized communication between these connected devices.
互联网协议第6版(IPv6)下的低功耗无线个人区域网络(Internet Protocol Version 6 over 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。The Internet Protocol Version 6 over low power wireless personal area network (6LoWPAN) is an Internet of Things (IoT network) in which the use of nodes is limited. Technology is connected. The network nodes in the 6LoWPAN network include a 6LoWPAN end Node (6LN) of the low-power wireless personal area network under IPv6, a router (6LoWPAN Router, 6LR) of the low-power wireless personal area network under IPv6, and IPv6. 6LoWPAN Border Router (6LBR) for low-power wireless personal area networks. The 6LN is connected to the 6LR and 6LR, either directly or through other 6LRs connected to the 6LBR. For the connection relationship between the network nodes in the 6LoWPAN network, refer to the network topology (6LoWPAN Topology) shown in Figure 1. The nodes of the triangle are 6LN, the nodes of the circle are 6LR, and the nodes of the rectangle are 6LBR.
在6LoWPAN网络中,各个节点之间需要实现对隐私的保护,为此,6LoWPAN网络中的6LN需要定期分配和更改临时地址(例如独立同分布(independent and identically distributed,IID)的接口标识符)。由于地址需要经常更换,需要保证更换的地址与其他6LN的地址不能重复,或者说不能更换为已经被使用的地址,否则会导致一个地址指向不同的节点,造成网络错误。In the 6LoWPAN network, privacy protection needs to be implemented between the nodes. For this reason, the 6LN in the 6LoWPAN network needs to periodically allocate and change the temporary address (for example, an independent and identically distributed (IID) interface identifier). Since the address needs to be replaced frequently, it is necessary to ensure that the replaced address cannot be duplicated with other 6LN addresses, or cannot be replaced with an already used address. Otherwise, an address will point to a different node, causing a network error.
为了防止上述问题,传统方式是通过在6LoWPAN网络中每次6LN形成一个地址时进行一次重复地址检测(Duplicate Address Detection,DAD)。其中,各个6LN会维护本地储存库作为验证生成的地址是否重复,6LR会维护邻居缓存条目(Neighbor Cache Entry,NCE)作为6LN实现上述功能的判断依据,6LBR会维护一般具有三个字段的DAD表由于判断地址重复。在执行DAD的过程中,通过使用无状态地址自动配置(Stateless address auto configuration,SLAAC),每个6LN形成一个地址例如IP地址,并且为该地址在6LR和6LBR之间进行DAD。6LoWPAN提供从6LN到6LBR的多跳的端到端DAD。重复地址请求(Duplicate Address Request,DAR)可以由6LR发送,并由6LBR通过重复地址确认(Duplicate Address Confirmation,DAC)进行回复来确定该地址是否是正在使用的地址。DAD周期需要大量的存储器来存储不同节点 处的寻址信息。信息存储在传统数据库中,需要更多的遍历时间,空间效率低下,然而目前并没有较好的解决方案。In order to prevent the above problem, the conventional method is to perform Duplicate Address Detection (DAD) by forming an address each time 6LN is formed in the 6LoWPAN network. Each 6LN maintains the local repository as the address generated by the verification. The 6LR maintains the Neighbor Cache Entry (NCE) as the basis for the 6LN to implement the above functions. The 6LBR maintains the DAD table with three fields. Because the judgment address is repeated. In the process of performing DAD, by using Stateless address auto configuration (SLAAC), each 6LN forms an address such as an IP address, and DAD is performed between 6LR and 6LBR for the address. 6LoWPAN provides multi-hop end-to-end DAD from 6LN to 6LBR. A Duplicate Address Request (DAR) can be sent by the 6LR, and the 6LBR replies with a Duplicate Address Confirmation (DAC) to determine if the address is the address being used. The DAD cycle requires a large amount of memory to store different nodes Addressing information. The information is stored in the traditional database, which requires more traversal time and space efficiency. However, there is no better solution at present.
发明内容Summary of the invention
为了解决上述技术问题,本发明实施例提供了一种物联网中节点的地址确定方法和装置,可以利用布隆过滤器的有效数据结构,在很短的时间内高速遍历缓存,空间效率高。In order to solve the above technical problem, an embodiment of the present invention provides a method and a device for determining an address of a node in an Internet of Things, which can utilize the effective data structure of the Bloom filter to traverse the cache at a high speed in a short time, and has high space efficiency.
第一方面,本发明提供了一种物联网中节点的地址确定方法,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述方法包括:In a first aspect, the present invention provides a method for determining an address of a node in an Internet of Things, wherein each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and performs duplicate address detection. In the DAD process, for a pending node address, the method includes:
目标节点获取所述待定节点地址;The target node acquires the to-be-determined node address;
所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;The target node takes the to-be-determined node address as an input parameter and brings it into a target filter for repeated address lookup. The target filter is configured by the target node to store the used node address. filter;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。The target node determines whether the to-be-determined node address is a duplicate node address by using the target filter.
在第一方面的第一种可能的实现方式中,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:In a first possible implementation manner of the first aspect, the target node is an end node in the Internet of Things, and the target node acquires the to-be-determined node address, including:
所述端节点生成所述待定节点地址;The end node generates the to-be-determined node address;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。If it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, the end node initiates a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
在第一方面的第二种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:In a second possible implementation manner of the first aspect, the target node is a router in the Internet of Things, and the target node acquires the to-be-determined node address, including:
所述路由器通过接收到的邻居请求获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received neighbor request;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;If it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router sends a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
若确定出所述待定节点地址相对于所述路由器是重复的节点地址,所述路由器将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。If it is determined that the pending node address is a duplicate node address with respect to the router, the router sends a result of the sender requesting the neighbor request to return the pending node address as a duplicate node address.
在第一方面的第三种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:In a third possible implementation manner of the first aspect, the target node is a router in the Internet of Things, and the target node acquires the to-be-determined node address, including:
所述路由器通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received duplicate address confirmation DAC;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router ignores the DAR corresponding to the DAC and adds the pending node address to the target filter.
在第一方面的第四种可能的实现方式中,所述目标节点为所述物联网中的边界路 由器,所述目标节点获取所述待定节点地址,包括:In a fourth possible implementation manner of the first aspect, the target node is a boundary road in the Internet of Things The target node obtains the to-be-determined node address, including:
所述路由器通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received duplicate address request DAR;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the pending node address to the target filter.
第二方面,本发明提供了一种物联网中节点的地址确定装置,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述装置包括获取单元、查找单元和确定单元:In a second aspect, the present invention provides an address determining apparatus for a node in an Internet of Things, wherein each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and performs duplicate address detection. In the DAD process, for a pending node address, the device includes an obtaining unit, a searching unit, and a determining unit:
所述获取单元,用于获取所述待定节点地址;The obtaining unit is configured to acquire the address of the to-be-determined node;
所述查找单元,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;The searching unit is configured to bring the to-be-determined node address as an input parameter into a target filter for performing a duplicate address search, where the target filter is configured by the target node, and is used to store a node address being used. Bloom filter;
所述确定单元,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。The determining unit is configured to determine, by using a lookup of the target filter, whether the to-be-determined node address is a duplicate node address.
在第二方面的第一种可能的实现方式中,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;In a first possible implementation manner of the second aspect, the target node is an end node in the Internet of Things, and the obtaining unit is further configured to generate the to-be-determined node address;
所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, initiate a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
在第二方面的第二种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;In a second possible implementation manner of the second aspect, the target node is a router in the Internet of Things, and the acquiring unit is further configured to acquire, by using the received neighbor request, the carried-on node address to be carried;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, send a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。The searching unit is further configured to: if it is determined that the to-be-determined node address is a duplicate node address, the sender that sends the neighbor request returns a result that the pending node address is a duplicate node address.
在第二方面的第三种可能的实现方式中,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;In a third possible implementation manner of the second aspect, the target node is a router in the Internet of Things, and the acquiring unit is further configured to acquire, by using the received duplicate address confirmation DAC, the carried node to be carried. address;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, ignore the DAR corresponding to the DAC, and add the to-be-determined node address to the target filter. .
在第二方面的第四种可能的实现方式中,所述目标节点为所述物联网中的边界路由器,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;In a fourth possible implementation manner of the second aspect, the target node is a border router in the Internet of Things, and the acquiring unit is further configured to request the DAR to be carried by the received duplicate address request Node address
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the to-be-determined node address to the target filter.
由上述技术方案可以看出,在物联网中各个节点配置有布隆过滤器,通过布隆过 滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。It can be seen from the above technical solution that each node in the Internet of Things is equipped with a Bloom filter, which passes through Bloom. The filter records the node address being used. During the DAD process, for the pending node address, when the target node obtains the pending node address, the target node can take the pending node address as an input parameter and bring it into its own configured target filter. Duplicate address lookup in a Bloom filter. Since the target filter stores the address of the node being used, the effective data structure of the Bloom filter can be used to match the Bloom filter according to the input parameters obtained from the address of the node to be determined. The hash function table can determine whether the input parameter is in the hash function table in a short time, so it is possible to improve the efficiency of determining the address without traversing all the cache contents.
附图说明DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the embodiments or the description of the prior art will be briefly described below. Obviously, the drawings in the following description are only It is a certain embodiment of the present invention, and other drawings can be obtained from those skilled in the art without any inventive labor.
图1为一种6LoWPAN网络中各个网络节点之间的拓扑结构示意图;1 is a schematic diagram of a topology structure between network nodes in a 6LoWPAN network;
图2为本发明实施例提供的一种物联网中节点的地址确定方法的方法流程图;2 is a flowchart of a method for determining an address of a node in an Internet of Things according to an embodiment of the present invention;
图3为本发明实施例提供的一种6LoWPAN网络中通过布隆过滤器进行DAD的示意图;3 is a schematic diagram of performing DAD through a Bloom filter in a 6LoWPAN network according to an embodiment of the present invention;
图4为本发明实施例提供的一种物联网中节点的地址确定装置的装置结构图;4 is a structural diagram of an apparatus for determining an address of a node in an Internet of Things according to an embodiment of the present invention;
图5为本发明实施例提供的一种目标节点的硬件结构示意图。FIG. 5 is a schematic structural diagram of hardware of a target node according to an embodiment of the present invention.
具体实施方式detailed description
下面结合附图,对本发明的实施例进行描述。Embodiments of the present invention will be described below with reference to the accompanying drawings.
鉴于使用传统技术进行DAD的过程中,物联网中涉及到的每一个节点都需要遍历自身所存储的已用地址信息,以避免出现新生成的节点地址是已经使用的节点地址。而传统方式遍历内存所耗时较长,导致更新节点地址的效率很低。In view of the traditional technology for DAD, each node involved in the Internet of Things needs to traverse its used address information stored to avoid the newly generated node address being the used node address. The traditional way of traversing memory takes a long time, resulting in low efficiency in updating node addresses.
为此,本发明引入了布隆过滤器(Bloom Filter,BF)来用于服务于DAD过程中的节点地址遍历,布隆过滤器是一种用于存在性检测(membership query)的数据结构,广泛用于网络中的流分类和查找结构,保存在布隆过滤器中的数据将通过布隆过滤器的散列函数表(hash table)进行置位。To this end, the present invention introduces a Bloom Filter (BF) for serving node address traversal in a DAD process, and a Bloom filter is a data structure for a membership query. Widely used for stream classification and lookup structures in the network, the data stored in the Bloom filter will be set by the Bloom filter's hash table.
布隆过滤器可以在6LoWPAN网络中的6LN,6LR和6LBR中,以实现空间高效的数据结构。布隆过滤器是通过简单的方式,为海量元素提供匹配或不匹配状态。输入元素使用几个散列函数进行散列,结果用于索引位图以设置相应的位,即在散列函数表中的位置。对于输入到布隆过滤器中的元素,会根据该元素生成对应散列函数,并查询所生成的散列函数在散列函数表中所对应的位置,如果所生成的所有散列函数在散列函数表中均被占用了,那么就可以确定这个元素存在于布隆过滤器中。The Bloom filter can be used in 6LN, 6LR and 6LBR in the 6LoWPAN network to achieve a space efficient data structure. The Bloom filter provides a matching or mismatched state for a large number of elements in a simple way. The input elements are hashed using several hash functions, and the result is used to index the bitmap to set the corresponding bit, which is the position in the hash function table. For the element input into the Bloom filter, a corresponding hash function is generated according to the element, and the position of the generated hash function in the hash function table is queried, if all the generated hash functions are scattered The column function table is occupied, then you can determine that this element exists in the Bloom filter.
布隆过滤器具有以下属性:添加节点地址或检查节点地址所花费的时间是常数,并且与过滤器中的项目数无关。这将大大减少检索时间,而这种匹配耗时的效果符合本发明的应用场景,即在判断是否有重复节点地址过程中,遍历海量节点地址的时间会大幅缩短。The Bloom filter has the following properties: The time it takes to add a node address or check the node address is constant and independent of the number of items in the filter. This will greatly reduce the retrieval time, and the effect of this matching time-consuming is in accordance with the application scenario of the present invention, that is, in judging whether there is a duplicate node address, the time for traversing the massive node address is greatly shortened.
由于布隆过滤器的存储空间有限,当保存的数据数量较多时,将原本匹配不到的待识别字符串错误确定为能够匹配到的情况会大量增加,这种情况可以称为假阳性(false positive)。假阳性的情况例如字符串布隆过滤器中保存的大量的字符串后,散 列函数表中的位置可能基本上都被记录了,这种情况下,若向布隆过滤器中输入一个待定节点地址,该待定节点地址的散列函数值在散列函数表中对应的位置很有可能都已经被该布隆过滤器保存的其他节点地址的散列函数值所记录了,这种情况下,即使该待定节点地址与该布隆过滤器所保存的节点地址均不匹配,但是由于该待定节点地址的散列函数值在散列函数表中对应的位置都有记录,故布隆过滤器依然会确定该待定节点地址是与自身保存节点地址相匹配的结论。一个布隆过滤器的假阳性的程度随着这个布隆过滤器中所保存数据的数量增加而指数级增加,可见,布隆过滤器中保存数据的数量对假阳性的影响很大。由于布隆过滤器的特点,被布隆过滤器确定为未匹配的结果是准确的,而被布隆过滤器确定为匹配的结果的准确性可能需要商榷。而这种过滤效果符合本发明的目的,因为经历DAD的地址(IPv6)在进一步审查之前不会朝着6LBR的方向向着6LR传输,如果它被声明存在于布隆过滤器的高速缓存中的话。Due to the limited storage space of the Bloom filter, when the number of saved data is large, the error of the unrecognized string to be identified that cannot be matched is determined to be a large increase. This case may be called a false positive (false Positive). In the case of a false positive, such as a large number of strings saved in a string bloom filter, The position in the column function table may be basically recorded. In this case, if a pending node address is input to the Bloom filter, the hash function value of the pending node address is in the corresponding position in the hash function table. It is very likely that the value of the hash function of the other node address that has been saved by the Bloom filter has been recorded. In this case, even if the pending node address does not match the node address saved by the Bloom filter, However, since the value of the hash function of the to-be-determined node address is recorded in the corresponding position in the hash function table, the Bloom filter still determines that the address of the pending node matches the address of the self-storing node. The degree of false positives in a Bloom filter increases exponentially as the amount of data stored in the Bloom filter increases, and it can be seen that the amount of data stored in the Bloom filter has a large effect on false positives. Due to the characteristics of the Bloom filter, the results determined by the Bloom filter as unmatched are accurate, and the accuracy of the results determined by the Bloom filter as a match may need to be discussed. This filtering effect is in line with the object of the present invention, since the address (IPv6) experiencing DAD will not be transmitted towards the 6LR in the direction of 6LBR until further review, if it is declared to exist in the Bloom filter's cache.
布隆过滤器的效率取决于散列函数的数量,其与假阳性成反比。另一方面,较高数量的散列函数降低了给定布隆过滤器的速度,并且还更快地占用所分配的存储器。这方面的比较可以如下表1所示:The efficiency of the Bloom filter depends on the number of hash functions, which is inversely proportional to the false positive. On the other hand, a higher number of hash functions reduces the speed of a given Bloom filter and also consumes the allocated memory faster. A comparison of this can be shown in Table 1 below:
Figure PCTCN2017114823-appb-000001
Figure PCTCN2017114823-appb-000001
表1Table 1
其中,n所在行可以为布隆过滤器中的项目数;p所在行为假阳性概率(1p);m所在行为布隆过滤器中散列函数表的位数;k所在行为一个数据的散列函数在散列函数表中所记录位置的数量,或者说一个数据所对应的散列函数的个数;a所在行为散列函数表中可以容纳的节点地址IPv6(128位)的地址数。Where n, the row can be the number of items in the Bloom filter; the false positive probability of the behavior of p (1p); the number of bits of the hash function table in the behavior of the Bloom filter; the behavior of k is a hash of the data The number of positions recorded by the function in the hash function table, or the number of hash functions corresponding to a data; a is the number of addresses of the node address IPv6 (128 bits) that can be accommodated in the hash function table.
可见,通过布隆过滤器,IPv6地址可以以存储器高效的方式存储,而且随着所存储地址的数量的增加,使用布隆过滤器进行检索的时间依然可以保持恒定。It can be seen that through the Bloom filter, the IPv6 address can be stored in a memory efficient manner, and as the number of stored addresses increases, the time for searching using the Bloom filter can remain constant.
接下来,将详细介绍如何将布隆过滤器应用到物联网中的地址确定过程中,图2为本发明实施例提供的一种物联网中节点的地址确定方法的方法流程图,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,所述方法包括:Next, a detailed description of how to apply the Bloom filter to the address determination process in the Internet of Things, FIG. 2 is a flowchart of a method for determining an address of a node in the Internet of Things according to an embodiment of the present invention. Each node in the network is configured with a Bloom filter, and the Bloom filter records the address of the node being used. In the process of performing DAD, for the address of the pending node, the method includes:
S201:目标节点获取所述待定节点地址。S201: The target node acquires the to-be-determined node address.
举例说明,目标节点可以是物联网中的一个节点,而待定节点地址可以是一个节点所新生成的节点地址,不过暂时尚未确定这个新生成的节点地址是否是一个已经被使用过的地址,因为只有在一个新生成的节点地址是未被使用过的地址时,才能将其更新为这个节点的节点地址。 For example, the target node may be a node in the Internet of Things, and the pending node address may be a newly generated node address of a node, but it has not been determined yet whether the newly generated node address is an already used address because Only when a newly generated node address is an unused address can it be updated to the node address of this node.
本发明不限定目标节点是如何获取该待定节点地址,在本实施例中,主要说明的是目标节点是如何判断待定接地地址是否是相对于目标节点的重复地址。The present invention does not limit how the target node obtains the pending node address. In this embodiment, the main description is how the target node determines whether the pending ground address is a duplicate address relative to the target node.
S202:所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器。S202: The target node takes the to-be-determined node address as an input parameter, and brings it into a target filter for performing repeated address lookup. The target filter is configured by the target node and is used to store the node address being used. Bloom filter.
S203:所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。S203: The target node determines, by using the target filter, whether the address of the to-be-determined node is a duplicate node address.
由于目标节点所能获知的正在使用的节点地址都存储在布隆过滤器中,故将待定节点地址输入到布隆过滤器中,利用布隆过滤器中散列函数表进行匹配,可以快速确定该待定节点地址是否已经保存在布隆过滤器中。Since the node address being used by the target node is stored in the Bloom filter, the pending node address is input into the Bloom filter, and the hash function table in the Bloom filter is used for matching, which can be quickly determined. Whether the pending node address has been saved in the Bloom filter.
接下来通过举例进行说明。一个利用布隆过滤器的示例和步骤如下,其中,针对字符m和k的定义可以参见表1的相关说明:Next, an example will be explained. An example and steps for utilizing a Bloom filter are as follows, where the definitions of the characters m and k can be found in the relevant description of Table 1:
“m”位的数组,所有位都初始化为“0”。令m=11。An array of "m" bits, all bits are initialized to "0". Let m=11.
假定x为待定节点地址,目标节点需要针对x在布隆过滤器中进行查询,为了便于说明,与128位IPv6地址不同,在此简单示例x为10位长的待定节点地址。Assuming x is the pending node address, the target node needs to query the bundle filter for x. For convenience of explanation, unlike the 128-bit IPv6 address, here the simple example x is a 10-bit long pending node address.
散列函数的'k'是2,具体包括h(x)和g(x),其中h(x)为从输入参数中挑选奇数位,g(x)从输入参数中挑选偶数位。The 'k' of the hash function is 2, specifically including h(x) and g(x), where h(x) is an odd number selected from the input parameters and g(x) is an even number selected from the input parameters.
对于x=0000011001,且将x作为布隆过滤器的输入参数时。For x=0000011001, and x is used as the input parameter for the Bloom filter.
h(x)=1011=11mod 11(m比特阵列)=0。h(x)=1011=11mod 11 (m-bit array)=0.
g(x)=0111=7mod 11(m比特阵列)=7。g(x) = 0111 = 7 mod 11 (m-bit array) = 7.
对于x=1001001001,且将x作为布隆过滤器的输入参数时。For x=1001001001, and x is used as the input parameter for the Bloom filter.
h(x)=10010=18mod 11(m比特阵列)=7。h(x)=10010=18mod 11 (m-bit array)=7.
g(x)=01001=9mod 11(m比特阵列)=9。g(x) = 01001 = 9 mod 11 (m-bit array) = 9.
对于这两个输入,下表2显示布隆过滤器的输出值:For these two inputs, Table 2 below shows the output values of the Bloom filter:
xx h(x)h(x) g(x)g(x) Bloom FilterBloom Filter
1001111110011111 00 77 1000000100010000001000
10010010011001001001 77 99 1000000101010000001010
表2Table 2
可见,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。It can be seen that each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used. In the process of performing DAD, for the address of the pending node, when the target node obtains the address of the pending node, the target node The pending node address can be taken as an input parameter and brought into the target filter of its own configuration, that is, a Bloom filter for duplicate address lookup. Since the target filter stores the address of the node being used, the Bloom filter can be utilized. The valid data structure matches the hash function table of the Bloom filter according to the input parameter obtained from the address of the node to be determined, and can determine whether the input parameter is in the hash function table in a short time, so it is not necessary to traverse all The cached content improves the efficiency of determining the address.
接下来将针对物联网中的6LoWPAN网络,以及6LoWPAN网络中各个节点进行说明。在6LoWPAN网络中,节点地址可以使用128位长的IPv6地址,IPv6寻址被认为适合于在地球上分配每平方米估计2000+个地址,这种丰富的寻址方案可以有效应用于具有海量设备的物联网中,作为每个物联网中的网络设备的节点地址。IPv6除了 具有更大的地址空间,还包括许多其他功能,包括SLAAC,端到端连接,移动性,安全性等对于物联网来说都起着至关重要的作用。Next, the 6LoWPAN network in the Internet of Things and the nodes in the 6LoWPAN network will be described. In the 6LoWPAN network, the node address can use a 128-bit IPv6 address, and IPv6 addressing is considered to be suitable for allocating an estimated 2000+ addresses per square meter on the earth. This rich addressing scheme can be effectively applied to a large number of devices. In the Internet of Things, as the node address of a network device in each Internet of Things. In addition to IPv6 With a larger address space, it also includes many other features, including SLAAC, end-to-end connectivity, mobility, security, etc., which play a vital role in the Internet of Things.
由于一些6LoWPAN网络中的网络活动,例如网络活动相关、位置跟踪、地址扫描和设备的特定漏洞等,为了能够在6LoWPAN网络中保持隐私,6LoWPAN网络中的端节点(6LN)可以利用临时地址周期性地改变地址。这种周期性地址变化需要保证变化的地址不会出现重复,故将在朝向6LBR的每一跳处导出巨大的查询量,也就是说,待定节点地址在朝向6LBR转发的过程中,每经过一个节点,都需要有巨大的查询量。由于布隆过滤器具有减少/恒定检索时间的空间有效数据结构,从而可以使用布隆过滤器来减少在相关节点中遍历节点地址的内存开销。Due to network activities in some 6LoWPAN networks, such as network activity related, location tracking, address scanning, and device specific vulnerabilities, end nodes (6LN) in 6LoWPAN networks can utilize temporary address periodicity in order to be able to maintain privacy in the 6LoWPAN network. Change the address. This periodic address change needs to ensure that the changed address does not repeat, so a huge amount of query will be derived at each hop towards the 6LBR, that is, each pending one will be forwarded towards the 6LBR. Nodes, all need to have a huge amount of queries. Since the Bloom filter has a spatially efficient data structure with reduced/constant retrieval time, a Bloom filter can be used to reduce the memory overhead of traversing the node address in the relevant node.
而且,6LoWPAN ND(节点)中涉及多个中间节点(6LR),直到DAD周期到达边界路由器(6LBR)。每个6LR可以使用三种不同类型的条目来维护和查阅本地告诉缓存:NCE,以确保生成的地址尚未使用。由于布隆过滤器具有减少/恒定检索时间的空间有效数据结构,从而可以使用布隆过滤器来实现这种高速缓存。通过布隆过滤器的优化,将减少每个DAD周期所花费的总时间。Moreover, multiple intermediate nodes (6LRs) are involved in the 6LoWPAN ND (node) until the DAD period reaches the border router (6LBR). Each 6LR can use three different types of entries to maintain and consult the local tell cache: NCE to ensure that the generated address is not yet in use. Since the Bloom filter has a spatially efficient data structure with reduced/constant retrieval time, a Bloom filter can be used to implement such a cache. By optimizing the Bloom filter, the total time spent on each DAD cycle will be reduced.
6LoWPAN网络中通过布隆过滤器进行DAD的示意图如图3所示,其中通过节点优化(ND Optimization),可以在6LoWPAN网络的节点中设置布隆过滤器,例如图中的黑色矩形标识布隆过滤器,两个方向的箭头指示着一次DAD的过程,其中实线箭头标识多跳的DAR,虚线箭头标识对应的多跳DAC。A schematic diagram of DAD through the Bloom filter in the 6LoWPAN network is shown in Figure 3. Through the node optimization (ND Optimization), a Bloom filter can be set in the node of the 6LoWPAN network, for example, the black rectangle in the figure identifies the Bloom filter. The arrows in both directions indicate the process of a DAD, where the solid arrow identifies the multi-hop DAR and the dashed arrow identifies the corresponding multi-hop DAC.
在6LoWPAN网络中,6LN维护的是本地存储库,通过本地储存库以验证新生成的节点地址是否是“保留地址”或者说是重复地址。而在用6LBR启动DAD循环之前,6LR可以通过所维护的NCE确保新生成的节点地址不是重复地址,在6LoWPAN网络中有3种NCE,包括垃圾收集,注册,和暂定。此外,6LBR维护具有三个字段的DAD表并且保存在布隆过滤器中,通过高速缓存可以在决定节点地址是否重复时节省时间。In the 6LoWPAN network, the 6LN maintains a local repository through which the local repository is verified to verify whether the newly generated node address is a "reserved address" or a duplicate address. Before starting the DAD loop with 6LBR, the 6LR can ensure that the newly generated node address is not a duplicate address through the maintained NCE. There are three kinds of NCEs in the 6LoWPAN network, including garbage collection, registration, and tentative. In addition, the 6LBR maintains a DAD table with three fields and saves it in the Bloom filter, which saves time by determining whether the node address is duplicated.
本发明/优化建议使用称为布隆过滤器的有效数据结构,其是空间有效的并且提供更快的检索时间。节点处理DAD请求需要找出所讨论的地址的NCE的类型,并且在该时刻通过遍历整个高速缓存来完成以达到决定。Bloom Filter缓存可以在短的恒定时间内遍历,结果可以导致节点遍历或不遍历NCE。这同样适用于6LBR,其中可以在DAD表之前查询Bloom过滤器缓存,以减少确定所讨论的地址是否是重复的时间。The present invention/optimization suggests using an efficient data structure called a Bloom filter that is space efficient and provides faster retrieval time. The node processing the DAD request needs to find the type of NCE of the address in question, and at that point it is done by traversing the entire cache to reach the decision. The Bloom Filter cache can be traversed in a short constant time, and the result can cause the node to traverse or not traverse the NCE. The same applies to 6LBR, where the Bloom filter cache can be queried before the DAD table to reduce the time to determine if the address in question is a duplicate.
接下来将分别根据6LoWPAN网络中可能的三种不同节点:6LN(一种端节点)、6LR(一种路由器)和6LBR(一种边界路由器),对布隆过滤器的应用进行说明。Next, the application of the Bloom filter will be described based on three possible different nodes in the 6LoWPAN network: 6LN (an end node), 6LR (a router), and 6LBR (a border router).
可选的,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:Optionally, the target node is an end node in the Internet of Things, and the target node obtains the address of the to-be-determined node, including:
所述端节点生成所述待定节点地址。The end node generates the to-be-determined node address.
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求(Neighbor Solicitation,NS)。If it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, the end node initiates a Neighbor Solicitation (NS) carrying the pending node address to the router in the Internet of Things.
上述方案具体可以应用的场景有: The specific scenarios that can be applied to the above solutions are as follows:
在发送本地生成的邻居请求(NS)地址之前,6LN需要确保生成的地址不是禁止/保留地址。布隆过滤器的高速缓存是一种合适的数据结构,可以立即验证生成的地址是否是相对于该端节点为禁止/保留地址。Before sending a locally generated Neighbor Solicitation (NS) address, 6LN needs to ensure that the generated address is not a forbidden/reserved address. The Bloom filter's cache is a suitable data structure that immediately verifies that the generated address is a forbidden/reserved address relative to the end node.
可选的,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:Optionally, the target node is a router in the Internet of Things, and the target node acquires the address of the to-be-determined node, including:
所述路由器通过接收到的邻居请求获取所携带的所述待定节点地址。The router acquires the to-be-determined node address carried by the received neighbor request.
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router sends a duplicate address request DAR carrying the pending node address to the border router in the Internet of Things.
若确定出所述待定节点地址相对于所述路由器是重复的节点地址,所述路由器将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。If it is determined that the pending node address is a duplicate node address with respect to the router, the router sends a result of the sender requesting the neighbor request to return the pending node address as a duplicate node address.
上述从6LN接收到NS的方案具体可以应用的场景有:The scenarios in which the above-mentioned schemes for receiving the NS from the 6LN are specifically applicable are:
a)如果该待定节点地址作为另一个64位扩展唯一标识符(64-bit Extended Unique Identifier,EUI-64)的注册条目存在,则告知6LN所需确定的待定节点地址是重复的。a) If the pending node address exists as a registration entry for another 64-bit Extended Unique Identifier (EUI-64), then the 6LN determined pending node address is repeated.
b)如果具有与该待定节点地址相同的EUI-64的注册条目存在,但是ARO生存期=0,则可以将针对该待定节点地址的DAR发送到6LBR。b) If the registration entry of the EUI-64 having the same address as the pending node exists, but the ARO lifetime=0, the DAR for the pending node address may be sent to the 6LBR.
c)如果该待定节点地址为一个暂时地址,则可以默认忽略6LN的邻居请求。c) If the pending node address is a temporary address, the 6LN neighbor request may be ignored by default.
d)如果6LR所维护的NCE中不存在该待定节点地址,则6LR应针对该待定节点地址创建一个暂定地址,并将针对该待定节点地址的DAR发送到6LBR。d) If the pending node address does not exist in the NCE maintained by the 6LR, the 6LR shall create a tentative address for the pending node address and send the DAR for the pending node address to the 6LBR.
可选的,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:Optionally, the target node is a router in the Internet of Things, and the target node acquires the address of the to-be-determined node, including:
所述路由器通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received duplicate address confirmation DAC;
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router ignores the DAR corresponding to the DAC and adds the pending node address to the target filter.
上述从6LBR接收到DAC的方案具体可以应用的场景有:The above scenarios in which the DAC is received from the 6LBR are specifically applicable:
a)如果该待定节点地址与存储在所维护NCE中的已注册或临时地址不同,那么将静默地忽略针对该待定节点地址的DAR。a) If the pending node address is different from the registered or temporary address stored in the maintained NCE, the DAR for the pending node address will be silently ignored.
b)如果该待定节点地址在所维护NCE中为一个暂时地址,DAC状态=0,则6LR将该暂时地址标识为已注册,并将NA发送到6LN。b) If the pending node address is a temporary address in the maintained NCE and the DAC status = 0, the 6LR identifies the temporary address as registered and sends the NA to 6LN.
c)如果确定出在NCE中存在该待定节点地址,并且从6LBR返回的DAC状态是错误的,则6LR从NCE中删除该待定节点地址,并将NA发送到6LN,目的地址从EUI-64派生。c) If it is determined that the pending node address exists in the NCE, and the DAC status returned from the 6LBR is erroneous, the 6LR deletes the pending node address from the NCE and sends the NA to 6LN, the destination address is derived from EUI-64 .
可选的,所述目标节点为所述物联网中的边界路由器,所述目标节点获取所述待 定节点地址,包括:Optionally, the target node is a border router in the Internet of Things, and the target node acquires the to-be-served Fixed node address, including:
所述路由器通过接收到的重复地址请求DAR获取所携带的所述待定节点地址。The router acquires the to-be-determined node address carried by the received duplicate address request DAR.
所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the pending node address to the target filter.
上述方案具体可以应用的场景有:The specific scenarios that can be applied to the above solutions are as follows:
由于6LBR接收针对该待定节点地址的DAR,6LBR可以根据DAD表中记载的节点地址作为判断依据:Since the 6LBR receives the DAR for the address of the pending node, the 6LBR can be judged according to the node address recorded in the DAD table:
a)如果DAD表存在与该待定节点地址相同的EUI-64,则6LBR将该DAR发送到状态=0的6LR,并将该待定节点地址的生命周期更改为新的生命周期。a) If the DAD table has the same EUI-64 as the pending node address, the 6LBR sends the DAR to the 6LR with status=0 and changes the lifetime of the pending node address to a new life cycle.
b)如果在DAD表不存在与该待定节点地址相同的EUI-64,则6LBR将携带状态错误的DAR发送到6LR。b) If there is no EUI-64 with the same address as the pending node in the DAD table, the 6LBR sends the DAR carrying the status error to the 6LR.
c)如果在DAD表不存在与该待定节点地址相同的EUI-64,则6LBR还可以针对该待定节点地址在DAD表中创建一个新条目。c) If there is no EUI-64 in the DAD table that is the same as the pending node address, the 6LBR can also create a new entry in the DAD table for the pending node address.
综上所述,通过布隆过滤器,可以快速的确定出一个待定节点地址是否与布隆过滤器中所存储的节点地址相同,而不需要完全遍历整个高速缓存,不仅提高了效率,还可以缩短确定时间,而且,通过布隆过滤器,只需要使用1.5MB内存空间便可以足以保存100万个地址,具有极其高效的存储数据结构。In summary, through the Bloom filter, it is possible to quickly determine whether a pending node address is the same as the node address stored in the Bloom filter, without completely traversing the entire cache, which not only improves efficiency, but also improves efficiency. Shorten the determination time, and with the Bloom filter, you only need to use 1.5MB of memory space to save enough 1 million addresses, with extremely efficient storage data structure.
图4为本发明实施例提供的一种物联网中节点的地址确定装置的装置结构图,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述地址确定装置400包括获取单元401、查找单元402和确定单元403:4 is a schematic structural diagram of an apparatus for determining an address of a node in an Internet of Things according to an embodiment of the present invention. Each node in the Internet of Things is configured with a Bloom filter, and the address of the node being used is recorded by a Bloom filter. In the process of performing the duplicate address detection DAD, for the pending node address, the address determining apparatus 400 includes an obtaining unit 401, a searching unit 402, and a determining unit 403:
所述获取单元401,用于获取所述待定节点地址;The obtaining unit 401 is configured to acquire the to-be-determined node address;
所述查找单元402,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;The searching unit 402 is configured to bring the to-be-determined node address as an input parameter into a target filter for performing a duplicate address search, where the target filter is configured by the target node, and is used to store a node in use. Address of the Bloom filter;
所述确定单元403,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。The determining unit 403 is configured to determine, by using a lookup of the target filter, whether the to-be-determined node address is a duplicate node address.
可选的,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;Optionally, the target node is an end node in the Internet of Things, and the obtaining unit is further configured to generate the to-be-determined node address;
所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, initiate a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
可选的,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;Optionally, the target node is a router in the Internet of Things, and the acquiring unit is further configured to acquire, by using the received neighbor request, the carried-to-be-determined node address;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR; The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, send a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。The searching unit is further configured to: if it is determined that the to-be-determined node address is a duplicate node address, the sender that sends the neighbor request returns a result that the pending node address is a duplicate node address.
可选的,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;Optionally, the target node is a router in the Internet of Things, and the acquiring unit is further configured to acquire, by using the received duplicate address confirmation DAC, the carried-to-be-determined node address;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, ignore the DAR corresponding to the DAC, and add the to-be-determined node address to the target filter. .
可选的,所述目标节点为所述物联网中的边界路由器,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;Optionally, the target node is a border router in the Internet of Things, and the acquiring unit is further configured to acquire the to-be-determined node address that is carried by the received duplicate address request DAR;
所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the to-be-determined node address to the target filter.
可见,在物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行DAD过程中,针对待定节点地址,当标节点获取所述待定节点地址,目标节点可以将待定节点地址作为输入参数,带入自身配置的目标过滤器也就是一个布隆过滤器中进行重复地址查找,由于目标过滤器中存储正在使用的节点地址,故可以利用布隆过滤器的有效数据结构,根据由待定节点地址所得到的输入参数匹配布隆过滤器的散列函数表,可以在很短的时间内确定出该输入参数是否处于散列函数表中,故可以不用遍历全部的缓存内容,提高了确定地址的效率。It can be seen that each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used. In the process of performing DAD, for the address of the pending node, when the target node obtains the address of the pending node, the target node The pending node address can be taken as an input parameter and brought into the target filter of its own configuration, that is, a Bloom filter for duplicate address lookup. Since the target filter stores the address of the node being used, the Bloom filter can be utilized. The valid data structure matches the hash function table of the Bloom filter according to the input parameter obtained from the address of the node to be determined, and can determine whether the input parameter is in the hash function table in a short time, so it is not necessary to traverse all The cached content improves the efficiency of determining the address.
参阅图5,图5为本发明实施例提供的一种目标节点的硬件结构示意图,所述网管系统位于物联网中,为所述物联网中的一个节点,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述目标节点500包括存储器501和接收器502,以及分别与所述存储器501和所述接收器502连接的处理器503,所述存储器501用于存储一组程序指令,所述处理器503用于调用所述存储器501存储的程序指令执行如下操作:Referring to FIG. 5, FIG. 5 is a schematic diagram of a hardware structure of a target node according to an embodiment of the present invention. The network management system is located in an Internet of Things, and is a node in the Internet of Things. a Bloom filter that records the node address being used by the Bloom filter. In the process of performing the duplicate address detection DAD, the target node 500 includes a memory 501 and a receiver 502 for the pending node address, and the memory and the memory, respectively. 501 is coupled to the receiver 502, the processor 503 is configured to store a set of program instructions, and the processor 503 is configured to invoke the program instructions stored in the memory 501 to perform the following operations:
触发所述接收器502获取所述待定节点地址;Triggering the receiver 502 to acquire the to-be-determined node address;
将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;Taking the to-be-determined node address as an input parameter, and bringing it into a target filter for performing repeated address lookup, where the target filter is configured by the target node to store a Bloom filter of the node address being used;
通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。Through the searching of the target filter, it is determined whether the to-be-determined node address is a duplicate node address.
可选地,所述处理器503可以为中央处理器(Central Processing Unit,CPU),所述存储器501可以为随机存取存储器(Random Access Memory,RAM)类型的内部存储器,所述接收器502可以包含普通物理接口,所述物理接口可以为以太(Ethernet)接口或异步传输模式(Asynchronous Transfer Mode,ATM)接口。所述处理器503、接收器502和存储器501可以集成为一个或多个独立的电路或硬件,如:专用集成电路(Application Specific Integrated Circuit,ASIC)。Optionally, the processor 503 may be a central processing unit (CPU), and the memory 501 may be an internal memory of a random access memory (RAM) type, and the receiver 502 may be The physical interface may be an Ethernet interface or an Asynchronous Transfer Mode (ATM) interface. The processor 503, the receiver 502, and the memory 501 may be integrated into one or more independent circuits or hardware, such as an Application Specific Integrated Circuit (ASIC).
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中 的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。It can be understood by those skilled in the art that all or part of the steps of implementing the foregoing method embodiments may be performed by hardware related to program instructions, and the foregoing program may be stored in a computer readable storage medium, and when executed, the program includes The steps of the above method embodiments; and the foregoing storage medium may be in the following medium At least one of: a read-only memory (English: read-only memory, abbreviation: ROM), a RAM, a magnetic disk, or an optical disk, and the like, which can store program code.
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。It is to be noted that the various embodiments in the present specification are described in a progressive manner, and the same similar parts between the various embodiments may be referred to each other, and each embodiment focuses on different embodiments from other embodiments. At the office. In particular, for the device and the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment. The apparatus and system embodiments described above are merely illustrative, wherein the units illustrated as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, ie may be located A place, or it can be distributed to multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment. Those of ordinary skill in the art can understand and implement without any creative effort.
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。 The above is only a preferred embodiment of the present invention, but the scope of the present invention is not limited thereto, and any person skilled in the art can easily think of changes or within the technical scope disclosed by the present invention. Alternatives are intended to be covered by the scope of the present invention. Therefore, the scope of protection of the present invention should be determined by the scope of the claims.

Claims (10)

  1. 一种物联网中节点的地址确定方法,其特征在于,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述方法包括:A method for determining a node address in an Internet of Things, characterized in that each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and in the process of performing duplicate address detection DAD, For a pending node address, the method includes:
    目标节点获取所述待定节点地址;The target node acquires the to-be-determined node address;
    所述目标节点将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;The target node takes the to-be-determined node address as an input parameter and brings it into a target filter for repeated address lookup. The target filter is configured by the target node to store the used node address. filter;
    所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。The target node determines whether the to-be-determined node address is a duplicate node address by using the target filter.
  2. 根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的端节点,所述目标节点获取所述待定节点地址,包括:The method according to claim 1, wherein the target node is an end node in the Internet of Things, and the target node acquires the address of the pending node, including:
    所述端节点生成所述待定节点地址;The end node generates the to-be-determined node address;
    所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
    若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,所述端节点向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。If it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, the end node initiates a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
  3. 根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:The method according to claim 1, wherein the target node is a router in the Internet of Things, and the target node acquires the address of the pending node, including:
    所述路由器通过接收到的邻居请求获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received neighbor request;
    所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
    若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;If it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router sends a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
    若确定出所述待定节点地址相对于所述路由器是重复的节点地址,所述路由器将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。If it is determined that the pending node address is a duplicate node address with respect to the router, the router sends a result of the sender requesting the neighbor request to return the pending node address as a duplicate node address.
  4. 根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的路由器,所述目标节点获取所述待定节点地址,包括:The method according to claim 1, wherein the target node is a router in the Internet of Things, and the target node acquires the address of the pending node, including:
    所述路由器通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received duplicate address confirmation DAC;
    所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
    若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router ignores the DAR corresponding to the DAC and adds the pending node address to the target filter.
  5. 根据权利要求1所述的方法,其特征在于,所述目标节点为所述物联网中的边界路由器,所述目标节点获取所述待定节点地址,包括:The method according to claim 1, wherein the target node is a border router in the Internet of Things, and the target node acquires the address of the pending node, including:
    所述路由器通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;The router acquires the to-be-determined node address carried by the received duplicate address request DAR;
    所述目标节点通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址,包括:And determining, by the searching of the target filter, whether the address of the to-be-determined node is a duplicate node address, including:
    若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器 忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。If it is determined that the pending node address is not a duplicate node address with respect to the router, the router The DAR is ignored and the pending node address is added to the target filter.
  6. 一种物联网中节点的地址确定装置,其特征在于,所述物联网中各个节点配置有布隆过滤器,通过布隆过滤器记录正在使用的节点地址,在进行重复地址检测DAD过程中,针对待定节点地址,所述装置包括获取单元、查找单元和确定单元:An address determining device for a node in an Internet of Things, characterized in that each node in the Internet of Things is configured with a Bloom filter, and the Bloom filter records the address of the node being used, and in the process of performing duplicate address detection DAD, For a pending node address, the device includes an obtaining unit, a searching unit, and a determining unit:
    所述获取单元,用于获取所述待定节点地址;The obtaining unit is configured to acquire the address of the to-be-determined node;
    所述查找单元,用于将所述待定节点地址作为输入参数,带入目标过滤器中进行重复地址查找,所述目标过滤器为所述目标节点所配置的,用于存储正在使用的节点地址的布隆过滤器;The searching unit is configured to bring the to-be-determined node address as an input parameter into a target filter for performing a duplicate address search, where the target filter is configured by the target node, and is used to store a node address being used. Bloom filter;
    所述确定单元,用于通过所述目标过滤器的查找,确定出所述待定节点地址是否为重复的节点地址。The determining unit is configured to determine, by using a lookup of the target filter, whether the to-be-determined node address is a duplicate node address.
  7. 根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的端节点,所述获取单元还用于生成所述待定节点地址;The device according to claim 6, wherein the target node is an end node in the Internet of Things, and the obtaining unit is further configured to generate the to-be-determined node address;
    所述查找单元还用于若确定出所述待定节点地址相对于所述端节点不是重复的节点地址,向所述物联网中的路由器发起携带有所述待定节点地址的邻居请求。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the end node, initiate a neighbor request carrying the to-be-determined node address to a router in the Internet of Things.
  8. 根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的邻居请求获取所携带的所述待定节点地址;The device according to claim 6, wherein the target node is a router in the Internet of Things, and the obtaining unit is further configured to acquire the carried forward node address by using a received neighbor request;
    所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,向所述物联网中的边界路由器发送携带有所述待定节点地址的重复地址请求DAR;The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, send a duplicate address request DAR carrying the to-be-determined node address to the border router in the Internet of Things;
    所述查找单元还用于若确定出所述待定节点地址相对于所述路由器是重复的节点地址,将发送所述邻居请求的发送方返回所述待定节点地址是重复的节点地址的结果。The searching unit is further configured to: if it is determined that the to-be-determined node address is a duplicate node address, the sender that sends the neighbor request returns a result that the pending node address is a duplicate node address.
  9. 根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的路由器,所述获取单元还用于通过接收到的重复地址确认DAC获取所携带的所述待定节点地址;The device according to claim 6, wherein the target node is a router in the Internet of Things, and the obtaining unit is further configured to acquire, by using the received duplicate address confirmation DAC, the carried-to-be-determined node address. ;
    所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,忽略所述DAC所对应的DAR,并将所述待定节点地址添加到所述目标过滤器中。The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address, ignore the DAR corresponding to the DAC, and add the to-be-determined node address to the target filter. .
  10. 根据权利要求6所述的装置,其特征在于,所述目标节点为所述物联网中的边界路由器,所述获取单元还用于通过接收到的重复地址请求DAR获取所携带的所述待定节点地址;The device according to claim 6, wherein the target node is a border router in the Internet of Things, and the obtaining unit is further configured to acquire the carried node to be carried by the received duplicate address request DAR. address;
    所述查找单元还用于若确定出所述待定节点地址相对于所述路由器不是重复的节点地址,所述路由器忽略所述DAR,并将所述待定节点地址添加到所述目标过滤器中。 The searching unit is further configured to: if it is determined that the to-be-determined node address is not a duplicate node address with respect to the router, the router ignores the DAR and adds the to-be-determined node address to the target filter.
PCT/CN2017/114823 2016-12-13 2017-12-06 Method and device for determining address of node in internet of things WO2018108009A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611145754.1 2016-12-13
CN201611145754.1A CN106850541B (en) 2016-12-13 2016-12-13 Method and device for determining address of node in Internet of things

Publications (1)

Publication Number Publication Date
WO2018108009A1 true WO2018108009A1 (en) 2018-06-21

Family

ID=59140198

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/114823 WO2018108009A1 (en) 2016-12-13 2017-12-06 Method and device for determining address of node in internet of things

Country Status (2)

Country Link
CN (1) CN106850541B (en)
WO (1) WO2018108009A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106850541B (en) * 2016-12-13 2020-11-06 华为技术有限公司 Method and device for determining address of node in Internet of things
CN107368437B (en) * 2017-07-24 2021-06-29 郑州云海信息技术有限公司 Last-level cache management method and system
CN109542906B (en) * 2018-11-20 2021-11-30 北京小米移动软件有限公司 Equipment determination method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530328A (en) * 2014-10-17 2016-04-27 思科技术公司 Address autoconfiguration using bloom filter parameters for unique address computation
CN105763455A (en) * 2016-04-13 2016-07-13 南京邮电大学 Node security registration method based on 6LoWPAN neighbor discovery
CN105991655A (en) * 2015-03-16 2016-10-05 思科技术公司 Mitigating neighbor discovery-based denial of service attacks
CN106850541A (en) * 2016-12-13 2017-06-13 华为技术有限公司 A kind of address of Internet of Things interior joint determines method and apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100531102C (en) * 2007-11-02 2009-08-19 华为技术有限公司 Route table adjustment method, route query method and device and route table storage device
CN101901248B (en) * 2010-04-07 2012-08-15 北京星网锐捷网络技术有限公司 Method and device for creating and updating Bloom filter and searching elements
CN102333036B (en) * 2011-10-17 2015-06-03 中兴通讯股份有限公司 Method and system for realizing high-speed routing lookup

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530328A (en) * 2014-10-17 2016-04-27 思科技术公司 Address autoconfiguration using bloom filter parameters for unique address computation
CN105991655A (en) * 2015-03-16 2016-10-05 思科技术公司 Mitigating neighbor discovery-based denial of service attacks
CN105763455A (en) * 2016-04-13 2016-07-13 南京邮电大学 Node security registration method based on 6LoWPAN neighbor discovery
CN106850541A (en) * 2016-12-13 2017-06-13 华为技术有限公司 A kind of address of Internet of Things interior joint determines method and apparatus

Also Published As

Publication number Publication date
CN106850541A (en) 2017-06-13
CN106850541B (en) 2020-11-06

Similar Documents

Publication Publication Date Title
Lim et al. On adding bloom filters to longest prefix matching algorithms
JP5525273B2 (en) System for forwarding packets with hierarchically structured variable length identifiers
US20060083247A1 (en) Prefix lookup using address-directed hash tables
US9628435B2 (en) Duplicate address detection based on distributed bloom filter
WO2018108009A1 (en) Method and device for determining address of node in internet of things
US8848707B2 (en) Method for IP longest prefix match using prefix length sorting
US11463360B2 (en) System and method for range matching
Pao et al. Efficient hardware architecture for fast IP address lookup
CN107547407B (en) Message transmission method, device and implementation device
WO2017000893A1 (en) Ip routing lookup
Reshmi et al. Filter-based address autoconfiguration protocol (FAACP) for duplicate address detection and recovery in MANETs
AU2022209249A1 (en) Directory assisted routing of content in an information centric network
US7948916B2 (en) Method and apparatus for discovering topology information in a network
US20040225750A1 (en) Apparatus and method for determining next hop address using unified cache
Moeini et al. Service specification and discovery in IoT networks
CN105763455B (en) Node security registration method based on 6LoWPAN neighbor discovery
Pal et al. Bloom filters & their applications
Hickman et al. A variable length address assignment scheme for 6LoWPAN
WO2019128905A1 (en) Network communication method and device
Teubler et al. Memory efficient forwarding information base for content-centric networking
CN113328947B (en) Variable-length route searching method and device based on application of controllable prefix extension bloom filter
US9444731B2 (en) Methods and systems for data packet routing
Luo et al. Flexible IP: An adaptable IP address structure and its efficient addressing scheme
WO2022037326A1 (en) Access management method, authentication point, and authentication server
Shelby et al. RFC 9176: Constrained RESTful Environments (CoRE) Resource Directory

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17881401

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17881401

Country of ref document: EP

Kind code of ref document: A1