traceroute是类Unix的命令工具,用于测试网络联通情况。其运行原理是,通过发送指定TTL的*ICMP包(网络层,用了IP协议)给目的主机即host,由于TTL比较小,所以包走到半路的某个网关G就会返回,这样就能得到G的IP和距离(以跳数、时间衡量)了。traceroute默认每次发送3个包出去,
使用方法
打印出traceroute的用法如下:
Usage:
traceroute [ -46dFITnreAUD ]
[ -f first_ttl ] [ -g gate,... ]
[ -i device ] [ -m max_ttl ]
[ -N squeries ] [ -p port ]
[ -t tos ] [ -l flow_label ]
[ -w waittime ] [ -q nqueries ]
[ -s src_addr ] [ -z sendwait ]
[ --fwmark=num ]
host
[ packetlen ]
使用方法比较直观,看第一部分的[-46dFITnreAUDV],因为这部分选项不需要带参数,所以可以连着写。其他的都是有参数的,不能连着写。倒数第二行的host就是要追踪的主机,比如可以是www.baidu.com。最后一个参数[packetlen]是可选的,表示包的长度,我的ubuntu默认是60B,一般不用太关心。具体参数意义如下:
-4 ipv4。
-6 ipv6。
-d 打开socket层的debug,正常情况下没有任何效果。
-F 禁止分片。
-I 使用ICMP ECHO。
-T 使用TCP,默认端口80。
-n 不打印domaim。
-r
-e 显示ICMP扩展。
-A 在每个地址后面加个AS(autonomous system)标识,如果没有就显示[*]。
-U 使用UDP请求,默认端口53。
-D 使用DCCP(数据报拥塞控制协议)请求,默认端口33434。