Systems and methods to support data privacy over a multi-hop network
11632672 · 2023-04-18
Assignee
Inventors
- Feng L. Mo (Lewisville, TX, US)
- JIANWEI ZHOU (Allen, TX, US)
- Xiaolin Lu (Plano, TX)
- Il Han Kim (Frisco, TX, US)
- KAICHIEN TSAI (Allen, TX, US)
Cpc classification
H04L9/0861
ELECTRICITY
H04L2209/805
ELECTRICITY
H04W40/24
ELECTRICITY
International classification
H04L45/00
ELECTRICITY
H04L9/08
ELECTRICITY
Abstract
A multi-hop mesh network includes a root network device and a first network device. The first network device is configured to establish a first direct wireless connection with the root network device and negotiate a first shared secret key with the root network device. The multi-hop network further includes a second network device configured to establish a second direct wireless connection with the first network device and negotiate a second shared secret key with the first network device.
Claims
1. An apparatus comprising: a network interface; and circuitry coupled to the network interface, in which the circuitry is configured to: establish a first wireless connection that directly connects the network interface to a first network device; establish a second wireless connection that directly connects the network interface to a second network device; receive a first public key from the first network device via the first wireless connection; generate a first security key based on the first public key and a private key; receive a second public key from the second network device via the second wireless connection; generate a second security key based on the second public key and the private key of the apparatus; perform at least one of a first encryption operation or a first decryption operation using the first security key; and perform at least one of a second encryption operation or a second decryption operation using the second security key.
2. The apparatus of claim 1, wherein the circuitry is configured to execute the set of instructions to: receive a first encrypted link layer frame encapsulating a first message from the first network device via the first wireless connection; extract the first message by performing the first decryption operation on the first encrypted link layer frame using the first security key; encapsulate a second message in a second link layer frame; generate a second encrypted link layer frame by performing the first encryption operation on the second link layer frame using the first security key; and transmit the second encrypted link layer frame encapsulating the second message to the first network device via the first wireless connection.
3. The apparatus of claim 2, wherein the circuitry is configured to: encapsulate the first message in a third link layer frame; generate a third encrypted link layer frame by performing the second encryption operation on the third link layer frame using the second security key; transmit the third encrypted link layer frame encapsulating the first message to the second network device via the second wireless connection; receive a fourth encrypted link layer frame encapsulating the second message from the second network device via the second wireless connection; and extract the second message by performing the second decryption operation on the fourth encrypted link layer frame using the second security key.
4. The apparatus of claim 1, wherein the circuitry is configured to: generate a third public key from the private key and based on an Elliptic Curve Diffie-Hellman key exchange algorithm; and transmit the third public key to the first and second network devices via the respective first and second wireless connections.
5. The apparatus of claim 1, wherein the first and second wireless connections are part of a multi-hop mesh network.
6. The apparatus of claim 2, wherein the first message includes sensor data.
7. The apparatus of claim 6, wherein the sensor data are from a sensor device including a humidity sensor, a temperature sensor, acceleration sensor, light sensor, sound sensor, current sensor, global positioning system sensor, voltage sensor, or a combination thereof.
8. The apparatus of claim 1, wherein the circuitry is configured to execute the set of instructions to establish the first and second wireless connections by transmitting a beacon via the network interface.
9. The apparatus of claim 8, wherein the beacon includes a parameter; and wherein the first and second public keys are generated based on the parameter.
10. The apparatus of claim 1, wherein the circuitry is configured to: perform the at least one of the first encryption operation or the first decryption operation using the first security key on first data transmitted over the first wireless connection; and perform the at least one of the second encryption operation or the second decryption operation using the second security key on second data transmitted over the second wireless connection.
11. A method comprising: establishing a first wireless connection that directly connects a network interface to a first network device; establishing a second wireless connection that directly connects the network interface to a second network device; receiving a first public key from the first network device via the first wireless connection; generating a first security key based on the first public key and a private key; receiving a second public key from the second network device via the second wireless connection; generating a second security key based on the second public key and the private key; performing at least one of a first encryption operation or a first decryption operation using the first security key; and performing at least one of a second encryption operation or a second decryption operation using the second security key.
12. The method of claim 11, further comprising: receiving a first encrypted link layer frame encapsulating a first message from the first network device via the first wireless connection; extracting the first message by performing the first decryption operation on the first encrypted link layer frame using the first security key; encapsulating a second message in a second link layer frame; generating a second encrypted link layer frame by performing the first encryption operation on the second link layer frame using the first security key; and transmitting the second encrypted link layer frame encapsulating the second message to the first network device via the first wireless connection.
13. The method of claim 12, further comprising: encapsulating the first message in a third link layer frame; generating a third encrypted link layer frame by performing the second encryption operation on the third link layer frame using the second security key; transmitting the third encrypted link layer frame encapsulating the first message to the second network device via the second wireless connection; receiving a fourth encrypted link layer frame encapsulating the second message from the second network device via the second wireless connection; and extracting the second message by performing the second decryption operation on the fourth encrypted link layer frame using the second security key.
14. The method of claim 11, further comprising: generating a third public key from the private key and based on an Elliptic Curve Diffie-Hellman key exchange algorithm; and transmitting the third public key to the first and second network devices via the respective first and second wireless connections.
15. The method of claim 11, wherein the first and second wireless connections are part of a multi-hop mesh network.
16. The method of claim 12, wherein the first message includes sensor data.
17. The method of claim 16, wherein the sensor data includes data generated by a humidity sensor, a temperature sensor, acceleration sensor, light sensor, sound sensor, current sensor, global positioning system sensor, voltage sensor, or a combination thereof.
18. The method of claim 11, wherein: performing at least one of a first encryption operation or a first decryption operation using the first security key comprises performing the at least one of the first encryption operation or the first decryption operation using the first security key on first data transmitted over the first wireless connection; and performing at least one of a second encryption operation or a second decryption operation using the second security key comprises performing the at least one of the second encryption operation or the second decryption operation on second data transmitted over the second wireless connection.
19. A non-transitory computer-readable medium storing instructions that, when executed by a processor, causes the processor to: establish a first wireless connection that directly connects a network interface to a first network device; establish a second wireless connection that directly connects the network interface to a second network device; receive a first public key from the first network device via the first wireless connection; generate a first security key based on the first public key and a private key; receive a second public key from the second network device via the second wireless connection; generate a second security key based on the second public key and the private key; perform at least one of a first encryption operation or a first decryption operation using the first security key; and perform at least one of a second encryption operation or a second decryption operation using the second security key.
20. The non-transitory computer-readable medium of claim 19, further comprising instructions that, when executed by the processor, causes the processor to: receive a first encrypted link layer frame encapsulating a first message from the first network device via the first wireless connection; extract the first message by performing the first decryption operation on the first encrypted link layer frame using the first security key; encapsulate a second message in a second link layer frame; generate a second encrypted link layer frame by performing the first encryption operation on the second link layer frame using the first security key; and transmit the second encrypted link layer frame encapsulating the second message to the first network device via the first wireless connection.
21. The non-transitory computer-readable medium of claim 20, further comprising instructions that, when executed by the processor, causes the processor to: encapsulate the first message in a third link layer frame; generate a third encrypted link layer frame by performing the second encryption operation on the third link layer frame using the second security key; transmit the third encrypted link layer frame encapsulating the first message to the second network device via the second wireless connection; receive a fourth encrypted link layer frame encapsulating the second message from the second network device via the second wireless connection; and extract the second message by performing the second decryption operation on the fourth encrypted link layer frame using the second security key.
22. The non-transitory computer-readable medium of claim 20, wherein the first message includes sensor data.
23. The non-transitory computer-readable medium of claim 22, wherein the sensor data includes data generated by a humidity sensor, a temperature sensor, acceleration sensor, light sensor, sound sensor, current sensor, global positioning system sensor, voltage sensor, or a combination thereof.
24. The non-transitory computer-readable medium of claim 19, wherein the first and second wireless connections are part of a wireless mesh network.
25. The non-transitory computer-readable medium of claim 19, further comprising instructions that, when executed by the processor, causes the processor to: perform the at least one of the first encryption operation or the first decryption operation using the first security key on first data transmitted over the first wireless connection; and perform the at least one of the second encryption operation or the second decryption operation using the second security key on second data transmitted over the second wireless connection.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a detailed description of various examples, reference will now be made to the accompanying drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION
(9) In this description, a “node” is a network device, such as the computing device of
(10) Referring to
(11) In some implementations, the plurality of intermediate nodes 104A-D, the first plurality of leaf nodes 106A-B, and the second plurality of leaf nodes 108A-C correspond to sensor devices. Each of the plurality of intermediate nodes 104A-D, the first plurality of leaf nodes 106A-B, and the second plurality of leaf nodes 108A-C may correspond to a same type of sensor device or the nodes 104A-D, 106A-B, 108A-C may include different types of sensor devices. Examples of types of sensor devices include humidity sensors, temperature sensors, acceleration sensors, light sensors, sound sensors, current sensors, global positioning system sensors, voltage sensors, wind speed sensors, smoke/gas sensors, rain sensors, etc. In some implementations, a single node of the nodes 104A-D, 106A-B, 108A-C corresponds to a sensor device of more than one type.
(12) A sensor device includes hardware configured to detect an environmental change corresponding to the type (or types) of the sensor device. For example, a node that corresponds to a light sensor includes light sensing hardware, such as a p-n junction semiconductor device configured to convert light photons into current. As another example, an acceleration sensor may include piezoelectric, piezoresistive, or capacitive components configured to convert motion into an electrical signal. As another example, a sound sensor may include a microphone configured to convert sound waves into an electrical signal.
(13) Sensor devices may be part of an Internet-of-things system. In some examples, the nodes 104A-D, 106A-B, 108A-C include one or more sensor devices and one or more other types of Internet-of-things devices, such as a smart light bulb, a smart thermostat, a doorbell, etc.
(14) The root node 102 corresponds to a computing device that includes a memory device and a processor device. In some implementations, the root node 102 corresponds to a sensor device or an Internet-of-things device. The root node 102 corresponds to a hub/gateway device that includes one or more communication interfaces configured to communicate with one or more devices (e.g., the Internet) outside of the multi-hop network 100. For example, the root node 102 may correspond to a device configured to receive sensor data generated by the nodes 104A-D, 106A-B, 108A-C and to transmit the sensor data (or data based on the sensor data) outside of the multi-hop network 100 (e.g., to a user device connected to the Internet).
(15) A first intermediate node 104A, a second intermediate node 104B, and a third intermediate node 104C are directly connected to the root node 102. A fourth intermediate node 104D is directly connected to the third intermediate node 104C. Each of the first plurality of leaf nodes 106A-B is directly connected to a first intermediate node 104A of the plurality of intermediate nodes 104A-104D. Each of the second plurality of leaf nodes 108A-C is directly connected to the fourth intermediate node 104D. The system 100 may have other configurations than the one illustrated in
(16) As used herein, “directly connected” means that a physical signal transmitted by one device is received by another device. In the illustrated example, connections between the nodes 102, 104, 106, are wireless, but in other examples, the connections are wired. In examples in which the connections are wireless, the nodes 102, 104, 106 are configured to communicate using an Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol, an IEEE 802.15.4 protocol (e.g., Zigbee® (Zigbee is a registered trademark of Zigbee Alliance Corporation of San Ramon, Calif.)), or some other wireless protocol and include corresponding hardware (e.g., wireless network controllers). In examples in which the connections are wired, the nodes 102, 104, 106 are configured to communicate using an IEEE 802.3 protocol, a power-line communication protocol (e.g., G3-PLC), or some other wired protocol and include corresponding hardware (e.g., wired network controllers).
(17) New nodes join the multi-hop network 100 by associating with a node that is in the multi-hop network 100. A new node that associates with a node in the multi-hop network 100 becomes a “child” node to the node in the multi-hop network 100. For example, to form the multi-hop network 100 shown in
(18) Prior to transmitting a message (e.g., a network layer packet, an Internet layer packet, etc.) over a physical connection, each node in the multi-hop network 100 is configured to encapsulate the message in a link layer frame (e.g., a WiFi® frame (Wi-Fi is a registered trademark of Wi-Fi Alliance Corp. of Austin, Tex.), an Ethernet frame, a Zigbee frame, etc.). Accordingly, a message traversing the multi-hop network 100 may be encapsulated in one or more link layer frames as the message traverses the multi-hop network 100. For example, a message from a first leaf node 106A of the first plurality of leaf nodes 106A-B to the root node 102 may be encapsulated in a first link layer frame by the first leaf node 106A and transmitted to the first intermediate node 104A. Upon receipt of the first link layer frame, the first intermediate node 104A may remove the message from the first link layer frame, encapsulate the message in a second link layer frame, and transmit the second link layer frame to the root node 102.
(19) Nodes in each parent child pair in the multi-hop network 100 are configured to independently negotiate security parameters (e.g., a shared secret key) to secure the connection (e.g., the link layer) between the parent and the child. Each node is further configured to protect (e.g., encrypt) link layer frames transmitted over a connection based on the security parameters associated with the connection. Accordingly, each link in the multi-hop network 100 is secured by the two nodes that communicate over the link.
(20) An example of this independent negotiation process in which nodes generate a shared secret key by exchanging public keys is illustrated in
(21) In response to receiving the child public key 162 (Pub_key.sub.child), the second intermediate node 1046 generates a parent public key 164 (Pub_key.sub.parent) based on a parent private key (Priv_key.sub.parent) randomly generated by the second intermediate node 104B and the one or more domain parameters. In the Elliptic-curve Diffie-Hellman example, Pub_key.sub.parent may be equal to Priv_key.sub.parent G. In the Diffie-Hellman example, Pub_key.sub.parent may be equal to g.sup.Priv_key.sup.
(22) The second intermediate node 1046 derives a shared secret (Secret.sub.shared) based on Priv_key.sub.parent and Pub_key.sub.child and generates a shared secret key Secret_Key.sub.shared=hash(Secret.sub.shared). In the Elliptic-curve Diffie-Hellman example, Secret.sub.shared may be equal to Priv_key.sub.parent*Pub_key.sub.child. In the Diffie-Hellman example, Secret.sub.shared may be equal to Pub_key.sub.child.sup.Priv_key.sup.
(23) The second intermediate node 104B transmits the parent public key 164 Pub_key.sub.parent to the new leaf node 142. In response to receiving Pub_key.sub.parent, the new leaf node 142 derives the shared secret (Secret.sub.shared) based on Priv_key.sub.child and Pub_key.sub.parent and generates the shared secret key Secret_Key.sub.shared=hash(Secret.sub.shared). In the Elliptic-curve Diffie-Hellman example, Secret.sub.shared may be equal to Priv_key.sub.child*Pub.sub.key.sub.
(24) Once the shared secret key is derived by both the second intermediate node 1048 and the new leaf node 142, link layer frames transmitted a physical connection (e.g., a wireless connection) between the second intermediate node 1048 and the new leaf node 142 are protected using the shared secret key. For example, payload portions of linked layer frames transmitted between the second intermediate node 1048 and the new leaf node 142 may be encrypted using the shared secret key. In some implementations, the linked layer frames are encrypted in their entirety using the shared secret key. Example encryption algorithms that may be used by the new leaf node 142 and the second intermediate node 104B to encrypt linked layer frames include Advanced Encryption Standard (AES), triple data encryption standard (3DES), etc.
(25) Thus,
(26) In some implementations, the multi-hop network 100 corresponds to an IPv6 based mesh network in which a child node exchanges data with its parent using the UDP/IPv6 protocol stack and datagram transport layer security (DTLS) is implemented to secure transport layer (UDP) packets. The DTLS protocol includes a handshake protocol to generate the security keys for encrypting the UDP payload. The DTLS protocol may be modified by the addition of two record layer messages, the CHILD_MAC_KEY_EXCHANGE (e.g., the parent public key 164) and the PARENT_MAC_KEY_EXCHANGE (e.g., the child public key 162).
(27) After a child node joins the network, it is assigned an IPv6 address by its parent node. The child node then initiates the MAC key exchange process by sending the CHILD_MAC_KEY_EXCHANGE to the parent node through a pre-agreed UDP server port (e.g., UDP port 20224). The parent node, listening on the server port, responds with the PARENT_MAC_KEY_EXCHANGE message which completes the MAC key generation handshake process. Accordingly, link layer security may be provided by a modified version of DTLS.
(28) Referring to
(29) As described with reference to the multi-hop network 100, each individual node of the plurality of nodes 206A-J and the root node 204 is configured to directly negotiate link layer security with a new node that associates with the individual node. In the illustrated example, a first connection 220A between the root node 204 and a node.sub.j 206J is protected by a shared secret key k.sub.jr negotiated between the root node 204 and the node.sub.j 206J. For example, the root node 204 and the node.sub.j 206J may negotiate the shared secret key k.sub.jr in response to the node.sub.j 206J associated with the root node 204 and according to the process described with reference to the second intermediate node 104B and the new leaf node 142 of
(30) Similarly, a second connection 220B is protected by a shared secret key k.sub.ir negotiated between the root node 204 and a node.sub.i 206I; a third connection 220C is protected by a shared secret key k.sub.hj negotiated between the node.sub.j 206J and a node.sub.h 206H; a fourth connection 220D is protected by a shared secret key k.sub.gj negotiated between a node.sub.g 206G and the node.sub.j 206J; a fifth connection 220E is protected by a shared secret key k.sub.gi negotiated between the node.sub.g 206G and the node.sub.i 206I; a sixth connection 220F is protected by a shared secret key k.sub.fi negotiated between a node.sub.f 206F and the node.sub.i 206I; a seventh connection 220G is protected by a shared secret key k.sub.eh negotiated between a node.sub.e 206E and the node.sub.h 206H; an eighth connection 220H is protected by a shared secret key k.sub.dh negotiated between a node.sub.d 206D and the node.sub.h 206H; a ninth connection 220I is protected by a shared secret key k.sub.ch negotiated between a node.sub.c 206c and the node.sub.h 206H; a tenth connection 220J is protected by a shared secret key k.sub.cg negotiated between the node.sub.h 206C and the node.sub.g 206G; an eleventh connection 220K is protected by a shared secret key k.sub.bg negotiated between a node.sub.b 206B and the node.sub.g 206G; a twelfth connection 220L is protected by a shared secret key k.sub.af negotiated between a node.sub.a 206A and the node.sub.f 206F; and a thirteenth connection 220M is protected by a shared secret key k.sub.ba negotiated between the node.sub.b 206B and the node.sub.a 206A. Accordingly, each physical link between two nodes in the second multi-hop network 200 is protected using a shared secret key negotiated between those two directly connected nodes.
(31) Keys are negotiated and the links 220A-M are secured independently of (and in some examples, prior to) an authentication process carried about by the coordinator 202. For example, the node.sub.d may associate with the node.sub.h and negotiate the key k.sub.dh with the node.sub.h independently of whether the node.sub.d has been authenticated by the coordinator 202. In some implementations, a key shared by a parent and a child may be renegotiated in response to a request generated by either the parent or the child. For example, the node.sub.f 206F and the node.sub.i 206I may renegotiate the k.sub.fi in response to a request from either the node.sub.f 206F or the node.sub.i 206I.
(32) Upon associating with the second multi-hop network 200, a node may have limited access to network services pending authentication by the coordinator device 202. For example, the root node 204 may not forward messages received from an unauthenticated node outside of the second multi-hop network 200. In some implementations, a new node transmits an authentication request to the coordinator 202 in response to successfully associating with the second multi-hop network 200 (e.g., in response to negotiating a secret shared key with a parent node). Because all links between the new node and the coordinator device 202 independently protected by link layer encryption, authentication messages exchanged between the coordinator device 202 and the new node may be protected from packet sniffing.
(33) Some multi-hop networks configured to support data privacy as described herein may not include a coordinator. For example,
(34) Referring to
(35) The node.sub.j 206J receives the first encrypted link layer frame 280 and decrypts the first encrypted link layer frame 280 using the private key k.sub.hj. In response to determining that the message 282 is addressed to the root node 204, the node.sub.j 206J encapsulates the message 282 in a second link layer frame addressed to the root node 204. The node.sub.j 206J encrypts the second link layer frame using the private key k.sub.jr shared between the node.sub.j 206J and the root node 204 to generate a second encrypted link layer frame 284 and transmits the second encrypted link layer frame 284 to the root node 204. Accordingly, the message 282 is protected at the link layer over each hop of the multi-hop network 200. Further, the protection of the message 282 at each hop is negotiated in a distributed fashion as described above.
(36) Referring to
(37) At 506, the method 500 includes the parent node 504 transmitting a beacon with domain parameters to the child node 502. In an illustrative example, the second intermediate node 104B transmits a beacon including domain parameters, such as a prime number “p”, a primitive root modulo p “g”, a base point G of an elliptic curve, or a combination thereof. The beacon may advertise availability of the multi-hop network 100 and may include various other information, such as a MAC address of the second intermediate node 104B.
(38) At 508, the child node 502 generates child random secret data. In the illustrative example, the new leaf node 142 generates a random child private key (Priv_key.sub.child).
(39) At 510, the child node 502 generates a child public key based on the child random secret data and the domain parameters. In the illustrative example, the new leaf node 142 generates Pub_key.sub.child=Priv_key.sub.child*G or Pub_key.sub.child=g.sup.Priv_key.sup.
(40) At 512, the child node 502 sends the child public key to the parent node 504. In the illustrative example, the new leaf node 142 sends the child public key 162 (e.g., Pub_key.sub.child) to the second intermediate node 104B. In some examples, the child public key 162 is included in a request to associate with the parent node 504.
(41) At 514, the parent node 504 generates parent random secret data in response to receiving the child public key. In the illustrative example, the second intermediate node 104B randomly generates Priv_key.sub.parent in response to receiving the child public key 162.
(42) At 516, the parent node 504 generates a parent public key based on the parent random secret data and the domain parameters. In the illustrative example, the second intermediate node 1046 generates Pub_key.sub.parent=Priv_key.sub.parent*G or Pub_key.sub.parent=g.sup.Priv_key.sup.
(43) At 518, the parent node 504 generates a shared security key based on the child public key and the parent secret data. In the illustrative example, the second intermediate node 1046 generates Secret.sub.shared=Priv_key.sub.parent*Pub_key.sub.child or Secret.sub.shared=Pub_key.sub.child.sup.Priv_key.sup.
(44) At 520, the parent node 504 sends the parent public key to the child node 502. In the illustrative example, the second intermediate node 104B sends the parent public key 164 (e.g., Pub_key.sub.parent) to the new leaf node 142. The parent public key 164 may be included in an acknowledgement message.
(45) At 522, the child node 502 generates the shared security key based on the parent public key and the child secret data. In the illustrative example, the second intermediate node 1046 generates Secret.sub.shared=Priv_key.sub.child*Pub_key.sub.parent or Secret.sub.shared=Pub_Key.sub.parent.sup.Priv_key.sup.
(46) At 524, any link layer frames transmitted between the child node 502 and the parent node 504 are encrypted (and decrypted) using the shared security key. In the illustrated example, the new leaf node 142 may encrypt a link layer frame using Secret_Key.sub.shared and an encryption algorithm, such as AES, and transmit the encrypted link layer frame to the second intermediate node 104B.
(47) As explained above, the method 500 may be performed between every parent-child pair of nodes in a multi-hop network. For example, each of the connections 220A-M in the second multi-hop network 200 may be secured according to the method 500. To illustrate, the node.sub.e 206E and the node.sub.h may generate the shared secret key k.sub.eh according to the method 500. In such an example, the node.sub.e 206E may correspond to the child node 502 and the node.sub.h 206H may correspond to the parent node 504. As another example, the node.sub.h 206H and the node.sub.j may generate the shared secret key k.sub.hj according to the method 500. In such an example, the node.sub.h 206H may correspond to the child node 502 and the node.sub.j 206J may correspond to the parent node 504. Thus, the method 500 may be performed repeatedly within a multi-hop network (e.g., upon association between each pair of nodes in the multi-hop network) to secure each link in the multi-hop network.
(48) Referring to
(49) The memory device 606 stores link layer security instructions 612 executable by the processor unit 604 to perform any of the operations described herein with reference to
(50) The computing device 600 further includes a wireless interface 608. The wireless interface 608 includes, a Wi-Fi interface, a Zigbee interface, some other type of wireless communication interface, or a combination thereof. The wireless interface 608 is configured to receive link layer frames from and transmit link layer frames to one or more other computing devices over a wireless spectrum. The processor unit 604 is configured to execute the link layer security instructions 612 to establish a security key for each link layer connection established over the wireless interface 608 and to encrypt and decrypt the link layer frames transmitted and received through the wireless interface 608.
(51) The computing device 600 further includes sensor hardware 610. The sensor hardware 610 includes hardware configured to detect an environmental change. For example, the sensor hardware 610 may include a light sensor, an acceleration sensor, a sound sensor, another type of sensor, or a combination thereof.
(52) The computing device 600 may be arranged differently than the depiction shown in
(53) The computing device 600 may correspond to any of the nodes 102, 104A-D, 106A-B, 108A-C, 142 depicted in
(54) Referring to
(55) The second computing device 700 includes a processor unit 704, a memory device 706, and a wireless interface 708. The processor unit 704 may be analogous to the processor unit 604 of
(56) The second computing device 700 further includes an additional communications interface 710. The additional communications interface may be configured to connect to a computing network, such as the Internet. The second computing device 700 may be configured to relay messages between a network connected to the additional communications interface 710 and a multi-hop network connected to the wireless interface 708.
(57) In some implementations, the second computing device 700 corresponds to the root node 102 or to the root node 204. Thus,
(58) “The term “couple” is used throughout the specification. The term may cover connections, communications, or signal paths that enable a functional relationship consistent with the description of the present disclosure. For example, if device A generates a signal to control device B to perform an action, in a first example device A is coupled to device B, or in a second example device A is coupled to device B through intervening component C if intervening component C does not substantially alter the functional relationship between device A and device B such that device B is controlled by device A via the control signal generated by device A.”
(59) Modifications are possible in the described embodiments, and other embodiments are possible, within the scope of the claims.