Destination Address Unreachable

2

場景

偵測 100 個服務器的狀態,想要得知目前網路斷線或是 HTTP 服務中斷,以及多久可以測一輪。

java isReachable?

雖然 java 5 有個 isReachable 的方法,但是似乎剛開始支援,有點問題,個人測試結果也是有點怪。一是時間有點長,接近一秒。

Sun Microsystems Inc. 1.5.0_06 running on Windows XP 5.1
127.0.0.1--982ms

另外也放鯊入區網,跑個 isReachable 觀察一下,確實沒有看到 ICMP 在區網出沒,只看到 TCP echo 出現。為了加以對照,用 ping.exe 跑一下,果然出現 ICMP

(謎之音:小心鯊魚很可怕,上班時候就別在區網上亂摸魚了)

order of magnitude

至於為何在上面先出現 ICMP ? 那是因為 ping.exe 用了 8ms 比較短,Tcp echo port 7 用了接近 1000 ms ,所以慢了一點出現。

這種顯著性的差異是幾個數量級,所以必須確保該平台可以跑到,不然同一時間只出跑一台跟預期跑出一百台,會有很大的期望落差。

links

isReachable method

這不是肯德基也不是 ping 替代品

拔掉也OK ? 問題很大

還會吃掉資源

wireshark

Comments

  1. sweet-wawa@hotmail.com said 102 days later:
    可以請問一下 怎嚜使用isReachable(NetworkInterfaceinterface, intttl, inttimeout)
  2. LIN said 102 days later:
    沒有試過,不過猜測應類似下面連結提供的程式碼。
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4938744

(leave url/email »)

   Preview comment