US20170302515A1 - Methods for dynamic router configuration in a mesh network - Google Patents
Methods for dynamic router configuration in a mesh network Download PDFInfo
- Publication number
- US20170302515A1 US20170302515A1 US15/641,537 US201715641537A US2017302515A1 US 20170302515 A1 US20170302515 A1 US 20170302515A1 US 201715641537 A US201715641537 A US 201715641537A US 2017302515 A1 US2017302515 A1 US 2017302515A1
- Authority
- US
- United States
- Prior art keywords
- router
- network
- local area
- configuration
- area network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000001413 cellular effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 18
- 230000006855 networking Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 14
- 238000013519 translation Methods 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009424 underpinning Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
- H04L41/0809—Plug-and-play configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H04L61/2015—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H04W4/008—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Definitions
- This invention relates generally to the computer networking field, and more specifically to new and useful methods for dynamic router configuration in a mesh network.
- FIG. 1 is a chart representation of a method of a preferred embodiment
- FIG. 2 is a diagram representation of a mesh network using smart routers
- FIG. 3 is a diagram representation of a smart router
- FIG. 4 is a chart representation of a network configuration detection step of a method of a preferred embodiment.
- FIGS. 5A and 5B are signal flow representations of configuration data receipt techniques of a method of a preferred embodiment
- FIGS. 6A and 6B are signal flow representations of signal response delays without and with NAT delays respectively.
- FIGS. 7A and 7B are example representations of NAT detection of a method of a preferred embodiment
- FIG. 8 is a schematic representation of physical LANs linked via VPN tunnel
- FIG. 9 is a chart representation of NAT/DHCP server configuration step of a method of a preferred embodiment.
- FIGS. 10A and 10B are example representations of user intervention of a method of a preferred embodiment.
- a method 100 for dynamic router configuration in a mesh network includes detecting a network configuration S 110 and configuring router DHCP and NAT settings S 130 based on the network configuration, as shown in FIG. 1 .
- the method 100 may additionally include communicating network status with a remote management platform S 120 , configuring router firewall settings S 140 , and/or prompting user intervention S 150 .
- the method 100 functions to enable smart routers to configure themselves to best suit a user's particular home network configuration.
- the method 100 preferably enables multiple smart routers to work together to create a wireless mesh network, blanketing a space in wireless network coverage, as shown in FIG. 2 .
- a user typically, to configure an internet-connected wireless mesh network, a user must configure a first router to serve as a gateway to the internet (e.g., by connecting the router to a cable modem). Further, some networking device (generally the aforementioned first router) must also be configured to serve as a network address translation (NAT) server, a dynamic host configuration protocol (DHCP) server, and a wireless access point. Then, to extend wireless coverage as shown in FIG. 2 , additional devices (e.g., wireless routers, access points, repeaters) must be added. Even in the simple case of two or three wireless access points, the configuration options are virtually endless.
- NAT network address translation
- DHCP dynamic host configuration protocol
- the access points could exist on a single bridged network, or could be separated into different networks (e.g., could be assigned to different VLANs).
- the access points could be connected to each other by Ethernet cables, or simply serve as wireless repeaters.
- the access points could share available Wi-Fi channel space in any number of ways.
- the method 100 functions to perform much of this configuration both automatically and dynamically—optimizing the network for a user's needs without requiring extensive computer networking knowledge or hassle.
- the method 100 may additionally be used to configure smart routers to address issues other than those posed by wireless mesh networking; for example, the method 100 may enable a home network to make efficient use of multiple wide area network (WAN) gateways (e.g., splitting traffic across them, using one WAN access point as backup for another, etc.).
- WAN wide area network
- the smart routers described herein are preferably substantially similar to those described in U.S. patent application Ser. No. 15/008,251, the entirety of which is incorporated by this reference. Additionally or alternatively, the smart routers may be any suitable networking devices.
- Smart routers implementing the method 100 preferably include a Wi-Fi radio, a Bluetooth radio, an Ethernet interface, and a processor.
- the router may additionally or alternatively include any other hardware or software.
- a smart router includes two Wi-Fi radios: one 5 GHz radio, and one switchable radio (that may operate at either 5 or 2.4 GHz), a Bluetooth radio capable of both Bluetooth 4.0 and BTLE communication, an auto-sensing gigabit Ethernet interface, an ARM processor, DDR RAM, EMMC storage (for router firmware), and a USB interface (e.g., for adding network-accessible storage).
- Smart routers operating the method 100 are preferably configured and/or managed by a remote management platform.
- smart routers may be configured by altering stored configuration profiles in a remote server (part of the remote management platform), after which the stored configuration profiles are pushed to the smart routers. This technique is particularly useful in mesh networking applications; if the remote management platform is aware that three smart routers are intended for use in a single network, the remote management platform can attempt to bridge the networks of the three routers regardless of physical location or existing network topology.
- the method 100 is preferably performed by smart routers (either independently or cooperatively), but may additionally or alternatively be performed by any other suitable computing device. For example, as described in later sections, some steps of the method 100 may be performed by a remote management platform.
- the method 100 is described throughout this application as being applicable to home networks, a person skilled in the art will recognize that such a system can be applied to any suitable network (such as one in a small business).
- the method 100 is preferably intended for use in scenarios where enterprise networking solutions (and the support staff to maintain them) are not feasible; additionally or alternatively, the method 100 may be used in any suitable scenario (e.g., in typical enterprise networking scenarios).
- Step S 110 includes detecting a network configuration.
- Step S 110 functions to provide a router with information about the network to which the router is connected.
- Step S 110 preferably functions to provide the router with information about other routers on the network (useful for mesh networking) and/or information about potential gateways to the internet (useful for the router to provide connectivity to the internet).
- Step S 110 preferably includes detecting the path between the router and one or more internet gateways, but may additionally or alternatively include detecting any other relevant network configuration information (e.g., identity of devices on the network, presence and configuration of DHCP, NAT, and/or DNS servers, presence and configuration of firewalls, available LAN/WAN bandwidth, etc.).
- any other relevant network configuration information e.g., identity of devices on the network, presence and configuration of DHCP, NAT, and/or DNS servers, presence and configuration of firewalls, available LAN/WAN bandwidth, etc.
- Step S 110 is preferably performed upon initial configuration of a router, but may additionally or alternatively be performed at any suitable time; for example, upon detection of network changes (e.g., detection of an additional router, detection of router configuration changes, detection of changes to internet connectivity, detection of decreased quality of service, detection of high latency, detection of packet loss), at the request of a network administrator or the remote management platform, or upon expiration of some time threshold (e.g., every five days).
- Step S 110 can be performed automatically (e.g., conditioned on a particular feature or changes to a particular feature of the network), manually (e.g., when prompted by a user), or in any other suitable manner.
- Step S 110 is initiated manually, the user preferably has the option of doing so via any means; e.g., physically (e.g., by pushing buttons located physically at the router), remotely (e.g., by requesting it via a remote management platform, by means of an application installed on an external electronic device, etc.), etc.
- Performing Step S 110 may also include detecting network configuration data using both automatic and manual aspects; for example, Step S 110 can be initiated automatically and automatically detect network features while also (either simultaneously or sequentially) soliciting input from the user to aid in gathering network configuration data.
- Step S 110 preferably includes attempting to establish an internet connection S 111 and analyzing internet connection paths S 112 , as shown in FIG. 4 .
- Step S 111 attempting to establish an internet connection, functions to enable a router to determine information about a network's internet connectivity (or lack thereof). Step S 111 may also function to allow a router to connect to a remote management platform to download configuration data, or to perform network analysis (e.g., as described in Step S 112 ).
- Step S 111 preferably includes requesting a DHCP-assigned IP address. If a DHCP-assigned IP address is received, the IP address can be used to perform some analysis of the network path. In particular, receiving a DHCP-assigned IP address can be an indication that a DHCP server (or, possibly, multiple DHCP servers) already exists on the local area network; alternatively or additionally, receiving a DHCP-assigned IP address can indicate the presence of a pre-existing internet connection (or, possibly, multiple pre-existing internet connections), can be used to analyze the network topology between various DHCP servers and other network entities (e.g., other routers, switches, external servers, etc.) on the local area network, or can be used for any other suitable purpose.
- a DHCP-assigned IP address can be an indication that a DHCP server (or, possibly, multiple DHCP servers) already exists on the local area network; alternatively or additionally, receiving a DHCP-assigned IP address can indicate
- requesting a DHCP-assigned IP address may include receiving additional information that may be used to perform network path analysis; for example, the router address, DNS addresses, DHCP lease time, and/or a subnet mask associated with a DHCP lease may be received along with the DHCP-assigned IP address and may be used to perform network configuration analysis. If a DHCP-assigned IP address is not received, this may be an indication that the router is not connected to a LAN or WAN (or that a DHCP server is not running on a connected LAN).
- Step S 111 preferably includes attempting to establish an internet connection via an Ethernet port of the router or through an open wireless network, but may additionally or alternatively include attempting to establish an internet connection in any suitable manner.
- other configured routers broadcast a restricted open network.
- the restricted open network is preferably hidden (i.e., it does not broadcast its SSID). Alternatively, the restricted open network may not be hidden.
- routers attempting to connect to the internet during configuration may connect to any nearby router's restricted open network.
- the restricted open network preferably only allows access to cloud servers used for router configuration/registration; additionally or alternatively, the restricted open network may allow any suitable access.
- the restricted open network may allow communication with Windows update servers as well.
- the restricted open network preferably allows connections with any device requesting to join; additionally or alternatively, the restricted open network may only allow devices with certain credentials or characteristics to connect.
- the restricted open network may only allow devices with a particular MAC address prefix (e.g., the prefix corresponding to the router manufacturer) to connect.
- the restricted open network may require an access code or cryptographic key, certificate, etc. for a device to connect to the network.
- the restricted open network may only be joined after initiation of out-of-band communication (e.g., the router attempting to join a second router's restricted open network must establish communication with the second router over Bluetooth or another non-WiFi protocol).
- Devices connecting to the restricted open network are preferably isolated from other devices (e.g., on the main network associated with the router broadcasting the restricted open network) using a virtual LAN.
- devices joining the restricted open network may have any level of access to devices on the primary network or on other virtual networks (e.g., no access, limited access, full access).
- the virtual LAN can enable the routers and servers on the restricted open network to register with a remote management platform, retrieve router configuration updates, and/or download server updates (among other functions) while still enabling network security by barring unwanted connections and traffic on the local area network.
- the virtual LAN on the restricted open network can also prevent abuse of the restricted open network by restricting bandwidth, limiting the accessible sites that devices on the restricted open network can access, hiding other devices already connected, and/or any other suitable means.
- Step S 111 may include attempting to connect to another device in order to secure an alternative internet connection.
- the device can be a smartphone, and Step S 111 may include attempting to connect to the internet via the cellular internet connection of the smartphone, as shown in FIG. 5A .
- Step S 111 may include attempting to connect to a configuration application on another device (e.g., a smartphone) via Bluetooth or Wi-Fi to receive configuration data locally from the device (e.g., the smartphone may download configuration data from the router management platform to the configuration app, and then the router may in turn receive that configuration data from the smartphone), as shown in FIG. 5B . Note that this may be different than the router connecting to the internet via the smartphone, as in this case the router may not necessarily communicate directly with the remote management platform.
- Step S 111 may include receiving information from a configuration application on another device via push (e.g., over Bluetooth) or via another technique without first attempting a connection.
- Step S 112 analyzing internet connection paths, functions to determine aspects of network configuration (e.g., the number and priority of accessible internet connections, the existence of a firewall, the existence of NAT or DHCP servers, etc.) from the router's internet connection.
- Step S 112 may include analyzing internet connection paths in a number of ways, some of which are described below.
- Step S 112 may include analyzing the router's assigned IP address to determine network configuration details. If, for example, a router is assigned a private IP address (e.g., an IPv4 address of 192.168.1.104) and has internet connectivity, this may indicate that the router is connected to the internet by another router. In contrast, if the router is assigned a public IP address (e.g., an IPv4 address of 8.8.8.8 or an IPv6 address of 2600::aaaa), this may indicate that the router is directly connected to the internet (e.g., via a cable modem or a DSL modem).
- a private IP address e.g., an IPv4 address of 192.168.1.104
- a public IP address e.g., an IPv4 address of 8.8.8.8 or an IPv6 address of 2600::aaaa
- this may indicate that the router is directly connected to the internet (e.g., via a cable modem or a DSL mode
- analysis of the router's IP address can enable an estimation of the geographic location of the router, which can be leveraged in determining and/or setting the local area network configuration.
- analysis of the router's IP address can enable estimating the bandwidth or other characteristics of the internet connection (e.g., via a lookup of the ISP providing the IP address).
- a network bandwidth estimate can aid in distributing traffic share suitably across the various internet connections.
- Step S 112 may also include analyzing other details related to assigned IP address (e.g., the IP address of the DHCP server that assigned the router's IP address).
- Step S 112 may include communicating with an external server (e.g., through the internet) and analyzing that communication to determine network configuration details.
- a router could attempt to communicate with an external server on a number of ports to detect the presence of a firewall.
- the Internet Assigned Numbers Authority IANA maintains a comprehensive database of the different ports and their associated data types; for example, port 25 is reserved for email traffic within the Simple Mail Transfer Protocol (SMTP), while port 80 is designated for world wide web traffic within the Hypertext Transfer Protocol (HTTP).
- SMTP Simple Mail Transfer Protocol
- HTTP Hypertext Transfer Protocol
- a router could attempt to communicate with an external server on a single port, on a predetermined set of ports, on a randomized set of ports, on a set of ports determined from a model, on a set of ports selected for a particular type of traffic, or on a set of ports determined in any other suitable manner.
- This communication may include a message (or, possibly, multiple messages) which may include a source IP address, a destination IP address, a time stamp, and/or a message body (and/or possibly additional information).
- the router can wait to receive a response from the external server.
- the external server may not receive a message from the router on a particular port; this may be an indication that traffic has been blocked on that port by a firewall.
- the external server may receive the message from the router on a particular port and attempt to respond on that same port, but the router may not receive the response message; this may also be an indication that traffic has been blocked on that port by a firewall.
- the external server may receive the message from the router and respond with a response message, and the router may receive the response message; in this case, the router can analyze aspects of the response message (e.g., time stamp, source IP address, destination IP address, etc.) in order to determine information about firewall presence and/or configuration.
- the router attempts to send multiple messages to the external server on a single port and receives responses from only a minor fraction of these messages (where, for example, the minor fraction can be set by a predetermined threshold), this may also be an indication that a firewall is filtering traffic on that port.
- firewalls may also perform NAT, and so, for example, by comparing (e.g., at the router, at the external server, etc.) the source IP address on sending and on receipt and determining that NAT had been performed, one can use this information to help decide if a firewall is present.
- analyzing a communication between a router and an external server on a number of ports may include identifying particular aspects of a firewall if a firewall is present.
- one firewall type is a stateful firewall, in which the firewall explicitly filters traffic depending on state information of potential traffic (e.g., only passing traffic on permissible ports, with permissible source or destination IP addresses, and/or abiding by any other suitable criteria).
- analyzing responses (or null responses) from attempted communications between a router and several external servers may enable determination that a firewall is both present and only transmitting traffic between particular IP addresses (i.e., the firewall is stateful).
- a second type of firewall a stateless firewall (in which traffic is passed based solely on IP addresses contained in a packet header), may also be identified by analyzing responses (or null responses) between a router and several external servers.
- the router could send messages (e.g., Internet Control Message Protocol (ICMP) echo request packets, User Datagram Protocol (UDP) packets, Transmission Control Protocol Synchronize (TCP SYN) packets, or any other suitable message or packet) with various configurations to determine further connection information.
- ICMP Internet Control Message Protocol
- UDP User Datagram Protocol
- TCP SYN Transmission Control Protocol Synchronize
- routers typically decrement packet time-to-live (TTL) values when packets pass through; either by manipulating TTL values for packets (e.g., performing a traceroute) or by analyzing TTL values, the number of hops between the router and an external server (and thus some information about network structure) can be determined.
- TTL packet time-to-live
- Traceroutes in particular can be performed by the router; the IP addresses of responding servers can be used to determine how many hops a packet must take from the router to the internet (identified by the first public IP address responding to the traceroute). Packet response time can also be used to detect the presence of servers or other routers; for instance, network address translation (NAT) may introduce a characteristic delay to packets.
- the router can perform a traceroute test, which includes sending a sequence of packets with a series of integer TTL values to other servers or routers. As the packets hop between network entities, the TTL values are decremented (e.g., by other routers on the local area network, an external server, etc.).
- the network entity can discard the packet and return a message to the router performing the traceroute.
- the returned message to the router can include a packet header, a measurement of the hop round trip time (RTT) of the packets as the packets travel to and from the network entities, the IP addresses of any of the network entities, and/or any other suitable information.
- RTT hop round trip time
- the traceroute can be used to measure the RTT of packets and determine NAT presence based on time delays characteristic of NAT.
- d 1 is the travel time from the router to entity 1
- d 2 is the response time of entity 1 (i.e., the time taken to successfully forward the packet)
- d 3 is the travel time from entity 1 to entity 2
- d 4 is the response time of entity 2 (i.e., the time taken to generate a response to the packet)
- d 5 is the travel time from entity 2 back to entity 1
- d 6 is the second response time of entity 1
- d 7 is the travel time from entity 1 to the router.
- FIG. 6A assumes that NAT is not performed at entity 1. If NAT is performed at entity 1, as shown in FIG. 6B , the response delays at entity 1 are longer.
- the response delays may be characterized as a sum of an initial or base delay (e.g., d 2 b , d 6 b ) and a delay due to NAT (e.g., d 2 n , d 6 n ).
- a time scale for NAT that can be used for the NAT threshold time can be taken directly from a manufacturer's specification; alternatively, a characteristic time delay introduced by NAT can be estimated by comparing the RTT of packets communicated between two servers in which NAT is performed against the RTT of packets communicated between two servers in which NAT is not performed. Any other suitable means for characterizing a time delay associated with NAT can also be used.
- the NAT threshold time can be a number within the range of 0 to 780,000 milliseconds but alternatively can span any other suitable range.
- packets can be sent (e.g., the initially sent packets, the intermediate packets, the return packets, etc.) that include information related to IP addresses in the packet headers and/or packet bodies which can be analyzed to determine if NAT is being performed on the local area network.
- a particular router can send out packets with an initial source IP address in the packet header and another network entity can collect a particular packet with a first received source IP address, as shown in FIG. 7A .
- the network entity can then send a response message to the router with the first received source IP address in both the packet header and the packet body, and the router can receive the network entity's response message.
- the response message that the router receives can contain an IP address in the packet header (containing a second received source IP address) and an IP address in the packet body (containing the first received source IP address). If NAT is being performed on the local area network, the first received source IP address in the packet header may be translated to the second received source IP address on hopping to the router (while the IP address in the packet body may remain fixed), and therefore a detected difference between the received IP addresses in the packet header and packet body may indicate that NAT is being performed.
- a receiving server may compare the IP address of the body to the header source IP of the packet containing it (if they are different, this may be indicative of NAT) and return a response to the router (e.g., directly, or indirectly via the router management platform) as shown in FIG. 7B .
- Step S 112 may include any suitable communication with an external server (or even an internal server) suitable for aiding in analysis of router internet connection paths.
- Step S 112 may include discovering network translation characteristics of any NAT server present in the router internet connection path. These characteristics may be used to allow the router's NAT server (if operating) to perform translation in a manner compatible with translation performed by other NAT servers.
- Step S 112 may include determining how the pre-existing NAT server performs its network translation (i.e., uncovering the pre-existing NAT server's translation table) and configuring the router to function compatibly with the pre-existing NAT server.
- Step S 112 may include communicating with a remote router management platform. In particular, this is useful for networks including multiple smart routers (described in more detail below).
- Step S 112 may include comparing router configuration or registration data to detected network configuration data.
- Step S 112 may include scanning ports of the router and comparing results of the port scan to configured firewall values for the router (if, for example, more ports are blocked than expected, this may be indicative of an additional firewall between the router and the remote management platform).
- Communication with a remote router management platform may include any suitable communication (e.g., a heartbeat signal, a keepalive signal, etc.). Routers may transmit heartbeat signals to provide updates on router status, network status, or any other relevant information to the remote management platform.
- the router can communicate a keepalive signal to the remote management platform.
- the keepalive signal can be used to ensure that the router and remote management platform maintain their communicative contact, to diagnose a broken link between the router and the remote management platform, to maintain the connection between multiple NAT-enabled routers on the local area network, or for any other suitable purpose.
- the keepalive signal can be sent after being prompted by a user, at regular time intervals (i.e., every week), when changes to the network configuration are detected, or in any other suitable manner.
- Step S 112 may additionally be performed in manners specifically designed to leverage the existence of multiple smart routers on a network.
- Step S 112 detection of multiple smart routers is preferably accomplished by Step S 112 .
- the presence of multiple smart routers may be detected in any suitable manner.
- a router may download configuration data that includes a reference to additional linked routers (e.g., by MAC address).
- linked routers preferably refers to routers that are intended to be on the same LAN (noting that this LAN may be include different subnetworks that are linked virtually, e.g., through VPN as shown in FIG. 8 ).
- this reference to linked routers may be programmed into the router prior to communication with the remote management platform (e.g., if this information was included in a set of routers sold together as a mesh network set).
- Smart routers may additionally or alternatively detect other smart routers in any other suitable manner (e.g., by detecting a hidden access point of another smart router, by detecting a Bluetooth connection of a smart router, by detecting a particular known SSID, etc.).
- detection of other smart routers is inherently linked to a particular network (e.g., when routers are known to be part of a linked mesh network set); in other cases, detection of multiple smart routers may not mean that the routers should operate on the same network or be administered by the same entity.
- a smart router may detect an open access point of a neighbor's smart router; for the two to be linked in a mesh network, the link would preferably need to be confirmed by both routers (as opposed to in a linked mesh network set, where this link may potentially occur automatically).
- the router can be paired with a router identifier and one or more user accounts stored in the remote management platform, and information about the number of smart routers and their configuration settings (e.g., which, if any, should be DHCP or NAT servers; which, if any, should be linked and isolated on a virtual LAN; details about the topology of the network; etc.) can be associated with the user account and stored at the remote management platform.
- Router registration data can include an ID number uniquely associated with a particular router (or set of routers) (e.g., a MAC address, a router group identifier) and can additionally include information regarding the local area network configuration associated with the router identifier.
- router configuration data e.g., DHCP server configuration settings, NAT server configuration settings, wireless access point configuration settings, firewall settings, etc.
- router configuration data can be transmitted from the remote management platform to the router to enable the router to automatically configure suitable configuration settings of the local area network.
- a large house can have both a cable modem and a cellular modem.
- a first router of a linked set is connected to the cable modem, a second router of the linked set is connected to the cellular modem, and the two routers are not otherwise connected.
- the two routers may be bridged wirelessly so that a user connecting to the wireless network in the house may use either the cellular internet connection or the cable internet connection (this is described in more detail in the sections describing Step S 130 ).
- Information for Step S 110 may be used not only to identify network device presence and configuration (e.g., presence of a firewall blocking a particular port configuration between a smart router and the internet) but also network device identification.
- a firewall may be identified as a particular model of firewall based on a default port blocking ‘fingerprint’ (i.e., how port blocking occurs and for what ports it occurs).
- identifying particular client devices can be used to perform quality of service (i.e., assign different priority to different devices and to share LAN and/or internet bandwidth across devices based on priority), to assign particular devices to particular wireless access points or frequencies, or for any other suitable purpose.
- Step S 120 includes communicating network data with a remote management platform.
- Step S 120 functions to enable data transfer between one or smart routers and a remote management platform.
- Step S 120 preferably functions to provide router configuration data to routers (e.g., DHCP configuration data, firewall configuration data, etc.) and/or aid in detection of network configurations for networks containing smart routers (as described in Step S 110 ).
- Step S 120 may additionally or alternatively function to keep a remote management platform updated on router status (e.g., sending heartbeat signals as previously described).
- Step S 120 may be performed at any time, for any purpose.
- Step S 130 includes configuring router DHCP and NAT settings.
- Step S 130 functions to configure the smart router to serve as a DHCP server (or client) and/or as a NAT server.
- DHCP configuration is particularly important for wireless mesh networks; for example, many mesh network configurations include multiple routers, with only one router configured as a DHCP/NAT server (the rest may essentially serve as wireless access points or repeaters).
- Step S 130 preferably includes configuring router NAT settings S 131 , as shown in FIG. 9 .
- Step S 131 functions to determine which smart routers on a network (if any) are to serve as NAT servers and to determine configuration details for those NAT servers.
- Step S 131 is important in cases where there are multiple potential NAT servers on a network.
- a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall).
- a router e.g., a wireless access point with DHCP/NAT/firewall.
- proper configuration may include disabling NAT in all smart routers on the network (unless additional private networks are desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as NAT servers.
- Step S 131 may include configuring NAT servers in a number of ways, including designating a single NAT server (i.e., one router has NAT turned on, the others do not) or by operating multiple NAT servers. If Step S 131 includes configuring any dynamic NAT servers, server configurations are preferably controlled by coordinating smart routers through the router management platform; additionally or alternatively, dynamic NAT servers may be managed in any suitable way.
- Step S 131 may be used for cases where multiple internet connections are available.
- Router 1 may be connected to a cable internet connection
- Router 2 may be connected to a cellular internet connection.
- Step S 131 may be used to perform NAT on Router 1 when the cable internet connection is desired, and NAT on Router 2 when the cellular internet connection is desired.
- Step S 131 may include operating a single NAT server that adaptively performs translation (e.g., changing the outside IP to be translated to/from), operating multiple NAT servers simultaneously (e.g., one for a particular subnet, another for a different subnet), and/or operating multiple NAT servers asynchronously (e.g., operating a first NAT server by default, but switching to a second NAT server if the first NAT server experiences a service interruption).
- translation e.g., changing the outside IP to be translated to/from
- multiple NAT servers simultaneously
- asynchronously e.g., operating a first NAT server by default, but switching to a second NAT server if the first NAT server experiences a service interruption.
- Step S 131 may additionally or alternatively include designating internet connection by TCP stream (or at any other sub-device resolution level); for example, high bandwidth, latency insensitive applications (e.g., streaming video) may use a first connection, while low bandwidth, latency sensitive applications (e.g., real-time online gaming) may use a second connection.
- high bandwidth, latency insensitive applications e.g., streaming video
- low bandwidth, latency sensitive applications e.g., real-time online gaming
- Step S 131 may include sharing traffic based on any suitable input data.
- Step S 131 may include altering NAT configuration based on available bandwidth (e.g., a particular connection is only used until a bandwidth cap is reached), price (e.g., expensive connections may be used only when necessary for a particular application), or any other criteria.
- Traffic sharing agreements are preferably determined by the router management platform, but may additionally or alternatively be determined by any suitable entity.
- Traffic sharing can also be accomplished via network load balancing algorithms, whereby IP traffic is distributed over the multiple internet connections in order to meet one or more network goals.
- network goals may include reducing response time for one or more devices on the network, increasing bandwidth available to one or more devices on the network, increasing performance for particular services or types of traffic on the network, increasing reliability of internet access for devices on the network, etc.
- a first example of a network load balancing algorithm for traffic sharing is a round robin algorithm. The round robin algorithm allocates a first IP traffic request to a randomly selected first internet connection, a second traffic request to a second internet connection that is randomly selected except that it excludes the first, and so on until all internet connections have been allocated at least once, at which point the cycle repeats.
- Round robin works well when most traffic requests are roughly equal in bandwidth demand and duration.
- a second example of a network load balancing algorithm is dynamic round robin. Dynamic round robin works similarly to the base round robin algorithm except that the allocation step is distributed according to a weighting scheme discerned from real-time internet connection performance. Dynamic round robin can eschew the problem of multiple high traffic requests being routed over the same internet connection.
- a third example of a network load balancing algorithm is a predictive algorithm.
- a predictive algorithm can monitor real-time internet connection characteristics (e.g., which internet connections have the fewest IP traffic requests on them, which internet connections have the largest data stream allocations on them, etc.) and historical internet connection characteristics (e.g., a time series of monitored download and upload speeds over a recent time period) in order to determine which internet connections are improving or declining in performance over time (as quantified in a metric of performance), can feed these metrics of performance into a dynamic weighting scheme, and can allocate new IP traffic requests according to the dynamic weighting scheme.
- any suitable network load balancing algorithm can be implemented.
- traffic can also be shared over multiple smart routers.
- Load balancing, traffic sharing agreements, or any other suitable means for determining how traffic is shared across the different routers can be implemented to accomplish similar network goals as for traffic sharing over multiple internet connections (e.g., increased network bandwidth, speed, reliability, performance, etc.).
- the manner in which the network performs load balancing can be pre-determined (e.g., traffic can be proportionally distributed across internet connections), dynamically determined (e.g., at the time of a user request, the particular request can assign a priority, and then the routers can handle load performance in accordance with the priority hierarchy of all network traffic), or determined in any other suitable manner.
- Step S 130 preferably includes configuring router DHCP settings S 132 , as shown in FIG. 9 .
- Step S 132 functions to determine which smart routers on a network (if any) are to serve as DHCP servers and to determine configuration details for those DHCP servers.
- Step S 132 is important in cases where there are multiple potential DHCP servers on a network.
- a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall).
- a router e.g., a wireless access point with DHCP/NAT/firewall.
- proper configuration may include disabling DHCP in all smart routers on the network (unless additional private networks are desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as DHCP servers.
- Step S 132 may include configuring DHCP servers in a number of ways, including designating a single DHCP server (i.e., one router has DHCP turned on, the others do not) or by operating multiple DHCP servers. If Step S 132 includes configuring any dynamic DHCP servers, server configurations are preferably controlled by coordinating smart routers through the router management platform; additionally or alternatively, dynamic DHCP servers may be managed in any suitable way.
- Step S 132 includes operating multiple DHCP servers
- the DHCP servers preferably share an IP table (e.g., DHCP servers assign IP addresses to devices and the assignments are stored in a table accessible to the multiple servers so that they do not attempt to assign different IP addresses to the same device).
- IP table e.g., DHCP servers assign IP addresses to devices and the assignments are stored in a table accessible to the multiple servers so that they do not attempt to assign different IP addresses to the same device.
- Step S 132 may include configuring DHCP servers to share IP assignment in any suitable manner.
- Step S 132 may include designating primary and secondary (and tertiary, and so on) DHCP servers, used by all devices on a particular network.
- Step S 132 may additionally or alternatively include designating DHCP server by device (e.g., all devices with one MAC address range use a particular DHCP server) or by desired subnet (preferably configured by the remote management platform).
- Step S 132 may include sharing IP assignment duties based on any suitable input data.
- Step S 140 includes configuring router firewall settings. Step S 140 functions to determine which smart routers on a network (if any) are to serve as firewalls and to determine configuration details for those firewalls.
- Step S 140 is important in cases where there are multiple potential firewalls (software OR hardware) on a network.
- a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall).
- a router e.g., a wireless access point with DHCP/NAT/firewall.
- proper configuration may include disabling firewalls in all smart routers on the network (unless additional protection is desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as firewalls.
- Step S 140 preferably includes configuring firewalls based on configuration data stored in the remote management platform but may additionally or alternatively configure firewalls in any suitable manner.
- Step S 150 includes prompting user intervention.
- Step S 150 functions to enable users to reconfigure devices on the network not controlled by the remote management platform (e.g., non-smart-router networking devices or smart routers inaccessible to the remote management platform).
- Step S 150 may include providing a user instructions to reconfigure a modem with an integrated router to disable NAT, DHCP, and firewall, allowing a smart router to take over these functions.
- Step S 150 preferably includes instructing a user to perform network configuration in any suitable way (including providing instructions for changing network device configurations in software, rerouting Ethernet cables, moving wireless access points, etc.), as shown in FIG. 10A .
- the user wants to modify network configuration settings (including DHCP servers, NAT servers, wireless access points, firewalls, etc.) after the previous steps have been performed.
- Step S 150 enables the user (most preferably by means of software operating in conjunction with a remote management platform, but alternatively otherwise) to easily implement the desired configuration changes.
- the user can confirm that the network configuration performed by the earlier steps are appropriate.
- the user is given instructions through software on an external electronic device; per the instructions, the user can then reconfigure network configuration settings when the reconfiguration includes physical modifications to network features (e.g., disconnecting routers which were previously physically tethered by an Ethernet cable).
- network features e.g., disconnecting routers which were previously physically tethered by an Ethernet cable.
- Step S 150 performs some or all of reconfiguration of other devices desired.
- software on a smart router or in the remote management platform, if the web interface is accessible to the platform
- Step S 150 may include requesting a user identifier (e.g., credential, account name, password, access code, etc.) and network entity identifiers (e.g., identifying the other devices as routers, servers, etc.; identifying the manufacturers or model numbers of the other devices; etc.) in the process of reconfiguration.
- a user identifier e.g., credential, account name, password, access code, etc.
- network entity identifiers e.g., identifying the other devices as routers, servers, etc.; identifying the manufacturers or model numbers of the other devices; etc.
- Step S 150 may include the user providing the network entity identifiers (e.g., via a user interface on a user electronic device, through a web interface accessible to the remote management platform, etc.) and/or the network entity identifiers being detecting automatically.
- a method for router configuration can include collecting DHCP server presence data of a local area network at a router; collecting NAT server presence data of the local area network at the router; generating a network configuration status based upon the DHCP server presence data and the NAT server presence data; and configuring DHCP server and NAT server settings of the router based on the network configuration status.
- This example can additionally include detecting and configuring firewall settings of the local area network; detecting and configuring wireless access points of the local area network; designating a hierarchy of internet connections (e.g., primary and secondary internet connections) during the configuration of the NAT server settings; and/or storing the network configuration status at a remote management platform.
- the router can detect the local area network configuration and topology, which may already include, for example, other routers, NAT servers, or DHCP servers, each of which may be connected to each other in a variety of ways).
- the router can identify the other entities (e.g., DHCP servers, NAT servers, firewalls, wireless access points, smart routers, non-smart routers, etc.) on the local area network and suitably configure itself based on presence and/or configuration of the entities on the local area network, all automatically and without requiring prior knowledge of the constituent elements contained in the local area network.
- This example can be especially useful for mesh network configuration, where the router management platform can facilitate the automatic detection of the various entities in the local area network and configure one or more entities to work in tandem (e.g., one router as a gateway and other routers serving as wireless repeaters or wireless access points).
- a method for router configuration includes establishing an internet connection at a router; transmitting a router identifier of the router to a remote management platform via the internet connection; at the remote management platform, identifying a local area network configuration (including DHCP server configuration settings, NAT server configuration settings, firewall settings, and wireless access point configuration settings) associated with the router identifier; transmitting the local area network configuration from the remote management platform to the router; and at the router, configuring the DHCP server configuration settings, NAT server configuration settings, firewall settings, and wireless access point configuration settings based on the local area network configuration.
- a local area network configuration including DHCP server configuration settings, NAT server configuration settings, firewall settings, and wireless access point configuration settings
- This example can additionally include connecting to a user mobile electronic device and receiving the local area network configuration from the user mobile electronic device; connecting to a cellular internet connection of the user mobile electronic device to request the local area network configuration from the remote management platform; and/or updating the local area network configuration with a user device.
- the router can identify a local area network configuration by retrieving the configuration data from the remote management platform over the internet and can automatically configure the local area network entities (e.g., DHCP servers, NAT servers, firewalls, wireless access points, smart routers, non-smart routers, etc.) based upon the configuration data retrieved from the remote management platform.
- the local area network entities e.g., DHCP servers, NAT servers, firewalls, wireless access points, smart routers, non-smart routers, etc.
- the router can specifically leverage additional, a priori knowledge of the local area network configuration and topology in order to configure all local area network entities to work in tandem.
- This example realizes many of the benefits of the first example but can eschew explicitly detecting the local area network configuration, which may expedite the process for automatic configuration.
- the methods of the preferred embodiment and variations thereof can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions.
- the instructions are preferably executed by computer-executable components preferably integrated with a smart router.
- the computer-readable medium can be stored on any suitable computer-readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device.
- the computer-executable component is preferably a general or application specific processor, but any suitable dedicated hardware or hardware/firmware combination device can alternatively or additionally execute the instructions.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- This application is a division of U.S. application Ser. No. 15/131,472, dated 18 Apr. 2016, which claims the benefit of U.S. Provisional Application Ser. No. 62/161,652, filed on 14 May 2015, both of which are incorporated in their entirety by this reference.
- This invention relates generally to the computer networking field, and more specifically to new and useful methods for dynamic router configuration in a mesh network.
- The modern internet has revolutionized communications by enabling computing devices to transmit large amounts of data quickly over incredibly vast differences. The rate of innovation set by application and web developers is breathtakingly fast, but unfortunately, not all aspects of the internet experience have kept pace. In particular, even as people rely more and more heavily on home networking solutions to enable internet connectivity for a rapidly increasing collection of electronic devices, the technology underpinning those solutions often provides a woefully inadequate user experience. In particular, it is often difficult for users to configure home networking solutions correctly in scenarios involving more than one networking device (e.g., routers, switches, gateways, etc.); for example, wireless mesh networks. Thus, there is a need in the computer networking field to create new and useful methods for dynamic router configuration in a mesh network.
-
FIG. 1 is a chart representation of a method of a preferred embodiment; -
FIG. 2 is a diagram representation of a mesh network using smart routers; -
FIG. 3 is a diagram representation of a smart router; -
FIG. 4 is a chart representation of a network configuration detection step of a method of a preferred embodiment; and -
FIGS. 5A and 5B are signal flow representations of configuration data receipt techniques of a method of a preferred embodiment; -
FIGS. 6A and 6B are signal flow representations of signal response delays without and with NAT delays respectively, -
FIGS. 7A and 7B are example representations of NAT detection of a method of a preferred embodiment; -
FIG. 8 is a schematic representation of physical LANs linked via VPN tunnel; -
FIG. 9 is a chart representation of NAT/DHCP server configuration step of a method of a preferred embodiment; and -
FIGS. 10A and 10B are example representations of user intervention of a method of a preferred embodiment. - The following description of the preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.
- A method 100 for dynamic router configuration in a mesh network includes detecting a network configuration S110 and configuring router DHCP and NAT settings S130 based on the network configuration, as shown in
FIG. 1 . The method 100 may additionally include communicating network status with a remote management platform S120, configuring router firewall settings S140, and/or prompting user intervention S150. - The method 100 functions to enable smart routers to configure themselves to best suit a user's particular home network configuration. In particular, the method 100 preferably enables multiple smart routers to work together to create a wireless mesh network, blanketing a space in wireless network coverage, as shown in
FIG. 2 . - Typically, to configure an internet-connected wireless mesh network, a user must configure a first router to serve as a gateway to the internet (e.g., by connecting the router to a cable modem). Further, some networking device (generally the aforementioned first router) must also be configured to serve as a network address translation (NAT) server, a dynamic host configuration protocol (DHCP) server, and a wireless access point. Then, to extend wireless coverage as shown in
FIG. 2 , additional devices (e.g., wireless routers, access points, repeaters) must be added. Even in the simple case of two or three wireless access points, the configuration options are virtually endless. For example, the access points could exist on a single bridged network, or could be separated into different networks (e.g., could be assigned to different VLANs). The access points could be connected to each other by Ethernet cables, or simply serve as wireless repeaters. The access points could share available Wi-Fi channel space in any number of ways. - Even for experienced users, the array of network configurations available can be extremely overwhelming. The method 100 functions to perform much of this configuration both automatically and dynamically—optimizing the network for a user's needs without requiring extensive computer networking knowledge or hassle.
- The method 100 may additionally be used to configure smart routers to address issues other than those posed by wireless mesh networking; for example, the method 100 may enable a home network to make efficient use of multiple wide area network (WAN) gateways (e.g., splitting traffic across them, using one WAN access point as backup for another, etc.).
- The smart routers described herein are preferably substantially similar to those described in U.S. patent application Ser. No. 15/008,251, the entirety of which is incorporated by this reference. Additionally or alternatively, the smart routers may be any suitable networking devices.
- Smart routers implementing the method 100 preferably include a Wi-Fi radio, a Bluetooth radio, an Ethernet interface, and a processor. The router may additionally or alternatively include any other hardware or software. In one example implementation, as shown in
FIG. 3 , a smart router includes two Wi-Fi radios: one 5 GHz radio, and one switchable radio (that may operate at either 5 or 2.4 GHz), a Bluetooth radio capable of both Bluetooth 4.0 and BTLE communication, an auto-sensing gigabit Ethernet interface, an ARM processor, DDR RAM, EMMC storage (for router firmware), and a USB interface (e.g., for adding network-accessible storage). - Smart routers operating the method 100 are preferably configured and/or managed by a remote management platform. In one example, smart routers may be configured by altering stored configuration profiles in a remote server (part of the remote management platform), after which the stored configuration profiles are pushed to the smart routers. This technique is particularly useful in mesh networking applications; if the remote management platform is aware that three smart routers are intended for use in a single network, the remote management platform can attempt to bridge the networks of the three routers regardless of physical location or existing network topology.
- The method 100 is preferably performed by smart routers (either independently or cooperatively), but may additionally or alternatively be performed by any other suitable computing device. For example, as described in later sections, some steps of the method 100 may be performed by a remote management platform.
- While the method 100 is described throughout this application as being applicable to home networks, a person skilled in the art will recognize that such a system can be applied to any suitable network (such as one in a small business). The method 100 is preferably intended for use in scenarios where enterprise networking solutions (and the support staff to maintain them) are not feasible; additionally or alternatively, the method 100 may be used in any suitable scenario (e.g., in typical enterprise networking scenarios).
- Step S110 includes detecting a network configuration. Step S110 functions to provide a router with information about the network to which the router is connected. In particular, Step S110 preferably functions to provide the router with information about other routers on the network (useful for mesh networking) and/or information about potential gateways to the internet (useful for the router to provide connectivity to the internet).
- Step S110 preferably includes detecting the path between the router and one or more internet gateways, but may additionally or alternatively include detecting any other relevant network configuration information (e.g., identity of devices on the network, presence and configuration of DHCP, NAT, and/or DNS servers, presence and configuration of firewalls, available LAN/WAN bandwidth, etc.).
- Step S110 is preferably performed upon initial configuration of a router, but may additionally or alternatively be performed at any suitable time; for example, upon detection of network changes (e.g., detection of an additional router, detection of router configuration changes, detection of changes to internet connectivity, detection of decreased quality of service, detection of high latency, detection of packet loss), at the request of a network administrator or the remote management platform, or upon expiration of some time threshold (e.g., every five days). Step S110 can be performed automatically (e.g., conditioned on a particular feature or changes to a particular feature of the network), manually (e.g., when prompted by a user), or in any other suitable manner. If Step S110 is initiated manually, the user preferably has the option of doing so via any means; e.g., physically (e.g., by pushing buttons located physically at the router), remotely (e.g., by requesting it via a remote management platform, by means of an application installed on an external electronic device, etc.), etc. Performing Step S110 may also include detecting network configuration data using both automatic and manual aspects; for example, Step S110 can be initiated automatically and automatically detect network features while also (either simultaneously or sequentially) soliciting input from the user to aid in gathering network configuration data.
- Step S110 preferably includes attempting to establish an internet connection S111 and analyzing internet connection paths S112, as shown in
FIG. 4 . - Step S111, attempting to establish an internet connection, functions to enable a router to determine information about a network's internet connectivity (or lack thereof). Step S111 may also function to allow a router to connect to a remote management platform to download configuration data, or to perform network analysis (e.g., as described in Step S112).
- Step S111 preferably includes requesting a DHCP-assigned IP address. If a DHCP-assigned IP address is received, the IP address can be used to perform some analysis of the network path. In particular, receiving a DHCP-assigned IP address can be an indication that a DHCP server (or, possibly, multiple DHCP servers) already exists on the local area network; alternatively or additionally, receiving a DHCP-assigned IP address can indicate the presence of a pre-existing internet connection (or, possibly, multiple pre-existing internet connections), can be used to analyze the network topology between various DHCP servers and other network entities (e.g., other routers, switches, external servers, etc.) on the local area network, or can be used for any other suitable purpose. In addition to receiving a DHCP-assigned IP address, requesting a DHCP-assigned IP address may include receiving additional information that may be used to perform network path analysis; for example, the router address, DNS addresses, DHCP lease time, and/or a subnet mask associated with a DHCP lease may be received along with the DHCP-assigned IP address and may be used to perform network configuration analysis. If a DHCP-assigned IP address is not received, this may be an indication that the router is not connected to a LAN or WAN (or that a DHCP server is not running on a connected LAN).
- Step S111 preferably includes attempting to establish an internet connection via an Ethernet port of the router or through an open wireless network, but may additionally or alternatively include attempting to establish an internet connection in any suitable manner.
- In one embodiment, other configured routers broadcast a restricted open network. The restricted open network is preferably hidden (i.e., it does not broadcast its SSID). Alternatively, the restricted open network may not be hidden. In this embodiment, routers attempting to connect to the internet during configuration may connect to any nearby router's restricted open network. The restricted open network preferably only allows access to cloud servers used for router configuration/registration; additionally or alternatively, the restricted open network may allow any suitable access. For example, the restricted open network may allow communication with Windows update servers as well. The restricted open network preferably allows connections with any device requesting to join; additionally or alternatively, the restricted open network may only allow devices with certain credentials or characteristics to connect. As a first example, the restricted open network may only allow devices with a particular MAC address prefix (e.g., the prefix corresponding to the router manufacturer) to connect. As a second example, the restricted open network may require an access code or cryptographic key, certificate, etc. for a device to connect to the network. As a third example, the restricted open network may only be joined after initiation of out-of-band communication (e.g., the router attempting to join a second router's restricted open network must establish communication with the second router over Bluetooth or another non-WiFi protocol). Devices connecting to the restricted open network are preferably isolated from other devices (e.g., on the main network associated with the router broadcasting the restricted open network) using a virtual LAN. Alternatively, devices joining the restricted open network may have any level of access to devices on the primary network or on other virtual networks (e.g., no access, limited access, full access). In this example, the virtual LAN can enable the routers and servers on the restricted open network to register with a remote management platform, retrieve router configuration updates, and/or download server updates (among other functions) while still enabling network security by barring unwanted connections and traffic on the local area network. In some realizations, the virtual LAN on the restricted open network can also prevent abuse of the restricted open network by restricting bandwidth, limiting the accessible sites that devices on the restricted open network can access, hiding other devices already connected, and/or any other suitable means.
- If Step S111 is not successful in establishing an internet connection (or for any other reason), Step S111 may include attempting to connect to another device in order to secure an alternative internet connection. In one example, the device can be a smartphone, and Step S111 may include attempting to connect to the internet via the cellular internet connection of the smartphone, as shown in
FIG. 5A . - Alternatively, Step S111 may include attempting to connect to a configuration application on another device (e.g., a smartphone) via Bluetooth or Wi-Fi to receive configuration data locally from the device (e.g., the smartphone may download configuration data from the router management platform to the configuration app, and then the router may in turn receive that configuration data from the smartphone), as shown in
FIG. 5B . Note that this may be different than the router connecting to the internet via the smartphone, as in this case the router may not necessarily communicate directly with the remote management platform. As a second alternative, Step S111 may include receiving information from a configuration application on another device via push (e.g., over Bluetooth) or via another technique without first attempting a connection. - Step S112, analyzing internet connection paths, functions to determine aspects of network configuration (e.g., the number and priority of accessible internet connections, the existence of a firewall, the existence of NAT or DHCP servers, etc.) from the router's internet connection. Step S112 may include analyzing internet connection paths in a number of ways, some of which are described below.
- In one example, Step S112 may include analyzing the router's assigned IP address to determine network configuration details. If, for example, a router is assigned a private IP address (e.g., an IPv4 address of 192.168.1.104) and has internet connectivity, this may indicate that the router is connected to the internet by another router. In contrast, if the router is assigned a public IP address (e.g., an IPv4 address of 8.8.8.8 or an IPv6 address of 2600::aaaa), this may indicate that the router is directly connected to the internet (e.g., via a cable modem or a DSL modem). In some cases, analysis of the router's IP address can enable an estimation of the geographic location of the router, which can be leveraged in determining and/or setting the local area network configuration. In some cases, analysis of the router's IP address can enable estimating the bandwidth or other characteristics of the internet connection (e.g., via a lookup of the ISP providing the IP address). Especially as it relates to those cases in which the local area network includes multiple internet connections, a network bandwidth estimate can aid in distributing traffic share suitably across the various internet connections. In this example, Step S112 may also include analyzing other details related to assigned IP address (e.g., the IP address of the DHCP server that assigned the router's IP address).
- In a second example, Step S112 may include communicating with an external server (e.g., through the internet) and analyzing that communication to determine network configuration details. In this example, a router could attempt to communicate with an external server on a number of ports to detect the presence of a firewall. The Internet Assigned Numbers Authority (IANA) maintains a comprehensive database of the different ports and their associated data types; for example, port 25 is reserved for email traffic within the Simple Mail Transfer Protocol (SMTP), while port 80 is designated for world wide web traffic within the Hypertext Transfer Protocol (HTTP). Within the context of this example, a router could attempt to communicate with an external server on a single port, on a predetermined set of ports, on a randomized set of ports, on a set of ports determined from a model, on a set of ports selected for a particular type of traffic, or on a set of ports determined in any other suitable manner. This communication may include a message (or, possibly, multiple messages) which may include a source IP address, a destination IP address, a time stamp, and/or a message body (and/or possibly additional information). In this example, after attempting to communicate to the external server, the router can wait to receive a response from the external server. The external server may not receive a message from the router on a particular port; this may be an indication that traffic has been blocked on that port by a firewall. The external server may receive the message from the router on a particular port and attempt to respond on that same port, but the router may not receive the response message; this may also be an indication that traffic has been blocked on that port by a firewall. The external server may receive the message from the router and respond with a response message, and the router may receive the response message; in this case, the router can analyze aspects of the response message (e.g., time stamp, source IP address, destination IP address, etc.) in order to determine information about firewall presence and/or configuration. For example, if there is a significant time delay between the message initiating from the router and being received at the external server (or, alternatively or additionally, a significant time delay between the response message initiating from the external server and being received at the router), this could be an indication that a firewall has performed a filtering process on transmission of both/either the router's message to the external server and/or the external server's response message to the router. As a second example, if the router attempts to send multiple messages to the external server on a single port and receives responses from only a minor fraction of these messages (where, for example, the minor fraction can be set by a predetermined threshold), this may also be an indication that a firewall is filtering traffic on that port. As a third example, if the router attempts to send multiple messages to the external server on multiple ports and receives responses from the external server on all messages from a first port but only a fraction of messages sent on a second port, this may be an indication that a firewall is filtering traffic on a particular port. As a fourth example, firewalls may also perform NAT, and so, for example, by comparing (e.g., at the router, at the external server, etc.) the source IP address on sending and on receipt and determining that NAT had been performed, one can use this information to help decide if a firewall is present.
- In addition to detecting the presence of a firewall, analyzing a communication between a router and an external server on a number of ports may include identifying particular aspects of a firewall if a firewall is present. For example, one firewall type is a stateful firewall, in which the firewall explicitly filters traffic depending on state information of potential traffic (e.g., only passing traffic on permissible ports, with permissible source or destination IP addresses, and/or abiding by any other suitable criteria). In this example, analyzing responses (or null responses) from attempted communications between a router and several external servers may enable determination that a firewall is both present and only transmitting traffic between particular IP addresses (i.e., the firewall is stateful). A second type of firewall, a stateless firewall (in which traffic is passed based solely on IP addresses contained in a packet header), may also be identified by analyzing responses (or null responses) between a router and several external servers.
- Additionally or alternatively, the router could send messages (e.g., Internet Control Message Protocol (ICMP) echo request packets, User Datagram Protocol (UDP) packets, Transmission Control Protocol Synchronize (TCP SYN) packets, or any other suitable message or packet) with various configurations to determine further connection information. For example, routers typically decrement packet time-to-live (TTL) values when packets pass through; either by manipulating TTL values for packets (e.g., performing a traceroute) or by analyzing TTL values, the number of hops between the router and an external server (and thus some information about network structure) can be determined. Traceroutes in particular can be performed by the router; the IP addresses of responding servers can be used to determine how many hops a packet must take from the router to the internet (identified by the first public IP address responding to the traceroute). Packet response time can also be used to detect the presence of servers or other routers; for instance, network address translation (NAT) may introduce a characteristic delay to packets. In one specific implementation of this example, the router can perform a traceroute test, which includes sending a sequence of packets with a series of integer TTL values to other servers or routers. As the packets hop between network entities, the TTL values are decremented (e.g., by other routers on the local area network, an external server, etc.). When the TTL value of a packet gets decremented to zero, the network entity can discard the packet and return a message to the router performing the traceroute. The returned message to the router can include a packet header, a measurement of the hop round trip time (RTT) of the packets as the packets travel to and from the network entities, the IP addresses of any of the network entities, and/or any other suitable information. In one realization of a traceroute test to detect NAT, the traceroute can be used to measure the RTT of packets and determine NAT presence based on time delays characteristic of NAT. In this example, one can estimate the RTT of packets in the absence of NAT (e.g., by performing traceroute between the router and a network entity for which it is known a priori that no NAT is being performed, and for which the network path between the router and the entity is similar to the network path between the router and the packet's destination) and compare the RTT of packets in the absence of NAT to the RTT as measured by traceroute in the local area network that is to be configured. If the difference between these two RTTs exceeds a NAT threshold time characterized by a time scale for NAT, this can be used to detect the presence of NAT within the local area network. For example, as shown in
FIG. 6A , a packet sent between a router and entity 2 (traveling via entity 1) experiences a delay -
d=d 1 +d 2 +d 3 +d 4 +d 5 +d 6 +d 7 - where d1 is the travel time from the router to
entity 1, d2 is the response time of entity 1 (i.e., the time taken to successfully forward the packet), d3 is the travel time fromentity 1 toentity 2, d4 is the response time of entity 2 (i.e., the time taken to generate a response to the packet), d5 is the travel time fromentity 2 back toentity 1, d6 is the second response time ofentity 1, and d7 is the travel time fromentity 1 to the router. The example inFIG. 6A assumes that NAT is not performed atentity 1. If NAT is performed atentity 1, as shown inFIG. 6B , the response delays atentity 1 are longer. The response delays may be characterized as a sum of an initial or base delay (e.g., d2 b, d6 b) and a delay due to NAT (e.g., d2 n, d6 n). - A time scale for NAT that can be used for the NAT threshold time can be taken directly from a manufacturer's specification; alternatively, a characteristic time delay introduced by NAT can be estimated by comparing the RTT of packets communicated between two servers in which NAT is performed against the RTT of packets communicated between two servers in which NAT is not performed. Any other suitable means for characterizing a time delay associated with NAT can also be used. The NAT threshold time can be a number within the range of 0 to 780,000 milliseconds but alternatively can span any other suitable range.
- In a second realization of a test to detect NAT, packets can be sent (e.g., the initially sent packets, the intermediate packets, the return packets, etc.) that include information related to IP addresses in the packet headers and/or packet bodies which can be analyzed to determine if NAT is being performed on the local area network. In this example, a particular router can send out packets with an initial source IP address in the packet header and another network entity can collect a particular packet with a first received source IP address, as shown in
FIG. 7A . The network entity can then send a response message to the router with the first received source IP address in both the packet header and the packet body, and the router can receive the network entity's response message. The response message that the router receives can contain an IP address in the packet header (containing a second received source IP address) and an IP address in the packet body (containing the first received source IP address). If NAT is being performed on the local area network, the first received source IP address in the packet header may be translated to the second received source IP address on hopping to the router (while the IP address in the packet body may remain fixed), and therefore a detected difference between the received IP addresses in the packet header and packet body may indicate that NAT is being performed. Alternatively, if a router sends a packet identifying its IP address in the body, a receiving server may compare the IP address of the body to the header source IP of the packet containing it (if they are different, this may be indicative of NAT) and return a response to the router (e.g., directly, or indirectly via the router management platform) as shown inFIG. 7B . - Step S112 may include any suitable communication with an external server (or even an internal server) suitable for aiding in analysis of router internet connection paths. In particular, Step S112 may include discovering network translation characteristics of any NAT server present in the router internet connection path. These characteristics may be used to allow the router's NAT server (if operating) to perform translation in a manner compatible with translation performed by other NAT servers. For example, in a mesh network in which a NAT server is already present and in which the router is also intended to be used for NAT, Step S112 may include determining how the pre-existing NAT server performs its network translation (i.e., uncovering the pre-existing NAT server's translation table) and configuring the router to function compatibly with the pre-existing NAT server.
- In a third example, Step S112 may include communicating with a remote router management platform. In particular, this is useful for networks including multiple smart routers (described in more detail below). In this example, Step S112 may include comparing router configuration or registration data to detected network configuration data. For example, Step S112 may include scanning ports of the router and comparing results of the port scan to configured firewall values for the router (if, for example, more ports are blocked than expected, this may be indicative of an additional firewall between the router and the remote management platform). Communication with a remote router management platform may include any suitable communication (e.g., a heartbeat signal, a keepalive signal, etc.). Routers may transmit heartbeat signals to provide updates on router status, network status, or any other relevant information to the remote management platform. In some cases, the router can communicate a keepalive signal to the remote management platform. The keepalive signal can be used to ensure that the router and remote management platform maintain their communicative contact, to diagnose a broken link between the router and the remote management platform, to maintain the connection between multiple NAT-enabled routers on the local area network, or for any other suitable purpose. The keepalive signal can be sent after being prompted by a user, at regular time intervals (i.e., every week), when changes to the network configuration are detected, or in any other suitable manner.
- While the examples described above may be applicable either to networks containing a single smart router or to networks containing multiple smart routers, Step S112 may additionally be performed in manners specifically designed to leverage the existence of multiple smart routers on a network.
- For these additional methods to be performed, detection of multiple smart routers is preferably accomplished by Step S112. The presence of multiple smart routers may be detected in any suitable manner.
- In one example, multiple smart routers are detected based on communication with the remote management platform. In this example, a router may download configuration data that includes a reference to additional linked routers (e.g., by MAC address). Here, linked routers preferably refers to routers that are intended to be on the same LAN (noting that this LAN may be include different subnetworks that are linked virtually, e.g., through VPN as shown in
FIG. 8 ). Alternatively, this reference to linked routers may be programmed into the router prior to communication with the remote management platform (e.g., if this information was included in a set of routers sold together as a mesh network set). Smart routers may additionally or alternatively detect other smart routers in any other suitable manner (e.g., by detecting a hidden access point of another smart router, by detecting a Bluetooth connection of a smart router, by detecting a particular known SSID, etc.). In some cases, detection of other smart routers is inherently linked to a particular network (e.g., when routers are known to be part of a linked mesh network set); in other cases, detection of multiple smart routers may not mean that the routers should operate on the same network or be administered by the same entity. For example, a smart router may detect an open access point of a neighbor's smart router; for the two to be linked in a mesh network, the link would preferably need to be confirmed by both routers (as opposed to in a linked mesh network set, where this link may potentially occur automatically). In some cases, the router can be paired with a router identifier and one or more user accounts stored in the remote management platform, and information about the number of smart routers and their configuration settings (e.g., which, if any, should be DHCP or NAT servers; which, if any, should be linked and isolated on a virtual LAN; details about the topology of the network; etc.) can be associated with the user account and stored at the remote management platform. Users can maintain an account on servers hosted in the cloud and maintained by the router manufacturer or other party; this account can be used to perform registration, to perform router configuration, and/or to access router status information. Router registration data can include an ID number uniquely associated with a particular router (or set of routers) (e.g., a MAC address, a router group identifier) and can additionally include information regarding the local area network configuration associated with the router identifier. In those cases where configuration settings of the local area network are known a priori by associating the router with a router identifier, router configuration data (e.g., DHCP server configuration settings, NAT server configuration settings, wireless access point configuration settings, firewall settings, etc.) can be transmitted from the remote management platform to the router to enable the router to automatically configure suitable configuration settings of the local area network. - Once a set of smart routers are detected and linked together in some way by the remote management platform (or in another suitable manner), Step S112 may include communicating with each of the linked routers in order to analyze internet connection paths. In particular, this is useful when routers are not in direct connection (e.g., the routers are initially not connected by a shared LAN).
- For example, a large house can have both a cable modem and a cellular modem. A first router of a linked set is connected to the cable modem, a second router of the linked set is connected to the cellular modem, and the two routers are not otherwise connected. The two routers may be bridged wirelessly so that a user connecting to the wireless network in the house may use either the cellular internet connection or the cable internet connection (this is described in more detail in the sections describing Step S130).
- Information for Step S110 may be used not only to identify network device presence and configuration (e.g., presence of a firewall blocking a particular port configuration between a smart router and the internet) but also network device identification. For example, a firewall may be identified as a particular model of firewall based on a default port blocking ‘fingerprint’ (i.e., how port blocking occurs and for what ports it occurs). As another example, identifying particular client devices can be used to perform quality of service (i.e., assign different priority to different devices and to share LAN and/or internet bandwidth across devices based on priority), to assign particular devices to particular wireless access points or frequencies, or for any other suitable purpose.
- Step S120 includes communicating network data with a remote management platform. Step S120 functions to enable data transfer between one or smart routers and a remote management platform. Step S120 preferably functions to provide router configuration data to routers (e.g., DHCP configuration data, firewall configuration data, etc.) and/or aid in detection of network configurations for networks containing smart routers (as described in Step S110). Step S120 may additionally or alternatively function to keep a remote management platform updated on router status (e.g., sending heartbeat signals as previously described). Step S120 may be performed at any time, for any purpose.
- Step S130 includes configuring router DHCP and NAT settings. Step S130 functions to configure the smart router to serve as a DHCP server (or client) and/or as a NAT server. Along with NAT configuration, DHCP configuration is particularly important for wireless mesh networks; for example, many mesh network configurations include multiple routers, with only one router configured as a DHCP/NAT server (the rest may essentially serve as wireless access points or repeaters).
- Step S130 is preferably performed by altering a stored configuration in a remote management platform and then transmitting that stored configuration to a smart router, but Step S130 may additionally or alternatively be performed locally on the smart router or in any other location. Step S130 is preferably performed by an electronic device linked to the remote management platform (e.g., a smartphone), but may additionally or alternatively be performed by any electronic device (e.g., the router itself, the remote management platform by itself, etc.)
- Step S130 preferably includes configuring router NAT settings S131, as shown in
FIG. 9 . Step S131 functions to determine which smart routers on a network (if any) are to serve as NAT servers and to determine configuration details for those NAT servers. - In particular, Step S131 is important in cases where there are multiple potential NAT servers on a network. One common case of this is where a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall). In this case, proper configuration may include disabling NAT in all smart routers on the network (unless additional private networks are desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as NAT servers.
- Step S131 may include configuring NAT servers in a number of ways, including designating a single NAT server (i.e., one router has NAT turned on, the others do not) or by operating multiple NAT servers. If Step S131 includes configuring any dynamic NAT servers, server configurations are preferably controlled by coordinating smart routers through the router management platform; additionally or alternatively, dynamic NAT servers may be managed in any suitable way.
- In particular, Step S131 may be used for cases where multiple internet connections are available. For example,
Router 1 may be connected to a cable internet connection, whileRouter 2 may be connected to a cellular internet connection. Step S131 may be used to perform NAT onRouter 1 when the cable internet connection is desired, and NAT onRouter 2 when the cellular internet connection is desired. - In such cases, Step S131 may include operating a single NAT server that adaptively performs translation (e.g., changing the outside IP to be translated to/from), operating multiple NAT servers simultaneously (e.g., one for a particular subnet, another for a different subnet), and/or operating multiple NAT servers asynchronously (e.g., operating a first NAT server by default, but switching to a second NAT server if the first NAT server experiences a service interruption).
- Step S131 may include configuring NAT servers to share traffic in any suitable manner. Traffic sharing preferably includes sharing traffic across multiple internet connections (which correspond to different public IPs used by NAT). For example, Step S131 may include designating primary and secondary (and tertiary, and so on) internet connections, used by all devices on a particular network. Step S131 may additionally or alternatively include designating internet connection by device (e.g., all devices in the 192.168.1.xxx subnet use a particular connection, all smartphones use a particular connection, etc.). Step S131 may additionally or alternatively include designating internet connection by TCP stream (or at any other sub-device resolution level); for example, high bandwidth, latency insensitive applications (e.g., streaming video) may use a first connection, while low bandwidth, latency sensitive applications (e.g., real-time online gaming) may use a second connection.
- Step S131 may include sharing traffic based on any suitable input data. For example, Step S131 may include altering NAT configuration based on available bandwidth (e.g., a particular connection is only used until a bandwidth cap is reached), price (e.g., expensive connections may be used only when necessary for a particular application), or any other criteria. Traffic sharing agreements are preferably determined by the router management platform, but may additionally or alternatively be determined by any suitable entity.
- Traffic sharing can also be accomplished via network load balancing algorithms, whereby IP traffic is distributed over the multiple internet connections in order to meet one or more network goals. Examples of network goals may include reducing response time for one or more devices on the network, increasing bandwidth available to one or more devices on the network, increasing performance for particular services or types of traffic on the network, increasing reliability of internet access for devices on the network, etc. A first example of a network load balancing algorithm for traffic sharing is a round robin algorithm. The round robin algorithm allocates a first IP traffic request to a randomly selected first internet connection, a second traffic request to a second internet connection that is randomly selected except that it excludes the first, and so on until all internet connections have been allocated at least once, at which point the cycle repeats. Round robin works well when most traffic requests are roughly equal in bandwidth demand and duration. A second example of a network load balancing algorithm is dynamic round robin. Dynamic round robin works similarly to the base round robin algorithm except that the allocation step is distributed according to a weighting scheme discerned from real-time internet connection performance. Dynamic round robin can eschew the problem of multiple high traffic requests being routed over the same internet connection. A third example of a network load balancing algorithm is a predictive algorithm. A predictive algorithm can monitor real-time internet connection characteristics (e.g., which internet connections have the fewest IP traffic requests on them, which internet connections have the largest data stream allocations on them, etc.) and historical internet connection characteristics (e.g., a time series of monitored download and upload speeds over a recent time period) in order to determine which internet connections are improving or declining in performance over time (as quantified in a metric of performance), can feed these metrics of performance into a dynamic weighting scheme, and can allocate new IP traffic requests according to the dynamic weighting scheme. Alternatively, any suitable network load balancing algorithm can be implemented.
- Instead of or in addition to sharing traffic over multiple internet connections, traffic can also be shared over multiple smart routers. Load balancing, traffic sharing agreements, or any other suitable means for determining how traffic is shared across the different routers can be implemented to accomplish similar network goals as for traffic sharing over multiple internet connections (e.g., increased network bandwidth, speed, reliability, performance, etc.).
- The manner in which the network performs load balancing can be pre-determined (e.g., traffic can be proportionally distributed across internet connections), dynamically determined (e.g., at the time of a user request, the particular request can assign a priority, and then the routers can handle load performance in accordance with the priority hierarchy of all network traffic), or determined in any other suitable manner.
- Step S130 preferably includes configuring router DHCP settings S132, as shown in
FIG. 9 . Step S132 functions to determine which smart routers on a network (if any) are to serve as DHCP servers and to determine configuration details for those DHCP servers. - In particular, Step S132 is important in cases where there are multiple potential DHCP servers on a network. One common case of this is where a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall). In this case, proper configuration may include disabling DHCP in all smart routers on the network (unless additional private networks are desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as DHCP servers.
- Step S132 may include configuring DHCP servers in a number of ways, including designating a single DHCP server (i.e., one router has DHCP turned on, the others do not) or by operating multiple DHCP servers. If Step S132 includes configuring any dynamic DHCP servers, server configurations are preferably controlled by coordinating smart routers through the router management platform; additionally or alternatively, dynamic DHCP servers may be managed in any suitable way.
- If Step S132 includes operating multiple DHCP servers, the DHCP servers preferably share an IP table (e.g., DHCP servers assign IP addresses to devices and the assignments are stored in a table accessible to the multiple servers so that they do not attempt to assign different IP addresses to the same device).
- Additionally or alternatively, Step S132 may include configuring DHCP servers to share IP assignment in any suitable manner. For example, Step S132 may include designating primary and secondary (and tertiary, and so on) DHCP servers, used by all devices on a particular network. Step S132 may additionally or alternatively include designating DHCP server by device (e.g., all devices with one MAC address range use a particular DHCP server) or by desired subnet (preferably configured by the remote management platform). Step S132 may include sharing IP assignment duties based on any suitable input data.
- Step S140 includes configuring router firewall settings. Step S140 functions to determine which smart routers on a network (if any) are to serve as firewalls and to determine configuration details for those firewalls.
- In particular, Step S140 is important in cases where there are multiple potential firewalls (software OR hardware) on a network. One common case of this is where a user has existing (non-smart router) networking devices on a network; for example, in situations where a user's cable modem also includes a router (e.g., a wireless access point with DHCP/NAT/firewall). In this case, proper configuration may include disabling firewalls in all smart routers on the network (unless additional protection is desired).
- Another common case occurs when a user has multiple smart routers present on a network. In this case, it is important to establish which smart routers (preferably all controlled by a remote management platform) serve as firewalls.
- In general, Step S140 preferably includes operating firewalls on any router performing NAT but may additionally or alternatively include operating firewalls (or not) on any smart router.
- Step S140 preferably includes configuring firewalls based on configuration data stored in the remote management platform but may additionally or alternatively configure firewalls in any suitable manner.
- Step S150 includes prompting user intervention. Step S150 functions to enable users to reconfigure devices on the network not controlled by the remote management platform (e.g., non-smart-router networking devices or smart routers inaccessible to the remote management platform). For example, Step S150 may include providing a user instructions to reconfigure a modem with an integrated router to disable NAT, DHCP, and firewall, allowing a smart router to take over these functions.
- Step S150 preferably includes instructing a user to perform network configuration in any suitable way (including providing instructions for changing network device configurations in software, rerouting Ethernet cables, moving wireless access points, etc.), as shown in
FIG. 10A . In one example, the user wants to modify network configuration settings (including DHCP servers, NAT servers, wireless access points, firewalls, etc.) after the previous steps have been performed. Step S150 enables the user (most preferably by means of software operating in conjunction with a remote management platform, but alternatively otherwise) to easily implement the desired configuration changes. In a second example, the user can confirm that the network configuration performed by the earlier steps are appropriate. In this second example, the user is given instructions through software on an external electronic device; per the instructions, the user can then reconfigure network configuration settings when the reconfiguration includes physical modifications to network features (e.g., disconnecting routers which were previously physically tethered by an Ethernet cable). - In a variation of a preferred embodiment, Step S150 performs some or all of reconfiguration of other devices desired. For example, software on a smart router (or in the remote management platform, if the web interface is accessible to the platform) may automatically perform the reconfiguration desired, as shown in
FIG. 10B . For example, Step S150 may include requesting a user identifier (e.g., credential, account name, password, access code, etc.) and network entity identifiers (e.g., identifying the other devices as routers, servers, etc.; identifying the manufacturers or model numbers of the other devices; etc.) in the process of reconfiguration. In this example, Step S150 may include the user providing the network entity identifiers (e.g., via a user interface on a user electronic device, through a web interface accessible to the remote management platform, etc.) and/or the network entity identifiers being detecting automatically. - As one of ordinary skill in the art will recognize, suitable combinations of the method steps can be readily envisioned and performed in a diverse range of contexts. In a first example, a method for router configuration can include collecting DHCP server presence data of a local area network at a router; collecting NAT server presence data of the local area network at the router; generating a network configuration status based upon the DHCP server presence data and the NAT server presence data; and configuring DHCP server and NAT server settings of the router based on the network configuration status. This example can additionally include detecting and configuring firewall settings of the local area network; detecting and configuring wireless access points of the local area network; designating a hierarchy of internet connections (e.g., primary and secondary internet connections) during the configuration of the NAT server settings; and/or storing the network configuration status at a remote management platform. In this example, the router can detect the local area network configuration and topology, which may already include, for example, other routers, NAT servers, or DHCP servers, each of which may be connected to each other in a variety of ways). Further, in this example, the router can identify the other entities (e.g., DHCP servers, NAT servers, firewalls, wireless access points, smart routers, non-smart routers, etc.) on the local area network and suitably configure itself based on presence and/or configuration of the entities on the local area network, all automatically and without requiring prior knowledge of the constituent elements contained in the local area network. This example can be especially useful for mesh network configuration, where the router management platform can facilitate the automatic detection of the various entities in the local area network and configure one or more entities to work in tandem (e.g., one router as a gateway and other routers serving as wireless repeaters or wireless access points). This example can also enable anyone authorized to access the remote management platform to aid in configuring the router (e.g., when the user is having trouble configuring the local area network) via a secondary internet connection (e.g., tethered cellular internet connection), even when the router's primary internet connection (e.g., a cable modem) is down.
- In a second example, a method for router configuration includes establishing an internet connection at a router; transmitting a router identifier of the router to a remote management platform via the internet connection; at the remote management platform, identifying a local area network configuration (including DHCP server configuration settings, NAT server configuration settings, firewall settings, and wireless access point configuration settings) associated with the router identifier; transmitting the local area network configuration from the remote management platform to the router; and at the router, configuring the DHCP server configuration settings, NAT server configuration settings, firewall settings, and wireless access point configuration settings based on the local area network configuration. This example can additionally include connecting to a user mobile electronic device and receiving the local area network configuration from the user mobile electronic device; connecting to a cellular internet connection of the user mobile electronic device to request the local area network configuration from the remote management platform; and/or updating the local area network configuration with a user device. In this example, the router can identify a local area network configuration by retrieving the configuration data from the remote management platform over the internet and can automatically configure the local area network entities (e.g., DHCP servers, NAT servers, firewalls, wireless access points, smart routers, non-smart routers, etc.) based upon the configuration data retrieved from the remote management platform. In this example, the router can specifically leverage additional, a priori knowledge of the local area network configuration and topology in order to configure all local area network entities to work in tandem. This example realizes many of the benefits of the first example but can eschew explicitly detecting the local area network configuration, which may expedite the process for automatic configuration.
- The methods of the preferred embodiment and variations thereof can be embodied and/or implemented at least in part as a machine configured to receive a computer-readable medium storing computer-readable instructions. The instructions are preferably executed by computer-executable components preferably integrated with a smart router. The computer-readable medium can be stored on any suitable computer-readable media such as RAMs, ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard drives, floppy drives, or any suitable device. The computer-executable component is preferably a general or application specific processor, but any suitable dedicated hardware or hardware/firmware combination device can alternatively or additionally execute the instructions.
- As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the preferred embodiments of the invention without departing from the scope of this invention defined in the following claims.
Claims (6)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/641,537 US20170302515A1 (en) | 2015-05-14 | 2017-07-05 | Methods for dynamic router configuration in a mesh network |
US16/116,742 US11075802B2 (en) | 2015-05-14 | 2018-08-29 | Methods for dynamic router configuration in a mesh network |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562161652P | 2015-05-14 | 2015-05-14 | |
US15/131,472 US9736019B2 (en) | 2015-05-14 | 2016-04-18 | Methods for dynamic router configuration in a mesh network |
US15/641,537 US20170302515A1 (en) | 2015-05-14 | 2017-07-05 | Methods for dynamic router configuration in a mesh network |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/131,472 Division US9736019B2 (en) | 2015-05-14 | 2016-04-18 | Methods for dynamic router configuration in a mesh network |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/116,742 Continuation US11075802B2 (en) | 2015-05-14 | 2018-08-29 | Methods for dynamic router configuration in a mesh network |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170302515A1 true US20170302515A1 (en) | 2017-10-19 |
Family
ID=57277308
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/131,472 Active US9736019B2 (en) | 2015-05-14 | 2016-04-18 | Methods for dynamic router configuration in a mesh network |
US15/641,537 Abandoned US20170302515A1 (en) | 2015-05-14 | 2017-07-05 | Methods for dynamic router configuration in a mesh network |
US16/116,742 Active 2036-09-11 US11075802B2 (en) | 2015-05-14 | 2018-08-29 | Methods for dynamic router configuration in a mesh network |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/131,472 Active US9736019B2 (en) | 2015-05-14 | 2016-04-18 | Methods for dynamic router configuration in a mesh network |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/116,742 Active 2036-09-11 US11075802B2 (en) | 2015-05-14 | 2018-08-29 | Methods for dynamic router configuration in a mesh network |
Country Status (1)
Country | Link |
---|---|
US (3) | US9736019B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055156A (en) * | 2017-12-18 | 2018-05-18 | 迈普通信技术股份有限公司 | AP management methods and device |
CN108092830A (en) * | 2018-02-09 | 2018-05-29 | 乐鑫信息科技(上海)有限公司 | The method that ICP/IP protocol is applied in Mesh network |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10805331B2 (en) | 2010-09-24 | 2020-10-13 | BitSight Technologies, Inc. | Information technology security assessment system |
US9438615B2 (en) | 2013-09-09 | 2016-09-06 | BitSight Technologies, Inc. | Security risk management |
US10110560B2 (en) * | 2015-08-07 | 2018-10-23 | Avaya Inc. | Management for communication ports |
US10554482B2 (en) * | 2016-03-18 | 2020-02-04 | Plume Design, Inc. | Optimization of distributed Wi-Fi networks estimation and learning |
GB2551200B (en) * | 2016-06-10 | 2019-12-11 | Sophos Ltd | Combined security and QOS coordination among devices |
US10536338B2 (en) * | 2016-07-07 | 2020-01-14 | International Business Machines Corporation | Networking connection resolution assistant |
US9998923B2 (en) * | 2016-09-15 | 2018-06-12 | Network Performance Research Group Llc | Systems, methods and computer-readable storage media facilitating access point management via secure association of an access point and a mobile device |
JP6444964B2 (en) * | 2016-11-30 | 2018-12-26 | 株式会社パイオリンクPiolink, Inc. | Switch network setting method, switch using the same, and computer-readable recording medium |
CN107332700B (en) * | 2017-06-22 | 2020-11-06 | 上海掌门科技有限公司 | A method and device for configuring a wireless routing device |
US10425380B2 (en) | 2017-06-22 | 2019-09-24 | BitSight Technologies, Inc. | Methods for mapping IP addresses and domains to organizations using user activity data |
TWI651978B (en) * | 2017-09-27 | 2019-02-21 | 神準科技股份有限公司 | Communication system and communication method |
CN108064071B (en) * | 2018-02-13 | 2020-06-16 | Oppo广东移动通信有限公司 | Network connection method, device, storage medium and electronic equipment |
US10257219B1 (en) | 2018-03-12 | 2019-04-09 | BitSight Technologies, Inc. | Correlated risk in cybersecurity |
US10812520B2 (en) | 2018-04-17 | 2020-10-20 | BitSight Technologies, Inc. | Systems and methods for external detection of misconfigured systems |
US11212178B2 (en) * | 2018-06-05 | 2021-12-28 | Toshiba Client Solutions CO., LTD. | Control system, electronic device, and control method |
US11200323B2 (en) | 2018-10-17 | 2021-12-14 | BitSight Technologies, Inc. | Systems and methods for forecasting cybersecurity ratings based on event-rate scenarios |
US10521583B1 (en) | 2018-10-25 | 2019-12-31 | BitSight Technologies, Inc. | Systems and methods for remote detection of software through browser webinjects |
US11909623B2 (en) | 2019-01-15 | 2024-02-20 | Loud-Hailer, Inc. | Device presence method and system for mesh network management |
US10972916B2 (en) | 2019-04-29 | 2021-04-06 | Sonicwall Inc. | Instant secure wireless network setup |
US11997635B2 (en) | 2019-04-29 | 2024-05-28 | Sonicwall Inc. | Establishing simultaneous mesh node connections |
US12022295B2 (en) * | 2019-04-29 | 2024-06-25 | Sonicwall Inc. | Streamlined creation and expansion of a wireless mesh network |
US10856160B1 (en) * | 2019-06-19 | 2020-12-01 | Motorola Mobility Llc | Performing round trip time ranging using fewer than all addresses of a wireless device |
TWI713351B (en) * | 2019-07-09 | 2020-12-11 | 啟碁科技股份有限公司 | Configuration synchronization method and mesh network system |
US10726136B1 (en) | 2019-07-17 | 2020-07-28 | BitSight Technologies, Inc. | Systems and methods for generating security improvement plans for entities |
US20210044509A1 (en) * | 2019-08-05 | 2021-02-11 | Charter Communications Operating, Llc | Intelligent Edge Gateway Device with Path and Response Time Optimization |
US11956265B2 (en) | 2019-08-23 | 2024-04-09 | BitSight Technologies, Inc. | Systems and methods for inferring entity relationships via network communications of users or user devices |
US10848382B1 (en) | 2019-09-26 | 2020-11-24 | BitSight Technologies, Inc. | Systems and methods for network asset discovery and association thereof with entities |
US11032244B2 (en) | 2019-09-30 | 2021-06-08 | BitSight Technologies, Inc. | Systems and methods for determining asset importance in security risk management |
JP2021077109A (en) * | 2019-11-08 | 2021-05-20 | 日本電気株式会社 | Terminal device, server, system, method for terminal device, and program for terminal device |
CN111163185A (en) * | 2019-12-30 | 2020-05-15 | 乐鑫信息科技(上海)股份有限公司 | Method for IP addressing access to nodes in mesh network |
US10791140B1 (en) * | 2020-01-29 | 2020-09-29 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity state of entities based on computer network characterization |
US10893067B1 (en) | 2020-01-31 | 2021-01-12 | BitSight Technologies, Inc. | Systems and methods for rapidly generating security ratings |
US11023585B1 (en) | 2020-05-27 | 2021-06-01 | BitSight Technologies, Inc. | Systems and methods for managing cybersecurity alerts |
US12261749B2 (en) * | 2020-11-10 | 2025-03-25 | Mastercard International Inc. | Automatically managing a mesh network based on dynamically self-configuring node devices |
US11683228B2 (en) | 2020-11-10 | 2023-06-20 | Mastercard International Incorporated | Automatically managing a role of a node device in a mesh network |
US11122073B1 (en) | 2020-12-11 | 2021-09-14 | BitSight Technologies, Inc. | Systems and methods for cybersecurity risk mitigation and management |
US11463312B2 (en) * | 2021-01-21 | 2022-10-04 | Cisco Technology, Inc. | Secure onboarding of network devices |
US12079347B2 (en) | 2021-03-31 | 2024-09-03 | BitSight Technologies, Inc. | Systems and methods for assessing cybersecurity risk in a work from home environment |
US11683291B2 (en) * | 2021-05-04 | 2023-06-20 | Citrix Systems, Inc. | Automatically generating firewall configuration profiles using learning mode |
US12353563B2 (en) | 2021-07-01 | 2025-07-08 | BitSight Technologies, Inc. | Systems and methods for accelerating cybersecurity assessments |
US12425437B2 (en) | 2021-09-17 | 2025-09-23 | BitSight Technologies, Inc. | Systems and methods for precomputation of digital asset inventories |
US12238082B2 (en) * | 2021-10-26 | 2025-02-25 | Hewlett Packard Enterprise Development Lp | Cloud-orchestrated role management for WLAN |
CN114465987B (en) * | 2021-12-10 | 2023-04-07 | 达闼机器人股份有限公司 | Network address allocation method, internet of things system, device, equipment and storage medium |
US12282564B2 (en) | 2022-01-31 | 2025-04-22 | BitSight Technologies, Inc. | Systems and methods for assessment of cyber resilience |
CN115065971B (en) * | 2022-04-21 | 2025-06-27 | 山东云果信息技术有限公司 | A method for preventing users from privately connecting to a router to access the Internet in a local area network |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233576A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Detection of support for security protocol and address translation integration |
US20030233568A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Method and apparatus for control of security protocol negotiation |
US20050033985A1 (en) * | 2003-07-26 | 2005-02-10 | Innomedia Pte Ltd. | Firewall penetration system and method for real time media communications |
US20050286518A1 (en) * | 2004-06-28 | 2005-12-29 | Ezibro Networks Ltd. | Device for enabling intra-edge routing-less premises internet protocol communication and communication method using the same |
US20060010075A1 (en) * | 2004-07-08 | 2006-01-12 | Dean Wolf | Technique for facilitating resale of digital content over a computer network |
US20060174352A1 (en) * | 2001-07-25 | 2006-08-03 | Seagate Technology Llc | Method and apparatus for providing versatile services on storage devices |
US20070169189A1 (en) * | 2006-01-13 | 2007-07-19 | Crespo Arturo E | Providing selective access to a web site |
US20070198535A1 (en) * | 2004-09-21 | 2007-08-23 | Jeremy Oliver | Training system and method(s) of its use |
US20080002882A1 (en) * | 2006-06-30 | 2008-01-03 | Svyatoslav Voloshynovskyy | Brand protection and product autentication using portable devices |
US20080270240A1 (en) * | 2007-04-30 | 2008-10-30 | Viva Chu | Systems and methods of managing tasks assigned to an individual |
US20080275888A1 (en) * | 2007-05-03 | 2008-11-06 | Gary Stephen Shuster | Redirection method for electronic content |
US20090122761A1 (en) * | 2005-08-31 | 2009-05-14 | David E Hughes | Personalised Heterogeneous Network Handover Alert Scheme |
US20090190511A1 (en) * | 2008-01-30 | 2009-07-30 | Lucent Technologies Inc. | Method and apparatus for detecting wireless data subscribers using natted devices |
US20100095332A1 (en) * | 2008-10-09 | 2010-04-15 | Christian Gran | System and method for controlling media rendering in a network using a mobile device |
US20100290337A1 (en) * | 2009-05-18 | 2010-11-18 | Skype Limited | Network access nodes |
US20120065802A1 (en) * | 2010-09-14 | 2012-03-15 | Joulex, Inc. | System and methods for automatic power management of remote electronic devices using a mobile device |
US20130254423A1 (en) * | 2012-03-22 | 2013-09-26 | Time Warner Cable Inc. | Use of dns information as trigger for dynamic ipv4 address allocation |
US20130332996A1 (en) * | 2012-06-12 | 2013-12-12 | Intermec Ip Corp. | System and process for managing network communications |
US20140162600A1 (en) * | 2012-12-10 | 2014-06-12 | Actiontec Electronics, Inc. | Systems and methods for facilitating communication between mobile devices and wireless access points |
US20140283085A1 (en) * | 2013-03-14 | 2014-09-18 | TechGuard Security, L.L.C. | Internet protocol threat prevention |
US20150016241A1 (en) * | 2013-07-11 | 2015-01-15 | Verizon Patent And Licensing Inc. | Back-up path for in-home diagnostics and other communications |
US9713040B2 (en) * | 2011-04-28 | 2017-07-18 | Panasonic Intellectual Property Corporation Of America | Communication system, mobile terminal, router, and mobility management entity |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012088A (en) | 1996-12-10 | 2000-01-04 | International Business Machines Corporation | Automatic configuration for internet access device |
US6195705B1 (en) * | 1998-06-30 | 2001-02-27 | Cisco Technology, Inc. | Mobile IP mobility agent standby protocol |
AU2002230735A1 (en) * | 2000-12-11 | 2002-06-24 | Phlair, Inc. | System and method for detecting and reporting online activity using real-time content-based network monitoring |
US7895360B2 (en) | 2001-12-12 | 2011-02-22 | Thomson Licensing | Method and apparatus for adaptively configuring a router |
US7415535B1 (en) | 2002-04-22 | 2008-08-19 | Cisco Technology, Inc. | Virtual MAC address system and method |
US7421266B1 (en) * | 2002-08-12 | 2008-09-02 | Mcafee, Inc. | Installation and configuration process for wireless network |
US7752329B1 (en) | 2002-10-31 | 2010-07-06 | Aol Inc. | Migrating configuration information based on user identity information |
US9258765B1 (en) * | 2003-05-08 | 2016-02-09 | Dynamic Mesh Networks, Inc. | Chirp networks |
WO2004107679A2 (en) * | 2003-06-03 | 2004-12-09 | Casient Ltd | System and method for wireless mesh networking |
US7627496B2 (en) * | 2004-12-09 | 2009-12-01 | Walker Digital, Llc | Systems and methods for vending machine customer account management |
US20050149732A1 (en) * | 2004-01-07 | 2005-07-07 | Microsoft Corporation | Use of static Diffie-Hellman key with IPSec for authentication |
CN101771613B (en) | 2004-06-30 | 2012-11-07 | 松下电器产业株式会社 | Communication device and method |
JP4377786B2 (en) | 2004-09-22 | 2009-12-02 | パナソニック株式会社 | ELECTRIC DEVICE, SERVER DEVICE, PORTABLE TERMINAL, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM |
US7639681B2 (en) * | 2004-11-23 | 2009-12-29 | Microsoft Corporation | System and method for a distributed server for peer-to-peer networks |
US8478849B2 (en) * | 2004-12-07 | 2013-07-02 | Pure Networks LLC. | Network administration tool |
US8077632B2 (en) | 2005-01-20 | 2011-12-13 | Citrix Systems, Inc. | Automatic LAN/WAN port detection |
KR100644691B1 (en) | 2005-04-15 | 2006-11-10 | 삼성전자주식회사 | Method and apparatus for forwarding frames in extended WLAN |
US7653011B2 (en) * | 2005-05-31 | 2010-01-26 | Cisco Technology, Inc. | Spanning tree protocol for wireless networks |
US8117290B2 (en) * | 2005-07-25 | 2012-02-14 | Cisco Technology, Inc. | Simple home networking |
US8134942B2 (en) | 2005-08-24 | 2012-03-13 | Avaak, Inc. | Communication protocol for low-power network applications and a network of sensors using the same |
US20070115942A1 (en) * | 2005-09-07 | 2007-05-24 | Money James K | DEPLOYABLE VOICE OVER INTERNET PROTOCOL (VoIP) COMMUNICATION SYSTEM |
US8533309B1 (en) * | 2005-10-24 | 2013-09-10 | Crimson Corporation | Systems and methods for distributed node detection and management |
US7808987B2 (en) * | 2005-12-21 | 2010-10-05 | Sri International | Distributed services for mesh networks |
US8700800B2 (en) * | 2006-02-15 | 2014-04-15 | Tropos Networks, Inc. | Roaming of clients between gateways of clusters of a wireless mesh network |
US20070274314A1 (en) * | 2006-05-23 | 2007-11-29 | Werber Ryan A | System and method for creating application groups |
US20070274285A1 (en) * | 2006-05-23 | 2007-11-29 | Werber Ryan A | System and method for configuring a router |
US7508787B2 (en) * | 2006-05-31 | 2009-03-24 | Cisco Technology, Inc. | Graphical selection of information display for wireless mesh hierarchies |
US7831250B2 (en) * | 2006-07-11 | 2010-11-09 | Johnston Jr Ernest Burns | System and methods of integrating an overlay wireless data network canopy into a high bandwidth FTTX (fiber-to-the premises / curb / neighborhood) network |
US7940791B2 (en) * | 2006-09-27 | 2011-05-10 | The Boeing Company | Router for establishing connectivity between a client device and on-board systems of an airplane |
US8180835B1 (en) * | 2006-10-14 | 2012-05-15 | Engate Technology Corporation | System and method for protecting mail servers from mail flood attacks |
US8102814B2 (en) * | 2006-11-14 | 2012-01-24 | Cisco Technology, Inc. | Access point profile for a mesh access point in a wireless mesh network |
US8041785B2 (en) * | 2007-01-17 | 2011-10-18 | Microsoft Corporation | Programmatically choosing a router configuration provider |
US8339991B2 (en) * | 2007-03-01 | 2012-12-25 | Meraki, Inc. | Node self-configuration and operation in a wireless network |
US7729328B2 (en) * | 2007-03-14 | 2010-06-01 | Cisco Technology, Inc. | Real-time sessions for wireless mesh networks |
US8023482B2 (en) * | 2007-03-15 | 2011-09-20 | Cisco Technology, Inc. | Dynamic rate limiting in wireless mesh networks |
US8274928B2 (en) * | 2007-06-18 | 2012-09-25 | Light Corporation | Wireless mesh network |
US8014329B2 (en) * | 2007-07-03 | 2011-09-06 | Cisco Technology, Inc. | Path selection and power management in mesh networks |
US7826412B2 (en) * | 2007-08-31 | 2010-11-02 | International Business Machines Corporation | Systems, methods and computer products for providing a gradient driven mesh-network establishment |
TW200915877A (en) * | 2007-09-28 | 2009-04-01 | D Link Corp | Method of transmitting real-time network image |
US8955088B2 (en) * | 2007-11-07 | 2015-02-10 | Futurewei Technologies, Inc. | Firewall control for public access networks |
US8559306B2 (en) * | 2008-02-13 | 2013-10-15 | Cisco Technology, Inc. | End-to-end packet aggregation in mesh networks |
US8040791B2 (en) * | 2008-02-13 | 2011-10-18 | Cisco Technology, Inc. | Coordinated channel change in mesh networks |
US8321526B2 (en) | 2009-01-28 | 2012-11-27 | Headwater Partners I, Llc | Verifiable device assisted service usage billing with integrated accounting, mediation accounting, and multi-account |
US8014354B2 (en) * | 2008-10-17 | 2011-09-06 | Intermec Ip Corp. | Dynamically configured wireless communications, for example, in automatic data collection environment |
CN101483906B (en) * | 2009-02-10 | 2012-10-03 | 华为终端有限公司 | Method, system and apparatus for access network |
US10387918B2 (en) | 2009-03-03 | 2019-08-20 | Mobilitie, Llc | System and method for retail sales using wireless communication devices in a wireless communication network |
WO2010121205A1 (en) * | 2009-04-16 | 2010-10-21 | Nearverse, Inc. | Method and apapratus for distributed communication using short range and wide range communication links |
US20110007159A1 (en) * | 2009-06-06 | 2011-01-13 | Camp David M | Video surveillance system and associated methods |
US9894410B2 (en) * | 2009-06-09 | 2018-02-13 | The Directv Group, Inc. | Integrated satellite-TV broadband wireless system |
CA2779667A1 (en) * | 2009-11-02 | 2011-05-05 | Belkin International, Inc. | Battery backup system, method of use, and method of manufacturing |
US20110126095A1 (en) | 2009-11-25 | 2011-05-26 | T-Mobile USA, Inc | Router Management via Touch-Sensitive Display |
US8971209B2 (en) | 2009-12-04 | 2015-03-03 | Cradlepoint, Inc. | System to configure and manage routers through wireless communication |
US20110314129A1 (en) * | 2009-12-18 | 2011-12-22 | Ramin Rezaiifar | Binding/aggregating multiple interfaces at application layer |
US9219617B2 (en) * | 2010-04-30 | 2015-12-22 | Ad Group | IP-closed circuit system and method |
US8631100B2 (en) * | 2010-07-20 | 2014-01-14 | Juniper Networks, Inc. | Automatic assignment of hardware addresses within computer networks |
US8553662B2 (en) | 2010-08-20 | 2013-10-08 | Time Warner Cable Inc. | System and method for Wi-Fi roaming |
KR101212204B1 (en) | 2010-08-25 | 2012-12-13 | 삼성에스디아이 주식회사 | Composition for positive electrode of rechargeable lithium battery and rechargeable lithium battery including the positive electrode |
JP5621510B2 (en) | 2010-10-29 | 2014-11-12 | 日本電気株式会社 | Mobile router information management server, mobile router, mobile router network, and communication method thereof |
JP5277236B2 (en) | 2010-11-26 | 2013-08-28 | 株式会社バッファロー | Portable network connection device |
US8910300B2 (en) * | 2010-12-30 | 2014-12-09 | Fon Wireless Limited | Secure tunneling platform system and method |
KR101276857B1 (en) | 2011-07-27 | 2013-06-18 | 엘지전자 주식회사 | laundry machine and online system including the same |
US8751614B2 (en) * | 2011-10-11 | 2014-06-10 | Telefonaktiebolaget L M Ericsson (Publ) | Providing virtualized visibility through routers |
WO2013098429A1 (en) * | 2011-12-30 | 2013-07-04 | Juniper Networks, Inc. | Virtual customer premises equipment |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
CA2775804C (en) | 2012-05-08 | 2013-01-29 | Guest Tek Interactive Entertainment Ltd. | Automatically configuring computer network at hospitality establishment with reservation-specific settings |
US9081643B2 (en) * | 2012-09-21 | 2015-07-14 | Silver Sring Networks, Inc. | System and method for efficiently updating firmware for nodes in a mesh network |
WO2014052436A2 (en) * | 2012-09-25 | 2014-04-03 | Parallel Wireless Inc. | Heterogeneous self-organizing network for access and backhaul |
US10110553B2 (en) * | 2012-10-11 | 2018-10-23 | Cable Television Laboratories, Inc. | Adaptive prefix delegation |
US8831643B2 (en) * | 2012-11-05 | 2014-09-09 | Qualcomm Incorporated | Systems and methods for utilizing hidden access points |
US9408059B2 (en) * | 2013-02-05 | 2016-08-02 | Terranet Ab | Method and apparatus for communicating between mobile devices |
US9286047B1 (en) * | 2013-02-13 | 2016-03-15 | Cisco Technology, Inc. | Deployment and upgrade of network devices in a network environment |
US9467459B2 (en) | 2013-03-15 | 2016-10-11 | Aruba Networks, Inc. | System and method for detection of rogue routers in a computing network |
US9344403B2 (en) * | 2013-03-15 | 2016-05-17 | Tempered Networks, Inc. | Industrial network security |
US9445259B2 (en) | 2013-09-24 | 2016-09-13 | Alcatel Lucent | Service provider certified device policy management |
US9226119B2 (en) | 2013-11-20 | 2015-12-29 | Qualcomm Incorporated | Using sensor data to provide information for proximally-relevant group communications |
GB201410623D0 (en) | 2014-06-13 | 2014-07-30 | Hagan Chris | Wireless access point allocation and transfer |
US9794934B2 (en) * | 2015-04-08 | 2017-10-17 | Nxp B.V. | Method and system for communicating in a wireless mesh network |
-
2016
- 2016-04-18 US US15/131,472 patent/US9736019B2/en active Active
-
2017
- 2017-07-05 US US15/641,537 patent/US20170302515A1/en not_active Abandoned
-
2018
- 2018-08-29 US US16/116,742 patent/US11075802B2/en active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174352A1 (en) * | 2001-07-25 | 2006-08-03 | Seagate Technology Llc | Method and apparatus for providing versatile services on storage devices |
US20030233568A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Method and apparatus for control of security protocol negotiation |
US20030233576A1 (en) * | 2002-06-13 | 2003-12-18 | Nvidia Corp. | Detection of support for security protocol and address translation integration |
US20050033985A1 (en) * | 2003-07-26 | 2005-02-10 | Innomedia Pte Ltd. | Firewall penetration system and method for real time media communications |
US20050286518A1 (en) * | 2004-06-28 | 2005-12-29 | Ezibro Networks Ltd. | Device for enabling intra-edge routing-less premises internet protocol communication and communication method using the same |
US20060010075A1 (en) * | 2004-07-08 | 2006-01-12 | Dean Wolf | Technique for facilitating resale of digital content over a computer network |
US20070198535A1 (en) * | 2004-09-21 | 2007-08-23 | Jeremy Oliver | Training system and method(s) of its use |
US20090122761A1 (en) * | 2005-08-31 | 2009-05-14 | David E Hughes | Personalised Heterogeneous Network Handover Alert Scheme |
US20070169189A1 (en) * | 2006-01-13 | 2007-07-19 | Crespo Arturo E | Providing selective access to a web site |
US20080002882A1 (en) * | 2006-06-30 | 2008-01-03 | Svyatoslav Voloshynovskyy | Brand protection and product autentication using portable devices |
US20080270240A1 (en) * | 2007-04-30 | 2008-10-30 | Viva Chu | Systems and methods of managing tasks assigned to an individual |
US20080275888A1 (en) * | 2007-05-03 | 2008-11-06 | Gary Stephen Shuster | Redirection method for electronic content |
US20090190511A1 (en) * | 2008-01-30 | 2009-07-30 | Lucent Technologies Inc. | Method and apparatus for detecting wireless data subscribers using natted devices |
US20100095332A1 (en) * | 2008-10-09 | 2010-04-15 | Christian Gran | System and method for controlling media rendering in a network using a mobile device |
US20100290337A1 (en) * | 2009-05-18 | 2010-11-18 | Skype Limited | Network access nodes |
US20120065802A1 (en) * | 2010-09-14 | 2012-03-15 | Joulex, Inc. | System and methods for automatic power management of remote electronic devices using a mobile device |
US9713040B2 (en) * | 2011-04-28 | 2017-07-18 | Panasonic Intellectual Property Corporation Of America | Communication system, mobile terminal, router, and mobility management entity |
US20130254423A1 (en) * | 2012-03-22 | 2013-09-26 | Time Warner Cable Inc. | Use of dns information as trigger for dynamic ipv4 address allocation |
US20130332996A1 (en) * | 2012-06-12 | 2013-12-12 | Intermec Ip Corp. | System and process for managing network communications |
US20140162600A1 (en) * | 2012-12-10 | 2014-06-12 | Actiontec Electronics, Inc. | Systems and methods for facilitating communication between mobile devices and wireless access points |
US20140283085A1 (en) * | 2013-03-14 | 2014-09-18 | TechGuard Security, L.L.C. | Internet protocol threat prevention |
US20150016241A1 (en) * | 2013-07-11 | 2015-01-15 | Verizon Patent And Licensing Inc. | Back-up path for in-home diagnostics and other communications |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108055156A (en) * | 2017-12-18 | 2018-05-18 | 迈普通信技术股份有限公司 | AP management methods and device |
CN108092830A (en) * | 2018-02-09 | 2018-05-29 | 乐鑫信息科技(上海)有限公司 | The method that ICP/IP protocol is applied in Mesh network |
US11019026B2 (en) | 2018-02-09 | 2021-05-25 | Espressif Systems (Shanghai) Co., Ltd. | Method for applying TCP/IP protocol in mesh network |
Also Published As
Publication number | Publication date |
---|---|
US11075802B2 (en) | 2021-07-27 |
US20180367383A1 (en) | 2018-12-20 |
US20160337185A1 (en) | 2016-11-17 |
US9736019B2 (en) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11075802B2 (en) | Methods for dynamic router configuration in a mesh network | |
US11218488B2 (en) | Access enforcement at a wireless access point | |
US10911368B2 (en) | Gateway address spoofing for alternate network utilization | |
US8339991B2 (en) | Node self-configuration and operation in a wireless network | |
US7903585B2 (en) | Topology discovery of a private network | |
US9762484B2 (en) | Role based router functionality | |
US20150207776A1 (en) | Intelligent ip resolver | |
CN111934993B (en) | Method and system for communicating through a slave gateway | |
JP5816293B2 (en) | Private device identification in the public network | |
CN112654049B (en) | Method, system, node and medium for configuring a wireless communication coverage extension system | |
US20140359163A1 (en) | Methods and Systems for Enabling NAT Traversal | |
US9565098B2 (en) | Method and system for implementing border gateway protocol on network devices | |
US20140372499A1 (en) | Methods and Systems for Enabling NAT Traversal | |
US20150098471A1 (en) | Methods and Systems for Enabling NAT Traversal | |
US20140351453A1 (en) | Node in a Network | |
US20140379785A1 (en) | Server Communication | |
Graubner et al. | Dynamic role assignment in software-defined wireless networks | |
Caiazza et al. | TCP‐based traceroute: An evaluation of different probing methods | |
Camarillo et al. | Automatic Flow-Specific Multi-Path Management for the Host Identity Protocol (HIP) | |
GB2527647A (en) | Data processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EERO INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HARDISON, NATHANIEL CRANE;CHAKOUMAKOS, ROWAN MATTHEW;SCHALLICH, TIMOTHY AMOS;AND OTHERS;SIGNING DATES FROM 20160426 TO 20160430;REEL/FRAME:042902/0302 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: A9.COM, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EERO LLC;REEL/FRAME:048693/0096 Effective date: 20190218 |
|
AS | Assignment |
Owner name: EERO LLC, WASHINGTON Free format text: CHANGE OF NAME;ASSIGNOR:EERO INC.;REEL/FRAME:048721/0060 Effective date: 20190228 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |