SOCKS is a Protocol which stands for SOCKet Secure. SOCKS client server applications allows to use protocol independent transparent services of a proxy server. We published about Proxy and Proxy Server before. These core networking topics becoming popular because of country based restricted services. With SOCKS and other Protocols, one residing in India can basically use a service that is free for US.
Basics about SOCKS
Clients behind a firewall when connects to an external server to create connection, it connects to a SOCKS proxy. This proxy server checks the client’s permission to contact the external server and forwards the request to the server.
SOCKS protocol was originally developed by NEC (SOCKS 4). The latest version is 5th of the Protocol. In TCP / IP model , it is an intermediate layer between the application layer and the transport layer.
Importance and usages of SOCKS
Basically, the people knows about networking, actually will not come to read from this article about SOCKS. Rather, the people who need to know a bit more than the others for some reason or the other, but from other field will actually read this article. That is why we have not elaborated too much technical part.
Understand a simple point that, the latest version, SOCKS 5 has huge difference with SOCKS 4. That is why we are not going to write about SOCKS 4 in detail. A typical SOCKS 4 connection request looks like a row of number. If a request is :
Client: 4 1 0 80 66 102 7 99 0
Here, 4 is the SOCKS version, 1 is the connection request, 0 80 is the port , 66 102 7 99, the IP address to that wants to connect the client, 0 if no user name is used. Server will respond :Advertisement
Server: 0 90 0 80 66 102 7 99
Here, 0 90 means that the request is accepted, 0 80 is the port, 66 102 7 99, the IP address to which the connection was established. After all the data sent by the client to the SOCKS proxy, it will be routed to 18.104.22.168. Conversely, all data sent from 22.214.171.124 to the SOCKS proxy will be forwarded to the client. This is basically how you can use SOCKS 4 to listen music from website restricted in your country but open in another country.
Unlike SOCKS 4 in SOCKS 5, before the actual connection request is a “version identifier / method selection message” which is sent for an authentication to take place. This message contains a variety of authentication methods that are accepted by the client and the server.
There are SOCKS Clients or widely known as SOCKS Wrapper, which are basically softwares or programs those allow other programs to access external networks via SOCKS. PuTTY, which basically a Win32 SSH client, that can be used to create local SOCKS tunnels. Now you are probably thinking very logically – if your server is in US, quite obviously it will use internal network as well as external network based on US IP, so you can use SOCKS Protocol for Proxy. Yes, this is the basics of SOCKS clients.