IP Library › Granted Patent US 12,212,463
Granted Patent B2
US 12,212,463 · App. 18/200,124 · Granted Jan 28, 2025

Network topology backup

Inventors: Matthew Flannery Knight (Boston, MA); John Douglas Penning (Washington, DC)
Assignee: Alarm.com Incorporated
H04L41/0856H04L41/084H04L41/12H04L45/02H04W40/248Y02D30/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,212,463
App. No.
18/200,124
Granted
Jan 28, 2025
Kind
B2
Abstract

A method is described that determines that a replacement node device has been connected to a mesh network, the replacement node device corresponding to an original node that has been removed from the mesh network. In response to determining that the replacement node device has been connected to the mesh network, network topology data is accessed that specifies one or more data routing configurations that are each associated with a node device included in the mesh network. From among the one or more data routing configurations specified by the network topology data, a particular data routing configuration is identified that is associated with the original node device that has been removed from the mesh network. Data that specifies the particular data routing configuration that is associated with the original node device that has been removed from the mesh network is provided to the replacement node device.

Claims (59)

1. A method comprising:

monitoring, by a system, a mesh network of node devices, wherein, at a first time:

the mesh network comprises a first plurality of node devices that includes a first node device and excludes a second node device;

each of the first plurality of node devices stores information identifying a respective data routing configuration; and

the second node device is network route agnostic and does not store information identifying a particular data routing configuration;

determining, by the system, that (i) the first node device has been removed from the mesh network and (ii) the second node device has replaced the first node device in the mesh network, such that at a second time after the first time, the mesh network comprises a second plurality of node devices that excludes the first node device and includes the second node device;

accessing, by the system, network topology data that specifies one or more data routing configurations, wherein each data routing configuration:

is associated with a respective node device of the first plurality of node devices; and

specifies a set of routing instructions for the respective node device to communicate with other node devices of the first plurality of node devices;

identifying, by the system and from among the one or more data routing configurations specified by the network topology data, the particular data routing configuration that is associated with the first node device; and

providing, from the system and to the second node device, data that specifies the particular data routing configuration that is associated with the first node device to cause the second node device to become, at a third time after the second time, network route specific and maintain information identifying the particular data routing configuration.

2. The method of claim 1 , comprising providing the data from the system to the second node device over one or more networks that are separate from the mesh network.

3. The method of claim 1 , comprising determining a particular communication pathway for providing, from the system to the second node device, the data that specifies the particular data routing configuration for the first node device.

4. The method of claim 3 , wherein the particular communication pathway comprises at least part of a communication pathway that was used to communicate data between the system and the first node device at the first time.

5. The method of claim 1 , wherein:

determining that the second node device has replaced the first node device comprises determining that the second node device has connected to the mesh network, and

accessing the network topology data is responsive to determining that the second node device has connected to the mesh network.

6. The method of claim 1 , wherein determining that the second node device has replaced the first node device comprises determining that, at the second time, the second node device is within communication range to each of a set of node devices of the mesh network, the set of node devices being the same set of node devices to which the first node device was within communication range at the first time.

7. The method of claim 1 , wherein determining that the second node device has replaced the first node device comprises determining that, at the second time, the second node device is capable of communicating with each of a set of node devices of the mesh network, the set of node devices being the same set of node devices with which the first node device was capable of communicating at the first time.

8. The method of claim 1 , wherein determining that the second node device has replaced the first node device comprises determining that the second node device has a set of communication capabilities, the set of communication capabilities including at least one communication capability of the first node device.

9. The method of claim 8 , wherein the set of communication capabilities includes one or more communication channels over which the second node device is configured to communicate with other node devices.

10. The method of claim 1 , wherein:

each of the first plurality of node devices of the mesh network is associated with:

a network identifier that uniquely identifies the mesh network; and

a device identifier that uniquely identifies the node device, and

the particular data routing configuration for the first node device specifies a device identifier for at least one other node device of the mesh network with which the first node device was to communicate.

11. The method of claim 1 , wherein determining that the first node device has been removed from the mesh network comprises determining that the first node device is not in communication with any other node devices of the mesh network.

12. The method of claim 1 , comprising, prior to determining that the first node device has been removed from the mesh network, determining, by the system, to store back up data indicating the particular data routing configuration for the first node device,

wherein the network topology data accessed by the system includes the stored back up data.

13. The method of claim 1 , comprising:

initiating, by the system, a network discovery process to cause each of the first plurality of node devices of the mesh network to determine a respective data routing configuration;

after initiating the network discovery process, receiving, by the system, data that specifies the one or more data routing configurations; and

storing, by the system, data that specifies each of the one or more data routing configurations as the network topology data.

14. The method of claim 1 , wherein the network topology data includes one or more routing tables, linked lists, or multidimensional arrays that specify communication pathways for each of the first plurality of node devices of the mesh network, wherein each communication pathway enables a particular node device of the mesh network to communicate with another node device of the mesh network.

