Hello,
I have rather academic question. Can someone explain/clarify how the
proxy server identifies return TCP/IP packets in order to channel them
to the particular client processes.
Assume the following scenario:
- LAN with hosts having private (local) addresses 10.0.0.1, 10.0.0.2
etc. attached to the Squid proxy server with outside IP address, say,
195.44.55.66.
Both clients 10.0.0.1, 10.0.0.2 are for example telnetting the SAME
server with IP say 76.44.34.21.
The socket endpoint addresses of both Clients then are:
76.44.34.21 76.44.34.21
23 23
10.0.0.1 10.0.0.2
Client1 port No(chosen "automatically") Client2 portNo "automatically")
The proxy takes over the IP addresses (10.0.0.1, 10.0.0.2) of both
Clients replacing them by its own IP 195.44.55.66 which reaches by
routing the server 76.44.34.21.
Then the server replies with the TCP/IP Packet:
76.44.34.21 76.44.34.21
23 23
195.44.55.66 195.44.55.66
Client1 port No(chosen "automatically") Client2 portNo "automatically")
The question is how the proxy server would channel the packets to
correct Clients (not having their local addresses in the response packet).
I deduced that the decision is done on Client portNo and consequently,
when the port numbers were assigned "automatically" they had to be
DIFFERENT.
Please clarify.
Thank you in advance,
Vitezslav Nezval,
University of Malta