※ 본 카테고리의 내용은 부스트캠프 챌린지 기간동안 학습한 내용을 바탕으로 정리한 내용입니다.

 

목차


    0. 프록시란?

     

     

    프록시 서버(Proxy Server)클라이언트가 자신을 통해서 다른 네트워크 서브시에 간접적으로 접속할 수 있게 도와주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다.

    서버와 클라이언트의 사이에서 통신의 중간다리 역할을 수행하는 객체를 프록시라고 부르고, 이 프록시가 동작하여 데이터를 전달하게 되면 이것을 프록시 서버라고 부릅니다.

     

    원래 프록시 서버의 목적은 실제로 서버에 연결하지 않아도 중간에서 캐시를 이용하여 서버까지 요청을 전달하지 않고도 프록시만으로 클라이언트에게 데이터를 전달하여 속도를 빠르게 하는 것입니다.

     

    위 그림에서 볼 수 있듯이 데이터를 요청하고 전달받을 때 프록시라는 중간다리를 거치므로 서버쪽에 클라이언트의 IP를 알리지 않은 상태로 데이터를 요청할 수 있게 됩니다.

    즉, 원래 목적과는 다르게 현 세대에서는 위와 같은 IP 세탁 및 우회접속기능이 프록시의 주된 기능이 되어가고 있습니다.

     

    이 말은 2021년 현재의 우리나라와 같이 인터넷이 크게 발달한 국가에서는 프록시가 인터넷 속도 향상에 영향을 거의 끼치지 못하고 범죄수단, 우회수단용으로 쓰일 수 있다는 말과 같습니다. 

     


    1. TCP와 UDP

     

     

    Proxy는 TCP로 구성될 수도 있고, UDP로 구성될 수도 있습니다.

    그렇다면 두 방식의 차이는 도대체 무엇일까요?

     

    과거에는 보통 TCP를 이용한 통신이 주를 이뤘습니다.

    1:1(Unicast) 방식으로 연결되기 때문에 전송에 대한 신뢰성이 높기 때문입니다.

    하지만 현 세대에 들어와서는 UDP도 TCP만큼은 아니지만 충분한 신뢰성을 확보했고, 대신 TCP에 비해서 더 많은 정보를 빠르게 전달할 수 있다는 점 때문에 다양한 곳에서 쓰이기 시작했습니다.

    대표적으로 UDP를 사용하는 케이스는 스트리밍과 같이 대량의 정보를 실시간으로 전달해야 하는 경우입니다.

    엄청난 양의 데이터를 수많은 사람에게 동시에 전달해야 하기 때문에 1:1 매칭방식의 TCP로 빠르게 전달하기엔 어려움을 느끼기 때문이죠.

    대신 통신 과정에서 일부가 누락되는 경우가 있을 수 있습니다.

    민감한 정보를 UDP로 전달하는 것은 위험성이 따르겠죠??

     

    아래는 TCPUDP의 특징을 나타낸 표입니다.

     

    TCP UDP
    연결 지향 연결 지향 X
    헤더 크기 20 Bytes 헤더 크기 8 Bytes
    느린 전송속도 빠른 전송속도
    높은 신뢰성 낮은 신뢰성
    흐름 제어 및 혼잡도 제어 흐름 제어와 혼잡도 제어 X
    ACK(acknowledge) 존재 ACK 존재하지 않음
    Handshake 사용 Handshake 사용하지 않음
    HTTP, FTP, TELNET, SSH DNS, DHCP, TFTP, SNMP, SIP
    Unicast 방식 Unicast, Multicast, Broadcast 방식

     


    Node.js의 net, dgram에 대한 설명이 추가될 예정입니다!

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기