可靠的不可变传输协议

这是一个关于可靠且正确下载大型不可变文件的极其简单的协议(RITP)的介绍,包含以下主要内容:

  • 问题陈述:下载大文件困难,网络复杂,现有协议各有问题,HTTP 虽灵活但错误处理机制复杂,Gemini scope 有限,BitTorrent 单节点性能差,9p 在高延迟链接上性能不佳。
  • 核心协议描述:RITP 是类似 9p 的有状态请求/响应协议,消息开头有固定字段(长度、类型、令牌),以字节为单位指定文件的长度或偏移,有多种消息类型,如请求的 OPEN(查找文件并关联批次)、READ(请求文件字节片),响应的 ERROR(错误码和描述)、OPENED(OPEN 请求成功)、DATA(READ 响应)等。
  • 错误处理:定义了多种错误码,如“other error”“not found”“unknown request type”“batch does not exist”等。
  • 额外解释:介绍了批次(一组操作同一文件的消息,由令牌标识)、未来兼容性(可定义新消息类型,不支持的服务器返回特定错误码)、设计 rationale(如避免错误导致大量响应、允许添加新消息类型等)。
  • 勘误(2024 - 11 - 08):ERROR 响应编码改为 0x80,明确令牌在连接内唯一。
  • 附录(2025 - 01 - 10):推荐客户端和服务器至少支持 sha2 - 256,下载文件的哈希及服务器地址等通过外带方式告知客户端,具体通信方式留待后续规范。
阅读 7
0 条评论