双协议支持
GoSpeedTest 同时支持 HTTP 和 TCP 两种协议,满足不同场景的测速需求。
协议对比
| 特性 | HTTP 协议 | TCP 协议 |
|---|---|---|
| 兼容性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 性能 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 时间模式 | ❌ | ✅ |
| 浏览器支持 | ✅ | ❌ |
| 推荐场景 | 通用测试 | 高带宽/稳定性测试 |
HTTP 协议
特点
- 基于 Gin 框架的 Web 服务器
- 浏览器兼容性好
- 支持所有测试类型
- 易于部署和使用
适用场景
- 日常网络测速
- 浏览器端测试
- 兼容性要求高的环境
- 快速部署和测试
使用方法
bash
# 启动 HTTP 服务器
./GoSpeedTest -port 8080
# 使用 HTTP 协议测试
./GoSpeedTest-CLI -server http://localhost:8080TCP 协议
特点
- 基于时间的测试支持
- 基于大小的测试支持
- 高性能优化(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 协议进行精确测试