A method comprising: maintaining, by a cloud controller, data representing a topology of a network of nodes, wherein the data indicates a first group of nodes (106, 120) that are connected to the cloud controller and indicate, for each node in the network, one or more respective neighboring nodes for the node, and wherein each node communicates wirelessly with a neighboring node by forming a transmitting node and receiving node pair during a particular time interval, wherein the transmitting node of the pair communicates data to the receiving node of the pair during a particular time interval when the transmitting node is in a transmitting mode and the receiving node is in a receiving mode; receiving, at the cloud controller from the first group of nodes, one or more requests to connect to the network; selecting, by the cloud controller, a first node in the first group of nodes that sent the request; and generating, by the cloud controller, instructions configured to cause the first node to communicate a timestamp of the first node to each neighboring node of the first node and to cause each neighboring node to communicate the timestamp of the first node to each other neighboring nodes of the neighboring node, wherein nodes synchronize their respective timestamps upon receipt of the timestamp of the first node, wherein communicating the timestamp continues until each node in the network has been synchronized to the timestamp of the first node; and sending the instructions to the first node, thereby synchronizing the nodes in the network to the timestamp of the first node for communication between the nodes in the network. maintaining, by a cloud controller, data representing a topology of a network of nodes, wherein the data indicates a first group of nodes (106, 120) that are connected to the cloud controller and indicate, for each node in the network, one or more respective neighboring nodes for the node, and wherein each node communicates wirelessly with a neighboring node by forming a transmitting node and receiving node pair during a particular time interval, wherein the transmitting node of the pair communicates data to the receiving node of the pair during a particular time interval when the transmitting node is in a transmitting mode and the receiving node is in a receiving mode; receiving, at the cloud controller from the first group of nodes, one or more requests to connect to the network; selecting, by the cloud controller, a first node in the first group of nodes that sent the request; and generating, by the cloud controller, instructions configured to cause the first node to communicate a timestamp of the first node to each neighboring node of the first node and to cause each neighboring node to communicate the timestamp of the first node to each other neighboring nodes of the neighboring node, wherein nodes synchronize their respective timestamps upon receipt of the timestamp of the first node, wherein communicating the timestamp continues until each node in the network has been synchronized to the timestamp of the first node; and sending the instructions to the first node, thereby synchronizing the nodes in the network to the timestamp of the first node for communication between the nodes in the network.