DNS+웹 통신

이창훈·2024년 7월 15일

DNS와 웹통신에 대하여

TCP/IP 4계층 모델


인터넷을 통해 데이터를 전송하는 데 사용되는 TCP/IP 4계층 모델은 네트워크 통신을 이해하는 기본적인 틀입니다. 이 모델은 아래와 같이 네 계층으로 나누어집니다:

애플리케이션 계층 : 사용자 인터페이스 제공 및 응용 프로그램 프로토콜 관리
프로토콜 예시: FTP, HTTP, SSH, SMTP, DNS 등

전송 계층 : 데이터 전송의 신뢰성과 흐름 제어, 에러 복구 관리
프로토콜 예시: TCP, UDP

인터넷 계층 : 패킷의 라우팅과 IP 주소를 통한 목적지까지의 전달
프로토콜 예시: IP (IPv4, IPv6), ICMP, ARP

네트워크 엑세스 계층 : 데이터 링크와 물리 계층을 아우르며, 실제 물리적 전송을 담당
프로토콜 예시: Ethernet, Wi-Fi, PPP

DNS (Domain Name System)

DNS의 필요성

사람들은 www.google.com과 같은 호스트 이름을 기억하기 쉽습니다. 그러나 컴퓨터는 숫자로 된 IP 주소(예: 63.245.217.105)를 선호합니다. DNS는 이러한 호스트 이름을 IP 주소로 변환해주는 역할을 합니다. 이는 인터넷을 사용할 때 필수적인 작업으로, DNS를 웹사이트의 주소록이라고 생각하면 이해하기 쉽습니다.

DNS의 작동 원리

DNS는 중앙 집중식 데이터베이스가 아닌, 분산 데이터베이스로 동작합니다. 이는 서버의 고장, 트래픽 문제 등을 방지하고 확장성을 확보하기 위함입니다. DNS 서버는 다음 세 가지로 나뉩니다.

루트 DNS 서버 : 전 세계에 1000개 이상의 루트 서버 인스턴스가 있으며, TLD 서버의 IP 주소를 제공합니다.
최상위 레벨 도메인 (TLD) DNS 서버 : com, org, net 등의 상위 레벨 도메인과 국가 도메인에 대한 정보를 제공합니다.
책임 DNS 서버 : 조직의 자체 DNS 서버로, 호스트 이름에 대한 IP 매핑 정보를 가지고 있습니다.

DNS 질의 과정

DNS 질의는 사용자가 원하는 IP 주소를 찾기 위해 여러 DNS 서버를 거칩니다. 이 과정은 다음과 같이 진행됩니다.

  • 사용자가 www.google.com을 입력하면 브라우저는 DNS 캐시를 먼저 확인합니다.
  • 캐시가 없으면 ISP의 DNS 서버에 질의를 보냅니다.
  • ISP의 DNS 서버가 루트 DNS 서버, TLD 서버, 그리고 최종적으로 책임 DNS 서버로 질의를 보냅니다.
  • IP 주소를 찾은 후, 이를 브라우저에 반환합니다.

이 과정에서 DNS 캐싱을 통해 성능을 향상시키고, 네트워크의 DNS 메세지 수를 줄입니다.

웹 통신의 흐름

웹 통신은 사용자가 웹 브라우저에 www.google.com과 같은 URL을 입력한 후, 웹 페이지가 브라우저에 렌더링될 때까지의 과정을 말합니다.

URL 입력 : 사용자가 웹 브라우저에 www.google.com을 입력합니다.
DNS 질의 : 브라우저는 해당 도메인의 IP 주소를 찾기 위해 DNS 캐시를 확인하고, 캐시가 없으면 DNS 질의를 시작합니다.
IP 주소 획득 : DNS 서버가 IP 주소를 찾아 브라우저에 반환합니다.
TCP 연결 : 브라우저는 서버와의 통신을 위해 TCP 연결을 설정합니다. 이 과정은 TCP/IP three-way handshake로 이루어집니다.
HTTP 요청 : TCP 연결이 설정되면 브라우저는 HTTP GET 요청을 통해 서버에 웹 페이지를 요청합니다.
서버 응답 : 서버는 요청을 처리하고, 웹 페이지를 브라우저에 응답합니다. 이때 서버는 상태 코드를 함께 보냅니다 (예: 200 OK, 404 Not Found).
페이지 렌더링 : 브라우저는 받은 HTML 문서를 렌더링하여 사용자에게 웹 페이지를 보여줍니다.

웹 서버와 WAS

웹 서버

웹 서버는 정적인 컨텐츠(HTML, CSS, IMAGE 등)를 처리하여 제공하는 서버입니다. 예로는 Apache Server, Nginx 등이 있습니다. 웹 서버는 동적인 컨텐츠를 처리할 수 없기 때문에, 이러한 요청은 WAS에게 전달합니다.

WAS (Web Application Server)

WAS는 동적인 컨텐츠(JSP, ASP, PHP 등)를 처리하여 제공하는 서버입니다. 예로는 Tomcat, JBoss, Jeus, Web Sphere 등이 있습니다. WAS는 주로 데이터베이스 서버와 함께 사용되며, 정적 컨텐츠와 동적 컨텐츠를 모두 처리할 수 있습니다.

웹 시스템 구성

웹 시스템은 다음과 같이 구성될 수 있습니다.

WAS + DB : WAS가 정적, 동적 컨텐츠를 모두 처리합니다. 하지만 서버 과부하가 발생할 수 있습니다.
WEB + WAS + DB : 웹 서버가 정적 컨텐츠를, WAS가 동적 컨텐츠를 처리합니다. 이를 통해 서버의 효율적인 리소스 관리가 가능합니다.

profile
한화시스템 BEYOND SW CAMP 2기

0개의 댓글