tcping64 与psping64 与 paping 命令行工具 参数 完整版 对比 分析 区别 特色 0.000 与 0.00 精确度越来越高

tcping64psping64paping 这三款命令行工具的对比,主要从它们的功能、使用场景、支持的协议等角度进行区分,表格化展示:

特性 tcping64 psping64 paping
主要功能 TCP 连接测试工具,通过发送 TCP 请求测试连接性 提供 TCP/UDP 性能测试,类似于 ping 命令的功能 用于测试 TCP 连接和延迟,功能类似 ping 命令
支持的协议 仅支持 TCP 协议 支持 TCP 和 UDP 协议 支持 TCP 协议
操作系统支持 Windows Windows 和 Linux Windows 和 Linux
功能特性 - 可以指定端口来测试 TCP 连接- 提供延迟和丢包率 - 支持端口扫描- 可以设置并发连接测试- 支持多种协议和延迟测试 - 基于 TCP 的连接测试- 可以模拟并发连接- 提供延迟测试
自定义选项 - 支持指定目标 IP 和端口- 支持自定义延迟参数 - 支持多个协议(TCP/UDP)- 支持并发测试和指定端口 - 可以设置连接超时、并发数等参数
输出格式 显示每个 TCP 请求的延迟(类似 ping 的效果) 显示 TCP/UDP 连接延迟和带宽支持指定输出格式 显示每个 TCP 请求的响应时间,类似于 ping 的输出
使用场景 网络延迟和连接性测试,检查特定端口的响应情况 性能测试,尤其适合需要对 TCP/UDP 网络进行压力测试的场景 用于测试 TCP 连接的延迟与可靠性
工具特点 - 简单易用- 专注于 TCP 连接测试- 支持批量测试 - 功能强大,适合综合网络性能测试- 支持多种协议和并发测试 - 轻量级- 专注于 TCP 延迟和连接性测试
典型命令行示例 tcping64 example.com 80 psping64 -t example.com:80 paping example.com:80
支持的并发连接 无并发功能 支持并发连接数设置 支持设置并发连接数
测试精度 仅测量单个 TCP 连接的响应时间0.000ms 测量更精确,支持长时间的 TCP/UDP 测试0.00ms 测量 TCP 连接的响应时间并输出详细统计信息0.00ms
安装要求 无需安装,下载后直接使用 需要安装 .NET Framework 4.5 以上版本 可直接下载并使用,支持 Windows 和 Linux 版本

详细对比:

  1. tcping64tcping.exe - ping over a tcp connection

    • 功能tcping64 是一个轻量级的 TCP 测试工具,类似于 ping 命令,但它用于测试 TCP 连接的延迟和是否能成功连接到特定的 IP 地址和端口。
    • 优点:简单、易用,适用于对 TCP 连接进行快速的延迟测试。没有太多复杂功能,适合基础网络连接检查。
    • 缺点:仅支持 TCP 协议,功能较为单一。
  2. psping64PsPing - Sysinternals | Microsoft Learn

    • 功能psping64 是由 Microsoft Sysinternals 提供的一款网络性能测试工具,支持 TCP 和 UDP 协议,功能比 tcping 更为强大。它可以进行端口扫描、延迟测量、带宽测试等。
    • 优点:功能全面,支持 TCP 和 UDP,能够模拟并发连接,进行压力测试。适用于网络带宽测试、延迟测试和端口扫描等。
    • 缺点:需要安装 .NET Framework,稍显复杂,适用于更高级的网络诊断任务。
  3. paping

    • 功能paping 是一款类似于 ping 的工具,用于测试 TCP 连接的延迟。它支持指定目标 IP 地址和端口,显示每个请求的延迟时间。
    • 优点:功能简单明了,支持并发连接,适合用于快速检查 TCP 连接的状态和性能。
    • 缺点:功能相对较简单,主要针对 TCP 延迟和连接性测试,不支持 UDP 和更多高级功能。

 

  • 如果你只是需要进行简单的 TCP 连接测试tcping64 是最简单直接的工具。
  • 如果你需要更 全面的性能测试,例如测试带宽、并发连接、UDP 协议等,psping64 是一个更强大的选择。
  • 如果你希望有一个 轻量级的 TCP 延迟测试工具paping 是一个不错的选择,尤其是它也支持并发连接模拟。

tcping.exe 是由 Eli Fulkerson 开发的工具,用于测试服务器的连接。它可以模拟 TCP 协议的连接过程,并提供了丰富的选项来进行灵活的测试。

tcping64 /?
--------------------------------------------------------------
tcping.exe by Eli Fulkerson
Please see http://www.elifulkerson.com/projects/ for updates.
--------------------------------------------------------------

Usage: tcping64 [-flags] server-address [server-port]

