2010-05-20 73 views
1

我正在嘗試計算如何通過Web應用程序(Javascript)向.net Web服務請求延遲。如何確定Web應用程序的向上/向下延遲

目前我基本嘗試同步客戶端和服務器的時間,這創下了web服務我可以看看偏移量(這將準確顯示「上升」延遲

問題是,當 - 當你同步時間,你必須考慮延遲時間,所以目前我正在計時同步請求(往返)併除以2,以試圖獲得'up'延遲......然後修改同步

這是假設延遲是對稱的,它不是這樣的。有沒有人知道一個程序能夠確定具體的up/do將.net http請求延遲到.net服務?如果它需要涉及多個握手,那麼可以做到儘可能準確。

謝謝!

回答

0

說實話,我認爲這是一個艱難的 - 或不可能的。

可能有很多事情可以做或多或少接近你想要的。我可以看到兩種方法來解決問題:

  1. 使用類似NTP的同步時鐘並使用絕對時間戳。這將是相當容易的,但當然只有當你同時控制服務器和客戶端時(你可能不需要)。
  2. 試着做一個有教養的猜測:)這將是你現在正在做的事情。也許ping可以在任何方面有所幫助?

下面的文章可能會提供一些額外的想法:A Stream-based Time Synchronization Technique For Networked Computer Games
它主要建議進行多次測量並丟棄「異常值」。但最後,如果我理解正確,那麼它與目前的實施並不相距甚遠。否則有一些學術材料可用於更理論化的方法(我首先讀一些東西,我的意思是)。這些是我發現的一些東西:Time Synchronization in Ad Hoc NetworksA clock-sampling mutual network time-synchronization algorithm for wireless ad hoc networks。或者你可以看看NTP協議。

我還沒有閱讀那些:) :)

+0

這很棒 - 一些很好的閱讀。第一個鏈接與我目前正在做的幾乎完全相同,但會實施使用SD來挑選異常值的回覆。如果它儘可能接近,那麼生病就不得不滿足於此。再次感謝! =) – Brodie 2010-05-20 22:37:18