15. One or more non-transitory computer-readable storage media coupled to at least one processor having stored thereon instructions which, when executed by the at least one processor, causes the at least one processor to perform operations comprising:

monitoring a mesh network of node devices, wherein, at a first time:

the mesh network comprises a first plurality of node devices that includes a first node device and excludes a second node device;

each of the first plurality of node devices stores information identifying a respective data routing configuration; and

the second node device is network route agnostic and does not store information identifying a particular data routing configuration;

determining that (i) the first node device has been removed from the mesh network and (ii) the second node device has replaced the first node device in the mesh network, such that at a second time after the first time, the mesh network comprises a second plurality of node devices that excludes the first node device and includes the second node device;

accessing network topology data that specifies one or more data routing configurations, wherein each data routing configuration:

is associated with a respective node device of the first plurality of node devices; and

specifies a set of routing instructions for the respective node device to communicate with other node devices of the first plurality of node devices;

identifying, from among the one or more data routing configurations specified by the network topology data, the particular data routing configuration that is associated with the first node device; and

providing, to the second node device, data that specifies the particular data routing configuration that is associated with the first node device to cause the second node device to become, at a third time after the second time, network route specific and maintain information identifying the particular data routing configuration.

16. The one or more non-transitory computer-readable storage media of claim 15 , the operations comprising providing the data to the second node device over one or more networks that are separate from the mesh network.

17. The one or more non-transitory computer-readable storage media of claim 15 , the operations comprising determining a particular communication pathway for providing, to the second node device, the data that specifies the particular data routing configuration for the first node device, wherein the particular communication pathway comprises at least part of a communication pathway that was used to communicate data to the first node device at the first time.

18. The one or more non-transitory computer-readable storage media of claim 15 , wherein:

determining that the second node device has replaced the first node device comprises determining that the second node device has connected to the mesh network, and

accessing the network topology data is responsive to determining that the second node device has connected to the mesh network.

19. A system including one or more computers and at least one non-transitory computer-readable storage medium coupled to the one or more computers having stored thereon instructions which, when executed by the one or more computers, causes the one or more computers to perform operations comprising:

monitoring a mesh network of node devices, wherein, at a first time, the mesh network comprises a first plurality of node devices that includes a first node device and excludes a second node device;

determining that (i) the first node device has been removed from the mesh network and (ii) the second node device has replaced the first node device in the mesh network, such that at a second time after the first time, the mesh network comprises a second plurality of node devices that excludes the first node device and includes the second node device,

wherein determining that the second node device has replaced the first node device comprises determining that, at the second time, the second node device is capable of communicating with each of a set of node devices of the mesh network, the set of node devices being the same set of node devices with which the first node device was capable of communicating at the first time;

accessing network topology data that specifies one or more data routing configurations, wherein each data routing configuration:

is associated with a respective node device of the first plurality of node devices; and

specifies a set of routing instructions for the respective node device to communicate with other node devices of the first plurality of node devices;

identifying, from among the one or more data routing configurations specified by the network topology data, a particular data routing configuration that is associated with the first node device; and

providing, to the second node device, data that specifies the particular data routing configuration that is associated with the first node device.

