通过Traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。UNIX系统中,我们称之为Traceroute,MS Windows中为Tracert。 Traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备Traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,作为网络工程技术人员或者系统管理员会在UNIX主机系统下,直接执行命令行(注意目前新一代的Linux系统许多用tracepath命令,用法类似):
Traceroute hostname
(参考一篇e文的文档,讲得很清楚:http://www.exit109.com/~jeremy/news/providers/traceroute.html)
而在Windows系统下是执行Tracert的命令:
Tracerert hostname

windows之tracert

C:\>tracert

Usage: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

参数说明:
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
该诊断实用程序通过向目的地发送具有不同生存时间 (TL) 的 Internet 控制信息协议 (CMP) 回应报文,以确定至目的地的路由。路径上的每个路由器都要在转发该 ICMP 回应报文之前将其 TTL 值至少减 1,因此 TTL 是有效的跳转计数。当报文的 TTL 值减少到 0 时,路由器向源系统发回 ICMP 超时信息。通过发送 TTL 为 1 的第一个回应报文并且在随后的发送中每次将 TTL 值加 1,直到目标响应或达到最大 TTL 值,Tracert 可以确定路由。通过检查中间路由器发发回的 ICMP 超时 (ime Exceeded) 信息,可以确定路由器。注意,有些路由器“安静”地丢弃生存时间 (TLS) 过期的报文并且对 tracert 无效。
参数
-d
指定不对计算机名解析地址。
-h maximum_hops
指定查找目标的跳转的最大数目。
-jcomputer-list
指定在 computer-list 中松散源路由。
-w timeout
等待由 timeout 对每个应答指定的毫秒数。
target_name
目标计算机的名称。

忽然在想,这次海底线缆挂了,备用路由在哪里呢?
试试tracert,看看都经过那几个跳转 
C:\>tracert blog.is36.cn
Tracing route to blog.is36.cn [68.68.99.173]
over a maximum of 30 hops:
1     3 ms     8 ms    10 ms  172.31.8.254 //本地局域网上一跳
2     9 ms     9 ms     9 ms  172.8.105.254 //继续上一跳
3     3 ms     9 ms     9 ms  10.1.2.9 //继续上一跳
4     1 ms     4 ms     1 ms  10.1.2.2 //出口(内部地址)
5    <1 ms    <1 ms    <1 ms  60.191.53.193 //出口(外部地址)
6    <1 ms    <1 ms    <1 ms  61.164.9.169 //杭州电信
7     1 ms     1 ms    <1 ms  61.164.3.113 //杭州电信
8    <1 ms    <1 ms    <1 ms  220.191.129.129 //杭州电信
9     3 ms     4 ms     3 ms  202.97.39.105 //安徽黄山
10     3 ms     4 ms     3 ms  202.97.33.74 //北京
11   185 ms   167 ms   168 ms  202.97.51.194 //广西南宁
12   171 ms   170 ms   172 ms  202.97.49.97 //北京
13   176 ms   175 ms   173 ms  gige-g5-9.core1.sjc2.he.net [64.62.142.157] //美国纽约
14   177 ms   174 ms   176 ms  10gigabitethernet1-1.core1.fmt1.he.net  [72.52.92.109] //美国加州
15   174 ms   177 ms   173 ms  10gige1-1.fmt1.egihosting.com [64.71.129.70] //
16   172 ms   172 ms   172 ms  72.13.80.26 //美国加州
17   175 ms   175 ms   176 ms  68.68.99.173 //抵达目标主机(美国加州)
Trace complete.

以上ip的地址来之:http://www.ip2location.com/

忽然感觉这个ip数据是不是有问题……


linux之traceroute

Traceroute的命令参数:
Traceroute的用法为: Traceroute [options] <IP-address or domain-name> [data size]
[options]的内容有:

-d   使用Socket层级的排错功能。
  -f<存活数值>   设置第一个检测数据包的存活数值TTL的大小。
  -F   设置勿离断位。
  -g<网关>   设置来源路由网关,最多可设置8个。
  -i<网络界面>   使用指定的网络界面送出数据包。
  -I   使用ICMP回应取代UDP资料信息。
  -m<存活数值>   设置检测数据包的最大存活数值TTL的大小。
  -n   直接使用IP地址而非主机名称。
  -p<通信端口>   设置UDP传输协议的通信端口。(缺省为33434)

-q  设置TTL测试数目(缺省为3)
  -r   忽略普通的Routing Table,直接将数据包送到远端主机上。
  -s<来源地址>   设置本地主机送出数据包的IP地址。
  -t<服务类型>   设置检测数据包的TOS数值。
  -v   详细显示指令的执行过程。
  -w<超时秒数>   设置等待远端主机回报的时间。
  -x   开启或关闭数据包的正确性检验。 
[data size]:每次测试包的数据字节长度(缺省为38)

因为我的vps系统是CentOS,但是没有安装traceroute软件,需要自行安装

[root@localhost ~]# traceroute //没有这个命令

-bash: traceroute: command not found

采用yum进行安装(安装完成后可以输入traceroute看到更多可选参数):
测试下从美国到杭州某网络公司服务器:
测试下从vps到牛人张宴博客的路由跳转:
看来是在同一个机房里的机器,只是出口ip不一样。

Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

转载于:https://blog.51cto.com/3334088/786496

windows之tracert与linux之traceroute用法详解相关推荐

  1. linux signal用法,Linux 信号 signal 用法详解及注意事项

    Linux 信号 signal 用法详解及注意事项 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控 制进程结束时, 通知同一 session 内的各个作业, ...

  2. linux fork 用法,Linux系统调用fork()用法详解

    linux 系统调用fork()的用法详解 Linux系统调用fork()用法详解 1. 先看下面代码: #include #include //pid_t类型定义 #include //函数fork ...

  3. linux中用less命令,Linux less 命令用法详解

    原标题:Linux less 命令用法详解 less 是一个Linux命令行实用程序,用于显示文件或命令输出的内容,它一次只显示一个页面.它类似于 more ,但具有更高级的功能,允许您在文件中向前和 ...

  4. linux下crontab命令的用法,linux 定时任务crontab用法详解

    linux 定时任务crontab用法详解 linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读 ...

  5. linux的traceroute命令详解

    traceroute命令详解 traceroute [-46dFITUnrAV] [-f first_ttl] [-g gate,...] [-i device] [-m max_ttl] [-p p ...

  6. Linux tcpdump命令用法详解

    From: http://os.51cto.com/art/201005/201921.htm TCPDUMP简介 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一 ...

  7. Linux wget命令用法详解

    Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协 ...

  8. Linux里get命令,Linux apt-get 命令用法详解-Linux命令大全(手册)

    apt-get Debian Linux发行版中的APT软件包管理工具 补充说明 apt-get命令 是Debian Linux发行版中的APT软件包管理工具.所有基于Debian的发行都使用这个包管 ...

  9. linux命令sudu,Linux命令 sudo用法详解

    sudo 命令用来以其他身份来执行命令,Linux系统下的sudo命令主要是用来分配系统的权限,使用sudo命令可以提高普通用户的权限,来执行一些操作.预设的身份为root.在/etc/sudoers ...

最新文章

  1. python50种算法_收藏 | 一文洞悉Python必备50种算法(附解析)
  2. 需求编写的几点经验之谈
  3. Linux 下如何安装软件?
  4. 《数据库原理与应用》(第三版) 第 3 章 关系数据库 习题参考答案
  5. Serverless 的前世今生
  6. windows使用markdown离线编写文章(可设置图床)
  7. php二级垂直导航栏,垂直(纵向)二级导航菜单
  8. 硬件测试需要什么软件是什么原因,什么硬件软件检测温度准啊
  9. luogu P5336 [THUSC2016]成绩单
  10. Spring Boot 容器选择 Undertow 而不是 Tomcat Spring Boot 内嵌容器Unde
  11. 二叉树的操作--递归与非递归
  12. 亚马逊美国买家账号怎么注册
  13. 1985—1990年《ISTP》收录的世界主要国家(地区)科技会议论文情况
  14. maven conf
  15. 30种常用管理工具模型整理分享(上)
  16. 一文读懂通配符SSL证书
  17. php实现基站定位,基站定位和WIFI定位完美结合项目源码
  18. iPhone4 GSM Model A1332升级IOS7.1.2失败后降级IOS5.1.1成功
  19. 银行使用计算机实现个人存款,银行使用计算机实现个人存款业务的通存通兑,属于计算机在什么方面的应用...
  20. Image-Level 弱监督图像语义分割汇总简析

热门文章

  1. Linux+apache+svn
  2. Spring Boot CMI 使用笔记
  3. 软件测试用例文档模板 简书,如何写出高质量的测试用例
  4. K8s-V1.17.6支持GPU
  5. Nacos完全关闭配置
  6. 设计模式在Netty中的应用-责任链模式源码举例
  7. 任务调度框架Quartz基本介绍
  8. 制作模块-制作模块压缩包
  9. SpringBoot整合 ActiveMQ、SpringBoot整合RabbitMQ、SpringBoot整合Kafka
  10. 瞿菡云计算机,“国家资助 伴我成长”——我校学生王丽娜、肖云菡荣获中职教育“国家奖学金”事迹材料...