SOCKS is a general-purpose proxy protocol for client/server environments. A SOCKS system has two components: server software and client software. The SOCKS client is available on Windows and Windows NT, while the SOCKS server is available on NT and all major Unix platforms.
As a proxy server, SOCKS makes a connection between a client and an application server and relays data between them. From the application server's perspective, the SOCKS server is the client, thereby hiding the real client. The SOCKS server, which can be used as a firewall alternative, provides a single point of access for external traffic.
One advantage of SOCKS is that it can handle the proxy function for other protocols such as HTTP, FTP and telnet. Otherwise, the applications each need their own application-level proxy, which slows network performance and increases management requirements. The disadvantage of SOCKS is that it requires software to be installed on the client and server, and the application must support SOCKS, too.
Two versions of the SOCKS protocol exist: V4 and V5. V4 handles connection requests, sets up a proxy, and relays data to and from the application server.
V5 adds user authentication and support for User Datagram Protocol (UDP) traffic, which is used in multimedia applications. V5 was accepted as a standard by the Internet Engineering Task Force (IETF). Meanwhile, an IETF working group is starting to look at SOCKS V6, which is likely to include enhancements for handling multicast traffic.
Without SOCKS V5, it is difficult for network managers to support multimedia applications through firewalls. There are two choices: open the firewall ports to allow multimedia applications through, which puts an organization's data at risk; or put a server outside the firewall to support multimedia applications, but then those applications are not secure.
SOCKS V5 provides a way to run multimedia applications through the firewall. It does this by granting network managers a great deal of control over the multimedia traffic they let through an open port on a firewall. SOCKS V5 lets users select who can receive a multimedia communication and for how long, while protecting the rest of the information on the network.