Sock5协议详解
由于项目需求,最近需要了解一些代理的知识,因此看了一下sock5协议。主要还是RFC1928.也参考
了网上的一些翻译。
防火墙的使用,有效的隔离了机构内部网络和外部网络,这种类型的Internet架构变得越来越流行
了。这种防火墙系统大都充当着网络之间的应用层网关的角色,通常提供经过控制的Telnet、FTP和
SMTP访问。为了推动全球信息的交流,更多的新的应用层协议的推出,这就有必要提供一个总的架构使这
些协议能够更明显和更安全的穿过防火墙,也有必要在实际上为它们穿过防火墙提供一个更强的认证制。
这种需要源于客户机服务器联系在不同组织网络之间的实现,而这种联系需要得到控制并有安全的认
证。在这儿所描述的协议框架是为了让使用TCP和UDP的客户服务器应用程序更方便地使用网络防火墙所提
供的服务所设计的。这个协议从概念上来讲是介于应用层和传输层之间的“中介层”,因而不提供如传递
ICMP信息之类由网络层网关的所提供的服务。
基于TCP协议的客户
当一个基于TCP协议的客户端希望与一个只能通过防火墙可以到达的目标(这个由实现决定的)建立连接,
它必须先建立一个与socks服务器上socks端口的TCP连接。通常这个TCP端口是1080。当连接建立后,
客户端进入协议的“握手”过程:认证方式的选择,根据选中的方式进行认证,然后发送转发的请求。
sockds服务器检查这个请求,根据结果,或建立合适的连接,或拒绝。
除非特别声明,所有出现的数据格式图中的十进制均表示相应域的字节长度,如果某域需要给定一个字节的
值,用X'hh'