我正在一個簡單的程序中工作,開始時我會ping所有的MAN主機以驗證所有主機是否在線(完成),但是我想實現某種方式來衡量延遲主機之間。有沒有辦法做到這一點?有小費嗎?有一種方法可以測量java中的延遲網絡
不管怎麼說,謝謝
我正在一個簡單的程序中工作,開始時我會ping所有的MAN主機以驗證所有主機是否在線(完成),但是我想實現某種方式來衡量延遲主機之間。有沒有辦法做到這一點?有小費嗎?有一種方法可以測量java中的延遲網絡
不管怎麼說,謝謝
你可以保持對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;
}
這就是'平'命令做對了嗎? @Davide Spataro –
@ guru_007基本上是的。它也能夠收集其他指標。 –
好的@davide Spactaro,有沒有其他方式讓網絡中的系統存在,說A和B連接到相同的本地局域網(以太網),沒有'ping'命令。 –
延遲時間不過是您的ping請求和您收到回覆之間的延遲時間。它應該像通過這種延遲來排列主機一樣簡單。 – Neil
網絡延遲時間總是在變化,而測量只反映在給定時間測試的延遲。下一個測試可能會有很大的不同。另外,不同的協議可以有不同的延遲。例如,ping使用優先級列表較低的ICMP,其延遲時間與TCP或UDP可能獲得的延遲無關。 –