Automatic network address assignment in a wireless mesh
First Claim
1. A method of operating a computing device configured as a node of a mesh network to select a network address for the computing device that is unique on the mesh network, the method comprising an act of:
- operating at least one processor on the computing device to select a network address by executing computer-executable instructions performing acts of;
(A) conditionally selecting a network address based on whether a network address for the computing device is stored in a portion of non-volatile memory on the computing device, the conditionally selecting comprising;
when a network address for the computing device is stored in the portion of non-volatile memory on the computing device, selecting the stored network address as the network address for the computing device;
when a network address for the computing device is not stored in the portion of non-volatile memory on the computing device;
(1) generating a first portion of a network address based on an identifier associated with the computing device, where the first portion comprises a suffix for a network address, where the identifier comprises a MAC address associated with the computing device, and where the generating comprises computing a hash value based on the MAC address; and
(2) selecting as the network address for the computing device a network address based on the generated first portion and on a second portion associated with the network;
(B) detecting if the selected network address conflicts with another network address assigned to a computing device in the mesh network;
(C) when the selected network address does not conflict;
storing the selected network address in the portion of non-volatile memory; and
(D) when the selected network address does conflict;
generating a different first portion of a network address;
selecting as the selected network address for the computing device a network address based on the different first portion and the second portion associated with the network; and
performing acts (B) and either (C) or (D) on the selected network address.
2 Assignments
0 Petitions
Accused Products
Abstract
A computing environment containing a mesh network that is adapted to provide a reliable transport mechanism over which services may be delivered. Nodes of the mesh can automatically select routable addresses without conflicts, which allows nodes of the mesh to be accessed, even as the mesh changes through the addition or deletion of nodes. Also, nodes communicate with a protocol that supports service advertisements. These advertisements can identify mesh nodes that supply services, such as file or print servers, for which devices that have not yet connected to the network may be searching. Advertisements can also identify services to be used by nodes in the network, allowing, for example, a node to select a gateway providing a reliable connection to an external network. The mesh network can be used as a transport for communication using protocols, such as TCP/IP, that generally exhibit poor performance when using unreliable transports.
-
Citations
16 Claims
-
1. A method of operating a computing device configured as a node of a mesh network to select a network address for the computing device that is unique on the mesh network, the method comprising an act of:
operating at least one processor on the computing device to select a network address by executing computer-executable instructions performing acts of; (A) conditionally selecting a network address based on whether a network address for the computing device is stored in a portion of non-volatile memory on the computing device, the conditionally selecting comprising; when a network address for the computing device is stored in the portion of non-volatile memory on the computing device, selecting the stored network address as the network address for the computing device; when a network address for the computing device is not stored in the portion of non-volatile memory on the computing device; (1) generating a first portion of a network address based on an identifier associated with the computing device, where the first portion comprises a suffix for a network address, where the identifier comprises a MAC address associated with the computing device, and where the generating comprises computing a hash value based on the MAC address; and (2) selecting as the network address for the computing device a network address based on the generated first portion and on a second portion associated with the network; (B) detecting if the selected network address conflicts with another network address assigned to a computing device in the mesh network; (C) when the selected network address does not conflict; storing the selected network address in the portion of non-volatile memory; and (D) when the selected network address does conflict; generating a different first portion of a network address; selecting as the selected network address for the computing device a network address based on the different first portion and the second portion associated with the network; and performing acts (B) and either (C) or (D) on the selected network address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A computer-readable storage medium that does not consist of a transitory signal and that comprises computer-executable instructions that, when executed on at least one processor of a computing device configured as a node of a mesh network, implement a method of operating the computing device to select a network address for the computing device that is unique on the mesh network, the method comprising acts of:
-
(A) conditionally selecting a network address based on whether a network address for the computing device is stored in a portion of non-volatile memory on the computing device, the conditionally selecting comprising; when a network address for the computing device is stored in the portion of non-volatile memory on the computing device, selecting the stored network address as the network address for the computing device; and when a network address for the computing device is not stored in the portion of non-volatile memory on the computing device; (1) generating a first portion of a network address based on an identifier associated with the computing device, where the first portion comprises a suffix for a network address, where the identifier comprises a MAC address associated with the computing device, and where the generating comprises computing a hash value based on the MAC address; and (2) selecting as the network address for the computing device a network address based on the generated first portion and on a second portion associated with the network; (B) detecting if the selected network address conflicts with another network address assigned to a computing device in the mesh network; (C) when the selected network address does not conflict; storing the selected network address in the portion of non-volatile memory; and (D) when the selected network address does conflict; generating a different first portion of a network address; selecting as the selected network address for the computing device a network address based on the different first portion and the second portion associated with the network; and performing acts (B) and either (C) or (D) on the selected network address. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A method of operating a mesh network, the method comprising:
-
selecting a network address for each of a plurality of computing devices configured as nodes on the network, the selected network address for each computing device being unique on the mesh network, the selecting comprising for each computing device, operating at least one processor on the computing device to select the network address by executing computer-executable instructions performing acts of; (A) generating a first portion of a network address based on an identifier associated with the computing device; and (B) selecting as the network address for the computing device a network address based on the generated first portion and on a second portion associated with the network; (C) detecting if the selected network address conflicts with another network address assigned to a different computing device in the mesh network; (D) when the selected network address does conflict; (1) generating a different first portion of a network address; (2) selecting as the selected network address for the computing device a network address based on the different first portion and the second portion associated with the network; and (3) performing acts (C) and (D) on the selected network address; and (E) communicating using the selected network address, the communicating comprising receiving a network packet addressed to the selected network address, wherein; act (A) comprises generating a suffix for a network address by computing a hash value based on a MAC address associated with the computing device; generating a different first portion of a network address in act (1) comprises incrementing the suffix generated in act (A); and when a network address conflict is detected in act (D) by the computing device and by the different computing device with the conflicting address, acts (1), (2), and (3) are performed on only one of the computing device and the different computing device, based on the value of the MAC address associated with the one of the computing device and the different computing device. - View Dependent Claims (15, 16)
-
Specification