telnet 插件执行 TCP 层的连通性与时延测试。它解析目标域名、建立 TCP 连接,可选地进行 Keep-Alive 等待,然后发送自定义请求体并测量首包响应时间与后续数据接收时间。| 参数名 | 类型 | 是否必填 | 默认值 | 说明与影响 |
|---|---|---|---|---|
host | string | 是 | — | 目标主机名或 IP 地址(支持 IPv4 和 IPv6)。若填写域名,插件会先进行 DNS 解析,解析时间作为独立指标输出。 |
port | integer | 否 | 80 | 目标 TCP 端口。决定连接的目标服务端端口。 |
timeout | integer | 否 | 3000 | 套接字接收超时时间,单位 毫秒。影响 recv() 调用的最大等待时间。若网络较慢或响应延迟大,需适当增大。 |
ipVersion | string | 否 | auto(IPv4) | IP 协议版本。填写 ipv6 则强制使用 IPv6 进行 DNS 解析和连接;否则默认使用 IPv4。名字必须是 ipVersion |
| 参数名 | 类型 | 是否必填 | 默认值 | 说明与影响 |
|---|---|---|---|---|
keep-alive | integer | 否 | 0(禁用) | Keep-Alive 等待时长,单位 秒。若大于 0,连接成功后插件会先进入接收等待状态,持续接收服务端主动推送的数据,直到超时或连接关闭。此阶段不发送任何数据。可用于测试服务端心跳或被动推送场景。 |
body | string | 否 | — | 请求体内容行。支持多行重复传入(每行一个 body=...),多行内容会以换行符连接后一次性发送。常用于构造 HTTP 请求(如 GET / HTTP/1.1)。若未配置 body,连接成功后仅测量连接时延,不发送数据也不等待响应。 |
tryall | boolean | 否 | false | 多 IP 尝试开关。1 或 true 时,若域名解析出多个 IP,会依次尝试连接每个 IP,直到有一个成功;0 或 false 时只尝试第一个解析到的 IP。 |
| stage | 指标名 | 单位 | 说明 |
|---|---|---|---|
0 | 总时间 | ms | 整个任务的总耗时,为 stage 1~4 的累加值。 |
1 | DNS 解析时间 | ms | 将 host 域名解析为 IP 的耗时。若直接填写 IP,该值接近 0。 |
2 | TCP 连接时间 | ms | 从调用 connect() 到连接建立成功的耗时。反映到目标服务器的网络层直连质量。 |
3 | 首包时间 | ms | 发送完 body 后,收到第一个响应数据包的耗时。若未配置 body,此项通常不输出有效值。 |
4 | 剩余包时间 | ms | 收到首包之后到连接关闭(或 recv 返回 0/错误)的耗时。反映后续数据传输的时长。 |
| info 值 | 含义 | 触发条件 |
|---|---|---|
612029 | TCP 连接失败 | connect() 失败(目标不可达、超时、被拒绝等)。 |
612031 | 连接被重置 | WSAECONNREFUSED(连接被拒绝)或接收过程中被对端重置。 |
612280 | 客户端错误 | 创建套接字失败(INVALID_SOCKET)。 |
612007 | DNS 解析失败 | 域名无法解析为 IP。 |
host=www.example.com
port=443
timeout=5000host=update.networkbench.com
port=80
timeout=3000
body=GET / HTTP/1.1
body=Host: update.networkbench.com
body=Connection: close
body=host=push.example.com
port=8080
timeout=3000
keep-alive=10host=2001:4860:4860::8888
port=80
ipVersion=ipv6
timeout=5000host=cdn.example.com
port=80
tryall=1
timeout=3000