我需要測量通過LAN進行通信的兩個應用程序之間的單向延遲測量,並將結果報告給數據收集服務器。如何使用C#實現單向延遲測量?
客戶端應用程序使用多播發送數據,然後將其傳遞直通兩個服務器和最後一個服務器是該試驗的結束點,像這樣:
Agent -> multicast cloud -> server 1 -> server 2
我想過使用NTP(或PTP for LAN)來同步「代理」和「服務器2」,但我不知道什麼是正確的算法來實現這一點,它的精度是多少。
如何執行此測量(使用C#)?它的精確度是什麼?
更新:請注意,數據正在代理和服務器2之間進行處理,因此測量不完全是網絡方式。
通常,不可能確定單向延遲。你可以做的最好的(除非你有精確的時鐘兩端)是往返時間(然後除以2)。 – 2013-03-02 18:08:01
我需要測量應用程序延遲 - 而不是網絡延遲,所以除以2將不適用於我:( – 2013-03-02 18:10:16
好吧,相當於您可以使用PTP同步兩端(儘管這會對延遲= RTT進行等效假設/ 2),然後將時間戳數據包從代理髮送到服務器 – 2013-03-02 18:13:10