32个版本 (21个重大更新)

0.21.0 2024年8月1日
0.20.0 2024年6月27日
0.19.0 2024年6月5日
0.16.1 2024年3月4日
0.0.0 2021年6月24日

1723网络编程

Download history 595/week @ 2024-04-28 412/week @ 2024-05-05 290/week @ 2024-05-12 586/week @ 2024-05-19 798/week @ 2024-05-26 493/week @ 2024-06-02 654/week @ 2024-06-09 1433/week @ 2024-06-16 1223/week @ 2024-06-23 1760/week @ 2024-06-30 253/week @ 2024-07-07 549/week @ 2024-07-14 723/week @ 2024-07-21 1335/week @ 2024-07-28 1448/week @ 2024-08-04 1044/week @ 2024-08-11

每月4,663次下载
用于 35 个crates(直接使用8个)

MIT/Apache

740KB
13K SLoC

tor-cell

为构成Tor协议的单元类型进行编码和解码

概述

Tor的主要网络协议围绕一组称为“单元”的消息。它们存在于协议的两个主要层:通道单元层和中继单元层。

通道单元通过TLS连接在中继之间或客户端和中继之间发送。每个单元都编码了一个单独的通道消息。通道消息可以影响通道本身(例如,用于协商和验证通道的消息),但更频繁地用于特定多跳电路。

引用电路的通道消息使用一个称为电路ID的通道本地标识符。这些消息包括CREATE2(用于扩展电路到第一个跳)和DESTROY(用于拆除电路)。但最常用的通道消息是RELAY,用于将消息发送到电路上的特定跳。

每个RELAY单元都根据(在本crate中未实现的协议)进行加密和解密,直到到达目标。到达后,它被解码为单个中继消息。其中一些中继消息用于操作电路(例如,通过将电路扩展到新跳);其他用于操作匿名数据流(通过创建、结束或发送数据);还有一些用于特定协议的目的(如与洋葱服务协商。)

关于Tor中使用的多数单元格类型的列表,请参阅tor-spec.txt。其他单元格类型在rend-spec-v3.txt(用于洋葱服务)padding-spec.txt(用于填充协商)中定义。

本软件包是Arti项目的一部分,该项目旨在用Rust实现Tor

许可证:MIT 或 Apache-2.0

依赖关系

约19-31MB
约469K SLoC