11. A device for synchronizing time among a plurality of nodes in a network, wherein the device comprises the first node in the network, the device comprising:a transceiver configured to receive at least one timing message from a second node in the network and to transmit timing messages to other nodes in the network, the timing message providing an indication of the current time and frequency as measured by the first node at transmission of the timing message;
a local oscillator that governs timing of an internal clock;
a processor configured to determine a propagation time between the first node and the second node using a determined transmission frequency of the timing messages, a clock reading of the internal clock that indicates the current time in the first node, and timing and frequency measurements obtained at both the first and the second node;
a weighting module configured to apply a weighting factor to the current time of the first node to adjust the current time of the first node forward or backward; and
a time synchronization module configured to combine the determined propagation time with the adjusted clock time of the first node to generate a new, synchronized time and transmission frequency, which is broadcasted, using the transceiver, in a subsequent timing message to one or more other nodes in the network.