Chinaunix首页 | 论坛 | 博客
  • 博客访问: 273429
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 620
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-12 19:56
文章分类

全部博文(67)

文章存档

2019年(1)

2018年(1)

2017年(4)

2016年(34)

2015年(27)

我的朋友

分类: LINUX

2017-01-23 15:40:35


 

ping 程序 就是发送一个ICMP查询报文给某服务器,以测试该服务器是否可达。
当返回ICMP回显应答时,要打印出序列号、TTL,和往返时间;
 
[root@localhost src]# ping 
PING  (61.135.169.125) 56(84) bytes of data. 64 bytes from 61.135.169.125: icmp_seq=1 ttl=54 time=1.40 ms 64 bytes from 61.135.169.125: icmp_seq=2 ttl=54 time=1.43 ms

 

-d 使用Socket的SO_DEBUG功能。

-f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。

-n 只输出数值。

-q 不显示任何传送封包的信息,只显示最后的结果。

-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R 记录路由过程。

-v 详细显示指令的执行过程。

-c 数目:在发送指定数目的包后停止。

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。

-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。

 

测试丢包情况:

ping -c 1000 -f 10.75.49.29

 

 
traceroute程序:向目的发送具有不同TTL的IP报文(封装一个UDP格式的数据,并选择一个不可能的值作为UPD端口号),以确定至目的地址的路由;
 
首先,traceroute发送一个TTL=1的IP报文,处理这份数据报的第一个路由器将TTL-1,然后丢弃该数据报,并发回一个ICMP超时报文,
这份包含ICMP信息的IP报文的信源地址就是该路由器的地址,这样就得到了该路径中的第一个路由器的地址;
然后traceroute发送一个TTL=2的IP报文,可以得到第二个路由器的地址;继续这个过程直到数据报送至目的主机。
 
当IP报文到的目的主机时,TTL=1,目的主机认为数据报已经到达目的端,因此不会丢弃该报文;
但由于目的主机上的任何一个应用程序都没有使用指定的UPD端口号,因此会产生一个端口不可达的ICMP报文。
traceroute程序根据接收到的ICMP报文是超时、还是端口不可达以判断什么时候结束
 
traceroute命令格式:
traceroute hostname

 

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

 

参数说明:

-d 使用Socket层级的排错功能
-f 设置第一个检测数据包的存活数值TTL的大小
-F 设置勿离断位
-g 设置来源路由网关,最多可设置8个
-i 使用指定的网络界面送出数据包
-I 使用ICMP回应取代UDP,有时可以解决命令打印 “*”的问题
-m 设置检测数据包的最大存活数值TTL的大小
-n 直接使用IP地址而非主机名称,避免DNS解析
-p UDP传输协议的通信端口

-q 设置探测包个数,默认为3
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-s 设置本地主机送出数据包的IP地址
-t 设置检测数据包的TOS数值
-v 详细显示指令的执行过程
-w 设置等待远端主机回报的时间
-x 开启或关闭数据包的正确性检验

 
复制代码
[root@localhost ~]# traceroute 
traceroute to  (61.135.169.125), 30 hops max, 40 byte packets 1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms 2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms 3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms 4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms 5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms 6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms 7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms 8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms 9 * * * 30 * * * [root@localhost ~]# 
复制代码

说明:

1、记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 ,表示向每个网关发送4个数据包。
2、有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
3、有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
4、如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;

阅读(1665) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~