每天学习一个命令 traceroute(路由跟踪)的使用

traceroute 命令原理

  • 1、traceroute是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具。traceroute的原理是试图以最小的TTL(存活时间)发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为38个字节。

  • 2、原理:程序利用增加存活时间(TTL)来实现其功能。每当数据包(3个数据包包括源地址,目的地址和包发出的时间标签)经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP(Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。) TTL数据包给原数据包的发出者。

  • 3、traceroute程序完整过程:首先它发送一份TTL字段为1的IP数据包给目的主机,处理这个数据包的第一个路由器将TTL值减1,然后丢弃该数据报,并给源主机发送一个ICMP报文(“超时”信息,这个报文包含了路由器的IP地址,这样就得到了第一个路由器的地址),然后traceroute发送一个TTL为2的数据报来得到第二个路由器的IP地址,继续这个过程,直至这个数据报到达目的主机。

traceroute 命令原理以及输出报文解释

traceroute 做ip和端口测试(需要在root下执行)

  • 记住 traceroute 命令默认是使用UDP协议
traceroute -n -T 10.255.233.205  -p 9100
  • 命令解释 : -n 直接使用IP地址而非主机名称。-T 使用TCP协议的SYN进行路由探测

traceroute命令的安装

traceroute命令的解释和使用方法,主要是选项的使用

traceroute 和tcpdump的使用用法

traceroute命令实战

[root@VM_0_15_centos ~]# traceroute www.jd.com
traceroute to www.jd.com (183.60.141.1), 30 hops max, 60 byte packets
 1  100.119.164.130 (100.119.164.130)  1.666 ms  2.576 ms  3.541 ms
 2  100.119.170.62 (100.119.170.62)  1.853 ms  2.806 ms  3.720 ms
 3  10.200.135.197 (10.200.135.197)  0.541 ms * 10.200.135.213 (10.200.135.213)  0.505 ms
 4  10.196.93.230 (10.196.93.230)  0.934 ms 10.162.32.149 (10.162.32.149)  1.197 ms 10.196.93.230 (10.196.93.230)  0.949 ms
 5  * * *
 6  113.108.209.209 (113.108.209.209)  8.647 ms 113.108.209.233 (113.108.209.233)  6.054 ms 121.14.50.25 (121.14.50.25)  4.055 ms
 7  113.96.4.253 (113.96.4.253)  2.671 ms  2.822 ms  2.909 ms
 8  94.107.36.59.broad.dg.gd.dynamic.163data.com.cn (59.36.107.94)  7.015 ms 22.107.36.59.broad.dg.gd.dynamic.163data.com.cn (59.36.107.22)  4.372 ms 183.59.7.202 (183.59.7.202)  5.265 ms
 9  * * *
10  * * *
11  * * *
12  * * *
13  183.60.141.1 (183.60.141.1)  3.368 ms  3.013 ms  3.687 ms

  • 本次是路由跟踪 京东的地址
  • 跟踪信息说明
    记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.58.com ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

先写到这里,以后有使用更好的使用技巧,继续分享

DDU ICMP controls consist of 3 controls : TDDUOSPING - A non blocking PING protocolTDDUOSTRACEROUTE - A non blocking TraceRoute ProtocolTDDUOSDNS - A non blocking ARP/RARP controlAbout TDDUOSDNS :Host names are resolved to IP addresses, and IP address can be resolved to host names. If you enter an IP into the ADDRESS property, the HOST property will be completed, and the OnHostLookup event will occur. If you enter an IP or a HOST name into the HOST property, the ADDRESS property will be completed, and the OnAddressLookup event will occure. The runtime property OK can be queried to see if the lookup was successful. To reduce lookup overhead, an IP/Hostname cache can be used by setting the UseIPCache property to true. The cache is only persistent for the current session, and maynot be saved between sessions. You can use FlushIPCache method to clear the cache.When combined with the other controls in this package, the delay normally associated with connecting a socket can be avoided. Each control must have a unique TDDUOSDNS control.About the Demo :The demo project shows how to use each control. The TDDUOSDNS control is shown both in combination with other controls, and used independantly. DNS not an ICMP protocol, but it is included to prevent the windows application from blocking.Blocking is when your windows program stops responding to messages, waiting for a call to return. Normally, all calls blocks for a very short time, and is not noticable - but when you have to wait for 5 or 10 seconds or even longer, the application can appear to be crashed. By using threads, callback messages, and events, I have illustrated how it is possible to avoid blocking in an application.These controls form a custom set of TCP/IP controls I have been developing over the past year. The ICMP controls were written over the period of a week, and I consulted several references for information. I would like to thank Quinn Shute for his excellent book "Windows Socket Network Programming&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值