linux-command-03 ping

linux-command-03 ping

概念解析

PING

  PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP(Internet Control Messages Protocol)即因特网信报控制协议;回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

ping (网络诊断工具)

  Ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式:ping空格IP地址。该命令还可以加许多参数使用,具体是键入ping按回车即可看到详细说明。

语法

1
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ket的SO_DEBUG功能。
-c<完成次数> 设置完成要求回应的次数。
-f 极限检测。
-i<间隔秒数> 指定收发信息的间隔时间。
-I<网络界面> 使用指定的网络接口送出数据包。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-n 只输出数值。
-p<范本样式> 设置填满数据包的范本样式。
-q 不显示指令执行过程,开头和结尾的相关信息除外。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-s<数据包大小> 设置数据包的大小。
-t<存活数值> 设置存活数值TTL的大小。
-v 详细显示指令的执行过程。

实例解析

1.ping一个目标需要手动打断:ctrl+c

1
[root@node4 ~]# ping baidu.com

指定发送ping包的网卡,-I后接网卡名或者网卡的IP地址都是可以的。适合多网卡的场景。

1
[root@node4 ~]# ping -I ens33 www.baidu.com

2.加参数c,设置收发包的数量为3

1
[root@node4 ~]# ping -c 3 baidu.com

3.多参数使用,每间隔3秒收发一次信息,每个数据包大小1024字节(byte),TTL设置为255,收发包的数量为5

1
[root@node4 ~]# ping -i 3 -s 1024 -t 255 -c 5 baidu.com

  如下图,-s 选项可以设置ICMP数据部分的大小,可以看到数据部分1024个字节,加上8字节的ICMP头,则ICMP包大小为1032字节。再加上20字节的IP头,IP包大小为1052字节。图中的是ICMP包大小:1032字节。

  但是,明明我们设置了TTL为255,为何这里依然显示的是128呢?因为这里显示的是服务器回复我们的数据包,而非我们发过去的数据包。

1PaSJK.png

  我们可以用wireshark抓取这台虚拟机node4所对应虚拟网卡VMnet8的数据包,经过筛选,可以看到总共有10个数据包。可以看到,源地址和目的地址分别为192.168.141.132,123.125.114.144的数据包有5个,反过来的也有五个,正是一去一回的一一对应关系。

  抓包后可以仔细看看TTL字段,可以发现发出去的数据包TTL=255,接收到的应答包TTL=128,两种数据包各5个。

欢迎打赏,谢谢
------ 本文结束------
0%