by adrien » Dec 03 03 7:10 pm
With a mapping (I take it you mean a TCP Mapping proxy session), a socket listens on the WinGate machine for connections from a client, upon a connection in from a client, a connection is made out, and then any data received from one connection is sent on the other connection. This is all using windows sockets in what is known as ring 3 or user space (where your applications run). Each connection is fairly independently managed by the OS (including buffering, sequencing, timeouts, retries - all the basic TCP stuff). The clients must be configured to connect to the mapping proxy, which is then who they think they are talking to for the duration of the connection.
with NAT, the clients think they are connecting to the end server, and WinGate ENS driver intercepts the packets, and re-writes the addresses. There is no buffering, or re-synchronisation or any TCP control overhead performed, that is left up to the end-points in the single connection. This also goes nowhere near winsock, and takes place entirely in the kernel of the OS. Therefore it is a lot more efficient.
Redirection is like NAT, except that instead of connecting to the end point that the client specified, we forward the packets instead to the location specified in the redirection. This involves changing not only the source address but also the destination address of the packets sent from the client.
Transparent Redirection is a special case of redirection, where the new endpoint is one of WinGate's proxies. In such cases a message is also sent from the driver to WinGate telling WinGate that there is such a connection being redirected, and telling WinGate what the original destination was. WinGate then gives this extra information to the proxy so that it can fulfil the request, since this necessary information would otherwise have been unavailable.