[컴퓨터과학] Network - 응용 계층 Part2 (DNS, Mail Server, FTP, Browser)

Kyung Jae, Cheong·2024년 11월 17일
post-thumbnail

Network - DNS, Mail Server, FTP, Browser

0. 다양한 응용 계층 Protocols

컴퓨터 네트워크에서 응용 계층 프로토콜사용자의 요구를 처리하고 응용 프로그램 간 데이터 통신을 담당합니다.

이 중에서도 다음 프로토콜은 일상적으로 자주 사용되며, 기본적인 이해가 중요합니다.

  • HTTP/HTTPS (HyperText Transfer Protocol)
    웹사이트의 정보를 주고받는 데 사용되는 프로토콜로, 인터넷 상에서 가장 많이 활용됩니다.

  • DNS (Domain Name System)
    사용자가 입력한 도메인 이름IP 주소로 변환해주는 프로토콜로, 인터넷 통신에서 필수적인 역할을 합니다.

  • FTP (File Transfer Protocol)
    파일을 업로드 및 다운로드하기 위한 표준 프로토콜입니다.

  • SMTP/POP3 (Simple Mail Transfer Protocol / Post Office Protocol)
    이메일 송수신에 사용되며, SMTP메일 송신, POP3메일 수신 프로토콜입니다.


4. DNS (Domain Name System)

DNS도메인 이름을 IP 주소로 변환하거나 그 반대를 수행하기 위해 개발된 시스템입니다.

  • 인터넷 통신에서 도메인 이름IP 주소를 연결하는 역할을 하며, 사용자복잡한 IP 주소 대신 기억하기 쉬운 도메인 이름을 사용할 수 있습니다.

4.1 DNS의 주요 기능

  • 도메인 이름 → IP 주소 변환

    • 사용자가 입력한 도메인 이름컴퓨터가 이해할 수 있는 IP 주소로 변환.
    • 예: www.google.com → 142.250.190.78
  • IP 주소 → 도메인 이름 변환

    • 반대로 IP 주소도메인 이름으로 변환(역방향 조회).

4.2 DNS의 동작 과정

  1. 사용자가 브라우저에 URL 입력: https://www.example.com
  2. DNS 클라이언트DNS 서버에 요청.
  3. DNS 서버가 요청한 도메인 이름에 해당하는 IP 주소를 반환.
  4. 브라우저는 반환된 IP 주소를 사용해 웹 서버와 통신.

4.3 DNS 프로토콜 주요 특징

  • 사용 프로토콜
    • DNS네트워크 계층에서 UDP를 주로 사용하며, 특정 상황에서 TCP를 사용하기도 합니다.
  • 전 세계적인 분산 시스템
    • 전 세계에 흩어져 있는 DNS 서버 간 협력으로 동작합니다.

5. Mail Server (SMTP/POP3)

5.1 SMTP (Simple Mail Transfer Protocol)

SMTP이메일을 송신하기 위한 프로토콜입니다.

  • 특징
    • 클라이언트가 작성한 메일을 메일 서버로 전달.
    • 메일 서버수신자 서버로 메일을 전송.
  • 사용 포트
    • 25
    • 587 (TLS 보안 적용 시)
  • 단점
    • 기본적으로 텍스트(ASCII 코드)만 전송 가능.

MIME 프로토콜 (Multi-purpose Internet Mail Extensions)

SMTP단점을 보완하기 위해 등장한 확장 프로토콜입니다.

  • 기능
    • 다양한 형식의 데이터(첨부파일 등)를 전송 가능.
    • SMTP 본문 데이터ASCII 코드로 변환한 후 전송.
    • 수신 클라이언트MIME 헤더를 확인하여 디코딩.
  • 예시
    MIME-Version: 1.0
    Content-Type: multipart/alternative;
    boundary="----boundary1234"

5.2 POP3 (Post Office Protocol 3)

POP3이메일을 수신하기 위한 프로토콜입니다.

  • 특징
    • 메일 서버 → 클라이언트로 메일을 다운로드.
    • 메일을 클라이언트에 저장 후, 서버에서 삭제(기본 동작).
  • 사용 포트
    • 110
  • 단점
    • 다른 장치 간 메일 동기화 불가능.

IMAP (Internet Message Access Protocol)

