[이어드림스쿨 1주차] 주요 프로토콜

KiwiChipKiwiChip
10 min read

📌 1. IP, DNS, DHCP

🔹 IP (Internet Protocol)

  • 설명: 데이터를 목적지까지 전달해주는 주소 시스템

  • 예시: 192.168.0.1 (IPv4), 2001:0db8:85a3:: (IPv6)

  • 비유: 집 주소처럼, 데이터를 정확히 배달할 수 있게 해주는 네비 주소


🌍 IP의 특징

IP(Internet Protocol)는 인터넷에서 데이터를 목적지까지 전달하기 위한 핵심 프로토콜이다. 하지만 이 프로토콜은 ‘전달’에만 집중하며, 다른 부가 기능은 포함하지 않는다. 아래는 IP의 대표적인 네 가지 특징이다:

1. 🧱 비신뢰성 (Unreliable)

  • 설명: 데이터가 손실되거나, 순서가 바뀌거나, 중복되어도 IP는 이를 보장하거나 책임지지 않는다.

  • 예시: 데이터가 도착하지 않아도 다시 보내주지 않음.

  • 비유: “편지함에 편지를 넣었지만, 받는 사람이 못 받았는지는 확인 안 하는 일반 우편”

2. 🔌 비연결형 (Connectionless)

  • 설명: 데이터를 보내기 전, 상대방과 연결을 미리 설정하지 않는다.

  • 예시: TCP처럼 연결을 맺지 않고, 그냥 바로 보내버림.

  • 비유: “전화 없이 택배를 보내는 것” — 받는 사람이 받을 준비를 했는지는 신경 쓰지 않음

3. 🏠 주소 지정 (Addressing)

  • 설명: 데이터를 목적지까지 정확히 전달하기 위해 IP 주소를 사용한다.

  • 예시: 192.168.0.1, 10.0.0.1, etc.

  • 비유: “편지봉투에 적는 집 주소” — 어디로 보낼지를 반드시 알아야 함

4. 🗺 경로 설정 (Routing)

  • 설명: IP는 데이터를 목적지까지 보내기 위해 최적의 경로를 선택한다.

  • 예시: 라우터가 중간에서 목적지까지 가는 길을 결정함.

  • 비유: “네비게이션이 실시간으로 경로를 안내해주는 것”


✅ 요약 표

특징설명비유
비신뢰성손실/오류 발생 시 복구하지 않음일반 우편📮
비연결형연결 없이 그냥 전송택배만 보내고 전화 안 함📦
주소 지정IP 주소를 통해 목적지 식별집 주소📍
경로 설정라우팅을 통해 목적지까지 최적 경로 설정네비게이션🗺

🔹 DNS (Domain Name System)

  • 설명: 도메인 이름을 IP 주소로 바꿔주는 시스템

  • 예시: www.google.com142.250.206.68

  • 비유: 전화번호부📒 — 사람 이름으로 검색하면 전화번호(IP)를 알려줌

DNS 조회 단계

  1. 웹 브라우저에 도메인 이름으로 요청

  2. DNS서버에서 TLD 서버에 IP 주소 요청

  3. TLD 서버에서 IP 주소 응답

  4. DNS 서버에서 IP 주소 응

DNS 질의 방식

  • 재귀적 질의: Local DNS 서버에서 Root DNS 서버에 요청을 보내고, 그 후 하향식 접근으로 최상위 서버에서 밑 쪽으로 IP 주소를 검색해 재귀적으로 반환해주는 방식

  • 반복적 질의: Local DNS 서버가 각각 최상의 서버부터 밑의 서버까지 하나씩 요청 수 응답 받는 방


🔹 DHCP (Dynamic Host Configuration Protocol)

  • 설명: IP 주소를 자동으로 할당해주는 시스템

  • 예시: 노트북을 와이파이에 연결하면 자동으로 IP 받음

  • 비유: 민원 창구🏢 — 순번표 뽑으면 번호표(IP)랑 자리(주소) 배정해줌

DHCP 할당 종류

