used to traverse proxies
(pick your term, it doesn't matter..). Most proxies will have the ports for http
and sometimes ftp
specially proxied, and then anything that would be using a different port, such as IRC
or an instant messaging
client or a net game
-- pretty much anything, really-- has to go through the SOCKS server, which can usually be found running at port number
1080 of the proxy. Of course, the port number may be totally different, depending wholly on the whims of the sysadmin
. The point, though, is since it isn't realistic to proxy every single port, SOCKS provides a way to tunnel all traffic through a proxy server through a single arbitrary port.
Applications have to be specifically written to support SOCKS. There are programs such as SOCKScap which will let you force an internet app to use SOCKS without the app being aware of it, but if that doesn't work you're screwed. This is one of many reasons why users are much much happier under ip masquerading than under a proxy.
Recently, some people have started using SOCKS as a way of obfuscating IP addresses; for example, when you log onto Slashnet, even if you are just a normal computer on the internet, it forces you to feed your connection through a special SOCKS server-- thus meaning that you appear in the channel as having the IP of the SOCKS server instead of your normal IP. The result of this is that people with malicious intent cannot find someone's IP on slashnet by any method other than asking-- meaning you don't get people DOSing and trying to hack each other and such, which is really kind of nice.
SOCKS is described by RFC 1928; its authentication systems are described by RFC 1929 and RFC 1961.