IMAPPOP3단점을 보완한 프로토콜로, 메일을 중앙 서버에 동기화합니다.

  • 특징
    • 중앙 서버에 저장된 메일을 동기화하여, 모든 장치에서 동일한 메일함 확인 가능.
    • 클라이언트에서 메일을 다운로드하지 않아도 됨.
    • 중앙 서버저장 용량에 제한이 있을 수 있음.
  • 사용 포트
    • 143

5.3 SMTP/MIME와 POP3/IMAP 비교

구분SMTPMIMEPOP3IMAP
역할메일 송신SMTP의 확장,
다양한 데이터 전송 지원
메일 다운로드 및
서버에서 삭제
메일 동기화 및
서버 저장 유지
사용 포트25, 587SMTP와 함께 사용110143
데이터 지원텍스트(ASCII 코드)만
가능
첨부파일 등 다양한
포맷 전송 가능
텍스트 및
첨부파일 다운로드
텍스트 및
첨부파일 동기화
장점메일 송신 전용,
빠른 전송
텍스트 외에도
이미지, 첨부파일 지원
로컬 저장 가능,
간단한 구조
모든 장치에서
동기화 지원
단점텍스트 전송 제한MIME 디코딩 필요서버와 동기화
불가능
서버 저장 공간
제한 가능

6. FTP (File Transfer Protocol)

FTP서버와 클라이언트 사이에서 파일을 전달하기 위한 프로토콜로, 네트워크를 통해 대용량 파일을 전송하는 데 널리 사용됩니다.

6.1 FTP의 주요 특징

  • 기능
    • 파일 업로드 및 다운로드를 지원.
  • 포트 사용
    • 일반 서비스와 달리 두 개의 포트를 사용:
      • 포트 21: 연결을 설정하고 명령어를 제어.
      • 포트 20: 파일 데이터 전송.
  • 통신 방식
    • 클라이언트-서버 모델을 기반으로 동작하며, 클라이언트서버에 요청을 보내 파일을 전송하거나 다운로드.

6.2 FTP의 동작 모드: Passive Mode vs Active Mode

FTPActive ModePassive Mode라는 두 가지 동작 모드를 제공합니다.

Active Mode

  • 동작 방식
    • 클라이언트서버포트 21로 연결.
    • 서버클라이언트데이터 연결을 설정하기 위해 다시 클라이언트 포트로 접속.
  • 장점
    • 간단한 설정으로 동작.
  • 단점
    • 클라이언트 방화벽서버의 접속을 차단할 가능성이 있음.

Passive Mode

  • 동작 방식
    • 클라이언트서버연결 요청.
    • 서버자신의 포트를 열고, 클라이언트해당 포트로 접속.
  • 장점
    • 클라이언트방화벽 문제를 피할 수 있음.
  • 단점
    • 서버 측에서 관리해야 할 포트 범위가 늘어날 수 있음.

Active Mode와 Passive Mode 비교

구분Active ModePassive Mode
데이터 연결서버가 클라이언트로 접속 요청클라이언트가 서버의 지정 포트로 접속
방화벽 문제클라이언트 방화벽 문제로 연결 실패 가능클라이언트 방화벽 문제를 피할 수 있음
구현 복잡도비교적 단순서버 측 포트 관리 필요

6.3 FTP의 한계와 대안

  • 한계
    • 보안 취약점: FTP는 데이터를 평문으로 전송하므로, 도청 및 중간자 공격에 취약.
    • 암호화 미지원: 기본적으로 FTP암호화를 지원하지 않음.
  • 대안
    • FTPS: FTPSSL/TLS 기반 암호화 적용.
    • SFTP: SSH 프로토콜을 이용해 암호화된 파일 전송.

7. Web Browser 동작 과정

웹 브라우저는 사용자가 입력한 URL을 해석하고, 웹 서버와 통신하여 HTML, CSS, JavaScript웹 페이지를 렌더링합니다. 이 과정은 크게 4단계로 나눌 수 있습니다.

7.1 단계 1: URL 입력 및 DNS 변환

  • 과정
    • 사용자가 웹 브라우저 주소창URL을 입력하면, 브라우저DNS 프로토콜을 사용해 URLIP 주소로 변환합니다.
    • 입력된 URL: https://www.fun-coding.org
    • 변환된 IP 주소: 13.209.140.30
  • 변환된 IP 주소를 사용해 웹 서버와 통신을 시작합니다.