Usage (full): tcping64 [-t] [-d] [-i interval] [-n times] [-w ms] [-b n] [-r times] [-s] [-v] [-j] [-js size] [-4] [-6] [-c] [-g count] [-S source_address] [--file] [--tee filename] [-h] [-u] [--post] [--head] [--proxy-port port] [--proxy-server server] [--proxy-credentials username:password] [-f] server-address [server-port]

 -t     : ping continuously until stopped via control-c
 -n 5   : for instance, send 5 pings
 -i 5   : for instance, ping every 5 seconds
 -w 0.5 : for instance, wait 0.5 seconds for a response
 -d     : include date and time on each line
 -b 1   : enable beeps (1 for on-down, 2 for on-up,
                        3 for on-change, 4 for always)
 -r 5   : for instance, relookup the hostname every 5 pings
 -s     : automatically exit on a successful ping
 -v     : print version and exit
 -j     : include jitter, using default rolling average
 -js 5  : include jitter, with a rolling average size of (for instance) 5.
 --tee  : mirror output to a filename specified after '--tee'
 --append : Append to the --tee filename rather than overwriting it
 -4     : prefer ipv4
 -6     : prefer ipv6
 -c     : only show an output line on changed state
 --file : treat the "server-address" as a filename instead, loop through file line by line
          Note: --file is incompatible with options such as -j and -c as it is looping through different targets
          Optionally accepts server-port.  For example, "example.org 443" is valid.
          Alternately, use -p to force a port at command line for everything in the file.
 -g 5   : for instance, give up if we fail 5 times in a row
 -S _X_ : Specify source address _X_.  Source must be a valid IP for the client computer.
 -p _X_ : Alternate method to specify port
 --fqdn : Print domain name on each line if available
 --ansi : Use ANSI color sequences (cygwin)
 --color: Use Windows color sequences