Continuity (6)
Continuation 17324233 · May 19, 2021
Continuation 16734656 · Jan 6, 2020
Continuation 15998983 · Aug 20, 2018
Continuation 14584785 · Dec 29, 2014
Provisional Application 61921289 · Dec 27, 2013
Related Publication 20230300029A1 · Sep 21, 2023
References Cited (86)
US 5689646A · Thorson · 1997 [cited by applicant]
US 6005841A · Kicklighter · 1999 [cited by examiner]
US 6185612B1 · Jensen et al. · 2001 [cited by applicant]
US 6947982B1 · McGann et al. · 2005 [cited by applicant]
US 6973023B1 · Saleh · 2005 [cited by examiner]
US 7848255B2 · Suzuki et al. · 2010 [cited by applicant]
US 8392737B2 · Sharma et al. · 2013 [cited by applicant]
US 8509923B2 · Koskan et al. · 2013 [cited by applicant]
US 8570859B1 · Satapathy et al. · 2013 [cited by applicant]
US 8768265B2 · Folden et al. · 2014 [cited by applicant]
US 8923186B1 · daCosta · 2014 [cited by applicant]
US 8982754B2 · Filoso et al. · 2015 [cited by applicant]
US 9092223B1 · Pani et al. · 2015 [cited by applicant]
US 10057123B1 · Knight et al. · 2018 [cited by applicant]
US 10212222B2 · Stoica et al. · 2019 [cited by applicant]
US 20020044549A1 · Johansson et al. · 2002 [cited by applicant]
US 20030120809A1 · Bellur et al. · 2003 [cited by applicant]
US 20030123419A1 · Rangnekar et al. · 2003 [cited by applicant]
US 20030212821A1 · Gillies et al. · 2003 [cited by applicant]
US 20040059805A1 · Dinker et al. · 2004 [cited by applicant]
US 20040078625A1 · Rampuria et al. · 2004 [cited by applicant]
US 20040098502A1 · Xu et al. · 2004 [cited by applicant]
US 20040125776A1 · Haugli et al. · 2004 [cited by applicant]
US 20040174829A1 · Ayyagari · 2004 [cited by applicant]
US 20040218602A1 · Hrastar · 2004 [cited by applicant]
US 20050073958A1 · Atlas et al. · 2005 [cited by applicant]
US 20050093130A1 · Horie · 2005 [cited by applicant]
US 20050135231A1 · Bellovin · 2005 [cited by applicant]
US 20050163080A1 · Suh et al. · 2005 [cited by applicant]
US 20050169185A1 · Qui et al. · 2005 [cited by applicant]
US 20050201300A1 · Bridgelall · 2005 [cited by applicant]
US 20050240386A1 · Carballo et al. · 2005 [cited by applicant]
US 20060092855A1 · Chiu · 2006 [cited by applicant]
US 20060126501A1 · Ramaswamy · 2006 [cited by applicant]
US 20060159024A1 · Hester · 2006 [cited by applicant]
US 20060198346A1 · Liu et al. · 2006 [cited by applicant]
US 20060268791A1 · Cheng et al. · 2006 [cited by applicant]
US 20070038743A1 · Hellhake et al. · 2007 [cited by applicant]
US 20070050240A1 · Belani et al. · 2007 [cited by applicant]
US 20070150565A1 · Ayyagari et al. · 2007 [cited by applicant]
US 20070177511A1 · Das et al. · 2007 [cited by applicant]
US 20070177538A1 · Christensen et al. · 2007 [cited by applicant]
US 20070248047A1 · Shorty et al. · 2007 [cited by applicant]
US 20070286097A1 · Davies · 2007 [cited by applicant]
US 20070291722A1 · Lee · 2007 [cited by applicant]
US 20080170513A1 · Niranjan et al. · 2008 [cited by applicant]
US 20080192713A1 · Mighani · 2008 [cited by applicant]
US 20080291910A1 · Tadimeti et al. · 2008 [cited by applicant]
US 20090138777A1 · Veillette · 2009 [cited by applicant]
US 20090185508A1 · Duke et al. · 2009 [cited by applicant]
US 20090252102A1 · Seidel et al. · 2009 [cited by applicant]
US 20100002601A1 · Carta et al. · 2010 [cited by applicant]
US 20100002707A1 · Chang · 2010 [cited by applicant]
US 20100039931A1 · Shi · 2010 [cited by examiner]
US 20100039940A1 · Wang et al. · 2010 [cited by applicant]
US 20100082513A1 · Liu · 2010 [cited by applicant]
US 20100204847A1 · Leete, III et al. · 2010 [cited by applicant]
US 20100260071A1 · Lai et al. · 2010 [cited by applicant]
US 20100284038A1 · Hosogoshi · 2010 [cited by applicant]
US 20100329260A1 · Kim et al. · 2010 [cited by applicant]
US 20110051644A1 · Huang et al. · 2011 [cited by applicant]
US 20110090785A1 · Shimizu et al. · 2011 [cited by applicant]
US 20110188420A1 · Filoso et al. · 2011 [cited by applicant]
US 20110320379A1 · Roslak et al. · 2011 [cited by applicant]
US 20120047551A1 · Pattar et al. · 2012 [cited by applicant]
US 20120244869A1 · Song et al. · 2012 [cited by applicant]
US 20120256733A1 · Carr · 2012 [cited by applicant]
US 20120294187A1 · Chau et al. · 2012 [cited by applicant]
US 20120324273A1 · Shaffer et al. · 2012 [cited by applicant]
US 20130137378A1 · Folden et al. · 2013 [cited by applicant]
US 20130159550A1 · Vasseur · 2013 [cited by applicant]
US 20130191659A1 · Ree et al. · 2013 [cited by applicant]
US 20130286917A1 · Jia et al. · 2013 [cited by applicant]
US 20130294285A1 · Zhang et al. · 2013 [cited by applicant]
US 20140085105A1 · Vaswani et al. · 2014 [cited by applicant]
US 20140126392A1 · George et al. · 2014 [cited by applicant]
US 20140169349A1 · Vyas · 2014 [cited by examiner]
US 20140258498A1 · Banerjee et al. · 2014 [cited by applicant]
US 20140293828A1 · Lee et al. · 2014 [cited by applicant]
US 20140355420A1 · Tran · 2014 [cited by examiner]
US 20140362836A1 · Locker · 2014 [cited by examiner]
US 20150023155A1 · Shanmugavadivel et al. · 2015 [cited by applicant]
US 20150092595A1 · Wetterwald et al. · 2015 [cited by applicant]
US 20150092651A1 · Chow · 2015 [cited by applicant]
US 20150350027A1 · Raissinia et al. · 2015 [cited by applicant]
US 20170070387A1 · Rao et al. · 2017 [cited by applicant]