네트워크를 이루고 있는 수많은 요소들이 있습니다. 우선 Inline + Out of Path에 대해서 알고 있어야 합니다. 장치든 라우터든 스위치든 간에 Inline이거나 Out of Path 중 하나입니다.
Proxy의 사전적 의미는 대리자입니다.
PC가 하나 있다고 해봅시다. 중요한 건 IP 주소입니다. 3.3.3.3번 호스트가 5.5.5.5번 호스트로 TCP/IP 연결을 했다고 합니다. 보통 네이버는 웹이니까 HTTP나 HTTPS 통신을 할 것입니다. 어쨌든 여기서 Socket 통신을 했을 것입니다.
PC #2에서 Proxy 역할을 수행해주는 Process가 있습니다. 이 Process에 Socket Interface가 있을 것입니다. S1, S2라고 해봅시다. S1은 Listen하고 있습니다. Socket을 누군가 자기에게 연결하기를 기다리고 있습니다.
User mode - Application proxy => Socket stream
Inline + Out of Path => Packet
다루는 데이터에 따라 다릅니다.
Packet을 봐야하는데 Proxy로 개발하는 것은 부적절하다는 것입니다.
네이버 입장에서는 IP 주소 9.9.9.9가 접속을 했다고 알고 있습니다. 그런데 PC #1은 우리나라에 있고, PC #2는 중국에 있다고 해봅시다. 그러면 중국에서 접속했다고 인식할 것입니다.
Tor project라는 것이 있습니다. 인터넷에게 자유를!! 다른 웹 서비스르 접속할 수 있는 방안을 제공합니다. 이거와 유사하게 Proxy 설정을 통해서 우회해서 접속을 할 수 있습니다.
주의할 것이 있습니다. PC #1이 PC #2를 Proxy로 설정했기 때문에, PC #2는 PC #1의 Socket 통신 내역을 모두 들여다볼 수 있습니다. PC #1의 통신을 모두 감청할 수 있는 것입니다.
tip) VPN은 Network 수준에서 많이 쓰고, Proxy는 HTTP(Web) 수준에서 많이 씁니다.