US-12627593-B2 - Optimizing meshnet connections in a mesh network
Abstract
A method including enabling, by an infrastructure device, a mesh network including a first device and a second device such that the first device and the second device communicate meshnet data utilizing a meshnet connection between the first device and the second device; and determining, by the infrastructure device, an initiating device from among the first device and the second device, the initiating device being responsible for initiating optimizing the meshnet connection. Various other aspects are contemplated.
Inventors
- Povilas NAGROCKAS
Assignees
- UAB 360 IT
Dates
- Publication Date
- 20260512
- Application Date
- 20220407
Claims (15)
- 1 . A method, comprising: enabling, by an infrastructure device, a mesh network including a first device and a second device such that the first device and the second device communicate meshnet data utilizing a meshnet connection between the first device and the second device; and determining, by the infrastructure device, an initiating device from among the first device and the second device, the initiating device being responsible for initiating optimizing the meshnet connection, wherein determining the initiating device includes determining the initiating device based at least in part on a result of comparing a first public key associated with the first device with a second public key associated with the second device.
- 2 . The method of claim 1 , further comprising: assigning respective meshnet internet protocol (IP) addresses to the first device and the second device to enable communication over the meshnet connection.
- 3 . The method of claim 1 , wherein determining the initiating device includes determining the initiating device based at least in part on a result of comparing a first value associated with a feature associated with the first device with a second value associated with the feature associated with the second device.
- 4 . The method of claim 1 , further comprising: identifying the first device and the second device as devices to be included in the mesh network.
- 5 . The method of claim 1 , further comprising: transmitting, to the first device or to the second device, information indicating the initiating device.
- 6 . An infrastructure device, comprising: a memory; and a processor communicatively coupled to the memory, the memory and the processor being configured to: enable a mesh network including a first device and a second device such that the first device and the second device communicate meshnet data utilizing a meshnet connection between the first device and the second device; and determine an initiating device from among the first device and the second device, the initiating device being responsible for initiating optimizing the meshnet connection, wherein to determine the initiating device, the memory and the processor are configured to determine the initiating device based at least in part on a result of comparing a first public key associated with the first device with a second public key associated with the second device.
- 7 . The infrastructure device of claim 6 , wherein the memory and the processor are configured to assign respective meshnet internet protocol (IP) addresses to the first device and the second device to enable communication over the meshnet connection.
- 8 . The infrastructure device of claim 6 , wherein, to determine the initiating device, the memory and the processor are configured to determine the initiating device based at least in part on a result of comparing a first value associated with a feature associated with the first device with a second value associated with the feature associated with the second device.
- 9 . The infrastructure device of claim 6 , wherein, the memory and the processor are configured to: identify the first device and the second device as devices to be included in the mesh network.
- 10 . The infrastructure device of claim 6 , wherein the memory and the processor are configured to: transmit, to the first device or to the second device, information indicating the initiating device.
- 11 . A non-transitory computer-readable medium configured to store instructions, which when executed by a processor associated with an infrastructure device, cause the processor to: enable a mesh network including a first device and a second device such that the first device and the second device communicate meshnet data utilizing a meshnet connection between the first device and the second device; and determine an initiating device from among the first device and the second device, the initiating device being responsible for initiating optimizing the meshnet connection, wherein to determine the initiating device, the processor is configured to determine the initiating device based at least in part on a result of comparing a first public key associated with the first device with a second public key associated with the second device.
- 12 . The non-transitory computer-readable medium of claim 11 , wherein the processor is configured to assign respective meshnet internet protocol (IP) addresses to the first device and the second device to enable communication over the meshnet connection.
- 13 . The non-transitory computer-readable medium of claim 11 , wherein, to determine the initiating device, the processor is configured to determine the initiating device based at least in part on a result of comparing a first value associated with a feature associated with the first device with a second value associated with the feature associated with the second device.
- 14 . The non-transitory computer-readable medium of claim 11 , wherein the processor is configured to: identify the first device and the second device as devices to be included in the mesh network.
- 15 . The non-transitory computer-readable medium of claim 11 , wherein the processor is configured to: transmit, to the first device or to the second device, information indicating the initiating device.
Description
CROSS REFERENCE This application is a continuation of U.S. Non-Provisional patent application Ser. No. 17/713,195, filed on Apr. 4, 2022, and titled “Optimizing Meshnet Connections In A Mesh Network,” the entire contents of which are incorporated herein by reference. FIELD OF DISCLOSURE Aspects of the present disclosure generally relate to communications in networks, and more particularly to optimizing meshnet connections in a mesh network. BACKGROUND Users may rely on mesh networks (also referred to as “meshnets”) to communicate (e.g., transmit and/or receive) data among a plurality of endpoints (e.g., user devices) via one or more Internet nodes (e.g., bridges, switches, infrastructure devices, etc.). In an example, a mesh network may include a plurality of endpoints communicatively coupled to each other directly or via the one or more Internet nodes. A mesh network in which all endpoints are communicatively coupled to each other may be referred to as a fully connected network. Data transmitted by a first endpoint, from among the plurality of endpoints, may be routed over the Internet via the one or more Internet nodes to a second endpoint from among the plurality of endpoints. Also, data transmitted by the first endpoint may be routed to two or more endpoints from among the plurality of endpoints. In a mesh network, the plurality of endpoints may cooperate with each other to enable communication of the data among the plurality of endpoints. In an example, one or more of the endpoints may participate in communication of the data. In this way, the mesh network may avoid relying on a given endpoint for communication of the data. Some mesh networks may have the ability to dynamically self-organize and self-configure the plurality of endpoints. This ability may allow such mesh networks to enable dynamic distribution of workloads, particularly in the event that one or more endpoints should fail. Further, installation overhead may be reduced. SUMMARY In one aspect, the present disclosure contemplates a method including measuring, by a first device in communication with a second device in a mesh network, a communication condition associated with communicating meshnet data via a meshnet connection between the first device and the second device; determining, based at least in part on measuring the communication condition, that the first device is to serve as an initiating device for optimizing the meshnet connection; and transmitting, by the first device to the second device, coordination information indicating initiation of optimizing the meshnet connection based at least in part on determining that the first device is to serve as the initiating device. In another aspect, the present disclosure contemplates a first device including a memory and a processor configured to: measure, while in communication with a second device in a mesh network, a communication condition associated with communicating meshnet data via a meshnet connection between the first device and the second device; determine, based at least in part on measuring the communication condition, that the first device is to serve as an initiating device for optimizing the meshnet connection; and transmit, to the second device, coordination information indicating initiation of optimizing the meshnet connection based at least in part on determining that the first device is to serve as the initiating device. In another aspect, the present disclosure contemplates a non-transitory computer readable medium storing instructions, which when executed by a processor associated with a first device, cause the processor to: measure, while in communication with a second device in a mesh network, a communication condition associated with communicating meshnet data via a meshnet connection between the first device and the second device; determine, based at least in part on measuring the communication condition, that the first device is to serve as an initiating device for optimizing the meshnet connection; and transmit, to the second device, coordination information indicating initiation of optimizing the meshnet connection based at least in part on determining that the first device is to serve as the initiating device. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory in nature and are intended to provide an understanding of the present disclosure without limiting the scope thereof. In that regard, additional aspects, features, and advantages of the present disclosure will be apparent to one skilled in the art from the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings illustrate aspects of systems, devices, methods, and/or mediums disclosed herein and together with the description, serve to explain the principles of the present disclosure. Throughout this description, like elements, in whatever aspect described, refer to common elements wherev