tcp/quic lab patched

This commit is contained in:
2026-01-10 10:54:46 +08:00
parent 33c8e3f3da
commit b09a29b7e8
11 changed files with 618 additions and 8 deletions

View File

@@ -103,7 +103,38 @@ make
sudo tc qdisc del dev lo root
```
### 3.3 & 3.4 进阶测试
### 3.3 进阶测试:多路复用与多连接对比
- **多路复用:** 当前的 `quic_perf_client` 使用单个流 (Stream ID 4)。您可以修改代码并行启动多个流,以测试 QUIC 解决队头阻塞问题的能力
- **网络恢复:** 在长传输过程中,使用 `tc` 设置 100% 丢包 (`loss 100%`) 持续 30 秒,然后删除规则 (`del`),观察连接是否能恢复传输。
本实验任务要求对比 TCP 多连接与 QUIC 多流复用的性能
**场景 1: TCP 多连接并发**
同时建立 5 个 TCP 连接,每个连接传输 20MB 数据 (总计 100MB)。
1. 启动 TCP 多连接服务器:
```bash
./tcp_multi_server
```
2. 启动 TCP 多连接客户端:
```bash
./tcp_multi_client
```
3. 记录服务器输出的总时间与吞吐量。
**场景 2: QUIC 单连接多流复用**
建立 1 个 QUIC 连接,在其中同时开启 5 个流 (Stream),每个流传输 20MB 数据 (总计 100MB)。
1. 启动 QUIC 多流服务器:
```bash
./quic_multi_server
```
2. 启动 QUIC 多流客户端:
```bash
./quic_multi_client
```
3. 记录服务器输出的统计数据。
**分析重点:**
- 在正常网络下,两者的总耗时差异。
- 使用 `tc` 模拟丢包 (如 5%) 后对比两者性能下降的幅度。QUIC 的多流复用应能避免 TCP 的“队头阻塞”问题 (即一个包丢失不影响其他流的传输),从而在丢包环境下表现更优。
### 3.4 网络恢复测试