할당 방식설명특징
수동 할당 (Manual Allocation)관리자가 특정 MAC 주소에 IP 주소를 직접 지정함고정 IP, 보안 장비나 프린터에 자주 사용됨
자동 할당 (Automatic Allocation)DHCP 서버가 한 번 IP를 할당하면, 그 IP를 계속 사용하게 함초기만 자동, 이후엔 고정처럼 사용됨
동적 할당 (Dynamic Allocation)DHCP 서버가 임대(Lease) 기간 동안 IP를 임시로 할당하고, 필요 시 회수함가장 일반적인 방식, 유동 IP, 재연결 시 IP 변경 가능

📌 TIP: 대부분의 가정용 와이파이나 기업 네트워크에서는 동적 할당(Dynamic) 방식이 사용되며, 서버나 프린터 등 특정 장비에는 수동 할당 또는 자동 할당을 설정하는 경우가 많다.

DHCP 동작 원리 (DORA)

  • Discover → Offer → Request → Acknowledge

network


📌 2. TCP / UDP

🔹 TCP (Transmission Control Protocol)

  • 신뢰성 보장: 데이터 손실, 순서 오류 시 재전송함

  • 3-Way Handshake로 연결 설정

  • 4-Way Handshake로 연결 해제

  • 흐름 제어(Flow Control)와 혼잡 제어(Congestion Control) 제공

  • 전이중(Full-Duplex) 통신 지원: 양방향 동시 송수신 가능

  • UDP보다 상대적으로 느리지만 안정적

📦 비유: 등기 택배 – 받는 사람이 잘 받았는지 확인하고, 잃어버리면 다시 보내줌

3-Way Handshake (연결 설정)

클라이언트와 서버가 정상적으로 데이터 전송을 시작하기 전, 서로 연결 준비가 되었는지 확인하는 절차

✅ 목적

  • 데이터 전송 전 연결 준비 상태 확인

  • 양측 모두 송수신 준비가 되었음을 보장

📶 단계 요약

단계동작 내용클라이언트 상태서버 상태
Step 1클라이언트가 SYN 패킷 전송SYN_SENTLISTEN (Wait for client)
Step 2서버가 SYN+ACK 전송SYN_SENTSYN_RECEIVED
Step 3클라이언트가 ACK 응답ESTABLISHEDESTABLISHED

💡 비유

서로 전화 연결 전 “여보세요?” → “들려요?” → “응, 이제 말해도 돼!” 하는 느낌 📞

🔚 4-Way Handshake (연결 해제)

데이터를 주고받은 후 TCP 연결을 종료할 때, 클라이언트와 서버가 차례로 종료 신호를 주고받는 과정

✅ 목적

  • 연결을 깔끔하게 종료

  • 남아있는 데이터 손실 방지

📶 단계 요약

단계동작 내용클라이언트 상태서버 상태
Step 1클라이언트가 FIN 전송FIN_WAIT_1ESTABLISHED
Step 2서버가 ACK 응답 → CLOSE_WAIT 진입FIN_WAIT_2CLOSE_WAIT
Step 3서버가 FIN 전송 → LAST_ACK 진입FIN_WAIT_2LAST_ACK
Step 4클라이언트가 ACK 응답 → TIME_WAIT 진입TIME_WAITCLOSED

💡 비유

대화 끝내기 전에 “이만 끊을게요” → “네~ 저도 마무리할게요~” 하는 정중한 인사 👋

TIME_WAIT은 왜 필요할까?

  • 역방향 지연 패킷이 도착했을 경우 대비

  • 상대방이 ACK를 못 받았다고 오해해서 재전송하는 걸 기다려주기 위함

📌 요약:

  • 3-Way는 시작, 4-Way는 마무리

  • TCP는 신뢰성 있는 연결을 위해 항상 이 절차를 거침


🔹 UDP (User Datagram Protocol)

  • 비연결형: 요청만 보내고 응답 여부는 확인하지 않음

  • 빠르지만 신뢰성 낮음

  • CheckSum으로 최소한의 오류만 검출

  • 1:N, N:N 통신이 가능하여 실시간 방송, 게임, 스트리밍에 적합

📨 비유: 전단지 – 빠르게 뿌리지만 누가 받았는지 확인 안 함


🔹 TCP vs UDP

