1. A method of routing a message in a network comprising a plurality of nodes, the method comprising: transmitting a first message from a source node to a destination node along a plurality of paths, wherein each of the plurality of paths includes a first intermediate node and a second intermediate node; receiving, at the source node, a plurality of second messages from the destination node, wherein each of the plurality of paths is traversed by one of the plurality of the second messages, and wherein each of the plurality of the second messages comprises: a first time stamp corresponding to receipt of the second message at the first intermediate node; a second time stamp corresponding to transmission of the second message from the first intermediate node to the second intermediate node; a third time stamp corresponding to receipt of the second message at the second intermediate node; and a fourth time stamp corresponding to transmission of the second message by the second intermediate node; calculating a propagation delay between the first intermediate node and the second intermediate node for each of the plurality of paths, wherein the propagation delay comprises a difference between the second time stamp and the third time stamp; and selecting a first path from the plurality of paths for communication between the source node and the destination node based at least in part on the propagation delays.