CS

프로토콜

baek-dev 2025. 5. 3. 13:21

프로토콜(Protocol)이란 무엇인가?

프로토콜(protocol) 은 컴퓨터나 시스템 간의 데이터 통신을 위한 약속 또는 규칙의 집합임.
쉽게 말해, 컴퓨터끼리 서로 말이 통하게 하려면 “어떻게 대화할지”에 대한 공통된 규칙이 필요하며,
이 규칙들을 표준화한 것이 바로 네트워크 프로토콜임.


1. 왜 프로토콜이 필요한가?

사람도 서로 다른 언어를 쓰면 통신이 안 되는 것처럼, 컴퓨터도 규약 없이 서로 데이터를 주고받으면 오류가 발생함.
어떤 포맷으로 보낼지, 언제 응답할지, 어떤 에러에 어떻게 반응할지 등 모든 것을 정해 놓아야 함.

예:

  • “보낼 때 앞에 길이부터 붙이자”
  • “응답은 무조건 3초 이내에 하자”
  • “파일 전송은 일정한 조각 단위로 나눠서 보내자”

이러한 규약들을 표준화한 것이 TCP, HTTP, FTP, DNS 등 다양한 프로토콜임.


2. 대표적인 프로토콜 종류와 역할

① TCP (Transmission Control Protocol)

  • 데이터를 안정적으로 전달하기 위한 연결 지향형 프로토콜
  • 데이터가 손실되지 않고, 순서대로 정확히 도착하도록 보장함
  • 대표적으로 HTTP, FTP, SMTP 등이 TCP 위에서 동작함

특징:

  • 3-Way Handshake 를 통해 연결 설정
  • 데이터 흐름 제어 및 재전송
  • 신뢰성 있는 통신 보장

② UDP (User Datagram Protocol)

  • 데이터를 빠르게 전달하기 위한 비연결형 프로토콜
  • 속도는 빠르지만, 손실이나 순서 보장은 하지 않음
  • 실시간 스트리밍, 게임, 음성 통화 등에 사용됨

특징:

  • 연결 과정 없이 바로 전송
  • 속도 우선, 신뢰성은 낮음
  • 대표 사용처: VoIP, 실시간 영상, 게임

③ HTTP (HyperText Transfer Protocol)

  • 웹 페이지를 주고받기 위한 애플리케이션 계층의 프로토콜
  • 브라우저가 서버에 요청(Request)하고, 서버가 응답(Response)하는 구조임

특징:

  • 텍스트 기반 요청 (GET, POST, PUT, DELETE 등)
  • TCP 위에서 동작
  • 대표 사용처: 웹, API 통신

버전별 변화:

  • HTTP/1.1 → 지속 연결
  • HTTP/2 → 다중 요청 가능 (Multiplexing)
  • HTTP/3 → QUIC(UDP 기반) 사용

④ HTTPS (HTTP Secure)

  • HTTP + TLS/SSL 암호화 계층
  • 클라이언트와 서버 간의 데이터를 암호화하여 보안 통신을 보장함
  • 인증서 기반으로 신뢰성도 보장함

⑤ FTP (File Transfer Protocol)

  • 파일 전송을 위한 프로토콜임
  • 클라이언트-서버 구조로 파일 업로드/다운로드를 수행함
  • 최근에는 보안 취약점으로 인해 SFTP(SSH 기반 전송) 사용이 증가함

⑥ DNS (Domain Name System)

  • 도메인 주소(ex: google.com)를 IP 주소로 변환해 주는 시스템임
  • 브라우저가 웹서버에 접속할 수 있도록 하는 이름→주소 변환기 역할을 수행함

⑦ SMTP, IMAP, POP3 (이메일 관련)

  • SMTP: 이메일을 보내는 프로토콜 (메일 발신)
  • IMAP, POP3: 이메일을 서버에서 가져오는 프로토콜 (메일 수신)

3. 프로토콜과 OSI 7계층의 관계

프로토콜은 OSI 7계층 모델의 각 계층에서 작동함. 아래는 대표적인 프로토콜들의 위치임:

계층 역할 예시 프로토콜
7. 응용 사용자 인터페이스 HTTP, FTP, SMTP
6. 표현 인코딩, 암호화 TLS, SSL
5. 세션 연결 유지 NetBIOS
4. 전송 신뢰성 보장 TCP, UDP
3. 네트워크 라우팅, 주소 지정 IP, ICMP
2. 데이터링크 프레임 전송 Ethernet, MAC
1. 물리 전기적 신호 케이블, 광섬유 등

→ 예를 들어 HTTP는 7계층(응용계층)의 프로토콜이고, TCP는 4계층(전송계층)의 프로토콜임


4. 실무에서 자주 등장하는 프로토콜 조합

사용 목적 프로토콜 스택 예시
웹 통신 HTTP + TCP + IP
보안 웹 통신 HTTPS (HTTP + TLS + TCP + IP)
실시간 영상 스트리밍 WebRTC (UDP 기반)
DNS 질의 DNS + UDP
메일 발송 SMTP + TCP

5. 정리

프로토콜이란, 컴퓨터 간 통신을 위한 규칙의 집합임.
TCP, UDP, HTTP, DNS 등은 서로 다른 계층에서 역할을 수행하며,
신뢰성, 속도, 보안, 데이터 구조에 따라 각각의 프로토콜을 선택하여 사용함.

백엔드 개발자라면 HTTP와 TCP의 차이, UDP의 용도, HTTPS의 암호화 원리, DNS 요청 흐름 등은 반드시 이해하고 있어야 함.

 

 

 

 

출처 : ChatGPT

'CS' 카테고리의 다른 글

매직 넘버  (0) 2025.05.09
3-Way Handshake  (0) 2025.05.08
퍼사드 패턴  (0) 2025.04.14
SOLID 원칙  (0) 2025.04.04
DSL  (0) 2025.03.25