计算机网络实用工具之ping

本文详细介绍了ping在网络测试中的作用,包括其原理、在不同操作系统(如Ubuntu和Windows)上的安装和使用方法,以及各种命令参数的含义。重点讲解了如何通过ping进行数据包测试和网络时延评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

ping是一种计算机网络工具,用来测试数据包能否透过IP协议到达特定主机。ping的运作原理是向目标主机传出一个ICMP的请求回显数据包,并等待接收回显回应数据包。程序会按时间和成功响应的次数估算丢包率和数据包往返时间(网络时延)。

安装

一般情况下,不论是windows还是linux主机,都已预先安装好ping软件

# ubuntu 22.04
ubuntu:~$ sudo apt install iputils-ping

使用帮助

linux

ubuntu:~$ ping -h

Usage
  ping [options] <destination>

Options:
  <destination>      dns name or ip address
  -a                 use audible ping
  -A                 use adaptive ping
  -B                 sticky source address
  -c <count>         stop after <count> replies
  -D                 print timestamps
  -d                 use SO_DEBUG socket option
  -f                 flood ping
  -h                 print help and exit
  -I <interface>     either interface name or address
  -i <interval>      seconds between sending each packet
  -L                 suppress loopback of multicast packets
  -l <preload>       send <preload> number of packages while waiting replies
  -m <mark>          tag the packets going out
  -M <pmtud opt>     define mtu discovery, can be one of <do|dont|want>
  -n                 no dns name resolution
  -O                 report outstanding replies
  -p <pattern>       contents of padding byte
  -q                 quiet output
  -Q <tclass>        use quality of service <tclass> bits
  -s <size>          use <size> as number of data bytes to be sent
  -S <size>          use <size> as SO_SNDBUF socket option value
  -t <ttl>           define time to live
  -U                 print user-to-user latency
  -v                 verbose output
  -V                 print version and exit
  -w <deadline>      reply wait <deadline> in seconds
  -W <timeout>       time to wait for response

IPv4 options:
  -4                 use IPv4
  -b                 allow pinging broadcast
  -R                 record route
  -T <timestamp>     define timestamp, can be one of <tsonly|tsandaddr|tsprespec>

IPv6 options:
  -6                 use IPv6
  -F <flowlabel>     define flow label, default is random
  -N <nodeinfo opt>  use icmp6 node info query, try <help> as argument

For more details see ping(8).

windows

C:\Users\tp>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] [-c compartment] [-p]
            [-4] [-6] target_name

选项:
    -t             Ping 指定的主机,直到停止。
                   若要查看统计信息并继续操作,请键入 Ctrl+Break;
                   若要停止,请键入 Ctrl+C。
    -a             将地址解析为主机名。
    -n count       要发送的回显请求数。
    -l size        发送缓冲区大小。
    -f             在数据包中设置“不分段”标记(仅适用于 IPv4)。
    -i TTL         生存时间。
    -v TOS         服务类型(仅适用于 IPv4。该设置已被弃用,
                   对 IP 标头中的服务类型字段没有任何
                   影响)。
    -r count       记录计数跃点的路由(仅适用于 IPv4)。
    -s count       计数跃点的时间戳(仅适用于 IPv4)。
    -j host-list   与主机列表一起使用的松散源路由(仅适用于 IPv4)。
    -k host-list    与主机列表一起使用的严格源路由(仅适用于 IPv4)。
    -w timeout     等待每次回复的超时时间(毫秒)。
    -R             同样使用路由标头测试反向路由(仅适用于 IPv6)。
                   根据 RFC 5095,已弃用此路由标头。
                   如果使用此标头,某些系统可能丢弃
                   回显请求。
    -S srcaddr     要使用的源地址。
    -c compartment 路由隔离舱标识符。
    -p             Ping Hyper-V 网络虚拟化提供程序地址。
    -4             强制使用 IPv4。
    -6             强制使用 IPv6。

使用示例

windows和linux的ping命令参数有些差异,具体查看命令帮助,以下以windows系统示例

命令行界面打开方式,右击windows按钮-->运行-->输入cmd,然后点击确定

ping命令执行示例

# 不加任何参数,默认发送4个请求包,大小为32字节
C:\Users\tp>ping www.baidu.com

正在 Ping www.a.shifen.com [153.3.238.102] 具有 32 字节的数据:
来自 153.3.238.102 的回复: 字节=32 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=22ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51

153.3.238.102 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 20ms,最长 = 22ms,平均 = 20ms


# -n 参数指定数据包数量,-l 指定数据包大小
C:\Users\tp>ping -n 2 -l 550 www.baidu.com

正在 Ping www.a.shifen.com [153.3.238.102] 具有 550 字节的数据:
来自 153.3.238.102 的回复: 字节=550 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=550 时间=20ms TTL=51

153.3.238.102 的 Ping 统计信息:
    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 20ms,最长 = 21ms,平均 = 20ms

# -t参数表示一直ping,直到手动停止
C:\Users\tp>ping www.baidu.com -t

正在 Ping www.a.shifen.com [153.3.238.102] 具有 32 字节的数据:
来自 153.3.238.102 的回复: 字节=32 时间=21ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=24ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=19ms TTL=51
来自 153.3.238.102 的回复: 字节=32 时间=20ms TTL=51

153.3.238.102 的 Ping 统计信息:
    数据包: 已发送 = 9,已接收 = 9,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 19ms,最长 = 24ms,平均 = 20ms
Control-C
^C

种草

本文为"计算机网络实用工具系列"的内容之一,会持续更新其它相关博文。

我的博文内容主要针对“计算机网络”、“安全”、“运维”和“云计算”方向,感兴趣朋友的请关注我,我将不定期发布新的博文并不断改进已发布博文。

后期依据大家对博文的评论,点赞及关注情况,针对大家感兴趣的内容我也会录制视频并整理出成套的学习资料免费分享给大家,期待能和大家一起交流学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hougang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值