作为连接类型中最重要的一种连接,OR连接对OP与OR之间,OR与OR之间的通信负全责。也就是说,OR连接的存在,是解决底层两机之间通信的必要条件。所以,有必要对OR连接的源码文件进行深入分析,并对OR连接先做简要介绍。后期,在介绍Tor系统的全部连接之时,会更加详细地介绍各种连接及他们的作用。
OR连接,即Onion Router连接,是用以连接Tor系统内两结点的连接。该连接的主要功能包括:管理结点间TLS连接;管理活动链接;管理CELL的发送和接收等。OR连接处于Tor系统的最底层,其下层即为TLS层。所以,OR连接负责的主要部分就是可靠的CELL传递以及与其上层链接层的交互。
DIR连接…… 应用层
------------------------
AP连接,EXIT连接……
------------------
Circuit链路…… Tor协议层
------------------
OR连接……
------------------------
TLS连接 传输层
同时,在此处值得一提的是,Tor系统的应用连接AP,链路Circuit,OR连接三者之间的复用情况:(多AP连接复用Circuit,多Circuit复用OR连接)
AP Stream 1 -->
AP Stream 2 --> Circuit 1 ->
... ... 3 -->
Circuit 2 -> OR Connection 1
Circuit 3 ->
0. 全局变量
1)orconn_identity_map
/** Map from identity digest of connected OR or desired OR to a connection_t
* with that identity digest. If ther