A type of proxy server that doesn't look like it's there.

When speaking of WWW/HTTP caching proxies, in typical use, the user needs to tell the web browser where the web proxy is. ("My web proxy is at cache.isp.fi, port 8080. Don't pass requests to 'localhost' and '*.fi' through it.")

With transparent proxy, the user wouldn't need to specify anything - all web traffic will always go through the proxy server. This is technically done with some clever packet forwardings.

However, in case of transparent caching proxies, the problem is that since the client (often) doesn't know it's talking through a proxy and thinks it has a direct connection to the server, very strange things might occur. For example, during the time my ISP's proxy was misconfigured, I kept getting E2 and Kuro5hin homepages from a couple of different users who also used E2/K5. Also, not everyone in the web run their server at port 80, and (thanks to soapish innovations in Microsoft) not everyone uses port 80 for specifically http...

Oftentimes such problems only occurr when caching is involved. In many other protocols, proxied traffic isn't cached, and will, as such, work nicely. (I'm sending this writeup, for example, through a NAT machine - all traffic from the office will go through a "masquerading" computer that makes the whole office network look like a single computer to the network that is outside the office. This system only translates internal network addresses for external network and keeps track of connections for several computers; it does not cache the data that passes through.)