ping 命令说明-查看谁占用ip + ping过程解析
一:ping 命令说明-查看谁占用ip
1. 问题:有人使用了某个特定ip,但是不知道是谁,使用 ping -a ip
-a 将地址解析为计算机名。
C:\Users\hani>ping -a 192.168.33.111
正在 Ping wx [192.168.33.111] 具有 32 字节的数据:
来自 192.168.33.111 的回复: 字节=32 时间<1ms TTL=128
2. ping 结果字段说明:字节=32 时间<1ms TTL=64 说明
C:\Users\hani>ping 192.168.33.111
正在 Ping 192.168.33.111 具有 32 字节的数据:
来自 192.168.33.111 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.33.111 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.33.111 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.33.111 的回复: 字节=32 时间<1ms TTL=64
192.168.33.111 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
说明:
bytes=32;time<1ms;TTL=128 这些是什么意思。
bytes值:数据包大小,也就是字节。
time值:响应时间,这个时间越小,说明你连接这个地址速度越快。
TTL值:Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。
可以通过Ping返回的TTL值大小,粗略地判断目标系统类型是Windows系列还是UNIX/Linux系列。
默认情况下,Linux系统的TTL值为64或255
3. ping 命令参数大全(cmd: ping/?)
C:\Users\hani>ping/?
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
选项:
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作 - 请键入 Control-Break;
若要停止 - 请键入 Control-C。
-a 将地址解析成主机名。(通过ip找主机)
-n count 要发送的回显请求数。
-l size 发送缓冲区大小。(如上面的 字节=32,可以指定0-65500之间)
-f 在数据包中设置“不分段”标志(仅适用于 IPv4)。
-i TTL 生存时间。(如上面的 TTL=64)
-v TOS 服务类型(仅适用于 IPv4。该设置已不赞成使用,且
对 IP 标头中的服务字段类型没有任何影响)。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起的严格源路由(仅适用于 IPv4)。
-w timeout 等待每次回复的超时时间(毫秒)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
-S srcaddr 要使用的源地址。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
C:\Users\hani>
2. ping过程解析
A ping B主机:分两种情况:同一网段和跨网段
一. 同网段
1. 若AB两台机器之前有过通信,在机器A的MAC地址表(ARP缓存表)应该有B机IP与其MAC的映射关系。
查看本地MAC地址表是否存在B的ip地址对应的mac地址,
如果有直接发送ping icmp报文并等待B响应;
机器B收到这个数据帧后,先检查目的地址,和本机MAC地址对比,
然后构建一个ICMP应答包,发送给主机A。ok完成;
3. 没有,则arp广播查找该ip对应的主机B的mac
2.1. 交换机会收到这个报文后,交换机有学习MAC地址的功能,
所以他会检索自己有没有保存主机B有MAC,有则通过mac对应的端口发送给B,ok完成;
2.1.1. 没有则向所有端口发送ARP广播,
只有目标主机收到后会立即响应,其他丢弃该报文;
这样就完成了同一网段内的ping过程;并且此时A 记录B对应的mac地址表;
二. 不同网段
1. 若A和B不同网络,找网关/路由器转发。
1.1 如A不知道网关路由器的mac地址,那么如上一样发送arp广播报文找到网关的mac,
然后封装icmp报文给网关;
1.2 A知道网关的mac后,目标mac就是网关的mac,封装发送icmp报文给网关;
1.2.1 网关收到A的icmp报文后,查看mac是自己,根据B的ip地址查找路由表,
若查到,则修改源mac地址为自己,发icmp给B;
1. 若网关路由器查路由表没有找到B ip地址对应下一出口,则继续arp广播
……循环处理 知道找到为止;
https://blog.51cto.com/wanicy/335207
https://www.cnblogs.com/cherishry/p/5717387.html