Skip to content

双协议支持

GoSpeedTest 同时支持 HTTP 和 TCP 两种协议,满足不同场景的测速需求。

协议对比

特性HTTP 协议TCP 协议
兼容性⭐⭐⭐⭐⭐⭐⭐⭐⭐
性能⭐⭐⭐⭐⭐⭐⭐⭐⭐
时间模式
浏览器支持
推荐场景通用测试高带宽/稳定性测试

HTTP 协议

特点

  • 基于 Gin 框架的 Web 服务器
  • 浏览器兼容性好
  • 支持所有测试类型
  • 易于部署和使用

适用场景

  • 日常网络测速
  • 浏览器端测试
  • 兼容性要求高的环境
  • 快速部署和测试

使用方法

bash
# 启动 HTTP 服务器
./GoSpeedTest -port 8080

# 使用 HTTP 协议测试
./GoSpeedTest-CLI -server http://localhost:8080

TCP 协议

特点

  • 基于时间的测试支持
  • 基于大小的测试支持
  • 高性能优化(4MB 数据块,批量发送)
  • 稳定性测试(支持 60 秒+ 长时间测试)

优势

  • 性能更高,适合高带宽网络
  • 支持时间模式,解决高速网络测试过快问题
  • 更好的错误处理和连接管理
  • 更低的协议开销

使用方法

bash
# TCP 下载测试
./GoSpeedTest-CLI -server localhost:12306 -tcp -download

# TCP 上传测试(基于大小)
./GoSpeedTest-CLI -server localhost:12306 -tcp -upload

# TCP 上传测试(基于时间,30 秒)
./GoSpeedTest-CLI -server localhost:12306 -tcp -upload -upload-duration 30

基于时间的 TCP 测试

问题背景

在高速网络环境下,传统的基于大小的测试存在以下问题:

  • 512MB 上传在高速网络下 < 1 秒完成
  • 无法反映网络稳定性
  • 测试结果波动较大

解决方案

v1.1.0 引入了基于时间的 TCP 测试:

新增参数:

  • -upload-duration:设置上传测试时长(秒)
  • 默认上传大小提升至 2GB

性能提升:

  • 之前:512MB 上传在高速网络下 < 1 秒完成,无法反映稳定性
  • 现在:默认 2GB 上传,或使用时间模式进行 30-60 秒稳定性测试

如何选择协议

选择 HTTP 协议,如果:

  • 您需要浏览器端测试
  • 兼容性是首要考虑
  • 部署简单性很重要
  • 测试一般带宽网络

选择 TCP 协议,如果:

  • 您有高带宽网络(10Gbps+)
  • 需要测试网络稳定性
  • 希望获得更准确的结果
  • 可以使用 CLI 工具

同时使用两种协议

GoSpeedTest 服务器可以同时提供 HTTP 和 TCP 服务:

bash
# 启动服务器,HTTP 在 8080,TCP 在 12306
./GoSpeedTest -port 8080 -tcp-port 12306

这样您可以:

  • 用浏览器访问 HTTP 服务进行快速测试
  • 用 CLI 工具使用 TCP 协议进行精确测试

基于 LGPL-3.0 许可证发布