항목TCPUDP
연결 방식연결형 (3-Way Handshake로 연결 설정)비연결형 (연결 설정 없이 바로 전송)
전송 순서 보장O (전송 순서 보장)X (순서 보장 없음)
수신 여부 확인O (수신 확인 및 재전송 기능)X (수신 확인 없음)
통신 방식1:1 (점대점 통신, Point-to-Point)1:1, 1:N, N:N (멀티캐스트 가능)
신뢰성높음 (데이터 유실 시 재전송)낮음 (오류 감지만 수행, 재전송 없음)
속도느림 (연결 과정 및 신뢰성 처리로 인한 오버헤드)빠름 (단순 구조로 속도 우선)
에러 제어흐름 제어 및 혼잡 제어 지원최소한의 오류 검출 (CheckSum 사용)
통신 방식(특징)전이중(Full-Duplex) – 양방향 동시 전송 가능단순한 데이터그램 기반 전송
대표 사용 예웹 브라우징(HTTP), 이메일, 파일 전송 등실시간 영상/음성 통화, 스트리밍, 게임 등

📌 3. FTP (File Transfer Protocol)

🔹 FTP 동작 원리

**FTP(File Transfer Protocol)**는 인터넷을 통해 파일을 전송하기 위한 통신 프로토콜이다.
주로 웹 서버에 파일을 업로드하거나, 서버에서 파일을 내려받을 때 사용된다.

  • 보안 연결 없이 ID, Password를 통해 인증 후 파일 송수신

  • TCP 기반으로 동작하며, 신뢰성 있는 데이터 전송이 가능

  • 연결 시 3-Way Handshake를 사용함

  • **제어용 포트(21번)**와 **데이터 전송용 포트(20번)**를 사용


🔹 FTP 모드

모드 구분동작 방식특징
능동 모드 (Active Mode)서버가 클라이언트에게 연결서버가 주도적으로 데이터 전송 승인, 보안에 상대적으로 강함
수동 모드 (Passive Mode)클라이언트가 서버에게 연결서버는 연결 요청만 받고 듣기만 함, 방화벽 뒤에서도 접속 가능

💡 수동 모드는 보안 환경에서 자주 사용됨 (ex. 기업 방화벽 내부)


🔹FTP의 종류

종류특징
FTPID, Password 인증 / TCP 사용 / 일반적인 FTP 방식
TFTP인증 없음 / UDP 사용 / 빠른 전송 / 69번 포트 사용
SFTPSSH 기반 / 암호화 적용 / 높은 보안성 / 기밀성 보장

🔹 SFTP (SSH File Transfer Protocol)

SFTP(Secure File Transfer Protocol)는 SSH(Secure Shell) 기반으로 동작하는 보안 파일 전송 프로토콜이다.

기존 FTP처럼 파일을 전송하지만,
전송 과정 전체가 암호화되기 때문에
기밀성, 무결성, 인증성을 모두 갖춘 안전한 방식이다.


🔹 SFTP 작동 방식

  1. 연결 확인

    • Client와 Server는 먼저 SSH 기반의 보안 연결을 설정한다.

    • 이때, 사용자 인증(ID/PW 또는 SSH Key)을 통해 접근 허용 여부를 확인함.

  2. 암호화된 데이터 전송

    • 서버와 클라이언트 간에 파일을 주고받는 모든 과정은 암호화되어 전송됨.

    • 중간에 누가 패킷을 가로채더라도 내용을 알아볼 수 없음.

  3. 서버에서 파일 저장

    • 서버는 암호화된 상태로 받은 파일을 복호화하여 저장함.
  4. 클라이언트에서도 복호화 처리

    • 서버에서 받은 파일 역시 클라이언트 측에서 복호화하여 사용할 수 있음.

💡 비유로 이해하기

🔐 SFTP는 등기 택배 + 암호 자물쇠

  • 등기처럼 수신 여부를 확인하고,

  • 자물쇠처럼 내용물 전체에 암호화가 걸려 있어

  • 보안이 중요한 기업 환경, 의료 정보, 금융 데이터 전송 등에 적합하다.


🔹 SFTP vs FTP

항목FTPSFTP
보안없음있음 (암호화)
방화벽취약함안정적임
포트 번호단일 포트 번호여러 포트 번호
기반TCPSSH

