儿童白癜风好治吗 https://m-mip.39.net/pf/mipso_4549560.html1.前言
本位将由浅入深带大家详细了解socks5协议。文章首先会对socks协议进行简单介绍,接着会介绍socks5协议的使用场景,然后介绍它的工作工程。
2.协议介绍
2.1什么是socks协议
啥是socks协议呢?这里贴一段维基百科对它的定义
SOCKSisanInternetprotocolthatexchangesnetworkpacketsbetweenaclientandserverthroughaproxyserver
大概的意思是:socks是一种互联网协议,它通过一个代理服务器在客户端和服务端之间交换网络数据。简单来说,它就是一种代理协议,扮演一个中间人的角色,在客户端和目标主机之间转发数据。
socks协议位于OSI模型中的第五层,即会话层(SessionLayer)。
2.2socks协议有什么用
对于广大的中国网友来说,一提到代理,肯定会想到翻到外面,而socks5作为一种代理协议,肯定也能用来翻到外面嘛。不过遗憾的是,虽然它是代理协议,然而并不能用于翻到外面。因为它的数据都是明文传输,会被墙轻易阻断。
socks协议历史悠久,它面世时中国的互联网尚未成型,更别说墙,因此它并不是为翻到外面而设计的协议。互联网早期,企业内部网络为了保证安全性,都是置于防火墙之后,这样带来的副作用就是访问内部资源会变得很麻烦,socks协议就是为了解决这个问题而诞生的。
socks相当于在防火墙撕了一道口子,让合法的用户可以通过这个口子连接到内部,从而访问内部的一些资源和进行管理。
2.3什么是socks5协议
socks5顾名思义就是socks协议的第五个版本,作为socks4的一个延伸,在socks4的基础上新增UDP转发和认证功能。唯一遗憾的是socks5并不兼容socks4协议。socks5由IETF在年正式发布,经过这么多年的发展,互联网上基本上都以socks5为主,socks4已经退出了历史的舞台。
实际上,你并不需要回头去看socks4协议,因为socks5协议完全可以取代socks4,因此读者对此不必感觉有心理压力。
2.4工作过程
在开始介绍socks5协议工作工程之前,先来了解一下浏览器不设置代理情况下的请求过程。假设读者通过浏览器访问本博(假设读者使用的是HTTP协议),流程如下/p>
1.建立TCP连接
浏览器向本博所在服务器建立TCP连接,经过3次握手后成功双方建立一条连接,用于数据传输
2.发起HTTP请求
TCP连接建立成功后,浏览器通过建立的连接发送HTTP请求
GET/
Hostwiyi.org
3.服务器响应浏览器一段HTML内容,浏览器收到后对页面进行渲染
上面是正常的请求过程,如果读者给浏览器设置了一个socks5代理,情况会复杂一些。在这里我们假设socks5代理位于读者本地,端口为,它的工作流程如下/p>
1.浏览器和socks5代理建立TCP连接
和上面不同的时,浏览器和服务器之间多了一个中间人,即socks5,因此浏览器需要跟socks5服务器建立一条连接。
2.socks5协商阶段
在浏览器正式向socks5服务器发起请求之前,双方需要协商,包括协议版本,支持的认证方式等,双方需要协商成功才能进行下一步。协商的细节将会在下一小节详细描述。
3.socks5请求阶段
协商成功后,浏览器向socks5代理发起一个请求。请求的内容包括,它要访问的服务器域名或ip,端口等信息。
4.socks5relay阶段
scoks5收到浏览器请求后,解析请求内容,然后向目标服务器建立TCP连接。
5.数据传输阶段
经过上面步骤,我们成功建立了浏览器–socks5,socks5–目标服务器之间的连接。这个阶段浏览器开始把数据传输给scoks5代理,socks5代理把数据转发到目标服务器。
上面的步骤虽然变多,但本质不变,非常容易理解,简单整理为下图