Determining availability of a remote machine

Steve Jenkin sjenkin at
Wed Apr 2 17:43:21 EST 2003

'traceroute' relies on the proper intermediate handling of expired 'time to 
live', not ICMP ECHO (ping).

From my (linux) manpage:
        -I     Use ICMP ECHO instead of UDP datagrams.

       -p     Set  the  base  UDP  port  number  used  in  probes
              (default is 33434).  Traceroute hopes that  nothing
              is  listening on UDP ports base to base + nhops - 1
              at the destination host (so an  ICMP  PORT_UNREACH­
              ABLE  message  will  be  returned  to terminate the
              route tracing).  If something  is  listening  on  a
              port  in the default range, this option can be used
              to pick an unused port range

... .then listening for an  ICMP  "time  exceeded" reply from a gateway.

Would be nice if it would use an designated TCP port, would work just as well 
and could be 'jiggled' to go through various firewalls. [tcp:80/http is an 
obvious default choice]

Mikal - you've got the source :-)


On Wed, 2 Apr 2003 15:50, Warwick Mitchell wrote:
> Traceroute relies on ICMP.
> You could always try a tcp connection and wait for a RST packet or a SYN
> ACK, depending if the machine is listening on the port or not. You would
> still need a timeout if the machine was dead though, but I can't see
> anyway around that. And firewalls etc would still be in the way, but
> firewalls are always going to get in the way, that's their job.
> 	Warwick
> On Wed, 2 Apr 2003, Stephen Jenkin wrote:
> > Would 'traceroute' work?
> >
> > Steve Jenkin, Unix Sys Admin
> > 0412 786 915 (+61 412 786 915)
> > PO Box 48, Kippax ACT 2615, AUSTRALIA

Steve Jenkin
PO Box 48, Kippax ACT 2615 
(m) 0412 786 915

More information about the linux mailing list