A method for measuring one-way delays in a communications network, the method comprising: transmitting a plurality of packets comprised in a communications session from a first node associated with a first node clock to a second node associated with a second node clock and receiving the plurality of packets after the packets are reflected from the second node back to the first node; maintaining a state of at least one virtual clock (210,410,415) comprising information for converting times measured with respect to the first and/or second node clock into times as would be measured with respect to a reference clock (204,132,402); registering, for each packet of the plurality of packets in the communications session, a timeset comprising transmission and reception times at the first and second nodes that are measured with respect to the first and second node clocks, respectively; converting, responsive to the at least one virtual clock (210,410,415), times in the timeset measured with respect to the first node clock and/or the second node clock into times as would be measured with respect to the reference clock (204,132,402); calculating, for each packet of the series of packets, a forward one-way delay (FOWD) from the first node to the second node and a reverse one-way delay (ROWD) from the second node to the first node, responsive to the converted timeset; testing the FOWD and ROWD of each packet of the series of packets against a gating criterion; updating estimates of forward floor delay and reverse floor delay responsive to FOWDs and/or ROWDs that pass the gating criterion; and updating the at least one virtual clock (210,410,415) state responsive to the updated estimate of FFD and/or RFD. transmitting a plurality of packets comprised in a communications session from a first node associated with a first node clock to a second node associated with a second node clock and receiving the plurality of packets after the packets are reflected from the second node back to the first node; maintaining a state of at least one virtual clock (210,410,415) comprising information for converting times measured with respect to the first and/or second node clock into times as would be measured with respect to a reference clock (204,132,402); registering, for each packet of the plurality of packets in the communications session, a timeset comprising transmission and reception times at the first and second nodes that are measured with respect to the first and second node clocks, respectively; converting, responsive to the at least one virtual clock (210,410,415), times in the timeset measured with respect to the first node clock and/or the second node clock into times as would be measured with respect to the reference clock (204,132,402); calculating, for each packet of the series of packets, a forward one-way delay (FOWD) from the first node to the second node and a reverse one-way delay (ROWD) from the second node to the first node, responsive to the converted timeset; testing the FOWD and ROWD of each packet of the series of packets against a gating criterion; updating estimates of forward floor delay and reverse floor delay responsive to FOWDs and/or ROWDs that pass the gating criterion; and updating the at least one virtual clock (210,410,415) state responsive to the updated estimate of FFD and/or RFD.