2014-10-12 84 views
1

我想測量Linux上兩臺計算機之間的UDP延遲和丟棄率。優選地(但不是關鍵的)在多個機器之間同時執行測量。通過Linux上的UDP進行延遲測量

因此,我想得到一個直方圖,例如,測量過程中每個時刻的每個數據包的RTT時間。預期頻率約爲每秒10包。

你知道我可以用於此目的的任何工具嗎?

我試過到目前爲止:

  1. 平 - 使用而不是UDP
  2. iperf的ICMP - 只測量抖動而不是延遲。
  3. d-ITG - 每個流量統計的措施,沒有直方圖
  4. tshark的 - 使用TCP ping命令,而不是UDP
  5. 我也創建了一個簡單的C++ socket程序在那裏我有客戶端和服務器上的每個側面,我送帶有計數器和時間戳的UDP數據包。我的程序似乎工作正常,但由於我不是網絡程序員,我不能100%確定我正確處理了緩衝區(特別是在部分數據包的情況下)。所以我寧願使用一些經過驗證的軟件來完成這項任務。

你能推薦一些東西嗎?

謝謝

回答

1

我想提醒你,UDP是基於消息的協議,數據包有明確的界限。不能接收部分數據包。也就是說,你會得到完整的信息或者你不會得到它。所以,你不需要擔心UDP中的部分數據包。

使用計數器計算數據包丟棄的方法使用時間增量計算延遲&對於UDP顯示正常。然而,要考慮的重要一點是確保客戶端和服務器的系統時間同步。

+0

是的,你說得對,但我只計算RTT時間,所以我只在客戶端發送數據包時測量時間,第二次測量時間。在服務器端,我只回覆了沒有任何測量的相同數據包,因此我不在乎機器之間的時鐘是否關閉。謝謝 – kirbo 2014-10-13 15:33:51