关于所谓的“梯子”的实现逻辑
不知道从什么时候开始,”挂个梯子”,成了很多大陆网友常挂嘴边的词。对于我而言,不仅仅是常挂嘴边,也曾一度想要实现一个自己的专属“梯子”。但是经过自己的一番研究之后,果断放弃了,因为不具备实现的条件。欲知详情,且听我缓缓道来。
说到梯子,就不得不提一下GFW,即:大名鼎鼎的长城防火墙。类似进击的巨人中,那三层巨大的高墙,将墙内的人们与世界割裂。区别在于,前者是虚拟不可见的,而后者,则是正儿八经的看得见摸得着石头墙。GFW的实现原理,其实很简单,针对特定的站点,进行访问限制。可以简单理解为,大陆的所有的对外访问,都会经由一个统一的出口,如果访问的是受限制的站点,则会失败。
那么“梯子”是如何突破这种限制的呢?本质在于“映射”,专业词汇“代理”。当我们挂上梯子访问外站的时候,机器首先访问的并不是我们输入的地址,而是中间层的机器。类似于“存储转发”的概念。
有网络知识基础的人都晓得,当我们在浏览器的地址栏中输入网址,会通过tcp/ip协议族,跟目标主机建立通信链路,然后发送资源请求,只涉及双方:我的机器—>目标服务器,等同于现代的通话。那么“梯子”做的事情,相当于在双方之间加了一层。就是我的机器发出的请求,目标服务器并没有直接接收到,而是被中间层的服务器接收了,然后由中间层服务器将请求发送给目标服务器,获取到对应的资源之后,再返还给我的机器。
这,就是“梯子”的实现原理。“利用梯子”,代理我们的请求,即:代替我们向目标服务器发送资源请求。
那么此时回到文章开头,为什么我会果断放弃实现自己“梯子”的想法了呢?很显然,就是这个中间层服务器的搭建。是个大坑。
文毕。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
