Advertisement

Tor源码分析三--客户端执行流程和初始化

阅读量:

在Tor系统中,主机所具备的身份类型主要包括以下几种:Client、Bridge Server、Relay Server以及Directory Server。

值得注意的是,在某些情况下,单台主机可以同时承担多个身份角色,从而实现多种服务的提供或服务的获取。

为了便于理解,我们将从最为基础的客户端配置入手,对Tor系统进行初步分析。通过提前掌握整个系统的运行流程,再进一步探讨其他身份在操作上的差异性,有助于加快对系统整体结构的理解。需要特别指出的是,由于作者对Windows平台下的编程技术掌握有限,因此在此次分析中将暂时移除所有与跨平台特性相关的Windows代码部分。

1. Tor系统的入口函数

在多数源代码中,主函数通常被定义为main。为了便于开展单元测试,Tor系统对这一结构进行了调整,即将main函数设置为调用tor_main函数,而后者作为整个Tor系统的核心执行函数承担主要职责。上述设计逻辑在Tor_main.c文件中有所体现,该文件仅以少量代码行简明扼要地描述了main与tor_main之间的调用关系。

2. Tor系统初始化

系统初始化过程包含四个关键函数:

1)update_approx_time(time(NULL))

用于记录当前时间的估计值,并将其存储在 cached_approx_time 中。该函数通常每秒钟会被

全部评论 (0)

还没有任何评论哟~