HTTP 요청인데 왜 방화벽은 TCP 포트를 오픈할까?

웹 브라우저로 웹서버에 요청할 때 HTTP 프로토콜을 사용합니다. 예를 들면, http://www.google.com:80 처럼요. 이때 웹서버가 브라우저의 요청에 응답하기 위해서는 방화벽을 열어줘야 합니다. 이 경우 TCP 프로토콜을 통해 80 포트를 오픈합니다. 왜 HTTP로 요청했는데 방화벽은 TCP로 오픈하는 것일까요. 시작은 HTTP 요청으로 하지만 결국 TCP 세그먼트로 변환되기 때문에 그렇습니다.

 

인터넷 통신이 이루어지는 과정을 분류하면 아래와 같습니다.

  • 사용자와 직접 상호 작용하는 프로토콜 : HTTP, FTP, SMTP, POP3 등
  • HTTP 등의 요청을 전달하는 프로토콜 : TCP, UDP 등
  • 데이터 패킷 라우팅을 담당하는 프로토콜 : IP
  • 전기 신호를 보내는 매체 : 케이블, 광섬유 등

 

방화벽 설정 시 선택할 수 있는 프로토콜은 TCP와 UDP 둘 중 하나 입니다.

HTTP 요청 및 응답 단계

웹 브라우저가 HTTP 요청을 보내고 응답을 반환받는 과정은 TCP/IP 모델에서 4가지 계층을 거칩니다.

 

1. 응용 계층 (Application Layer)

브라우저는 HTTP 요청을 보냅니다. 이 요청에는 웹 서버에서 가져올 리소스의 URL, HTTP 메서드(GET, POST 등), 헤더 정보가 포함됩니다. 이 요청은 전송 계층으로 전달됩니다.

 

2. 전송 계층 (Transport Layer)

전송 계층에서는 TCP 프로토콜을 사용하여 데이터를 세그먼트로 분할하며, 순서 번호와 오류 검사 정보를 포함하는 헤더를 추가합니다.

 

3. 인터넷 계층 (Internet Layer)

인터넷 계층에서는 IP 프로토콜을 사용하여 데이터를 패킷으로 묶습니다. 패킷에는 출발지 IP 주소와 목적지 IP 주소를 포함하는 헤더가 추가됩니다. 패킷은 네트워크 인터페이스 계층으로 전달됩니다.

 

4. 네트워크 인터페이스 계층 (Network Interface Layer)

네트워크 인터페이스 계층에서는 패킷을 데이터 링크 계층에서 사용하는 프레임으로 변환합니다. 프레임에는 출발지 MAC 주소와 목적지 MAC 주소를 포함하는 헤더가 추가됩니다. 프레임은 물리적 네트워크를 통해 웹 서버로 전송됩니다.

 

이제 요청을 받은 웹 서버는 거쳐왔던 순서의 역방향으로 응답을 반환하고, 결국 웹 브라우저에게 도달합니다.

 

tcp/ip 계층과 프로토콜

 

다시 주제로 돌아와서, 방화벽은 주로 전송 계층과 인터넷 계층 구간에서 특정 포트나 IP에 대한 트래픽 제어를 수행합니다. 때문에 웹 브라우저의 최초 요청은 HTTP지만 방화벽이 작동하는 구간의 프로토콜은 TCP 또는 UDP를 선택하는 것입니다.

반응형

댓글

Designed by JB FACTORY