[Network] TCP/IP 프로토콜

2025. 10. 24. 12:53·Network Concepts

1. TCP/IP 프로토콜 스택이란?

TCP/IP 프로토콜 스택(Protocol Stack)은 인터넷과 대부분의 현대 네트워크에서 사용되는 통신 프로토콜의 집합입니다. 1970년대 미국 국방부의 ARPANET 프로젝트에서 시작되어 현재는 사실상 인터넷 통신의 표준으로 자리잡았습니다.

TCP/IP는 OSI 7계층 모델을 실무적으로 단순화한 4계층 모델로 구성되어 있으며, 각 계층은 특정한 네트워크 기능을 담당합니다. OSI 모델이 이론적 참조 모델이라면, TCP/IP는 실제로 구현되어 동작하는 프로토콜 모음이라고 할 수 있습니다.


2. TCP/IP 4계층 구조

TCP/IP는 다음과 같이 4개의 계층으로 구성됩니다. 각 계층은 독립적으로 동작하면서도 상하 계층과 긴밀하게 협력하여 데이터 전송을 수행합니다.

네트워크 인터페이스 계층 (Network Interface Layer)

네트워크 인터페이스 계층은 물리적인 네트워크 하드웨어와 직접 상호작용하는 최하위 계층입니다. 이 계층은 실제 네트워크 매체를 통해 데이터를 전송하고 수신하는 역할을 담당합니다.

OSI 모델의 물리 계층과 데이터 링크 계층을 포함하며, 이더넷, Wi-Fi, PPP와 같은 프로토콜들이 이 계층에서 동작합니다. MAC 주소를 이용한 로컬 네트워크 내에서의 통신이 이루어지며, 프레임 단위로 데이터를 처리합니다.

주요 기능:

  • 물리적 주소(MAC 주소) 지정
  • 프레임 생성 및 전송
  • 오류 검출 (CRC 등)
  • 네트워크 접근 제어

대표 프로토콜: Ethernet, Wi-Fi (802.11), ARP, PPP

인터넷 계층 (Internet Layer)

인터넷 계층은 서로 다른 네트워크 간의 데이터 전송을 담당하는 핵심 계층입니다. 이 계층에서는 논리적 주소인 IP 주소를 사용하여 패킷을 목적지까지 라우팅합니다.

패킷의 최적 경로를 결정하고, 네트워크 간 데이터 전달을 관리합니다. 또한 패킷이 너무 클 경우 분할(fragmentation)하고, 목적지에서 재조립(reassembly)하는 기능도 수행합니다.

주요 기능:

  • 논리적 주소(IP 주소) 지정
  • 패킷 라우팅 및 전달
  • 패킷 분할 및 재조립
  • 오류 보고 및 진단

대표 프로토콜: IP, ICMP, IGMP, IPsec

전송 계층 (Transport Layer)

전송 계층은 종단 간(end-to-end) 통신을 관리하는 계층입니다. 애플리케이션 프로세스 간의 논리적 통신을 제공하며, 데이터의 신뢰성과 흐름 제어를 담당합니다.

이 계층에서는 포트 번호를 사용하여 특정 애플리케이션으로 데이터를 전달합니다. TCP와 UDP라는 두 가지 주요 프로토콜이 존재하며, 각각 다른 특성을 가지고 있습니다.

TCP의 특징:

  • 연결 지향적 프로토콜
  • 신뢰성 있는 데이터 전송 보장
  • 흐름 제어 및 혼잡 제어
  • 순서 보장 및 오류 복구
  • 3-way handshake를 통한 연결 수립

UDP의 특징:

  • 비연결형 프로토콜
  • 신뢰성보다 속도 우선
  • 오버헤드가 적음
  • 실시간 통신에 적합
  • 브로드캐스트 및 멀티캐스트 지원

대표 프로토콜: TCP, UDP, SCTP

응용 계층 (Application Layer)

응용 계층은 사용자와 가장 가까운 최상위 계층으로, 실제 네트워크 애플리케이션이 동작하는 계층입니다. 이 계층은 OSI 모델의 세션, 프레젠테이션, 응용 계층을 통합한 형태입니다.

