X-Forwarded-For X-Forwarded-For는 일반적으로 HTTP 헤더의 일부로 클라이언트의 IP 주소를 식별하는 데 사용됩니다. 이 헤더는 웹 요청이 프록시(Proxy) 또는 로드 밸런서(Road Balancer)를 통해 이루어질 때 실제 요청을 보낸 클라이언트의 IP를 식별할 때 유용하게 사용됩니다. 일반적으로 사용자의 웹 브라우저는 웹 서버에 직접 요청을 보냅니다. 이 경우, 웹 서버는 사용자의 IP 주소를 쉽게 식별할 수 있습니다. 그러나 요청이 프록시 서버 또는 로드 밸런서를 거쳐서 웹 서버에 도달하면, 웹 서버는 직접적으로 사용자의 IP를 알 수 없습니다. 왜냐하면 마지막으로 요청을 전달한 프록시나 로드 밸런서의 IP를 인식하기 때문입니다. 이런 한계를 극복하기 위해 프록시, 로드..
서버에 애플리케이션을 설치하고 프로세스를 구동하면 해당 프로세스는 정해진 포트에서 리스닝 상태로 대기합니다. 클라이언트가 리스닝 포트로 request를 날리고 response를 받기 위해, 즉 통신을 하기 위해서는 방화벽 작업이 필수적입니다. 기업의 IT 인프라 환경에서 방화벽은 Local Firewall과 Network Firewall으로 구분할 수 있습니다. Local Firewall vs Network Firewall 사실 명칭만 봐도 뭐가 다른지는 감이 오실 겁니다. 로컬 방화벽은 컴퓨터 OS 자체에 있는 방화벽이고 네트워크 방화벽은 네트워크 인프라 구성 요소로 존재하는 스위치 같은 장비에 있는 방화벽을 의미합니다. Local Firewall Local Firewall은 개인 컴퓨터에도 존재합니다..
Heartbeat란? 컴퓨터 네트워크에서 Heartbeat는 한 시스템이 다른 시스템에게 "나는 살아있다"는 것을 알리는 신호입니다. heartbeat 본래 뜻인 심장박동처럼 컴퓨터에서도 심장이 뛰는 것과 비슷한 방식으로 동작하기 때문에 이런 명칭이 붙었습니다. heartbeat 신호는 몇 초에 한 번처럼 주기적으로 보내집니다. 이를 수신하는 시스템은 해당 시스템이 작동 중이며 정상적으로 통신할 수 있는 상태임을 확인합니다. 만약 주기적으로 와야 하는 heartbeat가 오지 않는다면 시스템은 곧장 네트워크 문제 또는 시스템 장애가 발생했다고 인지할 수 있습니다. Heartbeat 사용 이유 Heartbeat는 시스템이 온라인 상태이고 메시지를 받을 수 있는지 확인하는 데 사용됩니다. 만약 Heartbe..
RPC란? RPC(Remote Procedure Call, 원격 프로시저 호출)는 다른 네트워크에 위치한 컴퓨터에서 실행되는 프로시저나 함수를 로컬 컴퓨터에서 실행하는 것처럼 사용할 수 있게 하는 통신 방식입니다. 쉽게 설명하면, 컴퓨터 A에서 ‘주문하기’라는 기능을 실행하려는데 이 기능은 컴퓨터 B에 구현되어 있습니다. 이때 컴퓨터 A는 RPC를 통해 컴퓨터 B에 있는 ‘주문 하기’ 기능을 실행하라고 요청하고, 컴퓨터 B는 ‘주문 하기’ 기능을 실행한 결과를 컴퓨터 A에 보내주는 방식이라고 할 수 있습니다. 이처럼 RPC를 이용하면 멀리 떨어진 다른 컴퓨터에 있는 기능을 마치 내 컴퓨터에서 실행하는 것처럼 사용할 수 있습니다. 원래 네트워크 통신을 위해서는 IP 주소, 포트 번호, 프로토콜, 데이터 형..
웹 브라우저로 웹서버에 요청할 때 HTTP 프로토콜을 사용합니다. 예를 들면, http://www.google.com:80 처럼요. 이때 웹서버가 브라우저의 요청에 응답하기 위해서는 방화벽을 열어줘야 합니다. 이 경우 TCP 프로토콜을 통해 80 포트를 오픈합니다. 왜 HTTP로 요청했는데 방화벽은 TCP로 오픈하는 것일까요. 시작은 HTTP 요청으로 하지만 결국 TCP 세그먼트로 변환되기 때문에 그렇습니다. 인터넷 통신이 이루어지는 과정을 분류하면 아래와 같습니다. 사용자와 직접 상호 작용하는 프로토콜 : HTTP, FTP, SMTP, POP3 등 HTTP 등의 요청을 전달하는 프로토콜 : TCP, UDP 등 데이터 패킷 라우팅을 담당하는 프로토콜 : IP 전기 신호를 보내는 매체 : 케이블, 광섬유 ..
IEEE 802.11 이라는 용어를 보신 적 있나요? 통신 관련 IT 기사에도 종종 등장하는 용어입니다. IEEE 802.11는 오늘날 매일 사용하고 있는 무선 LAN인 와이파이(Wi-Fi)의 표준입니다. 이 표준을 만든 단체는 IEEE입니다. 네트워크 기술에서 표준은 매우 중요한 의미를 갖습니다. 이를 주도하는 단체 2곳이 IEEE, IETF입니다. IEEE, IETF IEEE(Institute of Electrical and Electronics Engineers)는 전자 공학, 컴퓨터 과학, 통신 기술 등 여러 기술 분야에서 표준화를 추진하는 비영리 국제단체로 다양한 기술 표준을 개발합니다. 네트워크에서는 이더넷(IEEE 802.3)과 Wi-Fi(IEEE 802.11) 표준이 가장 유명합니다. IE..
OSI와 TCP/IP의 관계는 조금 헷갈립니다. 왜냐하면 OSI에 대해 공부를 하면 "사실상의 표준은 OSI가 아닌 TCP/IP다."라는 단서가 붙기 때문입니다. 이게 무슨 말인지 이해하려면 OSI와 TCP/IP의 차이를 알아야 합니다. 결론부터 한마디로 말하면 OSI는 네트워크 구조를 명확하게 설명할 수 있는 개념적 모델이고, TCP/IP는 실제 인터넷 통신에 사용되고 있는 실전형 모델입니다. 다시 말하면 OSI는 이론, TCP/IP는 실용입니다. 예를 들어, 완벽한 건물을 짓는 방법을 담은 건축 계획서가 있다고 가정해 보겠습니다. 이 건축 계획서는 논리적이고 완벽합니다. 그러나 실제 건축 과정에서 정확히 구현할 수는 없습니다. 현실에는 다양한 제약 조건이 있기 때문입니다. 굳이 말하자면 OSI는 이런..
HTTP와 WebSocket은 모두 클라이언트-서버 통신에 사용되는 통신 프로토콜이지만 차이가 있습니다. 연결이 단발적인지, 지속적인지, 통신이 단방향인지 양방향인지 등에 따라 구분하며 각 특징에 맞게 활용됩니다. Socket vs HTTP 1. HTTP 통신 HTTP(HyperText Transfer Protocol)는 단방향 통신입니다. 단방향 통신은 요청(request)과 응답(response)의 형태로 이루어집니다. 클라이언트가 서버에 요청하면 서버는 그 결과를 응답합니다. 서버는 클라이언트의 요청을 받아야만 응답을 반환합니다. 이렇게 한쪽 방향으로만 통신이 이루어지기 때문에 단방향 통신으로 간주됩니다. HTTP는 stateless(상태 비저장) 프로토콜입니다. 각 요청과 응답이 독립적이며 서로 ..
네트워크 통신에서 핸드셰이크(handshake)라는 용어가 자주 등장합니다. "악수를 한다"는 의미처럼, 핸드셰이크는 통신을 하기 위한 과정을 의미합니다. Handshake 핸드셰이크는 통신에서 연결을 설정하기 위한 과정입니다. 이때 두 통신 장치 간 데이터 교환 규칙, 속도, 보안 설정 등의 파라미터를 협상합니다. 핸드셰이크의 목적은 아래와 같습니다. 연결 설정 : 통신을 시작하기 전에 두 장치는 서로 연결되어 있음을 확인하고 연결을 설정합니다. 파라미터 협상 : 통신에 사용되는 속도, 프로토콜, 데이터 형식 등의 파라미터를 협상하고 동기화합니다. 인증 및 보안 : 필요한 경우 두 장치는 인증을 하고 보안 관련 파라미터를 설정합니다. 유형 핸드셰이크라는 명칭이 붙는 대표적인 유형들을 몇 가지 소개하겠습..
네트워크 정보에서 서브넷 마스크는 해당 네트워크의 규모를 알려줍니다. 간단히 말하면 해당 네트워크에서 대략 300대 정도의 PC를 사용할 수 있는지, 아니면 3만대, 6만대까지도 쓸 수 있는지를 결정하는 게 서브넷 마스크 값입니다. 서브넷 마스크란? 서브넷 마스크(subnet mask)는 네트워크 상의 장치들을 구분하는 값입니다. 구체적으로는 IP 주소의 네트워크 부분과 호스트 부분을 구분하는 역할을 합니다. 네트워크 관리자는 서브넷 마스크로 네트워크를 세분화하고 IP 주소를 재사용할 수 있습니다. 예를 들어, 서브넷 마스크는 255.255.255.0과 같은 형태로 표시됩니다. 앞서 서브넷 마스크가 IP 주소의 네트워크 부분과 호스트 부분을 구분한다고 했습니다. 서브넷 마스크를 2진수로 변환하면 그 말의..