抓包分析
http 是通过tcp进行传输的, socket又是tcp的抽象,http直接通过socket就可以传输。
做代理的话,不用管http,直接socket转发就可以。http会自己根据多个tcp组装起一个完整的
数据。
抓包时,不小心抓到了https。https通过ssl传输。通过查找,比较同意这个说法。
在https与tcp之间,SSL在技术上位于应用层,但从开发者的角度看,它是一个提供TCP服务的运输层协议。
不管怎么说,最终都是通过tcp传输。
代码分析
一个轻巧的网络混淆代理-python
python 编写,大佬就是大佬,代码不是拿来用的,简直就是
用来欣赏的。基本都是异步的,采用asyncio包写了很多的异步执行的方法。在代码中,网络传输用的是socket直接把数据转发,从而达到代理的作用。
一个轻巧的网络混淆代理-go
go 编写, 想法的提出者,一篇博客详细介绍了如何编写一个Shadowsocks
总结
通过分析抓取的数据包与混淆代理代码,收获不少。之前一直把socket当作应用层,现在才发现socket是传输层的一个抽象,http可以直接通过socket进行传输。传输方法可以参考这一篇博客。
加深了对传输透明的理解。不用管其他层做的事情,把对应层做好,就没得问题。