📌 4. SMTP, POP3, IMAP

🔹 SMTP (Simple Mail Transfer Protocol)

  • 설명: 메일을 보내는 데 사용하는 프로토콜

  • 예시: Gmail, Outlook 발신

  • 비유: 우체통📮 — 보낼 때만 사용


🔹 POP3 / IMAP

구분POP3IMAP
정의메일 서버에서 이메일을 PC로 내려받는 프로토콜메일을 서버에 접속해서 관리할 수 있는 프로토콜
방식다운로드 후 삭제 (기본 설정 시)서버에 그대로 보관, 실시간 동기화 가능
장점오프라인에서도 메일 확인 가능여러 기기에서 동일한 메일함 동기화 가능
단점기기 하나에만 저장되며 분실 위험 있음서버 저장 공간이 제한될 수 있음
비유편지함에서 편지를 꺼내와서 집에 보관함편지함을 직접 열어볼 수 있고 관리도 서버에서 실시간으로 함

🔹 SMTP vs POP3 vs IMAP

항목SMTPPOP3IMAP
역할메일 발신메일 수신 (다운로드)메일 수신 (실시간)
서버 저장XXO
기기 동기화X불편함O

📌 5. SSH & TELNET

🔹 TELNET

  • 설명: 원격 접속을 위한 초기 프로토콜 (암호화 X)

  • 비유: 열린 쪽지✉️ — 누가 훔쳐봐도 모름


🔹 SSH (Secure Shell)

  • 설명: 보안된 원격 접속 프로토콜

  • 예시: 리눅스 서버에 원격 로그인

  • 비유: 자물쇠 채운 쪽지🔐 — 암호화되어 안전함

🔹SSH 동작 원리

  • 클라이언트와 서버는 서로 공개키와 개인키를 이용해 상대방을 인증하고 데이터를 암호화된 채널로 주고받음

🔹SSH 특징 요약

항목설명
기능원격 접속, 파일 전송, 터미널 제어 등
보안성모든 데이터 암호화 (텍스트, 명령어, 파일 등)
전송 효율트래픽 압축으로 빠른 데이터 전송 가능
포트기본 22번 포트 사용
인증 방식공개키(Public Key) / 개인키(Private Key) 기반
  • 공개키: 누구나 볼 수 있음, 데이터를 암호화할 때 사용

  • 개인키: 본인만 소유, 암호화된 데이터를 복호화할 때 사용


📌 6. SSL / TLS / HTTPS

용어설명
SSL (Secure Sockets Layer)데이터를 암호화하여 안전하게 통신하게 하는 보안 프로토콜
TLS (Transport Layer Security)SSL의 업그레이드 버전, 더 안전하고 널리 사용됨
HTTPS (HTTP Secure)HTTP + SSL/TLS를 결합한 보안 웹 통신 프로토콜

🔹 SSL vs TLS

항목SSLTLS
보안 수준기본적인 암호화 제공SSL보다 강력한 보안 알고리즘 적용
인증 방식핸드셰이크 과정을 통해 클라이언트-서버 인증동일하나 더 정교한 검증 구조 포함
무결성 검사디지털 서명으로 데이터 위변조 여부 확인동일하며 더 안전한 알고리즘 사용

🔹 HTTPS (HTTP + SSL/TLS)

  • HTTP + SSL/TLS

  • 웹사이트에서 개인정보 입력, 로그인, 결제 등 민감한 정보를 주고받을 때 사용

  • 주소창이 https:// 시작하며, 자물쇠 아이콘 🔒 표시됨

  • 📦 비유:

    • HTTP는 일반 우편, 누구나 열어볼 수 있음

    • HTTPS는 등기 + 봉인된 편지, 안전하게 전달되고 도중에 누가 열면 바로 알 수 있음


🔹 SSL vs TLS vs HTTPS 정리

항목SSLTLSHTTPS
역할암호화 프로토콜SSL 후속 버전HTTP + TLS
보안낮음 (구버전)높음 (표준)안전한 웹통신
0
Subscribe to my newsletter

Read articles from KiwiChip directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

KiwiChip
KiwiChip

I'm currently learning Python and studying RAG (Retrieval-Augmented Generation).