# Participants - SERVER (`public`, tunneling server) - CLIENT (`local`, localhosting client) - PROCESS (`local`, target process) # Tunneling Architecture - SERVER -> PROCESS 접근에는 PROCESS 네트워크 방화벽 설정이 필요. 이를 회피하고 싶음 - local에 CLIENT를 둠으로써 SERVER로부터 요청을 대신 전달 - `SPI, Statful Packet Inspection`에 의해 요청에 대한 응답은 방화벽 적용 X - CLIENT - SERVER 간 `Socket 연결`을 SERVER 에서 유지하며 PROCESS 에게 들어온 요청을 CLIENT 에게 `forward` - side effect - Socket연결을 유지하는 것은 SERVER resources 낭비 - PROCESS 네트워크의 변동 가능성? ``` 모든 통신은 HTTP | TCP/IP | Socket remote client <-> SERVER <-> CLIENT <-> PROCESS ``` ## another possibles - VPN 서버 - SERVER와 PROCESS 네트워크를 같은 VPN에 위치시킴으로써 CLIENT 제거 - Message Queue 서버 - SERVER 에서 CLIENT 연결 소켓 유지할 필요 X
Activity