Tor由于经过了长年的开发,版本到现在已经有很多。笔者选用的是tor-0.2.3.25版本。关于版本变迁和更新说明,请大家自行查看:
https://gitweb.torproject.org/tor.git (需翻墙)
1. 源码目录关系图


Tor的源码目录中包括doc, contrib, src等一些列很莫名的文件。其实,在这些所有的文件中,除了src文件夹,其他都可以在初期暂时不去理会。所以,这里我们就谈src文件夹下的目录结构,也是Tor源码核心的目录结构。
上面两图已经基本给出了各个子目录之间的关系和引用次数。总的来说,src目录下包括下列这样的目录:
1)win32:用于Windows的目录,内部只含有一个orconfig.h文件。主要用于Tor源码的跨平台编译。
2)common:Tor源码中基本通用函数的封装目录。包括:OpenSSL,Libevent的封装,TLS的封装,链表和哈希表的实现等。
3)tools:Tor使用工具目录。包括:密钥验证,证书生成,域名解析和防火墙辅助的实现。
4)or:Tor核心程序逻辑目录。(Tor系统所有核心协议的实现目录)包括:客户端身份核心代码,路由身份核心代码,目录服务器身份核心代码等。
5)test:Tor源码各功能模块的测试代码目录。
6)config:配置文件模板目录
2. or目录下的各文件
or目录是Tor源代码的核心,有必要简要介绍下该目录下的文件的主要作用:(细节部分后期会逐个文件分别进行分析)
以下部分同时用于OP与OR:(Onion Proxy, Onion Router)
1)Buffers:缓冲区相关结构体及处理函数;
a generic interface buffer. Buffers are fairly opaque string holders that can read to or flush from: memory, file descriptors, or TLS connections.
2)Circuitbuild:链路建立相关函数;
The actual de

本文主要分析了Tor源码的目录结构,重点关注了src目录下的子目录,如win32, common, tools, or, test, config等,并详细介绍了or目录中的关键文件,涉及缓冲区、链路建立、链路控制、命令处理、配置选项、连接管理等方面的核心功能。"
116203103,10958901,MP3光标位置控制算法解析,"['算法', '编程', '控制逻辑', '音乐播放']
最低0.47元/天 解锁文章
6338

被折叠的 条评论
为什么被折叠?



