Tor源码分析九--执行流程(下载网络信息)
发布时间
阅读量:
阅读量
源码分析至此,我们已经大致了解到了Tor系统的前期启动并未执行任何下载操作.其核心步骤在于正确启动了Libevent调度机制,从而实现了系统内部各个组件的有效维护工作.特别需要注意的是,主进程并未进行直接的数据采集活动,包括但不限于获取当前网络状态、路由描述符以及额外路由信息.这是因为所有的网络数据均为时效性的,因此需要通过特定机制来进行动态更新.具体而言,我们将对这些网络数据的所有获取操作都安排在秒回调函数之后处理,以确保相关数据能够及时更新并有效利用.
本文将重点阐述秒回调核心逻辑的关键路径,并解析Tor机制如何收集网络数据进而启动通信链路最终实现系统的功能完整性
1. update_networkstatus_downloads
在前面介绍的秒回调函数中扮演核心维护角色的是事件调度函数。在事件调度函数内部的主要内容主要基于时间属性而被安排在未来较短时间内执行。具体的时间间隔设置可参考上一章节中的源码注释。经过对该功能模块的基本分析后, 由此可知, 当客户端系统首次启动时, 最关注调用的一组关键代码块如下所示:
static void
run_scheduled_events(time_t now)
{
......
/* 2b. Once per minute, regenerate and
全部评论 (0)
还没有任何评论哟~