다양한 네트워크 서비스와 애플리케이션 프로토콜이 이 계층에서 동작하며, 사용자 인터페이스를 제공하고 데이터 표현 방식을 정의합니다.

주요 기능:

  • 사용자 인터페이스 제공
  • 네트워크 서비스 접근
  • 데이터 형식 변환
  • 암호화 및 압축

대표 프로토콜: HTTP/HTTPS, FTP, SMTP, DNS, SSH, Telnet, DHCP, SNMP


3. 데이터 캡슐화와 역캡슐화

TCP/IP 프로토콜 스택에서 데이터가 전송될 때는 계층을 거치면서 헤더 정보가 추가되는 캡슐화(Encapsulation) 과정을 거칩니다. 반대로 수신 측에서는 각 계층의 헤더를 제거하는 역캡슐화(Decapsulation)가 진행됩니다.

송신 과정 (캡슐화)

응용 계층에서 생성된 데이터는 각 하위 계층을 거치면서 해당 계층의 제어 정보가 헤더로 추가됩니다.

1단계 - 응용 계층: 사용자 데이터 생성

2단계 - 전송 계층: TCP 또는 UDP 헤더 추가 → 세그먼트(Segment) 생성

  • 출발지/목적지 포트 번호
  • 시퀀스 번호 (TCP)
  • 체크섬

3단계 - 인터넷 계층: IP 헤더 추가 → 패킷(Packet) 생성

  • 출발지/목적지 IP 주소
  • TTL(Time To Live)
  • 프로토콜 정보

4단계 - 네트워크 인터페이스 계층: 이더넷 헤더 및 트레일러 추가 → 프레임(Frame) 생성

  • 출발지/목적지 MAC 주소
  • 프레임 체크 시퀀스(FCS)

수신 과정 (역캡슐화)

수신된 프레임은 각 계층을 올라가면서 헤더가 제거되고 검증됩니다.

네트워크 인터페이스 계층에서 프레임의 목적지 MAC 주소를 확인하고, 오류 검사를 수행합니다. 인터넷 계층에서는 IP 헤더를 확인하여 올바른 목적지인지 검증하고, 전송 계층에서는 포트 번호를 통해 해당 애플리케이션으로 데이터를 전달합니다. 최종적으로 응용 계층에서 원본 데이터를 복원하여 사용자에게 제공합니다.


4. 주요 TCP/IP 프로토콜 심화

IP (Internet Protocol)

IP는 인터넷 계층의 핵심 프로토콜로, 패킷을 목적지까지 전달하는 비연결형, 비신뢰성 프로토콜입니다. 현재 IPv4와 IPv6 두 가지 버전이 사용되고 있습니다.

IPv4는 32비트 주소 체계를 사용하며 약 43억 개의 주소를 제공하지만, 주소 고갈 문제가 발생했습니다. IPv6는 128비트 주소 체계로 사실상 무한대의 주소 공간을 제공하며, 보안 기능이 강화되고 헤더 구조가 단순화되었습니다.

TCP (Transmission Control Protocol)

TCP는 연결 지향적이고 신뢰성 있는 데이터 전송을 보장하는 프로토콜입니다.

3-way Handshake (연결 수립):

