A Reverse Proxy is best described as a server that transfers data to and from the backend server on behalf of the client. To facilitate this the proxy server maintains a connection to the backend and the connecting client to the filtering server.
TCP Reverse Proxy
For every received connection a connection is made to the backend server. When available data is transferred to the intended recipient.
UDP Reverse Proxy
For every packet received a packet is sent to the backend server. Unique port mappings (remote endpoints) are maintained for session compatibility.
HTTP(s) Reverse Proxy
Every request made is parsed, processed and made through a pool of connections that are kept alive to the backend server. GZIP, SSL and other features can all be performed on the filtering server for maximum flexibility and performance. Layer 7 HTTP filtering is also performed at this stage.
Obtaining the connecting clients IP
With HTTP(s) reverse proxies it is possible to obtain the clients Real IP through the use of an additional header. This is not possible for TCP and UDP Reverse Proxies. Tunneling Backend methods are able to protect TCP/UDP ports while transmitting the clients IP.