1. 客户端的总体框图
由于画框图的过程稍微繁琐,所以框图给出的稍慢了些,请大家见谅。同时,框图画的比较急促,一定会有错误的地方,请大家指正。
框图中给出了客户端Tor系统所使用到的最重要的结构体以及其成员变量,有兴趣的朋友可以自行比对,这里就不便多说了。
2. 服务器端的总体框图(2合1)
服务器端的框图将两种身份的服务器所使用到的主要结构体均画了出来。也就是说该框图中展现服务器的两种功能:Relay OR,EXIT OR.
3. 一些额外的说明
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
3.9k累计阅读
4k平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄17年
由于画框图的过程稍微繁琐,所以框图给出的稍慢了些,请大家见谅。同时,框图画的比较急促,一定会有错误的地方,请大家指正。
框图中给出了客户端Tor系统所使用到的最重要的结构体以及其成员变量,有兴趣的朋友可以自行比对,这里就不便多说了。
服务器端的框图将两种身份的服务器所使用到的主要结构体均画了出来。也就是说该框图中展现服务器的两种功能:Relay OR,EXIT OR.
Source Code Analysis
当前文章被以下社区和专栏收录:
Tor源码分析十 -- 连接和链路
源码分析到这个部分,为了让大家明白源码中的编码逻辑,不得不开始从头梳理程序内部的复杂连接和链接组织形式。否则大家后期会更加一头雾水。笔者开始分析源码之时,没有这些宏观的概念,只能死嚼代码,硬猜硬想,再加以检查代码进行验证,才得以明白程序的主要框架逻辑。如果再以猜测验证的模式向大家讲述源码,必定会越来越混乱。所以,在本节之中,我们会将系统中所有的连接类型,链路类型和他们之间的关系和代码之中的关联方式
spring源码学习-画流程图学源码
学习方式 工作一直很忙,只能一点点学源码,但是这样很容易看一半就忘记前面的。因此我根据自己的需要,通过ProcessOn记录源码,通过画图完成源码的学习。 花费了近一个月,画了一些流程和自己的见解。持续更新中。。。 推荐大家使用,下面截出一部分图供了解: 因为图片都比较大,无法截出来发出,因此在下面列出了对应的链接: ioc-主流程 https://www.processon.com/view/link/5ed7c1ca0791297145ce2949 ioc全流程 https://www.process
Tor源码分析七 -- 握手协议
本节主要讲述Tor系统中所用到的握手协议。握手协议分三层:TCP握手;TLS握手;Tor握手。其中Tor握手又分为三个层次:OR握手;链路建立;流建立。 TCP的三次握手我想应该学计算机方向的朋友无人不知了,所以此处就略去。而TLS是SSL的升级版本,其握手过程与SSLv3几乎一致。同时由于TLS根据客户端的不同握手选择,会有些许握手过程中的差别,我们希望大家能够找到TLS相关的书籍翻阅。此
知识百科:TOR/EOR/MOR交换机区别
表1:TOR和EOR/MOR对比。
Tor源码分析二 -- 目录结构
Tor由于经过了长年的开发,版本到现在已经有很多。笔者选用的是tor-0.2.3.25版本。关于版本变迁和更新说明,请大家自行查看: https://gitweb.torproject.org/tor.git (需翻墙) 1. 源码目录关系图 Tor的源码目录中包括doc, contrib, src等一些列很莫名的文件。其实,在这些所有的文件中,除了src文件夹,其他都可
Tor源码分析三 -- 客户端执行流程(初始化)
Tor系统中,主机的身份包括有这几种:Client,Bridge Server,Relay Server,Directory Server。 当然,有的时候一台主机是可以身兼数个身份,提供不同的服务或获取服务。 我们从最简单的客户端配置的Tor来进行分析,事先了解整个Tor系统的执行规程,之后再具体分析其他身份时候的不同操作,从而加快了解系统的速度。此处要说明的是,由于笔者对Windo
数据中心网络架构之:ToR Switch- Top of Rack Switch
数据中心网络架构
Tor源码分析九 -- 客户端执行流程(网络信息的下载)
源码分析到这里,大家应该已经大致了解到Tor系统的前期启动没有做任何的下载操作。前期启动的最关键环节,就是正常开启Libevent的调度机制,从而有条不紊地进行系统内所有子模块的维护等。我们需要再次强调的是,系统的主进程内,是没有做任何直接的获取网络状态,获取路由描述符,获取额外路由信息的操作。系统将这些操作视为需要实时维护的工作,因为所有这些网络信息都有其时限。所以,对这些网络信息的获取,全部置
Tor源码分析一 -- 使用工具集
Tor系统是用于匿名通信的一个系统,源代码的维护到今天已经快10年。笔者从今年3月份开始陆陆续续研究Tor系统的源码,由于源码量大,也有很多需要总结的地方,所以特地在这里开辟个Tor源码分析的系列文章,供自己总结,也供大家共同探讨。 1. 源码查看工具 -- SourceInsight 本来Tor源码在Linux下分析和调试都可以比在Windows下更专业些,但是因为笔者本身大部分
Tor源码分析四 -- 客户端执行流程(初入主循环)
在上个小节中,已经基本分析了Tor系统的初始化过程。该过程中,最重要的部分,就是对默认配置文件、输入配置文件以及命令行参数进行综合整理,定出最后的配置方案。而后通过配置方案,启动系统的基础部分。这里值得说明的是,Tor系统的所有配置选项,均可以在Tor Manual中找到。并且,根据Tor系统配置成不同的身份,使用的配置选项也会有细微差别。默认的配置固化在代码内部,有兴趣的朋友可以就初始化部分往下
Tor版本号解读
Tor是开源的匿名通信系统,工作需要,近期开始学习Tor相关知识。包括Tor的工作方式,特性,以及其他方面。 Tor源代码维护已久,版本更迭较快,版本号格式如下。 从0.1.0.1-rc开始,版本的格式如下: MAJOR.MINOR.MICRO[.PATCHLEVEL][-STATUS_TAG][ (EXTRA_INFO)]* 括号里的东西是可选的。和前面一样,MAJOR、MINOR、MICRO和PATCHLEVEL都是数字,缺位号等于0。所有的版本都应该完全通过这四个数字来区分。 ST.
Tor源码分析完整整理,书籍编撰
https://drive.google.com/folderview?id=0B3IWwDFNML7gfktlYjUwYjNHR25xbkVrZldyMk4zcHFWY3VpLTBDc3U3X0o5NHJYb0N1bWs&usp=sharing 上述链接是编撰到一半的Tor源码分析的文档。 有兴趣一起编撰的朋友请加前一篇Blog的QQ群聊。
Tor源码分析八 -- 客户端执行流程(second_elapsed_callback函数)
在之前的客户端源码分析中,我们讲述了整个客户端的事件集和相关调度规则。每一类事件的激活都有相应的条件,要么是socket可读写,要么是收到信号,要么是定时事件到达,还有手动的事件激活。总而言之,系统中添加的所有事件经过Libevent的调度,使得整个系统有条不紊的运行起来。同时,每个事件均有其对应的事件处理函数,在系统运行起来之后,一旦事件被激活,就会调用相应的回调函数进行处理。 本文我们着
Tor源码分析五 -- 客户端执行流程(libevent调度)
上一源码分析的小节中,已经将系统的主要流程启动过程介绍完毕。实际上,系统在如此启动之后,就可以通过正确的流程将Tor系统完整的启动起来,为用户提供应用程序代理服务,以达到匿名通信的目标。本节的目标,不是为了详细介绍系统初始化后的正确启动流程,而是介绍系统是如何通过Libevent的调度实现成功启动的。也就是说,本节的重点在于说明Libevent调度机制在Tor系统之中的应用。 上节当中也简要
Tor源码文件分析 -- Connection
Tor协议的层次结果经过简要分析可以大致概括为如下框图: DIR连接…… 应用层 ------------------------ AP连接,EXIT连接…… ------------------ Cir
Tor源码分析十一 -- 客户端执行流程(网络信息的下载续)
通过上一节中我们对连接和链路的重新描述,我们可以继续进行源码的分析了。在本节中,我们会开始着重讲述链路的建立,以及链路所基于的OR连接的建立,同时还有部分Libevent调度的再度分析。大家会明白,进行到此处之时,我们已经开始接触Tor系统最底层,最深藏着的连接机制以及调度机制。这个部分,是整个系统的精髓。后期几乎所有的应用请求连接处理等,都是重复地使用该部分的代码。 1. 链路建立以及
1596
4412

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



