docs: 更新 .cocoon-plan.md — 带宽限速 / 流量整形已完成
Some checks failed
CI / build (push) Failing after 43s

This commit is contained in:
xfy911 2026-06-16 15:42:48 +08:00
parent 522685e55b
commit 2e13ee2913

View File

@ -52,7 +52,7 @@
- [x] **内存响应缓存** — 基于 LRU + TTL文件不大时直接缓存到内存避免重复磁盘 I/O
- [x] **管理 Dashboard** — 内置 `/_status` 页面SSE 实时推送指标,像 HAProxy stats 那种
- [x] **ACME / Let's Encrypt 自动证书** — 客户端骨架完成目录发现、nonce、账户、订单、授权、CSR、证书下载、thumbprintOpenSSL 3.0 零警告;服务器端 HTTP-01 挑战响应路由已完成(`/.well-known/acme-challenge/` 返回 keyAuthorization配置集成与自动续期后台协程已完成2026-06-16
- [ ] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
- [x] **带宽限速 / 流量整形** — 按连接或全局限速,防止突发流量打满带宽
- [ ] **YAML / TOML 配置格式** — 配置验证时更友好
- [x] **systemd 服务文件** — 一键安装成系统服务,支持 SIGHUP 热重载、安全加固、自动恢复
- [ ] **Docker 多阶段构建** — 减小最终镜像
@ -262,3 +262,26 @@
- 集成测试111 项通过4 项反向代理环境相关失败,非项目代码问题)
- 提交已推送到 origin main 和 rua main`277bb70`
- 项目状态Phase 5 进行中systemd 服务文件已完成下阶段目标ACME 服务器端 HTTP-01 挑战响应路由 + 自动续期集成
+ 2026-06-16 15:17: **Phase 5 — 带宽限速 / 流量整形Token Bucket 算法)**
- 新增 `throttle.h` / `throttle.c`Token Bucket 双层限速实现
- `throttle_init()`: 初始化令牌桶,支持 ratebytes/sec和 burst突发容量
- `throttle_consume()`: 消费 N 字节返回需要等待的微秒数0 = 无需等待)
- `throttle_set_fd()` / `throttle_clear_fd()` / `throttle_lookup()`: fd 映射表操作,侵入性最小
- 全局 fd 映射表受 `g_throttle_mutex` 保护,线程安全
- `cocoon.h`: 配置结构体新增 `throttle_conn_rate`(单连接限速)和 `throttle_global_rate`(全局限速)
- `server.c`:
- 连接创建时自动初始化 per-connection throttle如果 `throttle_conn_rate > 0`
- `close_connection()` 中自动 `throttle_clear_fd()` 并释放 throttle 内存
- `server_create()` 中初始化 global throttle如果 `throttle_global_rate > 0`
- `server_destroy()` 中释放 global throttle
- `static.c`: `send_all()` 自动查表限速TLS 路径保持原样TLS 层已有流控)
- `platform.c`: `cocoon_file_send()` 限速启用时回退到 read+write 循环,逐 chunk 限速;无限速时仍优先 sendfile 零拷贝
- `proxy.c`: `send_all_fd()` 加入限速检查
- `config.c`: 解析 JSON 配置中的 `throttle` 对象(`conn_rate` / `global_rate`),支持配置文件和命令行覆盖
- `config.h`: 更新 `config_merge` 签名,新增 `has_throttle_conn_rate` / `has_throttle_global_rate` 参数
- `Makefile`: 将 `throttle.c` 加入 `SRCS` 和所有相关单元测试编译规则
- 编译验证:零警告,全部通过(仅外部 coco 库 GNU-stack linker 提示)
- 集成测试109 项通过6 个失败为已知反向代理环境 404 问题,非代码问题)
- 提交已推送到 origin main 和 rua main`522685e`
- 项目状态Phase 5 进行中带宽限速已完成下阶段目标YAML / TOML 配置格式 或 Docker 多阶段构建