{"schema":"portbug/v1","id":"PB-20260913-B850E9","created_at":"2026-09-13T15:02:10.468897195Z","source":"gui","title":"桌面端检测 · sh-01","client":{"version":"v0.12.20260913144607 (gui)","os":"windows","arch":"amd64"},"node":{"id":"sh-01","host":"47.116.36.78"},"egress":{"ip":"183.192.9.238"},"ping":{"sent":4,"recv":4,"loss_pct":0,"min_ms":8,"avg_ms":8.75,"max_ms":9,"mdev_ms":0.43},"tests":[{"port":5201,"proto":"tcp","dir":"down","streams":2,"dur_ms":5000,"bytes":12582912,"mbps":19.9977646783177,"samples":[{"t_ms":0,"mbps":31.46},{"t_ms":100,"mbps":20.97},{"t_ms":200,"mbps":20.97},{"t_ms":300,"mbps":20.97},{"t_ms":400,"mbps":14.9},{"t_ms":500,"mbps":16.56},{"t_ms":600,"mbps":20.97},{"t_ms":700,"mbps":20.97},{"t_ms":800,"mbps":20.97},{"t_ms":900,"mbps":20.97},{"t_ms":1000,"mbps":20.97},{"t_ms":1100,"mbps":20.97},{"t_ms":1200,"mbps":20.97},{"t_ms":1300,"mbps":20.97},{"t_ms":1400,"mbps":20.97},{"t_ms":1500,"mbps":20.97},{"t_ms":1600,"mbps":20.97},{"t_ms":1700,"mbps":20.97},{"t_ms":1800,"mbps":20.97},{"t_ms":1900,"mbps":20.97},{"t_ms":2000,"mbps":20.13},{"t_ms":2100,"mbps":11.33},{"t_ms":2200,"mbps":20.97},{"t_ms":2300,"mbps":20.97},{"t_ms":2400,"mbps":20.97},{"t_ms":2500,"mbps":20.97},{"t_ms":2600,"mbps":10.49},{"t_ms":2700,"mbps":20.97},{"t_ms":2800,"mbps":20.97},{"t_ms":2900,"mbps":20.97},{"t_ms":3000,"mbps":20.97},{"t_ms":3100,"mbps":20.97},{"t_ms":3200,"mbps":20.97},{"t_ms":3300,"mbps":20.97},{"t_ms":3400,"mbps":20.97},{"t_ms":3500,"mbps":20.97},{"t_ms":3600,"mbps":20.97},{"t_ms":3700,"mbps":20.97},{"t_ms":3800,"mbps":20.97},{"t_ms":3900,"mbps":20.97},{"t_ms":4000,"mbps":20.97},{"t_ms":4100,"mbps":20.97},{"t_ms":4200,"mbps":11.18},{"t_ms":4300,"mbps":20.27},{"t_ms":4400,"mbps":20.97},{"t_ms":4500,"mbps":20.97},{"t_ms":4600,"mbps":20.97},{"t_ms":4700,"mbps":15.83},{"t_ms":4800,"mbps":15.63},{"t_ms":4900,"mbps":20.97}],"observed_port":5201,"node_id":"sh-01","reach":"ok"},{"port":5201,"proto":"tcp","dir":"up","streams":2,"dur_ms":5000,"bytes":1179648,"mbps":1.1246792992491954,"samples":[{"t_ms":0,"mbps":20.97},{"t_ms":100,"mbps":0},{"t_ms":200,"mbps":0},{"t_ms":300,"mbps":0},{"t_ms":400,"mbps":0},{"t_ms":500,"mbps":0},{"t_ms":600,"mbps":0},{"t_ms":700,"mbps":31.46},{"t_ms":800,"mbps":0},{"t_ms":900,"mbps":0},{"t_ms":1000,"mbps":0},{"t_ms":1100,"mbps":0},{"t_ms":1200,"mbps":0},{"t_ms":1300,"mbps":0},{"t_ms":1400,"mbps":0},{"t_ms":1500,"mbps":0},{"t_ms":1600,"mbps":0},{"t_ms":1700,"mbps":0},{"t_ms":1800,"mbps":0},{"t_ms":1900,"mbps":0},{"t_ms":2000,"mbps":0},{"t_ms":2100,"mbps":0},{"t_ms":2200,"mbps":0},{"t_ms":2300,"mbps":0},{"t_ms":2400,"mbps":0},{"t_ms":2500,"mbps":0},{"t_ms":2600,"mbps":0},{"t_ms":2700,"mbps":0},{"t_ms":2800,"mbps":10.49},{"t_ms":2900,"mbps":10.49},{"t_ms":3000,"mbps":0},{"t_ms":3100,"mbps":0},{"t_ms":3200,"mbps":0},{"t_ms":3300,"mbps":0},{"t_ms":3400,"mbps":0},{"t_ms":3500,"mbps":0},{"t_ms":3600,"mbps":0},{"t_ms":3700,"mbps":0},{"t_ms":3800,"mbps":0},{"t_ms":3900,"mbps":0},{"t_ms":4000,"mbps":0},{"t_ms":4100,"mbps":0},{"t_ms":4200,"mbps":0},{"t_ms":4300,"mbps":0},{"t_ms":4400,"mbps":0},{"t_ms":4500,"mbps":0},{"t_ms":4600,"mbps":0},{"t_ms":4700,"mbps":0},{"t_ms":4800,"mbps":0},{"t_ms":4900,"mbps":0},{"t_ms":5000,"mbps":10.49},{"t_ms":5100,"mbps":0}],"observed_port":5201,"node_id":"sh-01","reach":"ok","tcp":{"rtt_ms":10.55,"min_rtt_ms":6.874,"retrans":561,"cwnd_bytes":6737,"mss":1452,"bytes_out":2067549,"streams":2}},{"port":5201,"proto":"udp","dir":"down","streams":1,"dur_ms":5000,"bytes":6250800,"mbps":10.001695670472065,"samples":[{"t_ms":0,"mbps":10.08},{"t_ms":100,"mbps":10.08},{"t_ms":200,"mbps":9.89},{"t_ms":300,"mbps":10.08},{"t_ms":400,"mbps":9.98},{"t_ms":500,"mbps":9.98},{"t_ms":600,"mbps":9.98},{"t_ms":700,"mbps":10.08},{"t_ms":800,"mbps":9.89},{"t_ms":900,"mbps":10.08},{"t_ms":1000,"mbps":9.98},{"t_ms":1100,"mbps":9.89},{"t_ms":1200,"mbps":10.18},{"t_ms":1300,"mbps":9.79},{"t_ms":1400,"mbps":10.18},{"t_ms":1500,"mbps":9.98},{"t_ms":1600,"mbps":9.79},{"t_ms":1700,"mbps":10.18},{"t_ms":1800,"mbps":9.98},{"t_ms":1900,"mbps":9.89},{"t_ms":2000,"mbps":10.18},{"t_ms":2100,"mbps":9.98},{"t_ms":2200,"mbps":9.98},{"t_ms":2300,"mbps":9.98},{"t_ms":2400,"mbps":10.08},{"t_ms":2500,"mbps":9.7},{"t_ms":2600,"mbps":10.18},{"t_ms":2700,"mbps":9.89},{"t_ms":2800,"mbps":10.18},{"t_ms":2900,"mbps":9.98},{"t_ms":3000,"mbps":9.98},{"t_ms":3100,"mbps":10.08},{"t_ms":3200,"mbps":9.98},{"t_ms":3300,"mbps":9.89},{"t_ms":3400,"mbps":9.98},{"t_ms":3500,"mbps":9.79},{"t_ms":3600,"mbps":10.37},{"t_ms":3700,"mbps":9.89},{"t_ms":3800,"mbps":10.08},{"t_ms":3900,"mbps":9.98},{"t_ms":4000,"mbps":9.89},{"t_ms":4100,"mbps":10.18},{"t_ms":4200,"mbps":9.98},{"t_ms":4300,"mbps":9.98},{"t_ms":4400,"mbps":9.98},{"t_ms":4500,"mbps":9.89},{"t_ms":4600,"mbps":10.08},{"t_ms":4700,"mbps":9.98},{"t_ms":4800,"mbps":9.89}],"observed_port":0,"node_id":"sh-01","loss_pct":0.019193857965451058,"jitter_ms":0.733265756294811,"reach":"ok"},{"port":5201,"proto":"udp","dir":"up","streams":1,"dur_ms":5000,"bytes":192596400,"mbps":308.11525725765176,"samples":[{"t_ms":0,"mbps":272.16},{"t_ms":100,"mbps":310.66},{"t_ms":200,"mbps":312.48},{"t_ms":300,"mbps":304.61},{"t_ms":400,"mbps":308.74},{"t_ms":500,"mbps":296.74},{"t_ms":600,"mbps":290.98},{"t_ms":700,"mbps":300.96},{"t_ms":800,"mbps":311.14},{"t_ms":900,"mbps":327.26},{"t_ms":1000,"mbps":315.46},{"t_ms":1100,"mbps":311.9},{"t_ms":1200,"mbps":260.93},{"t_ms":1300,"mbps":314.3},{"t_ms":1400,"mbps":309.12},{"t_ms":1500,"mbps":296.64},{"t_ms":1600,"mbps":320.83},{"t_ms":1700,"mbps":313.25},{"t_ms":1800,"mbps":312.1},{"t_ms":1900,"mbps":295.3},{"t_ms":2000,"mbps":310.18},{"t_ms":2100,"mbps":310.75},{"t_ms":2200,"mbps":314.11},{"t_ms":2300,"mbps":321.5},{"t_ms":2400,"mbps":301.73},{"t_ms":2500,"mbps":315.36},{"t_ms":2600,"mbps":316.32},{"t_ms":2700,"mbps":310.37},{"t_ms":2800,"mbps":325.73},{"t_ms":2900,"mbps":328.42},{"t_ms":3000,"mbps":309.12},{"t_ms":3100,"mbps":306.82},{"t_ms":3200,"mbps":304.8},{"t_ms":3300,"mbps":294.14},{"t_ms":3400,"mbps":301.73},{"t_ms":3500,"mbps":305.86},{"t_ms":3600,"mbps":316.32},{"t_ms":3700,"mbps":292.61},{"t_ms":3800,"mbps":319.01},{"t_ms":3900,"mbps":312.67},{"t_ms":4000,"mbps":295.39},{"t_ms":4100,"mbps":312.19},{"t_ms":4200,"mbps":301.92},{"t_ms":4300,"mbps":313.92},{"t_ms":4400,"mbps":311.23},{"t_ms":4500,"mbps":321.98},{"t_ms":4600,"mbps":320.54},{"t_ms":4700,"mbps":303.36},{"t_ms":4800,"mbps":304.32},{"t_ms":4900,"mbps":319.68}],"observed_port":0,"node_id":"sh-01","reach":"ok","error":"节点未回传上行汇总，数值为客户端发送量（可能高于实际到达量）"}],"verdict":{"kind":"inconclusive","title":"4 个端口中，0 有问题：只测了一个端口，不下限速判定","detail":"单独一个端口的速度说明不了它是被限速，还是线路本来就这么慢。同一次多填一个端口，两个端口互相一比就能下判定。","confidence":"low","evidence":["TCP/5201 下行：只测了一个端口，不下限速判定","TCP/5201 上行：只测了一个端口，不下限速判定","UDP/5201 下行：只测了一个端口，不下限速判定","UDP/5201 上行：只测了一个端口，不下限速判定","丢包还是限速 → 是丢包：上行重传约 39.4%，窗口反复被打回 —— 该查线路质量，加带宽没用"],"control_ports":null},"method":{"timing":"按时长计时，非按字节；时长在握手中双端协商","duration_ms":5000,"streams":2,"bucket_ms":100,"rate_limit":"客户端按总量 20 Mbps 分摊到 2 条流；节点侧另有上限","control_ports":"不另测参照端口：同一次测到的各端口互相比较","clock":"客户端单调时钟","notes":"桌面端与命令行共用同一套测量引擎"},"public":true}
