traceroute/tracert--获取网络路由路径
traceroute 是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,我们会在linux主机系统下,直接执行命令行:
traceroute hostname
而在Windows系统下是执行tracert的命令:
tracert hostname
示例:
[c:\~]$ tracert www.baidu.com 通过最多 个跃点跟踪
到 www.a.shifen.com [119.75.217.109] 的路由: ms ms ms 113.44.96.1
ms ms ms 113.44.96.1
ms ms ms 218.241.253.97
ms ms ms 14.197.178.41
ms ms ms 14.197.249.122
* * * 请求超时。
* * * 请求超时。
* * * 请求超时。
ms ms ms 119.75.217.109 跟踪完成。
表示经过9个路由可访问到www.baidu.com(119.75.217.109)。
说明:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。(如果路由器不支持ICMP协议,对应的那条结果就会显示星号)
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。
注:ubuntu下traceroute www.baidu.com全是×,但ping可通,这主要是因为ubuntu下默认的traceroute发送的是UDP包,应该加参数-I(使用ICMP包),traceroute -I www.baidu.com.
参考:
最新文章
- lua下的简单OO实现
- 自定义滚动条 - mCustomScrollbar
- STARTUP.A51详解及如何使能可重入函数
- 2014第2周三Web安全学习
- UESTC_Judgment Day CDOJ 11
- js实现省市区联动
- MongoDB一个基于分布式文件存储的数据库(介于关系数据库和非关系数据库之间的数据库)
- 部署github开源软件遇到的问题
- web.xml 中<;context-param>;与<;init-param>;的区别与作用
- c# &;sqlserver
- 用户创建,删除and并发注册and系统登陆的API研究(学习汇总网上资料)
- element-ui 2.4.3 如何实现对form部分字段验证的解决方法?
- java语言的特征
- BZOJ1823 [JSOI2010]满汉全席 2-sat
- Linux系统下CPU使用(load average)梳理
- python nose测试框架全面介绍五--attr介绍
- 编译器C1001问题
- 强化学习读书笔记 - 11 - off-policy的近似方法
- 【android开发】10款实用的Android UI工具,非常有用!
- leetcode605
热门文章
- unity macro 分平台处理
- (转)如何将本地git仓库中的代码上传到github
- 网页图表控件Highcharts选项配置参数
- JMeter 十二:命令行执行
- hdu 4506 小明系列故事——师兄帮帮忙【幂取模乱搞】
- Rxjava2.0 链式请求异常处理
- 算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)
- 如何查看LoadRunner虚拟用户(vuser)类型
- [LeetCode] Add Two Numbers(stored in List)
- Spring+Hibernate整合