7.2 단계 2: HTTP Request 전송

  • HTTP Request 생성
    • 웹 브라우저URL을 기반으로 HTTP 요청을 생성합니다.
      • 요청 내용: 메서드(GET, POST), 헤더 정보(User-Agent, Accept 등).
  • 네트워크 스택을 통한 전송
    • HTTP Request는 운영 체제의 네트워크 스택을 따라 아래 순서로 처리됩니다:
      • HTTP → TCP → IP → Ethernet
      • 데이터를 전기 신호로 변환하여 네트워크를 통해 전송.

7.3 단계 3: DOM 및 CSSOM Tree 생성

브라우저서버로부터 받은 HTML, CSS, JavaScript 파일을 처리하여 렌더링 과정을 시작합니다.

(1) DOM(Document Object Model) Tree 생성

  • HTML 파싱
    • HTML 파일을 구조화된 데이터로 변환DOM Tree를 생성.

DOM의 정의

  • 문서를 객체 모델로 표현한 구조.
  • HTML 예시:
<html>
  <body>
    <h1>Welcome!</h1>
  </body>
</html>

DOM Tree:

html
  └─ body
      └─ h1

(2) CSSOM(CSS Object Model) Tree 생성

  • CSS 파싱
    • CSS 파일의 스타일 정보를 파싱CSSOM Tree 생성.
    • CSSOMDOM과 함께 렌더 트리(Render Tree) 생성을 지원.

(3) Render Tree 생성

  • DOM Tree + CSSOM Tree → Render Tree 생성.
  • Render Tree화면에 표시될 요소스타일 정보를 포함.

7.4 단계 4: Render Tree 기반 Rendering

Render Tree를 기반으로 화면에 내용을 표시합니다.

(1) Rendering 과정

  • Layout
    • 각 요소의 위치와 크기를 계산.
  • Paint
    • 계산된 요소를 픽셀로 변환하여 화면에 그리는 작업.
  • Composite
    • Paint 결과를 합성하여 최종 화면을 출력.

(2) DOM과 Virtual DOM

  • DOM
    • 매번 변경 시 DOM Tree를 재구성하여 렌더링(비효율적).
  • Virtual DOM
    • DOM가벼운 형태(JSON)를 메모리에 저장.
    • 필요한 부분만 변경하여 DOM에 반영.
    • 활용 사례: React, Vue.js프론트엔드 프레임워크.

브라우저 동작 과정 요약

단계설명
1. URL 입력URL을 DNS 프로토콜로 IP 주소로 변환.
2. HTTP Request 전송네트워크 스택을 통해 데이터를 서버로 전송.
3. DOM/CSSOM Tree 생성HTML/CSS 파일을 파싱하여 구조화된 Tree 생성.
4. RenderingRender Tree 기반으로 레이아웃 계산 후 화면 출력.

마무리

이번 포스팅에서는 네트워크의 주요 프로토콜웹 브라우저의 동작 과정을 다뤘습니다.

  • DNS
    도메인 이름과 IP 주소 간 변환을 담당하는 핵심 프로토콜로, 인터넷 통신에서 필수적인 역할을 합니다.

  • Mail Server
    SMTP/MIME, POP3, IMAP을 중심으로 메일 송수신을 효율적으로 수행합니다.

  • FTP
    파일 전송을 위한 프로토콜Active/Passive Mode의 차이와 한계를 살펴보았고, 보안 강화를 위해 FTPS/SFTP와 같은 대안도 간단하게 소개했습니다.

  • Web Browser
    URL 입력 -> HTTP Request -> DOM/CSSOM Tree -> Rendering까지 브라우저의 세부 동작 과정을 단계별로 수행해서 웹 브라우저가 동작하게 됩니다.

추천 학습 자료
더 깊이 있는 학습을 원하신다면 다음 자료를 참고하세요!

profile
일 때문에 포스팅은 잠시 쉬어요 ㅠ 바쁘다 바빠 모두들 화이팅! // Machine Learning (AI) Engineer & BackEnd Engineer (Entry)

0개의 댓글