2017-07-31 104 views
-2

我正在一個簡單的程序中工作,開始時我會ping所有的MAN主機以驗證所有主機是否在線(完成),但是我想實現某種方式來衡量延遲主機之間。有沒有辦法做到這一點?有小費嗎?有一種方法可以測量java中的延遲網絡

不管怎麼說,謝謝

+0

延遲時間不過是您的ping請求和您收到回覆之間的延遲時間。它應該像通過這種延遲來排列主機一樣簡單。 – Neil

+0

網絡延遲時間總是在變化,而測量只反映在給定時間測試的延遲。下一個測試可能會有很大的不同。另外,不同的協議可以有不同的延遲。例如,ping使用優先級列表較低的ICMP,其延遲時間與TCP或UDP可能獲得的延遲無關。 –

回答

1

你可以保持對ping和時間戳擠滿了pong和簡單的計算兩者之間的差異。

這是定義,延遲

您可以重複多於一個時間來計算其他指標,如抖動過程。

一些簡單的事情,以下應該達到目的。

while (sentPacket < MAX_PACK_NUM) { 
      // Timestamp in ms when we send it 
      Date now = new Date(); 
      long msSend = now.getTime(); 
      .... 
      //send ping 
      socket.send(ping); 
      //receive ping 
      socket.receive(response); 
      now = new Date(); 
      long msReceived = now.getTime(); 
      // Print the packet and the delay 
      long latency= msReceived - msSend; 
      ++sentPacket; 
     } 
+0

這就是'平'命令做對了嗎? @Davide Spataro –

+0

@ guru_007基本上是的。它也能夠收集其他指標。 –

+0

好的@davide Spactaro,有沒有其他方式讓網絡中的系統存在,說A和B連接到相同的本地局域網(以太網),沒有'ping'命令。 –

相關問題