3-way Handshake (출처: https://jaehyeon48.github.io/)

  1. 클라이언트 → 서버: SYN
  2. 서버 → 클라이언트: SYN-ACK
  3. 클라이언트 → 서버: ACK

4-way Handshake (연결 종료):

4-way Handshake (출처: https://jaehyeon48.github.io)

  1. 클라이언트 → 서버: FIN
  2. 서버 → 클라이언트: ACK
  3. 서버 → 클라이언트: FIN
  4. 클라이언트 → 서버: ACK

TCP는 흐름 제어를 위해 슬라이딩 윈도우 방식을 사용하고, 혼잡 제어를 위해 Slow Start, Congestion Avoidance, Fast Retransmit, Fast Recovery 알고리즘을 활용합니다.

UDP (User Datagram Protocol)

UDP는 비연결형 프로토콜로 빠른 전송이 필요한 경우에 사용됩니다. 실시간 스트리밍, VoIP, 온라인 게임, DNS 조회 등에 적합하며, 오버헤드가 적고 브로드캐스트 및 멀티캐스트를 지원합니다.

ICMP (Internet Control Message Protocol)

ICMP는 네트워크 진단과 오류 보고를 위한 프로토콜입니다. Ping과 Traceroute 같은 네트워크 유틸리티가 ICMP를 사용하며, 목적지 도달 불가, TTL 초과, 에코 요청/응답 등의 메시지를 처리합니다.


5. 포트 번호와 소켓

포트 번호의 역할

포트 번호는 16비트 숫자(0-65535)로, 하나의 호스트 내에서 여러 네트워크 애플리케이션을 구분하는 역할을 합니다. IP 주소가 건물의 주소라면, 포트 번호는 건물 내 특정 호수라고 비유할 수 있습니다.

포트 번호 분류:

Well-known Ports (0-1023): 시스템 포트로 특정 서비스에 예약됨

  • HTTP: 80
  • HTTPS: 443
  • FTP: 20, 21
  • SSH: 22
  • Telnet: 23
  • DNS: 53
  • SMTP: 25

Registered Ports (1024-49151): 등록된 애플리케이션이 사용

  • MySQL: 3306
  • PostgreSQL: 5432
  • RDP: 3389

Dynamic/Private Ports (49152-65535): 클라이언트가 임시로 사용하는 포트

소켓 (Socket)

소켓은 IP 주소와 포트 번호의 조합으로, 네트워크 통신의 종단점을 나타냅니다.

예시: 192.168.1.100:8080 (IP 주소:포트 번호)

응용 프로그램은 소켓을 통해 네트워크 통신을 수행하며, 하나의 연결은 송신 소켓과 수신 소켓의 쌍으로 구성됩니다.


마무리 및 정리

TCP/IP 프로토콜 스택은 현대 네트워크 통신의 근간을 이루는 핵심 기술입니다. 4개 계층의 명확한 역할 분담을 통해 효율적이고 확장 가능한 네트워크 구조를 제공하며, 각 계층이 독립적으로 동작하면서도 상호 협력하여 데이터 전송을 수행합니다.

네트워크 엔지니어는 TCP/IP의 각 계층을 깊이 이해함으로써 문제 해결 능력을 향상시키고, 성능을 최적화하며, 보안을 강화할 수 있습니다. 또한 새로운 네트워크 기술을 학습하고 적용하는 데 있어서도 TCP/IP에 대한 이해는 필수적입니다.

 

다음 글에서는 데이터 링크 계층의 핵심 프로토콜인 ARP에 대해 자세히 알아보겠습니다.

'Network Concepts' 카테고리의 다른 글

[Network] ARP (Address Resolution Protocol) - 주소 결정 프로토콜  (0) 2025.10.28
[Network] 서브넷 마스크와 서브네팅 (feat. FLSM, VLSM)  (1) 2025.10.27
[Network] IP 주소 체계 (IPv4)  (0) 2025.10.26
[Network] Unicast, Broadcast, Multicast  (0) 2025.10.24
[Network] OSI 7계층 모델 vs TCP/IP 4계층  (0) 2025.10.23
'Network Concepts' 카테고리의 다른 글
  • [Network] 서브넷 마스크와 서브네팅 (feat. FLSM, VLSM)
  • [Network] IP 주소 체계 (IPv4)
  • [Network] Unicast, Broadcast, Multicast
  • [Network] OSI 7계층 모델 vs TCP/IP 4계층
김슭삵
김슭삵
Layer By Layer. 한 층씩 성장 해가는 네트워크와 서버의 학습 공간
  • 김슭삵
    Layer By Layer
    김슭삵
  • 전체
    오늘
    어제
    • 분류 전체보기 (49)
      • Network Concepts (36)
      • Network Practice (12)
      • Linux (0)
      • AWS & Cloud (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    wireshark
    Network
    LACP
    dhcp
    Cisco
    Etherchannel
    Port Mirroring
    vlan
    ACL
    WLAN
    RSPAN
    ERSPAN
    HSRP
    TCP/IP
    gns3
    dai
    ARP
    ROAS
    dns
    Nat
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
김슭삵
[Network] TCP/IP 프로토콜
상단으로

티스토리툴바