Reference Broadcast Synchronization

Reference Broadcast Synchronization (RBS) is a synchronization method in which the receiver uses the physical layer broadcasts for comparing the clocks. This is slightly different from traditional methods which synchronize the sender's with the receiver's clock.
RBS allows nodes to synchronize their clocks to the resolution necessary for example for wireless sensor network applications. Rather than broadcasting a timestamp in a synchronization packet as in protocols such as Network Time Protocol, RBS allows the nodes receiving the synchronization packets to use the packet's time of arrival as a reference point for clock synchronization. Because most of the non-deterministic propagation time involved in transmitting a packet over a wireless channel lies between the construction of the packet and the sender's transmitter (e.g., sender's queue delay, MAC contention delay, etc.), by timestamping only at the receiver, RBS removes most delay uncertainty involved in typical time synchronization protocols. 
For single-hop networks, the RBS algorithm is very simple. First, a transmitter broadcasts some number M as reference broadcasts. Each receiver that receives these broadcasts exchanges the time that each reference broadcast was received locally with its neighbors. Nodes then calculate phase shifts relative to each other as the average of the difference of the timestamps of the node's local clocks for the M reference broadcasts. In multihop networks, time synchronization can be performed hop by hop between two nodes as long as the nodes on each link along the path have a common node whose reference broadcasts they can synchronize to.