输入网址按下回车会发生什么?(科学上网版)
Contents
今天又看到有人在社交媒体上,说起一个经典的问题:
在浏览器的地址栏输入网址,按下回车键之后会发生什么?
这里我不想讨论经典的八股文,我会在这个问题增加一个条件:
在 SOCKS5
代理的情况下,在浏览器的地址栏输入网址,按下回车键之后会,会发生什么?
OK!趣味性其实没有什么,知识多了一个小知识点。但是可以考察一下一个人:
平时是否科学上网进行搜索?
还在使用某度进行搜索的,在那种有蛊的环境下得到的信息本来就是二手的。
是可以看出一个人的技术品味的,是静做井底之蛙,还是追崇最新的,一手的,靠近时代前沿的技术。
这里重点讨论网络连接,数据传输部分,忽略缓存,断开连接部分。其实我今天只想讨论代理这部分,八股文请自行搜索 >_<
- 首先和
SOCKS5
代理服务器进行 TCP 连接,里面包括三次握手,之后是认证阶段(如果有的话);如果使用的是 UDP 的话,更简单,直接下一步; - 认证通过(如果开启各种认证的话)之后,由浏览器发出的请求转发到
SOCKS5
代理服务器,包括请求协议,版本号,目标服务器的域名等等一些建立连接需要的必要信息; SOCKS5
代理服务器会和目标服务器建立连接(其中有必不可少的DNS
),返回的响应,由SOCKS5
代理服务器会转发回来;- 之后的请求都会被发送给代理服务器,再由代理服务器将响应发回来。

再加点保险?

SOCKS5
的巧妙就在于,它工作在 OSI 的第五层,会话层。
SOCKS is a de facto standard for circuit-level gateways (level 5 gateways).
SOCKS5
还支持 UDP,也就是说可以实现 TCP-over-UDP
,也就是通过 UDP 来转发 TCP 的包,这样做的好处自然是很多的,不用维护连接,也没有重传,拥塞控制这些 TCP 的“顽疾”了。
Reference:
- SOCKS5: https://en.wikipedia.org/wiki/SOCKS#SOCKS5
- OSI https://en.wikipedia.org/wiki/OSI_model
- Gost V2 https://v2.gost.run/en/socks/
英文搜索 SOCKS5 proxy principles 竟然全是 VPN 广告,OMG…