HTTP Options:
 -h     : HTTP mode (use url without http:// for server-address)
 -u     : include target URL on each line
 --post : use POST rather than GET (may avoid caching)
 --head : use HEAD rather than GET
 --proxy-server : specify a proxy server
 --proxy-port   : specify a proxy port
 --proxy-credentials : specify 'Proxy-Authorization: Basic' header in format username:password

Debug Options:
 -f     : force tcping to send at least one byte
 --header : include a header with original args and date.  Implied if using --tee.
 --block  : use a 'blocking' socket to connect.  This prevents -w from working and uses the
            default timeout (as long as 20 seconds in my case).  However it can detect an actively
            refused connection vs a timeout.

        If you don't pass server-port, it defaults to 80.

tcping64 命令各个参数的功能分类及说明表格:

tcping64 命令参数分类

功能类别 参数 值及说明
基本操作 server-address 目标服务器地址,可以是 IP 或域名。
  server-port 目标服务器端口,默认为 80。
常用操作 -t 持续 ping 直到手动停止(Ctrl + C)。
  -n 指定 ping 的次数,例如 -n 5 表示发送 5 次 ping。
  -i 指定每次 ping 的间隔时间,单位为秒。例如 -i 5 表示每 5 秒 ping 一次。
  -w 设置等待响应的时间,单位为秒。例如 -w 0.5 表示等待 0.5 秒。
  -d 每次 ping 时显示日期和时间。
  -b 启用提示音。1 表示下行时发出声音,2 表示上行时发出声音,3 表示状态变化时发出声音,4 表示每次发出声音。
  -r 设置重新查找主机名的次数,例如 -r 5 表示每 5 次 ping 重新解析一次主机名。
  -s 成功 ping 时自动退出。
调试和高级功能 -v 显示版本并退出。
  -j 启用 jitter,使用默认的滚动平均值。
  -js 启用 jitter,指定滚动平均大小,例如 -js 5 表示使用大小为 5 的滚动平均。
  --tee 将输出镜像到指定的文件中。
  --append 向指定的文件追加输出,而不是覆盖文件内容。
  -4 优先使用 IPv4 地址。
  -6 优先使用 IPv6 地址。
  -c 仅在状态发生变化时显示输出。
  --file 将 server-address 视为文件名,逐行读取文件并进行 ping。与 -j 和 -c 不兼容。
  -g 指定失败次数达到后放弃,例如 -g 5 表示连续 5 次 ping 失败后放弃。
  -S 指定源 IP 地址,必须是客户端计算机的有效 IP 地址。
HTTP 相关选项 -h 启用 HTTP 模式,server-address 应为 URL(不需要 http:// 前缀)。
  -u 在每行输出中包含目标 URL。
  --post 使用 POST 请求,而不是 GET 请求(可能避免缓存)。
  --head 使用 HEAD 请求,而不是 GET 请求。
  --proxy-server 指定代理服务器地址。
  --proxy-port 指定代理服务器端口。
  --proxy-credentials 指定代理认证信息,格式为 username:password
调试选项 -f 强制 tcping 发送至少一个字节的数据。
  --header 包含请求的头部信息(包括原始参数和日期)。如果使用 --tee 参数则默认启用。
  --block 使用阻塞套接字进行连接,阻塞模式下 -w 参数失效,使用默认超时(例如 20 秒),可以检测是否主动拒绝连接。
输出控制 --fqdn 如果可用,在每行输出中打印完整域名。
  --ansi 使用 ANSI 颜色序列(适用于 Cygwin 环境)。
  --color 使用 Windows 颜色序列。
特殊文件选项 -p 强制所有文件中的条目使用指定的端口。

示例用法:

  • 持续 ping 目标服务器,间隔 5 秒:

    bashCopy Code
    tcping64 -t -i 5 example.com

    这将持续 ping example.com,每 5 秒 ping 一次。

  • 指定发送 10 次 ping,使用 IPv4,指定端口为 443:

    bashCopy Code
    tcping64 -n 10 -4 -p 443 example.com

    这将向 example.com 发送 10 次 ping,使用 IPv4 地址,并指定端口为 443。

  • 使用 HTTP 模式,POST 请求,并指定代理服务器:

    bashCopy Code
    tcping64 -h --post --proxy-server proxy.example.com --proxy-port 8080 example.com

    这将使用 HTTP 模式,发送 POST 请求,并通过代理服务器 proxy.example.com,端口 8080 进行请求。

备注:

  • tcping64 支持多种网络协议和高级选项,可以用来进行深入的网络连接诊断,适用于需要高自定义的场景。
  • 通过组合不同的参数,可以实现精准的 ping 测试和网络状态监控,尤其适用于复杂的网络环境和 HTTP 请求调试。

以下是 tcping64 的使用方法和选项说明:

  • 用法:tcping64 [-flags] 服务器地址 [服务器端口]
  • 用法(完整):tcping64 [-t] [-d] [-i 间隔时间] [-n 次数] [-w 毫秒] [-b n] [-r 次数] [-s] [-v] [-j] [-js 大小] [-4] [-6] [-c] [-g 次数] [-S 源地址] [--file] [--tee 文件名] [-h] [-u] [--post] [--head] [--proxy-port 端口] [--proxy-server 服务器] [--proxy-credentials 用户名:密码] [-f] 服务器地址 [服务器端口]

选项包括:

  • -t : 连续 ping 直到通过控制-c 停止
  • -n 5 : 发送 5 个 ping 请求
  • -i 5 : 每隔 5 秒进行一次 ping 请求
  • -w 0.5 : 等待 0.5 秒以获取响应
  • -d : 在每行包括日期和时间
  • -b 1 : 启用蜂鸣提示(1 表示连接成功时蜂鸣,2 表示连接失败时蜂鸣,3 表示状态变化时蜂鸣,4 表示始终蜂鸣)
  • -r 5 : 每隔 5 次 ping 重新查找主机名
  • -s : 在成功的 ping 后自动退出
  • -v : 打印版本信息并退出
  • -j : 包括抖动,并使用默认的滚动平均值
  • -js 5 : 包括抖动,并使用滚动平均值的大小(例如,5)
  • --tee : 将输出镜像到指定的文件名后面
  • --append : 追加到 --tee 文件名而不是覆盖它
  • -4 : 更偏好 IPv4
  • -6 : 更偏好 IPv6
  • -c : 仅在状态变化时显示输出行
  • --file : 将 "服务器地址" 视为文件名,逐行循环读取文件
  • -g 5 : 如果连续失败 5 次则放弃
  • -S X : 指定源地址 X。源地址必须是客户端计算机的有效 IP 地址。
  • -p X : 指定端口的替代方法
  • --fqdn : 如有可用,则在每行打印域名
  • --ansi : 使用 ANSI 颜色序列(cygwin)
  • --color: 使用 Windows 颜色序列

HTTP 选项:

  • -h : HTTP 模式(对于服务器地址,使用不带 http:// 的 URL)
  • -u : 在每行包括目标 URL
  • --post : 使用 POST 而不是 GET(可能避免缓存)
  • --head : 使用 HEAD 而不是 GET
  • --proxy-server : 指定代理服务器
  • --proxy-port : 指定代理端口
  • --proxy-credentials : 以格式 用户名:密码 指定 'Proxy-Authorization: Basic' 头部

调试选项:

  • -f : 强制 tcping 发送至少一个字节
  • --header : 包括带有原始参数和日期的标头。如果使用 --tee,则隐含此选项。
  • --block : 使用“阻塞”套接字连接。这可以防止 -w 生效,并使用默认超时时间(在我的情况下最长为 20 秒)。但它可以检测到主动拒绝连接和超时之间的区别。

如果不传递服务器端口,则默认为 80。

tcping.exe 是一个用于网络测试的工具,主要用于检测网络连接性和端口的可达性。它是 TCP Ping 的一种实现,类似于 ping 命令,但主要用于测试 TCP 端口而不是 ICMP 协议。这个工具常用于以下几个方面:

1. 检查端口可达性

  • 用途:测试指定主机和端口的连接性。
  • 应用实例:检查一个服务(如 Web 服务器、数据库服务器)的端口是否开放,确保服务能够正常访问。

2. 测试网络延迟

  • 用途:测量到目标主机的延迟,但不是通过 ICMP 协议,而是通过建立 TCP 连接来实现。
  • 应用实例:评估网络延迟的具体数值,例如在进行网络性能分析时,获取与服务端的连接延迟。

3. 网络故障排除

  • 用途:帮助诊断网络连接问题,尤其是在涉及到特定端口时。
  • 应用实例:如果一个服务无法连接,可以使用 tcping 测试相关端口,确定是否是由于端口未开放导致的问题。

4. 服务状态检查

  • 用途:检查特定服务是否在指定端口上正常运行。
  • 应用实例:在系统监控和维护中,定期检查重要服务的状态。

5. 性能测试

  • 用途:测试在不同网络条件下的连接性能。
  • 应用实例:在配置负载均衡器或进行网络优化时,评估连接质量。

如何使用 tcping.exe

  • 基本语法

    shellCopy Code
    tcping.exe <hostname> <port>

    例如,要测试 example.com 上的 80 端口:

    shellCopy Code
    tcping.exe example.com 80
  • 查看帮助

    shellCopy Code
    tcping.exe /?

示例输出

当你运行 tcping.exe 时,通常会看到类似于以下的输出:

Copy Code
Pinging example.com [93.184.216.34] with TCP port 80:
Reply from 93.184.216.34: bytes=32 time=20ms TTL=55

这个输出显示了目标主机的 IP 地址、端口、响应时间等信息。

 tcping.exe 是一个用于测试 TCP 连接的有用工具,可以帮助用户检查网络服务的状态和性能。

tcping.exe 是一个网络诊断工具,功能主要集中在检测 TCP 端口的连接性和性能。以下是 tcping.exe 的主要功能分类:

1. 端口连通性测试

  • 功能:检测指定的主机和端口是否可达。
  • 用途:验证网络中某个服务的端口是否开放并可以接受连接。
  • 示例命令
    shellCopy Code
    tcping.exe example.com 80

2. 网络延迟测量

  • 功能:测量从本地到目标主机的 TCP 连接建立的延迟。
  • 用途:评估与特定主机和端口之间的网络延迟,帮助判断网络性能。
  • 示例命令
    shellCopy Code
    tcping.exe -t example.com 80
    这里的 -t 选项可以用来进行连续测试,显示每次测试的延迟。

3. 服务状态检查

  • 功能:检查特定端口的服务是否正在运行。
  • 用途:监控网络服务的状态,确认服务是否在预期的端口上正常运行。
  • 示例命令
    shellCopy Code
    tcping.exe example.com 22

4. 丢包率测量

  • 功能:虽然 tcping 主要关注延迟,但它也可以提供丢包信息。
  • 用途:判断连接过程中是否有数据包丢失。
  • 示例命令
    shellCopy Code
    tcping.exe -t example.com 80
    使用 -t 选项进行连续测试时,可以观察丢包情况。

5. 连续测试与日志记录

  • 功能:进行连续的连接测试并记录结果。
  • 用途:跟踪网络性能随时间的变化,记录延迟和连接性数据。
  • 示例命令
    shellCopy Code
    tcping.exe -t example.com 80 > log.txt
    这个命令将测试结果输出到 log.txt 文件中,便于后续分析。

6. 帮助和使用说明

  • 功能:提供关于如何使用 tcping.exe 的帮助信息和命令选项说明。
  • 用途:帮助用户了解如何正确使用该工具。
  • 示例命令
    shellCopy Code
    tcping.exe /?

7. 自定义超时和重试

  • 功能:设置连接超时和重试次数。
  • 用途:调整测试的超时设置,优化测试精度和灵活性。
  • 示例命令
    shellCopy Code
    tcping.exe -w 5000 -r 3 example.com 80
    -w 选项设置超时时间(毫秒),-r 选项设置重试次数。

8. 指定源 IP 测试

  • 功能:通过指定源 IP 地址进行连接测试。
  • 用途:在多网卡环境中测试特定网卡的连接情况。
  • 示例命令
    shellCopy Code
    tcping.exe -s 192.168.1.100 example.com 80
    -s 选项指定源 IP 地址。

总结

tcping.exe 是一个用于网络测试的多功能工具,通过不同的命令和选项可以帮助用户完成从基本的端口连通性检查到复杂的网络性能测量等任务。它的灵活性和功能使其成为网络诊断和性能监控中的重要工具。

tcping.exe 的底层原理基于 TCP 协议的连接建立过程。它模拟实际的 TCP 连接,通过尝试建立到目标主机和端口的连接来检测连通性。工具的操作流程如下:

  1. 建立连接tcping.exe 尝试与目标主机上的指定端口建立 TCP 连接。
  2. 测量延迟:记录连接建立所需的时间,即往返延迟(Round-Trip Time, RTT)。
  3. 检测状态:根据是否成功建立连接来判断目标端口的状态(开放或关闭)。

它通过这些步骤来评估网络延迟和服务可用性。

tcping.exe 通过以下技术细节来实现其功能:

1. TCP 连接的建立

  • TCP 三次握手tcping.exe 尝试通过 TCP 三次握手过程来建立与目标主机的连接。这个过程包括:

    • SYN:发送一个 SYN 包(同步包)以请求建立连接。
    • SYN-ACK:目标主机响应一个 SYN-ACK 包(同步-确认包)。
    • ACK:发送一个 ACK 包(确认包)来完成连接建立。
  • 延迟测量:在三次握手过程中,tcping.exe 计算从发送 SYN 包到接收到 SYN-ACK 包所经历的时间,这个时间就是 TCP 连接的延迟。

2. 实现细节

  • Socket 编程:使用底层的 socket 编程接口(如 Windows API 的 socketconnect 函数)来创建 TCP 连接。

    • Socket 创建:使用 socket 函数创建一个套接字。
    • 连接请求:使用 connect 函数发起连接请求到目标主机和端口。
    • 超时处理:设置连接的超时值(通过 socket 选项),如果连接在指定时间内未成功建立,则中断尝试。
  • 错误处理:捕捉并处理连接过程中可能发生的各种错误,例如目标主机不可达、目标端口未开放等。

3. 测量精度

  • 时间戳:通过记录当前时间戳(通常是系统时间)来计算连接延迟。
    • 发送时间戳:在发送 SYN 包时记录时间。
    • 接收时间戳:在收到 SYN-ACK 包时记录时间。
    • 延迟计算:计算时间差来确定延迟。

4. 高级功能

  • 持续测试:使用循环或定时器功能(如 Sleep 函数)来执行连续的连接测试,以监控延迟和连接状态的变化。
  • 日志记录:将测试结果(如延迟时间、连接成功/失败状态)记录到日志文件中,便于后续分析。

5. 操作系统依赖

  • Windows APItcping.exe 主要在 Windows 环境下运行,利用 Windows 特定的网络 API(如 WSAStartupWSAConnect)来实现 TCP 连接。
  • 跨平台:虽然 tcping.exe 是一个 Windows 工具,但类似功能的工具(如 nping)也可在其他操作系统中实现,通常使用平台特定的网络编程接口。

6. 命令行参数

  • 定制化:支持通过命令行参数定制测试的行为,例如:
    • -t:持续测试
    • -w:设置超时
    • -r:设置重试次数
    • -s:指定源 IP

7. 性能优化

  • 非阻塞模式:在一些实现中,可以使用非阻塞模式来提高性能,避免在等待连接时阻塞其他操作。
  • 并发测试:通过多线程或异步方法来同时测试多个目标,优化测试效率。

这些技术细节使得 tcping.exe 能够高效地执行网络连通性和延迟测试,为用户提供准确的网络性能数据。

tcping.exe 的架构通常包括以下几个核心部分:

  1. 主程序:处理命令行输入,配置测试参数,并管理程序的主要逻辑。

  2. 网络模块

    • Socket 创建:利用操作系统提供的 API 创建 TCP 套接字。
    • 连接管理:负责建立 TCP 连接,并处理连接的超时和错误。
    • 延迟测量:计算从发起连接到接收到响应的时间。
  3. 测试调度

    • 循环执行:根据用户配置,定期执行连接测试。
    • 日志记录:记录测试结果和状态,用于后续分析。
  4. 用户界面(如果有):处理用户的输入输出,如显示结果或接受命令行参数。

  5. 错误处理:捕捉并处理网络连接和系统调用中的各种错误,确保程序的稳定性和可靠性。

tcping.exe 主要用于以下应用:

  1. 网络连通性测试:检查特定端口的 TCP 连接是否成功,帮助识别网络连接问题。

  2. 延迟测量:测量从发起连接请求到接收响应的时间,以评估网络延迟。

  3. 服务监控:监控远程服务的可用性,通过定期测试确定服务是否正常运行。

  4. 故障排查:帮助网络管理员定位网络问题,如端口未开放或连接超时。

  5. 性能分析:评估不同网络条件下的性能,优化网络配置或服务部署。


PsPing v2.12 - PsPing - ping、延迟、带宽测量实用程序 版权所有 (C) 2012-2023 Mark Russinovich Sysinternals - www.sysinternals.com

PsPing v2.12 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2023 Mark Russinovich
Sysinternals - www.sysinternals.com

PsPing implements Ping functionality, TCP ping, UDP/TCP latency, and UDP / TCP
bandwidth measurement.

Help usage: psping -? [i|t|l|b]
   -? i   Usage for ICMP ping.
   -? t   Usage for TCP ping.
   -? l   Usage for latency test.
   -? b   Usage for bandwidth test.
  -nobanner   Do not display the startup banner and copyright message.

PsPing 工具功能分类后的表格,涵盖了 ICMP Ping、TCP Ping、延迟测试、带宽测试等多种测试功能,便于参考与使用:

PsPing 命令功能分类及参数说明

功能类别 参数 值及说明
基本操作 -? 显示帮助信息,后跟参数选择:i(ICMP ping)、t(TCP ping)、l(延迟测试)、b(带宽测试)。
ICMP Ping(默认) -i ICMP Ping 测试。
  -n 指定 ping 的次数,例如 -n 5 表示发送 5 次 ICMP Ping。
  -l 设置 ICMP Ping 数据包的大小,单位为字节。
  -s 设置每次 ping 的间隔时间(秒)。
TCP Ping -t TCP Ping 测试。
  -p 指定目标端口号,默认为 80。
  -i 设置每次 TCP ping 的间隔时间(秒)。
  -n 设置发送的 TCP ping 次数。例如 -n 10 表示发送 10 次 TCP ping。
  -w 设置 TCP ping 等待响应的时间(秒)。
延迟测试 -l 延迟测试模式,显示 RTT(Round Trip Time)延迟。
  -d 进行延迟测试时启用日期和时间显示。
  -b 启用延迟测试时的音频提示。
  -r 设置每次发送请求后的最大重试次数,默认值为 4。
带宽测试 -b 带宽测试模式。
  -n 指定带宽测试的传输次数,默认为 100。
  -s 设置带宽测试的数据包大小,单位为字节。
  -t 带宽测试期间的超时限制,单位为秒。
其他选项 -nobanner 不显示启动横幅和版权信息。
  -v 显示版本信息并退出。
  -4 强制使用 IPv4 地址。
  -6 强制使用 IPv6 地址。
  -h 显示帮助信息。

示例用法:

  • ICMP Ping,发送 5 次请求,间隔 1 秒:

    bashCopy Code
    psping -i -n 5 -s 1 example.com
  • TCP Ping,发送 10 次请求到指定端口 443,超时 2 秒:

    bashCopy Code
    psping -t -n 10 -p 443 -w 2 example.com
  • 延迟测试:

    bashCopy Code
    psping -l -n 5 example.com
  • 带宽测试,发送数据包大小为 1024 字节,10 次:

    bashCopy Code
    psping -b -s 1024 -n 10 example.com

备注:

  • PsPing 工具是一个功能强大的网络诊断工具,适用于 ICMP Ping、TCP Ping、延迟测试和带宽测试等多种网络状态监控场景。
  • 带宽测试 与 延迟测试 可以更精确地评估网络性能,尤其是在高负载情况下。
  • 使用不同的选项(如 -nobanner 或 -v)可以方便地控制输出信息,适合不同使用需求。

PsPing 实现了 Ping 功能、TCP ping、UDP/TCP 延迟以及UDP/TCP带宽测量。

帮助用法:psping -? [i|t|l|b] -? i ICMP ping 的用法。 -? t TCP ping 的用法。 -? l 延迟测试的用法。 -? b 带宽测试的用法。 -nobanner 不显示启动横幅和版权信息。

PsPing 是一个由微软 Sysinternals 提供的网络诊断工具,用于测量网络延迟、带宽、和连接质量。它提供了比传统的 ping 命令更多的功能,包括:

  1. 延迟测量

    • 测量从一个主机到另一个主机的网络延迟(往返时间,RTT),与 ping 类似,但可以提供更多的控制和配置选项。
  2. 带宽测量

    • 测量网络连接的带宽,评估数据传输速度。这对于确定网络性能瓶颈非常有用。
  3. TCP 连接测试

    • 测试与目标主机的 TCP 连接,检测网络上的端口是否开放,以及连接是否可靠。
  4. 网络路径分析

    • 通过发送数据包到目标主机并测量响应时间,帮助分析网络路径和延迟问题。
  5. 时间间隔和持续时间

    • 允许用户配置测试的时间间隔和持续时间,以便进行详细的性能分析。
  6. 高级选项

    • 提供了许多命令行选项,如设置数据包大小、设置 TTL(生存时间)值等,以便进行更精细的测试。

常用命令示例

  • 基本延迟测试

    shellCopy Code
    psping www.example.com
  • 带宽测量

    shellCopy Code
    psping -b www.example.com
  • TCP 连接测试

    shellCopy Code
    psping -t www.example.com:80
  • 指定数据包大小和测试次数

    shellCopy Code
    psping -l 1500 -n 10 www.example.com

PsPing 是一个非常有用的工具,可以帮助网络管理员和 IT 专业人员诊断网络问题、评估网络性能、以及进行网络规划。

PsPing 的功能可以分为以下几类:

  1. 延迟测量

    • 测量网络往返时间(RTT),类似于 ping 命令,但提供更多配置选项。
  2. 带宽测量

    • 测试网络带宽,评估数据传输速度和连接性能。
  3. TCP 连接测试

    • 检测与目标主机的 TCP 连接情况,检查端口是否开放并测试连接的稳定性。
  4. 网络路径分析

    • 发送数据包并测量响应时间,用于分析网络路径的延迟和性能。
  5. 性能测试

    • 通过设置不同的数据包大小、测试间隔和持续时间,进行详细的网络性能分析。

PsPing 底层原理涉及多个网络测试机制,通过不同的方法来测量网络性能和诊断问题。以下是 PsPing 使用的主要底层原理:

  1. ICMP 协议(延迟测量)

    • PsPing 使用 ICMP(Internet Control Message Protocol)来测量网络延迟。类似于传统的 ping 命令,PsPing 发送 ICMP 回显请求(Echo Request)报文到目标主机,并等待 ICMP 回显应答(Echo Reply)。根据接收到应答的时间来计算延迟(往返时间 RTT)。
  2. TCP 连接(连接测试)

    • PsPing 可以使用 TCP 协议来测试端口的连通性。它向目标主机的特定端口发送 TCP SYN 数据包,类似于建立 TCP 连接的过程。如果目标主机响应 SYN-ACK 数据包,表明端口开放并可达。这个过程用于测试网络连接的可用性和稳定性。
  3. UDP 协议(延迟和带宽测量)

    • 对于带宽测量,PsPing 可以使用 UDP 协议发送数据包。UDP 是一种无连接协议,与 TCP 不同,它不进行连接的建立和拆除。PsPing 通过测量 UDP 数据包的传输时间以及丢包率来评估带宽和网络性能。
  4. 性能参数设置

    • PsPing 允许用户配置测试参数,如数据包大小、测试间隔、持续时间等。这些设置使得用户能够进行灵活的性能测试,以适应不同的网络环境和需求。
  5. 数据包分析和统计

    • PsPing 收集测试过程中生成的数据包的响应时间、丢包率、带宽等信息,并进行统计和分析。这些数据帮助用户了解网络性能和可能存在的问题。
  6. 网络路径追踪

    • 虽然 PsPing 的主要功能不包括网络路径追踪,但它通过测量不同节点之间的延迟和连接质量,也可以提供有关网络路径的有用信息。

通过这些底层原理,PsPing 提供了一个全面的网络性能测量和诊断工具,帮助用户识别和解决网络问题。

PsPing 的技术细节包括:

  1. 数据包构造与发送

    • ICMP:构造 ICMP Echo Request 包,计算时间戳,发送到目标,接收 Echo Reply 包来测量 RTT。
    • TCP:创建 TCP 连接的 SYN 包,检测端口状态。使用三次握手原理来测试连接。
    • UDP:发送 UDP 数据包到目标,测量响应时间和丢包率,评估带宽性能。
  2. 时间测量

    • 使用高精度的计时器(如 Windows 的 QueryPerformanceCounter)来记录数据包发送和接收的时间,以获得精确的延迟测量。
  3. 数据统计与分析

    • 收集和计算统计数据,如平均延迟、最小/最大延迟、丢包率、吞吐量等,以生成网络性能报告。
  4. 参数配置

    • 允许用户设置数据包大小、发送间隔、测试持续时间等,以满足不同的测试需求。
  5. 多线程处理

    • 通过多线程技术并发处理多个测量任务,提高测试效率和准确性。

这些细节共同支持 PsPing 的功能,提供全面的网络性能分析和诊断能力。

PsPing 的架构主要包括以下几个部分:

  1. 用户接口

    • 提供命令行界面,允许用户输入测试参数(如目标地址、协议、端口等)并启动测试。
  2. 测试模块

    • ICMP 测试:处理 ICMP Echo 请求和响应,计算延迟。
    • TCP 测试:创建和管理 TCP 连接,测试端口的开放性和响应时间。
    • UDP 测试:发送和接收 UDP 数据包,测量带宽和丢包情况。
  3. 计时和测量

    • 计时器:精确记录数据包发送和接收时间,用于延迟和带宽计算。
    • 统计分析:收集测试结果,计算延迟、丢包率和吞吐量等指标。
  4. 网络通信

    • 数据包处理:构造、发送和解析 ICMP、TCP 和 UDP 数据包。
    • 多线程:并发处理多个测试任务,提高效率和准确性。
  5. 结果输出

    • 将测试结果以格式化的报告形式输出,供用户分析和参考。

这些模块协同工作,确保 PsPing 能有效地执行网络性能测试和诊断任务。

PsPing 的框架可以从几个关键层面来理解:

1. 应用层

  • 用户界面(CLI)
    • 输入:接收用户输入的命令和参数,比如目标地址、端口、测试类型(ICMP、TCP、UDP)等。
    • 输出:显示测试结果,如延迟、丢包率、带宽等。

2. 业务逻辑层

  • 测试管理

    • 测试初始化:根据用户输入配置测试参数,如数据包大小、发送间隔、测试持续时间等。
    • 测试执行:调用相应的测试模块(ICMP、TCP、UDP)来进行实际的网络性能测量。
  • 数据采集与处理

    • 数据包发送:负责构造并发送测试数据包(ICMP 请求、TCP SYN、UDP 数据包)。
    • 响应接收:接收并处理响应数据包,计算性能指标(延迟、丢包、带宽)。

3. 网络层

  • 通信协议处理
    • ICMP:处理 ICMP Echo 请求和响应,用于测量延迟。
    • TCP:建立 TCP 连接,测试端口的开放性和响应时间。
    • UDP:发送和接收 UDP 数据包,评估带宽和丢包情况。

4. 计时和同步

  • 高精度计时

    • 使用高精度计时器(如 QueryPerformanceCounter)记录时间戳,以确保精确测量延迟和带宽。
  • 同步机制

    • 确保在多线程环境下,数据采集和处理的同步性,避免竞态条件和数据不一致。

5. 多线程支持

  • 并发处理
    • 利用多线程技术同时进行多个测试任务,提高测试效率和准确性。
    • 线程管理:创建、管理和终止测试线程,处理并发数据采集。

6. 数据分析与报告

  • 结果汇总

    • 收集测试结果,计算统计数据(如最小、最大、平均延迟,丢包率等)。
  • 报告生成

    • 格式化测试结果,生成可读性强的报告,供用户查看和分析。

7. 异常处理和日志记录

  • 错误处理

    • 处理测试过程中可能出现的错误,如目标不可达、连接超时等。
  • 日志记录

    • 记录测试过程中的关键信息和异常,以便后续分析和调试。

整体来看,PsPing 的框架通过这些层次和组件的协作,实现了网络性能的测量和诊断功能。

PsPing 是一个强大的网络工具,主要用于测量网络性能和诊断网络问题。以下是 PsPing 的一些具体应用场景:

1. 网络延迟测量

  • 用途:测试从本地主机到目标主机的网络延迟。
  • 应用实例:评估网络连接的响应时间,例如在检查互联网连接质量时,或在选择云服务提供商时测量延迟。

2. 带宽测试

  • 用途:测量网络连接的带宽,分析数据传输速率。
  • 应用实例:验证互联网服务提供商(ISP)提供的带宽是否符合合同规定,或测试不同网络路径的带宽以选择最佳路径。

3. 丢包率测试

  • 用途:检测在数据传输过程中丢失的数据包比例。
  • 应用实例:诊断网络故障时,判断是否存在丢包问题,这可能导致应用程序的性能下降或不稳定。

4. 端口连通性测试

  • 用途:检查特定端口的开放性和连通性。
  • 应用实例:在配置网络服务(如Web服务器、数据库服务器)时,确保相关端口是开放并可达的。

5. 网络路径分析

  • 用途:通过测量不同路径的延迟来分析网络路径性能。
  • 应用实例:识别网络路径中的瓶颈,优化网络路由,或在多地点部署时选择最佳位置。

6. 性能基准测试

  • 用途:对网络性能进行基准测试,以便将测试结果与未来的测试结果进行比较。
  • 应用实例:在网络升级前后进行测试,以评估改进效果,或在部署新网络设备后进行性能验证。

7. 故障排除

  • 用途:在网络出现问题时,使用 PsPing 进行诊断。
  • 应用实例:如果用户报告连接慢或不稳定,通过 PsPing 确定是否存在网络延迟或丢包问题,进而帮助定位和解决问题。

8. 性能监控

  • 用途:定期或按需监控网络性能。
  • 应用实例:设置定期的自动测试以监控网络性能的变化,或在业务高峰期进行专项测试以评估网络表现。

9. 应用层故障诊断

  • 用途:通过不同的协议测试应用层的连接性和性能。
  • 应用实例:测试Web应用程序的响应时间,或通过TCP测试确保应用服务器的端口正常工作。

通过这些应用场景,PsPing 不仅能帮助网络管理员和工程师诊断和解决网络问题,还能在优化网络性能和进行系统维护时提供重要的数据支持。

 


Paping 是一个网络故障排除工具,用于通过 TCP 数据包检查网络主机的可用性和响应性。与传统的 “ping” 不同,paping 测试特定端口以诊断连接性和服务问题。它测量数据包的往返时间,帮助识别在线主机和功能服务。此工具对网络管理员和需要诊断网络问题及测量延迟的用户非常有用。

 
 

posted @   suv789  阅读(759)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 刚刚!百度搜索“换脑”引爆AI圈,正式接入DeepSeek R1满血版
点击右上角即可分享
微信分享提示