【问题标题】:How to calculate arrival time of packet?如何计算数据包的到达时间?
【发布时间】:2012-08-30 03:08:16
【问题描述】:

我想知道,如何计算从客户端发送的数据包的到达时间。 我尝试使用数据包发送时间戳(自 1970 年以来的毫秒数),然后在服务器上像这样计算它。

timestamp_on_server - timestamp_from_packet

但问题在于,我也得到负数,这是不正确的。

那么我该如何以正确的方式做到这一点? :-)

谢谢!

【问题讨论】:

  • 到达时间为当前时钟时间。您的计算会计算 传输 时间。你想要哪个?
  • 哦,对不起。我的英语不是那么好。但是,是的,它的传输时间:-)

标签: sockets node.js


【解决方案1】:

当机器未正确同步到时间源时,这不起作用(请参阅NTP)。

但总的来说,依靠在不同节点上采样的时间并不是最好的主意。您可以做的是测量round-trip times(发送到那里的数据包并在发送者的时间戳完好无损的情况下反射回来),因此您只能使用相同的时间源。

旁注:如果由某些特权进程强制调整,同一台机器上的时钟仍然可以跳回,因此忽略(并可能记录)负 RTT 值可能是个好主意。

【讨论】:

  • 往返,像回声吗?服务器向客户端发送数据包,客户端直接将其发送回去。然后服务器计算两者之间的时间?
  • 是的,类似的。也可以是发起交换的客户端。
猜你喜欢
  • 2014-03-27
  • 1970-01-01
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多