2012-08-29 60 views
3

我想知道,我如何計算從客戶端發出的數據包到達時間。 我試圖發送一個時間戳(1970年以來的毫秒)與數據包,然後在服務器上這樣計算它。如何計算包到達時間?

timestamp_on_server - timestamp_from_packet

但這個問題是,我也得負數,這是不正確的。

那麼我該如何正確地做到這一點? :-)

謝謝!

+0

到達時間是當前時鐘時間。您的計算會計算*傳輸*時間。你想要什麼? – EJP

+0

哦對不起。我的英語不太好。但是,是的,它的傳輸時間:-) – PeterBechP

回答

3

當機器未正確同步到時間源時,這不起作用(請參閱NTP)。

但是總的來說,依靠不同節點上採樣的時間並不是最好的想法。你可以做的是測量round-trip times(數據包在那裏發送,並反映回發送者的時間戳完整),所以你只能使用同一時間源。

注意:如果通過某些特權進程進行強制調整,同一臺計算機上的時鐘仍然可以跳回,因此忽略(也可能記錄)負RTT值可能是一個好主意。

+0

往返,就像回聲?服務器發送一個數據包給客戶端,客戶端直接發送它。然後服務器計算兩者之間的時間? – PeterBechP

+0

是的,類似的東西。也可以是啓動交換的客戶端。 –