SOCKS version 5 is defined in RFC 1928 and additionally provides authentication so only authorized users may access a server.
SOCKS server proxies TCP connections to an arbitrary IP Address, and provides a means for UDP packets to be forwarded.
SOCKS performs at Layer 5 of the OSI-Model (the Session Layer, an intermediate layer between the presentation Layer and the transport Layer).!! Usage SOCKS is a de facto standard for circuit-level gateways.
SOCKS is as a circumvention tool, allowing traffic to bypass Internet filtering to access content otherwise blocked, e.g., by governments, workplaces, schools, and country-specific web services.
Some SSH suites, such as OpenSSH, support dynamic port forwarding that allows the user to create a local SOCKS Proxy Server. This can free the user from the limitations of connecting only to a predefined remote port and server.
The Onion Router Proxy Server presents a SOCKS interface to its clients
SOCKS operates at a lower level than HTTP proxying.
SOCKS uses a handshake protocol to inform the proxy software about the connection that the client is trying to make, and then acts as transparently as possible, whereas a regular HTTP proxy may interpret and rewrite headers (say, to employ another underlying protocol, such as FTP; however, an HTTP proxy simply forwards an HTTP request to the desired HTTP server). Though HTTP proxying has a different usage model in mind, the CONNECT method allows for forwarding TCP connections; however, SOCKS proxies can also forward UDP traffic and work in reverse, while HTTP proxies cannot. HTTP proxies are traditionally more aware of the HTTP protocol, performing higher-level filtering (though that usually only applies to HTTP GET and HTTP POST methods, not the HTTP CONNECT method).!! More Information There might be more information for this subject on one of the following: