본문 바로가기
AI스쿨 리팩토링

6, 7주차 - 프로토콜

by By 풀스택다이버 2025. 6. 20.

0. 과제 및 과정 소개

6주차 프로토콜이란.pptx
1.21MB
7주차 계층별 프로토콜 2차.pptx
0.87MB

 

과제 발표에 사용한 PPT파일을 첨부합니다. 이 과제는 AI스쿨 리팩토링 보안 과정의 일부로 2023년 12월 23일, 12월 30일에 발표되었으며 OSI 7계층 프로토콜에 대한 설명을 다루었습니다. 리팩토링 교육과정에 참여하고자 하신다면 아래 AI스쿨 공식 카페에 방문해 주세요.

 

 https://cafe.naver.com/itscholar

 

정보보안전문가 취업카페 스칼라 : 네이버 카페

비전공자 전문IT교육, 정보보안전문가, 보안을 아는 개발자, AI 양성교육, IT기술리더, 창업가 양성

cafe.naver.com

프로토콜이란 무엇인가

극초기의 네트워크 환경을 생각해봅시다. 당시에는 단순히 두 장비가 전기 신호를 주고받는 수준에 불과했습니다. 하지만 이 환경에는 곧바로 여러 문제가 발생했습니다:

  • 어떤 신호가 어떤 의미인지 해석 기준이 없었습니다.
  • 누가 먼저 보낼지, 언제 보낼지 정해진 순서도 없었습니다.
  • 전송된 데이터가 제대로 도착했는지 확인할 방법조차 없었습니다.

이처럼 신호의 형식, 순서, 오류 처리 등 기본적인 규칙이 전무했기 때문에 서로 다른 장비 간에는 통신 자체가 매우 불안정하고 비효율적이었습니다.

 

이러한 문제를 해결하여 서로 다른 컴퓨터나 장비가 원활하게 통신하기 위해서는 일정한 규칙과 약속이 필요합니다. 이를 프로토콜(Protocol)이라고 합니다.

프로토콜은 네트워크에서 데이터를 주고받을 때 따르는 통신 규약의 집합으로, 장비 간 호환성과 효율적인 데이터 전송을 보장합니다.

 

구성 요소

프로토콜은 크게 구문, 의미, 시간으로 구성되어 있습니다.

  • 구문(Syntax)
    데이터가 어떤 형식으로 전송되어야 하는지를 정의합니다.
    예: 데이터 구조, 부호화 방식, 신호 레벨 등
  • 의미(Semantics)
    각 데이터 요소가 어떤 역할을 하며, 어떤 의미를 갖는지 설명합니다.
    예: 오류 제어, 전송 상태 관리 등
  • 시간(Timing)
    통신 타이밍, 메시지 순서, 전송 속도 등을 규정합니다.
    예: 메시지를 보내는 순서나 일정 시간 내 수신 확인 여부 등

적용 관점

  • 물리적 관점
    하드웨어, 전송 매체, 전송 신호, 회선 규격 등과 관련되어 실제 전송을 담당합니다.
  • 논리적 관점
    데이터 포맷, 주소 지정, 라우팅 등 데이터를 어떻게 다루고 흐름을 제어할지를 규정합니다.

공개형 vs 폐쇄형 프로토콜

  • 공개 프로토콜
    누구나 사용 가능하며, 후술할 TCP/IP 등이 있습니다. 범용성이 높지만 보안 취약점도 존재할 수 있습니다.
  • 폐쇄 프로토콜
    특정 기업이나 환경에서만 사용하는 프로토콜로, 예: IBM의 SNA. 보안 측면에서는 유리하지만 호환성은 낮습니다.

프로토콜의 주요 기능

프로토콜은 단순한 데이터 전달 규칙을 넘어서, 네트워크 전반에서 데이터의 신뢰성과 효율성을 보장하기 위한 다양한 기능들을 수행합니다.

 

단편화 및 재합성(Fragmentation and Reassembly)

  • 전송 가능한 단위로 데이터를 나누고, 수신 측에서 이를 다시 원래 형태로 복원합니다.

캡슐화 및 캡슐화 해제(Encapsulation and Decapsulation)

  • 상위 계층 데이터에 헤더를 붙여 하위 계층으로 보내고, 수신 측에서는 이 헤더를 제거하여 원 데이터를 복원합니다.

연결 제어(Connection Control)

  • 통신 시작 시 연결을 설정하고, 종료 시 연결을 해제합니다. TCP는 연결형이며, UDP는 비연결형입니다.

흐름 제어(Flow Control)

  • 송신 측이 수신 측의 처리 속도에 맞춰 데이터를 전송하여, 버퍼 오버플로우를 방지합니다.

오류 제어(Error Control)

  • 전송 도중 발생할 수 있는 오류를 탐지하고, 필요 시 재전송하여 데이터의 정확성을 확보합니다.

순서 결정(Ordering)

  • 분할 전송된 데이터가 수신 측에서 올바른 순서대로 재조립되도록 관리합니다.

동기화(Synchronization)

  • 송신자와 수신자의 통신 타이밍을 맞추어, 데이터가 손실 없이 처리되도록 합니다.

다중화(Multiplexing)

  • 하나의 물리 회선을 여러 응용 프로그램이 공유할 수 있도록 분리합니다. 포트 번호를 통해 구분됩니다.

전송 서비스(Transmission Services)

  • 최종 사용자에게 안정적인 전송 품질을 제공하기 위한 QoS, 신뢰성, 오류 처리 등을 포함합니다.

계층별 주요 프로토콜 표

OSI 계층 주요 프로토콜 기능
1계층 (물리 계층) RS-232, V.35, Ethernet (전기/광 신호) 물리적 매체를 통한 비트 전송
2계층 (데이터 링크 계층) Ethernet, PPP, HDLC, MAC 프레임 전송, 오류 검출, 주소 지정
3계층 (네트워크 계층) IP, ICMP, IGMP, ARP, RIP, OSPF, BGP 라우팅, 주소 지정, 패킷 전달
4계층 (전송 계층) TCP, UDP 종단 간 신뢰성 있는/없는 데이터 전송
5계층 (세션 계층) NetBIOS, PPTP, RPC 세션 설정, 유지, 종료 관리
6계층 (표현 계층) TLS, SSL, MIME, JPEG, Unicode, ASCII 데이터 압축, 암호화, 형식 변환
7계층 (응용 계층) HTTP, HTTPS, FTP, SFTP, SMTP, POP3, IMAP, SNMP, Websocket 사용자 응용 프로그램과의 직접 상호작용

 


주요 포트 및 프로토콜 요약표

포트 번호 프로토콜 기능
20, 21 FTP 파일 전송 (20: 데이터, 21: 제어)
22 SSH/SFTP 원격 접속, 보안 파일 전송
23 Telnet 원격 텍스트 터미널 접속 (비보안)
25 SMTP 이메일 송신
53 DNS 도메인 이름 → IP 주소 변환
67, 68 DHCP IP 주소 자동 할당 (서버/클라이언트)
80 HTTP 웹 페이지 전송 (비암호화)
110 POP3 이메일 수신, 서버에서 삭제 후 다운로드
143 IMAP 이메일 수신, 서버에 메일 유지
161, 162 SNMP 네트워크 장비 모니터링 및 관리 (161: 요청, 162: 알림)
443 HTTPs 암호화된 웹 통신
993 IMAP OVER SSL 보안 이메일 수신
995 POP3 OVER SSL 보안 이메일 수신

 


1. 물리 계층의 주요 프로토콜

물리 계층은 전기/광학 신호 방식, 전송 속도, 물리 매체 등만 정의합니다. 이러한 점에서 물리 계층의 프로토콜은 순수 프로토콜보다는 전송 방식/표준에 가깝습니다.
ex) Ethernet, Bluetooth, USB etc

Ehternet & Bluetooth, 출처: Keysight Ethernet, minew bluetooth의 범위


2. 데이터 링크 계층의 주요 프로토콜

데이터 링크 계층은 OSI 7계층의 2계층으로, 물리 계층으로부터 전송된 신호를 해석 가능한 프레임 단위로 구성하고, 목적지까지 오류 없이 전달하는 것을 목표로 합니다. 이 계층은 MAC 주소 기반의 통신을 수행하며, 네트워크의 안정성과 효율성에 직접적인 영향을 미칩니다.

 

HDLC(High-Level Data Link Control)

  • 국제표준기구(ISO)에서 개발한 비트 중심의 데이터 링크 프로토콜입니다.
  • 포인트 투 포인트뿐 아니라 멀티포인트 환경에서도 사용할 수 있으며, 데이터 흐름 제어 및 오류 제어 기능을 포함합니다.
  • 프레임 구조가 명확하고, 다양한 장비 간 호환성을 보장합니다.

HDLC는 구조화된 프레임 포맷을 통해 제어, 주소, 데이터, 에러 검출 필드를 명확히 구분합니다. 데이터 통신망의 기본 프로토콜로 자리잡고 있으며, 많은 통신 장비에서 사용됩니다.

 

PPP(Point-to-Point Protocol)

  • 직렬 링크를 통해 두 노드를 연결할 때 사용되는 프로토콜로, HDLC의 기능을 확장한 형태입니다.
  • 인증, 압축, 다중 프로토콜 전송 등 다양한 부가 기능을 지원하며, 주로 전화 접속 네트워크나 DSL 환경에서 사용됩니다.

PPP는 IP 외에도 다양한 프로토콜(IPX, AppleTalk 등)을 전송할 수 있도록 설계되어, 유연성과 확장성이 뛰어납니다. 또한, PAP, CHAP 같은 인증 프로토콜과 함께 사용됩니다.

 

이더넷(Ethernet)

  • 오늘날 가장 널리 사용되는 LAN 기술로, 프레임 기반 전송과 CSMA/CD 방식에 기반하여 설계되었습니다.
  • MAC 주소를 통해 장비를 식별하며, 허브, 스위치 등과 함께 사용됩니다.
  • 10Mbps부터 10Gbps 이상까지 다양한 속도를 지원하는 표준으로 진화했습니다.

Ethernet은 IEEE 802.3 표준에 기반하고 있으며, 유선 네트워크의 기본이 되는 기술입니다. 최근에는 Full Duplex 환경과 스위칭 기술을 결합하여, 충돌 없는 효율적인 통신이 가능해졌습니다.


3. 네트워크 계층의 주요 프로토콜

네트워크 계층은 OSI 7계층의 3계층으로, 데이터가 한 네트워크에서 다른 네트워크로 올바르게 라우팅되어 전달될 수 있도록 경로를 설정하는 역할을 합니다. 이 계층에서는 IP 주소를 기반으로 목적지를 판단하고, 데이터 전송을 위한 경로 결정, 주소 지정, 패킷 분할 등을 수행합니다.

 

IP (Internet Protocol)

IP Protocol Works, 출처: Geeks for Geeks What is Internet Protocol (IP)?

  • 인터넷에서 데이터 전송을 위한 핵심 프로토콜이며, IP 주소 체계를 기반으로 작동합니다.
  • 각 IP 패킷은 독립적으로 처리되며, 송신 순서나 상태 정보는 유지하지 않는 비연결형 통신 방식을 사용합니다.
  • 흐름 제어나 오류 제어를 수행하지 않아 비신뢰성 특성을 가집니다.
  • 네트워크 계층에서 호스트 주소 지정과 라우팅, 패킷 분할 및 조립 기능을 수행합니다.

IP는 정보 중심의 규약으로, 단순한 전송보다는 주소 지정과 경로 설정에 중점을 둡니다. 따라서 IP만으로는 신뢰성 있는 데이터 전달이 어려우며, TCP 등 상위 계층 프로토콜과의 결합이 필요합니다.

  • IPv4: 32비트 주소 체계이며, 주소 고갈 문제가 존재합니다.
  • IPv6: 128비트 주소 체계를 통해 주소 공간 확장, 효율적인 라우팅, 인증 및 보안, 이동성 등을 제공합니다.

IGMP (Internet Group Management Protocol)

  • IP 멀티캐스트 통신을 관리하기 위한 프로토콜로, 여러 장치가 하나의 IP 주소를 공유하여 동일한 데이터를 동시에 수신할 수 있도록 합니다.
  • 주로 IPv4 기반 네트워크에서 멀티캐스팅을 설정하는 데 사용되며, 호스트가 멀티캐스트 그룹에 가입하거나 탈퇴할 수 있게 해줍니다.

멀티캐스팅은 여러 장치가 하나의 메시지를 동시에 받아야 할 때 유용하며, 예를 들어 회사 전체 공지 메일을 모든 직원이 한 번에 수신하는 방식과 유사합니다.

ICMP (Internet Control Message Protocol)

 

ICMP는 IP 프로토콜과 함께 작동하는 보조 프로토콜로, 오류 메시지와 네트워크 운영 상태를 전달하기 위해 사용됩니다. 일반적인 데이터 전송에는 사용되지 않으며, 주로 네트워크 진단을 위한 도구에 활용됩니다.

  • 기본 기능
    • 데이터 전송 중 문제가 발생했을 때, 원인을 알리는 오류 메시지를 생성하고 송신자에게 전달합니다.
    • 라우터와 호스트는 ICMP를 통해 현재 네트워크 상태를 진단하고, 경로 문제를 파악할 수 있습니다.

예를 들어, Ping은 대상 장비가 살아있는지 여부를 확인하고, Traceroute는 데이터가 어떤 경로를 통해 도달하는지 추적할 수 있도록 도와줍니다.

  • 특징
    • IP 스위트의 일환이며, IP와 밀접하게 통합되어 작동합니다.
    • 연결 상태 확인, 응답 시간 측정, 경로 추적 등 진단용으로 널리 사용됩니다.
    • DDoS 공격에도 악용될 수 있기 때문에, 보안 환경에서는 ICMP 트래픽을 제한하거나 필터링하기도 합니다.

ICMP 주요 에러 코드 표

Type 메시지 종류(Message) 설명(Detail) 하위 코드 예시
0 Echo Reply Ping 응답 메시지 X
3 Destination Unreachable 목적지 도달 불가 오류 - 0: 네트워크 불가
- 1: 호스트 불가
- 3: 포트 불가
- 4: 단편화 필요하지만 DF 설정 - 5: 소스 라우팅 실패
4 Source Quench 혼잡 제어 요청 - 0: 전송 속도 낮추라는 신호
5 Redirect 더 나은 경로 안내 - 0: 네트워크용
- 1: 호스트용
- 2: TOS 기준 경로
- 3: TOS + 호스트
8 Echo Request Ping 요청 메시지 X
11 Time Exceeded TTL 만료 또는 재조립 시간 초과 - 0: TTL 초과
- 1: 조립 시간 초과
15~18 정보 요청/응답 DHCP 대체 용도 등 X
30 Traceroute 라우터 경로 추적용 X

 

ARP (Address Resolution Protocol)

ARP 작동방식, 출처: fourfaith what-is-arp

 

  • IP 주소를 물리 주소(MAC 주소)로 변환해주는 프로토콜입니다.
  • 같은 네트워크 내에서 통신할 때, 상대방의 MAC 주소를 알기 위해 사용됩니다.

예를 들어, 192.168.0.10이라는 IP로 데이터를 보내야 할 때, 이 IP에 대응하는 MAC 주소가 필요하며, ARP는 이를 알아내는 요청-응답 과정을 수행합니다.

  • ARP 요청(Request): 대상 IP 주소에 해당하는 MAC 주소를 요청합니다.
  • ARP 응답(Reply): 대상 장비가 자신의 MAC 주소를 알려줍니다.

RIP (Routing Information Protocol)

RIP Protocol, 출처:DataFlair

  • 가장 오래된 거리 벡터 기반 동적 라우팅 프로토콜입니다.
  • 홉 수(Hop Count)를 기준으로 경로를 결정하며, 최대 홉 수는 15로 제한됩니다.
  • 주기적으로 전체 라우팅 정보를 브로드캐스트하여 갱신합니다.

RIP은 소규모 네트워크에는 간단하고 유용하지만, 규모가 커질수록 브로드캐스트와 홉 수 제한으로 인해 비효율적입니다.

  • 버전: RIP v1(클래스 기반) / RIP v2(CIDR, 인증 기능 추가)

OSPF (Open Shortest Path First)

OSPF, 출처: cbtnuggets what-is-ospf

  • 링크 상태 라우팅(Link-State Routing) 방식으로 작동하는 프로토콜입니다.
  • 전체 네트워크 지도를 기반으로 최적 경로를 계산하며, 다익스트라 알고리즘을 사용합니다.
  • 계층적 구조를 사용하여 큰 네트워크를 여러 영역으로 나누어 효율적으로 관리합니다.

OSPF는 RIP보다 빠르고 정확하게 라우팅 정보를 수집 및 반영할 수 있어, 대규모 기업 네트워크에서 널리 사용됩니다.

  • 비브로드캐스트 환경(예: Frame Relay)도 지원합니다.
  • 빠른 수렴성과 인증 기능을 제공합니다.

BGP (Border Gateway Protocol)

BGP, 출처: Noction

  • 자율 시스템(AS) 간 라우팅을 위한 경로 벡터 라우팅 프로토콜입니다.
  • 인터넷과 같은 광범위한 네트워크 환경에서 사용되며, 전 세계 라우팅을 구성하는 핵심 프로토콜입니다.
  • 정책 기반 라우팅을 통해 관리자에 의해 유연한 경로 선택이 가능합니다.

BGP는 다른 라우팅 프로토콜과 달리 단순한 거리 대신 정책, 경로 안정성, 경로 속성 등 다양한 요소를 고려하여 경로를 결정합니다.

  • Exterior Gateway Protocol의 대표적인 사례입니다.
  • 경로 루프 방지를 위한 다양한 필터링 메커니즘 존재합니다.

4. 전송 계층의 주요 프로토콜

전송 계층은 종단 간의 신뢰성 있는 데이터 전송을 보장하는 역할을 합니다. 대표적인 프로토콜로는 TCP(Transmission Control Protocol)UDP(User Datagram Protocol)가 있으며, 이들은 서로 다른 특성과 용도를 가지고 동작합니다.

두 프로토콜에 대한 자세한 설명은 4주차에 다룬 내용을 참고해 주세요. 아래 링크를 통해 확인하실 수 있습니다.

 

4주차 - TCP와 UDP

  • TCP는 연결 지향형, 신뢰성 있는 데이터 전송을 제공하며, 패킷 순서 보장 및 오류 제어를 수행합니다.
  • UDP는 비연결형, 빠른 전송 속도를 중시하며, 순서나 손실에 대한 보장이 없습니다.

각각의 프로토콜은 용도에 따라 선택되어야 하며, TCP는 웹, 이메일 등 신뢰성이 중요한 서비스에, UDP는 스트리밍, VoIP 등 속도가 중요한 서비스에 주로 사용됩니다.


5. 세션 계층의 주요 프로토콜

세션 계층은 통신 세션의 설정, 유지, 종료를 담당하는 계층입니다. 응용 프로그램 간 데이터 교환이 이루어질 때, 세션 계층은 논리적인 연결을 관리하고 동기화 기능을 제공합니다. 이 계층에서는 주로 세션 식별, 인증, 회복 기능 등이 동작합니다.

 

NetBIOS (Network Basic Input/Output System)

  • 원래는 IBM PC용 API로 개발되었으며, 현재는 TCP/IP 위에서 세션 계층 기능을 수행하는 프로토콜로 사용됩니다.
  • 이름 기반의 네트워크 통신을 지원하며, LAN 환경에서 장치 간 식별 및 연결 관리를 제공합니다.

NetBIOS는 주로 Windows 기반 네트워크에서 사용되며, 이름 확인, 데이터 전송, 세션 서비스 등 기능을 포함합니다.

  • 세션 서비스 기능을 통해 양방향 연결 관리가 가능하며, 데이터 전송의 신뢰성을 보장합니다.

PPTP (Point-to-Point Tunneling Protocol)

  • VPN(Virtual Private Network)을 구현하기 위한 초기 프로토콜 중 하나입니다.
  • PPTP는 세션 계층에서 터널링 세션을 설정하여, 암호화된 IP 패킷을 전송할 수 있는 터널을 생성합니다.

PPTP는 전송 계층 아래에서 작동하며, 원격지 사용자가 공용 인터넷을 통해 사설 네트워크에 안전하게 접속할 수 있도록 합니다. 현재는 보안상의 이유로 최신 VPN 프로토콜(예: L2TP, OpenVPN 등)으로 대체되는 추세입니다.

 

RPC (Remote Procedure Call)

  • 다른 컴퓨터의 프로시저(함수)를 마치 로컬 함수처럼 호출할 수 있게 해주는 프로토콜입니다.
  • 세션 계층에서의 연결 관리를 통해, 네트워크를 통해 실행되는 함수 호출 간의 세션을 설정하고 제어합니다.

RPC는 분산 시스템에서 매우 유용하며, 클라이언트-서버 구조에서 흔히 사용됩니다. 개발자는 네트워크 프로그래밍에 대해 복잡하게 신경 쓰지 않아도 원격 호출이 가능해집니다.

  • TCP, UDP 위에서 동작 가능하며, Microsoft의 DCOM이나 UNIX의 ONC-RPC 등 다양한 구현체가 존재합니다.

6. 표현 계층의 주요 프로토콜

표현 계층은 OSI 7계층 중 6계층에 해당하며, 데이터의 형식(Format), 인코딩(Encoding), 압축(Compression), 암호화(Encryption)를 처리합니다. 이 계층은 서로 다른 시스템 간 데이터 표현 방식이 다를 수 있기 때문에, 그 차이를 변환하고 표준화하는 역할을 수행합니다.

 

TLS (Transport Layer Security)

  • 네트워크 상의 데이터 전송을 암호화하고 보호하기 위한 보안 프로토콜입니다.
  • 전송 계층과 표현 계층 사이에서 동작하며, HTTPS, 메일 보안, VPN 등 다양한 응용 분야에서 활용됩니다.

TLS는 SSL의 후속 프로토콜로, 현재 인터넷 통신 보안의 표준입니다. 기밀성, 무결성, 인증을 모두 보장합니다.

 

MIME (Multipurpose Internet Mail Extensions)

  • 이메일 시스템에서 텍스트가 아닌 이미지, 오디오, 동영상, 애플리케이션 파일 등 다양한 형식의 데이터 전송을 가능하게 하는 표준입니다.
  • 메시지 본문에 데이터 형식 정보를 포함시켜, 수신자가 올바르게 해석할 수 있게 합니다.

예: 이메일 첨부 파일에 Content-Type: image/jpeg 과 같은 정보가 포함되어 해당 데이터가 이미지임을 나타냅니다.

 

ASCII (American Standard Code for Information Interchange)

ASCII 테이블, 출처: GeeksForGeeks

  • 7비트 문자 인코딩 표준으로, 영어 알파벳과 숫자, 특수문자를 표현할 수 있습니다.
  • 컴퓨터 간 문자 데이터 교환의 기반이 되는 가장 기본적인 문자 인코딩 방식입니다.

Unicode

  • 전 세계 모든 문자를 통일된 방식으로 표현할 수 있도록 설계된 문자 인코딩 표준입니다.
  • UTF-8, UTF-16, UTF-32 등 다양한 인코딩 방식이 존재하며, 다국어 웹 및 시스템의 기반이 됩니다.

ASCII는 영어만 표현 가능한 반면, Unicode는 한국어, 한자, 일본어 등 대부분의 문자를 포함합니다.

 

JPEG (Joint Photographic Experts Group)

  • 이미지 파일 압축 표준으로, 손실 압축 방식을 사용해 이미지 용량을 줄이는 데 사용됩니다.
  • 다양한 해상도와 품질 수준을 제공하며, 웹과 모바일 이미지 전송에 널리 활용됩니다.

MPEG (Moving Picture Experts Group)

  • 동영상 및 오디오 압축 표준으로, 비디오 스트리밍, 방송, 디지털 콘텐츠 배포에 사용됩니다.
  • MPEG-1, MPEG-2, MPEG-4 등의 버전이 있으며, H.264, MP4 포맷 등은 MPEG 기반입니다.

표현 계층에서 압축 및 인코딩 기능을 담당하여, 효율적인 미디어 전송이 가능하게 합니다.

 

XDR (External Data Representation)

  • 서로 다른 시스템 간에 데이터를 일관되게 직렬화(Serialization)하고 역직렬화하기 위한 표준입니다.
  • 주로 RPC(Remote Procedure Call) 환경에서 사용됩니다.

데이터 구조를 네트워크 전송에 적합한 형식으로 변환하여, 서로 다른 하드웨어/OS 환경 간 호환을 가능하게 합니다.


7. 응용 계층의 주요 프로토콜

응용 계층은 OSI 7계층 중 최상위 계층(7계층)으로, 사용자와 가장 밀접하게 연결된 계층입니다. 사용자가 네트워크 서비스를 요청하고 응답받을 수 있도록 다양한 응용 프로토콜들이 이 계층에서 동작합니다.

 

SSL/TLS (Secure Sockets Layer / Transport Layer Security)

SSL/TLS, 출처: Wallarm

SSL과 TLS는 응용 계층과 전송 계층 사이에서 동작하는 보안 프로토콜로, 데이터 통신 중에 발생할 수 있는 도청, 위조, 변조 등의 위협으로부터 정보를 보호하기 위해 사용됩니다. 현재는 SSL이 아닌 TLS가 업계 표준으로 자리잡고 있으며, HTTPS, SMTPS, FTPS 등 다양한 보안 통신 프로토콜에서 필수적으로 사용됩니다.

  • 계층 위치: 응용 계층과 전송 계층 사이
  • 사용 예시: HTTPS, SMTP 보안, 파일 전송 보안, VPN 암호화
  • 기본 포트: 직접 사용되는 포트는 없으며, 암호화된 상위 프로토콜이 각기 고유 포트를 사용 (예: HTTPS - 443)
  • 특징
    • 인터넷을 통한 데이터 통신에서 기밀성, 무결성, 인증을 보장합니다.
    • 서버 인증서를 통해 사용자는 상대가 신뢰할 수 있는 서버임을 확인할 수 있습니다.
    • 대칭키와 비대칭키 암호화 방식을 혼합하여 성능과 보안을 모두 확보합니다.
    • 다양한 응용 계층 프로토콜 위에서 보안 계층으로 작동합니다.
  • 작동 방식 요약
    1. 클라이언트가 서버에 접속 요청을 보내며, 지원 가능한 암호화 알고리즘 목록을 전달합니다.
    2. 서버는 자신이 선택한 암호화 방식과 함께 디지털 인증서를 전달합니다.
    3. 클라이언트는 인증서의 유효성을 검증하고, 세션 키를 생성합니다.
    4. 이 세션 키를 기반으로 양쪽은 대칭키 암호화 방식으로 안전한 통신을 시작합니다.

SSL/TLS는 오늘날 웹 통신을 비롯한 다양한 데이터 전송 환경에서 기본 보안 수단으로 작동하고 있으며, 사용자 정보 보호와 서비스 신뢰성 확보에 필수적인 요소로 자리잡고 있습니다.

 

HTTP (HyperText Transfer Protocol)

HTTP vs HTTPS, 출처:Cloudflare why-is-http-not-secure

HTTP는 응용 계층(7계층)에서 동작하는 웹 통신의 기본 프로토콜입니다. 사용자가 웹 브라우저를 통해 웹사이트를 요청할 때, 이 요청과 응답은 HTTP를 통해 전송됩니다. 웹 서버와 클라이언트 간의 HTML, 이미지, 영상 등의 리소스를 주고받는 데 사용됩니다.

  • 포트 번호: 80번
  • 주요 기능: 웹 페이지 요청/응답, 텍스트 및 멀티미디어 전송
  • 특징
    • 비연결성(Stateless): 각 요청은 독립적으로 처리되며, 이전 상태를 기억하지 않습니다.
    • 텍스트 기반 프로토콜: 사람이 읽을 수 있는 방식으로 헤더와 본문을 구성합니다.
    • 클라이언트-서버 구조: 브라우저가 요청을 보내면 서버가 응답하는 방식으로 동작합니다.
    • 보안 없음: 기본 HTTP는 데이터를 암호화하지 않아, 중간자 공격이나 도청에 취약합니다.

HTTP는 웹 페이지를 구성하는 다양한 요소를 전송할 수 있으나, 암호화 기능이 없어 개인 정보나 인증 정보 전송에는 부적절합니다.

 

  • HTTP의 작동 방식 예시
    1. 브라우저가 GET 요청을 전송: GET /index.html HTTP/1.1
    2. 서버가 HTML 문서를 응답: 200 OK 와 함께 HTML 코드 반환
  • 보완 방법
    • HTTP는 보안 기능이 없기 때문에, SSL/TLS를 결합한 HTTPS를 통해 암호화하여 사용하는 것이 일반적입니다.
    • 사용자 인증, 세션 유지 등은 쿠키, 세션, 토큰 등의 기술을 함께 사용하여 구현합니다.

HTTP는 인터넷을 구성하는 핵심 요소이며, REST API, 웹 브라우저 통신, IoT 등 다양한 분야에서 활용됩니다.

 

HTTPS (HyperText Transfer Protocol Secure)

HTTPS는 HTTP에 SSL/TLS 암호화 계층을 추가한 보안 프로토콜로, 응용 계층(7계층)에서 동작합니다. 사용자의 웹 요청과 응답을 암호화하여, 데이터가 도청, 위조, 변조 없이 안전하게 전달될 수 있도록 보장합니다.

  • 포트 번호: 443번
  • 주요 기능: 웹 요청/응답 전송 + 암호화, 인증, 무결성 보호
  • 특징
    • SSL/TLS 기반 암호화: 클라이언트와 서버 간 전송되는 모든 데이터를 암호화합니다
    • 인증서 기반 신원 확인: 서버는 신뢰할 수 있는 기관(CA)으로부터 발급받은 인증서를 통해 자신을 증명합니다.
    • 기밀성, 무결성, 인증을 동시에 보장합니다.
    • 사용자 정보, 로그인 데이터, 결제 정보 등을 안전하게 보호할 수 있습니다.
    • 작동 방식 요약
      1. 클라이언트의 HTTPS 연결 요청
      2. 서버가 인증서를 클라이언트에 전달
      3. 클라이언트는 인증서의 유효성 검증 후, 세션 키 교환 수행
      4. 이후 암호화된 HTTP 통신 시작

HTTPS는 오늘날 웹 통신의 사실상 표준이며, 사용자 신뢰와 데이터 보호를 위한 필수 조건입니다. HTTPS는 검색엔진 최적화(SEO)에서도 중요한 요소로 작용하며, 현재 대부분의 사이트는 HTTPs를 기본으로 합니다.

 

FTP (File Transfer Protocol)

FTP, 출처: filestash what-is-ftp

  • 네트워크 상에서 파일을 송수신하는 데 사용되는 프로토콜입니다.
  • 클라이언트-서버 구조를 기반으로 하며, 명령 채널(제어용)데이터 채널(파일 전송용)을 분리합니다.
  • 기본 포트는 21번이며, 익명 접속(anonymous)도 가능합니다.

FTP는 암호화 기능이 없어 보안에 취약하므로, 민감한 파일 전송 시에는 SFTP 또는 FTPS를 사용하는 것이 권장됩니다.

 

SMTP (Simple Mail Transfer Protocol)

  • 이메일을 송신하기 위한 프로토콜로, 메일 클라이언트 → 메일 서버, 또는 서버 간 메일 전송에 사용됩니다.
  • 기본 포트는 25번, 암호화가 추가된 경우 465번(SSL), 587번(TLS) 포트가 사용됩니다.

SMTP는 수신용이 아니라 송신용 프로토콜이며, 수신을 위해서는 POP3나 IMAP과 함께 사용됩니다.

 

POP3 (Post Office Protocol v3)

  • 메일 수신 프로토콜로, 클라이언트가 메일 서버로부터 메일을 다운로드하여 로컬에 저장합니다.
  • 기본 포트는 110번, SSL을 사용할 경우 995번입니다.

POP3는 수신 후 서버에서 메일을 삭제하기 때문에, 다른 장치에서는 동일 메일을 다시 확인할 수 없는 구조입니다.
오프라인 환경에서 메일을 확인하고자 할 때 유용하지만, 여러 장치에서 동일 메일을 관리하기에는 불리합니다.

 

IMAP (Internet Message Access Protocol)

  • POP3와 유사하게 메일 수신을 위한 프로토콜이지만, 서버에서 메일을 직접 관리하는 방식입니다.
  • 클라이언트는 메일을 서버에 남겨두고 읽거나 분류만 하며, 여러 장치에서 동일한 메일함을 동기화할 수 있습니다.
  • 기본 포트는 143번, SSL을 사용할 경우 993번입니다.

IMAP은 현대적인 메일 환경에 적합하며, Gmail, Outlook 등 대부분의 이메일 서비스가 IMAP을 지원합니다.

 

SFTP (SSH File Transfer Protocol)

  • FTP와 유사한 파일 전송 프로토콜이지만, SSH(Secure Shell)를 기반으로 하여 암호화와 인증 기능을 강화했습니다.
  • 기본 포트는 22번이며, 로그인 정보, 파일 내용, 명령어 모두 암호화되어 전송됩니다.

SFTP는 FTP와는 별개의 프로토콜로, 보안이 중요한 환경에서 파일 전송 시 표준으로 사용됩니다. FTP와 혼동하지 않도록 주의해야 합니다.

 

SNMP (Simple Network Management Protocol)

  • 네트워크 장비(라우터, 스위치, 서버 등)를 모니터링하고 제어하기 위한 관리용 프로토콜입니다.
  • 관리자는 SNMP를 통해 장비의 상태 정보(MIB)를 수집하고, 설정을 변경할 수 있습니다.
  • 기본 포트는 UDP 161번, 트랩 메시지는 162번에서 수신됩니다.

SNMP는 대규모 네트워크 환경에서 중앙 집중식 네트워크 관리를 가능하게 해주며, 장애 발생 시 빠르게 탐지할 수 있도록 돕습니다.
보안이 취약했던 초기 버전과 달리, SNMPv3는 암호화 및 인증 기능을 제공하여 보안을 강화했습니다.

 

SSH (Secure Shell)

SSH의 작동방식, 출처: nwkings

 

SSH는 응용 계층(7계층)에서 동작하는 보안 원격 접속 프로토콜로, 인터넷과 같은 공개 네트워크 환경에서도 암호화를 통해 안전한 통신을 보장합니다. 로그인, 원격 제어, 파일 전송 등 다양한 목적으로 사용되며, 기존의 Telnet, FTP, rlogin과 같은 보안이 미흡한 프로토콜의 안전한 대안으로 널리 활용됩니다. SSH는 내부적으로는 4계층(TCP) 위에서 동작하지만, 이는 전송 수단으로 활용되는 것입니다.

  • 포트 번호: 22번
  • 주요 기능: 원격 로그인, 명령어 실행, 안전한 파일 송수신(SCP, SFTP), 포트 포워딩(터널링)

예를 들어, 개발자는 SSH를 사용해 원격 리눅스 서버에 접속하여 코드를 배포하거나, GitHub에 코드를 Push하며, AWS EC2 인스턴스에 접속하기 위해 SSH 키를 사용합니다.

  • 보안성
    • 모든 데이터(인증 정보, 명령, 결과 등)를 암호화하여 전송
    • 평문 전송을 방지하고, 중간자 공격 및 패킷 도청을 차단
    • 공개키/개인키 기반 인증을 통해 패스워드 없이도 강력한 인증이 가능함
  • 사용 도구
    • PuTTY, OpenSSH, Git, AWS CLI 등 다양한 환경에서 SSH 클라이언트 기능 제공
    • 명령줄 기반 인터페이스를 통해 서버를 직접 제어 가능

SSH는 오늘날 클라우드 인프라 운영, 서버 자동화, 코드 배포, 보안 터널링 등 다양한 IT 업무에 필수적인 기술로 자리 잡고 있으며, 모든 개발자와 운영자에게 기본적으로 요구되는 프로토콜입니다.

 

Telnet (Telecommunication Network)

Telnet은 응용 계층(7계층)에서 동작하는 텍스트 기반의 원격 접속 프로토콜입니다. 원격 장비에 로그인하여 명령을 실행할 수 있게 해주며, 초창기 인터넷 환경에서 서버 관리, 네트워크 장비 설정 등 다양한 용도로 사용되었습니다.

 

  • 포트 번호: 23번
  • 주요 기능: 명령어를 통한 원격 장비 제어, 텍스트 기반의 터미널 접속
  • 특징
    • 모든 데이터가 암호화 없이 평문으로 전송되므로, 보안에 매우 취약합니다.
    • 패스워드, 명령어, 결과 모두 노출 가능하여, 도청이나 중간자 공격에 쉽게 노출됩니다.
    • 연결이 간단하고 설정이 쉬워, 보안이 필요하지 않은 테스트 환경이나 내부 네트워크에서 제한적으로 사용됩니다.

예전에는 네트워크 장비 설정 시 Telnet을 사용했지만, 보안 문제로 인해 현재는 SSH로 거의 대체된 상태입니다.

 

DNS (Domain Name System)

DNS 작동원리, 출처: Cloudflare blog

 

DNS는 도메인 이름을 IP 주소로 변환해주는 분산형 네이밍 시스템으로, 응용 계층(7계층)에서 동작합니다. 사용자가 웹사이트 주소(www.example.com)를 입력하면, DNS는 이 주소에 대응하는 서버의 실제 IP 주소를 찾아주는 역할을 합니다. 인터넷에서 사용되는 모든 도메인 요청은 DNS를 통해 이루어집니다.

  • 포트 번호: 53번 (UDP, 일부 경우 TCP도 사용)
  • 주요 기능: 도메인 이름 → IP 주소 변환 (호스트 이름 해석)
  • 특징
    • 사람이 기억하기 쉬운 도메인 이름과 실제 통신에 필요한 IP 주소를 연결합니다.
    • 계층적 네임스페이스 구조를 가지고 있으며, 루트 도메인에서 하위 도메인으로 점차 내려가는 방식으로 작동합니다.
    • 전 세계적으로 분산된 네임서버를 통해 고가용성과 확장성을 보장합니다.
    • 캐시 기능을 통해 동일한 요청에 대해 빠른 응답을 제공합니다.
    • DNS 스푸핑, 캐시 포이즈닝 등 보안 이슈를 완화하기 위해 DNSSEC와 같은 보안 확장 기술이 사용됩니다.
  • 작동 방식 요약
    1. 사용자가 웹사이트 주소 입력 시, 로컬 DNS 캐시를 먼저 확인합니다.
    2. 캐시에 없으면, ISP의 DNS 서버로 질의가 전송됩니다.
    3. ISP DNS가 정보를 갖고 있지 않으면, 루트 네임서버 → TLD 네임서버 → 권한 있는 네임서버 순으로 질의가 위임됩니다.
    4. 최종적으로 도메인에 해당하는 IP 주소를 응답받아 사용자에게 전달하고, 접속이 이루어집니다.

DNS는 인터넷을 구성하는 핵심 인프라 중 하나로, 우리가 도메인 기반으로 웹에 접속할 수 있도록 해주는 인터넷의 전화번호부와 같은 존재입니다.

 

OAuth (Open Authorization)

Oauth 작동방식, 출처: Frontegg

 

OAuth는 사용자의 자격 증명을 노출하지 않고도, 제3의 애플리케이션이 사용자 정보를 안전하게 접근할 수 있도록 해주는 인증 프로토콜입니다. 응용 계층(7계층)에서 동작하며, 특히 SNS, 클라우드 서비스, API 통합 등에서 필수적인 인증 기술로 사용됩니다.

  • 계층 위치: 응용 계층
  • 사용 예시: ‘Google 계정으로 로그인’, ‘페이스북으로 로그인’, 외부 앱이 사용자 데이터를 접근할 수 있게 허용하는 경우
  • 특징
    • 사용자 비밀번호를 제3자 애플리케이션에 직접 제공하지 않아도 됩니다.
    • 액세스 토큰 기반 인증 방식으로, 일정한 권한만을 위임할 수 있습니다.
    • 권한 범위(Scope), 만료 시간 등을 설정할 수 있어 보안성과 제어력이 뛰어납니다.
    • 다양한 플랫폼 간 인증 통합이 가능하여, 사용자 편의성과 개발 생산성을 높입니다.
  • 작동 방식 요약
    1. 사용자가 외부 애플리케이션에서 인증 요청 버튼(예: Google 로그인)을 클릭합니다.
    2. 애플리케이션은 OAuth 제공자(Google, Naver 등)로 리디렉션하여 인증을 요청합니다.
    3. 사용자가 인증 및 권한 부여를 승인하면, 인증 서버는 애플리케이션에 Access Token을 발급합니다.
    4. 애플리케이션은 이 토큰을 사용해 사용자 데이터를 안전하게 요청합니다.

OAuth는 사용자 정보 보호와 동시에 서비스 간 연동을 원활하게 할 수 있도록 설계된 구조로, 오늘날 거의 모든 대형 서비스에서 표준 인증 수단으로 채택되고 있습니다.

 

WebSocket

WebSocket은 HTTP 기반의 초기 핸드셰이크 이후, 클라이언트와 서버 간에 전이중(Full Duplex) 통신을 지속적으로 유지할 수 있게 해주는 프로토콜입니다. 응용 계층(7계층)에서 동작하며, 실시간 양방향 데이터 전송이 필요한 서비스에서 사용됩니다. 예: 채팅, 주식 시세, 온라인 게임 등

  • 포트 번호: 기본적으로 HTTP 기반은 80, HTTPS 기반은 443
  • 계층 위치: 응용 계층
  • 사용 예시: 실시간 채팅, 알림 시스템, IoT, 웹 기반 협업 도구
  • 특징
    • 한 번 연결되면, 클라이언트와 서버 간 지속적인 양방향 통신이 가능해집니다.
    • HTTP 요청-응답 방식의 오버헤드를 줄이고, 지연시간(latency)을 획기적으로 낮춥니다.
    • 브라우저와 서버 간에 직접적인 통신 채널을 유지하여, 실시간 데이터 교환에 적합합니다.
    • HTTP와 호환되기 때문에, 기존 인프라와 쉽게 통합 가능합니다.
  • 작동 방식 요약
    1. 클라이언트가 HTTP Upgrade 요청을 통해 WebSocket 연결을 요청합니다.
    2. 서버가 요청을 수락하면, WebSocket 프로토콜로 전환되어 연결이 유지됩니다.
    3. 이후에는 클라이언트와 서버가 서로 자유롭게 데이터를 주고받을 수 있습니다.
    4. 연결이 닫히기 전까지는 별도의 재연결 없이 통신을 계속할 수 있습니다.

WebSocket은 기존 HTTP의 한계를 극복하고, 현대적인 웹 애플리케이션에 실시간성을 부여하는 핵심 기술로 자리 잡고 있습니다.

 

참고자료

이하는 글을 작성하기 위해 참고한 자료들입니다.

 

https://velog.io/@mingkimk/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B3%84%EC%B8%B5%EB%B3%84-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9CLayer-Protocol

 

네트워크 계층별 프로토콜(Layer Protocol)

링크텍스트(출처: https://needjarvis.tistory.com/158 자비스가 필요해)네트워크 프로토콜을 설명하기 위해서는 우선 OSI 7 Layer와 TCP/IP의 4 Layer를 이해하고 있어야 한다. 특히 OSI 7 Layer를 이해하고 있으면

velog.io

 

https://blog.naver.com/onsystems/223367862331

 

[네트워크 이론 칼럼-4장] 프로토콜(Protocol)과 OSI 7계층 초간단 이해하기

“OSI 7계층이 뭐지?” 하시는 분들 “프로토콜이 어떻게 쓰이는 거야?”하고 궁금하신 분들 이런 분들...

blog.naver.com