code: public boolean isReachable(NetworkInterface netif, int ttl,
                                 int timeout) throws IOException {
          if (ttl < 0)
              throw new IllegalArgumentException("ttl can't be negative");
          if (timeout < 0)
              throw new IllegalArgumentException("timeout can't be negative");
  
          return impl.isReachable(this, timeout, netif, ttl);
      }
docs: Test whether that address is reachable. Best effort is made by the
  implementation to try to reach the host, but firewalls and server
  configuration may block requests resulting in a unreachable status
  while some specific ports may be accessible.
  A typical implementation will use ICMP ECHO REQUESTs if the
  privilege can be obtained, otherwise it will try to establish
  a TCP connection on port 7 (Echo) of the destination host.
  <p>
  The <code>network interface</code> and <code>ttl</code> parameters
  let the caller specify which network interface the test will go through
  and the maximum number of hops the packets should go through.
  A negative value for the <code>ttl</code> will result in an
  IllegalArgumentException being thrown.
  <p>
  The timeout value, in milliseconds, indicates the maximum amount of time
  the try should take. If the operation times out before getting an
  answer, the host is deemed unreachable. A negative value will result
  in an IllegalArgumentException being thrown.
  
  @param   netif   the NetworkInterface through which the
  test will be done, or null for any interface
  @param   ttl     the maximum numbers of hops to try or 0 for the
  default
  @param   timeout the time, in milliseconds, before the call aborts
  @throws  IllegalArgumentException if either <code>timeout</code>
  or <code>ttl</code> are negative.
  @return a <code>boolean</code>indicating if the address is reachable.
  @throws IOException if a network error occurs
  @since 1.5