Unisquads
로그인
홈
이용약관·개인정보처리방침·콘텐츠정책·© 2026 Unisquads
이용약관·개인정보처리방침·콘텐츠정책
© 2026 Unisquads. All rights reserved.

TCP IP 프로토콜 스택 (r1)

이 문서의 과거 버전 (r1)을 보고 있습니다. 수정일: 2026.02.14 21:22

TCP IP 프로토콜 스택

이름

TCP/IP 프로토콜 스택

분류

네트워크 프로토콜 스택

계층 수

4계층 또는 5계층

주요 계층

응용 계층, 전송 계층, 인터넷 계층, 네트워크 접속 계층

핵심 프로토콜

TCP, IP, UDP, ICMP

개발

1970년대 DARPA 연구에서 시작

표준화

IETF (RFC 문서)

주요 용도

인터넷 및 대부분의 컴퓨터 네트워크 통신

상세 정보

계층 모델

OSI 7계층 모델과 비교되는 4계층 또는 5계층 모델

응용 계층

HTTP, FTP, SMTP, DNS 등

전송 계층

TCP (연결형, 신뢰성), UDP (비연결형, 신속성)

인터넷 계층

IP (IPv4, IPv6), ICMP, ARP

네트워크 접속 계층

이더넷, Wi-Fi, PPP 등 물리적/데이터 링크 기술

주소 체계

IP 주소 (논리 주소), MAC 주소 (물리 주소)

데이터 단위

세그먼트/데이터그램 (전송), 패킷 (인터넷), 프레임 (네트워크 접속)

라우팅

라우팅 프로토콜 (BGP, OSPF)을 통한 경로 결정

보안

IPsec, TLS/SSL (상위 계층에서 구현)

구현

운영체제 커널 내장 (예: 리눅스 커널, 윈도우 TCP/IP 스택)

관련 RFC

RFC 791 (IP), RFC 793 (TCP), RFC 768 (UDP) 등

1. 개요

TCP IP 프로토콜 스택은 인터넷을 포함한 대부분의 컴퓨터 네트워크 통신의 기반이 되는 통신 규약의 집합이다. 이 모델은 데이터 통신을 네 개의 추상화된 계층으로 구분하여, 각 계층이 특정한 기능을 담당하도록 설계되었다. 이 계층적 접근 방식은 네트워크 시스템의 설계, 구현, 문제 해결을 단순화하는 핵심 원리이다.

TCP/IP는 인터넷 프로토콜 스위트라고도 불리며, 그 이름은 이 스택의 가장 핵심적인 두 프로토콜인 전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)에서 유래한다. 이 모델은 1970년대 미국 국방부의 연구 프로젝트에서 시작되어 점차 발전했으며, 이후 상업화와 표준화를 거쳐 오늘날 전 세계 네트워크의 사실상(de facto) 표준이 되었다.

TCP/IP의 주요 목표는 이기종 네트워크와 장비 간의 상호 운용성을 보장하는 것이다. 서로 다른 하드웨어나 운영체제를 사용하는 컴퓨터라도 TCP/IP 프로토콜을 구현하면 표준화된 방식으로 데이터를 교환할 수 있다. 이는 개방형 시스템 간 상호 접속(OSI) 모델보다 실용적이고 단순한 설계 철학을 바탕으로 하여, 실제 네트워크 구현의 표준으로 자리 잡게 되었다.

특징

설명

계층적 구조

링크 계층, 인터넷 계층, 전송 계층, 응용 계층의 4계층으로 구성된다.

패킷 교환

데이터는 작은 단위의 패킷으로 나누어 전송되며, 각 패킷은 독립적으로 경로를 선택한다.

엔드투엔드 원칙

네트워크 코어는 단순하게 유지하고, 지능(복잡성)은 네트워크의 끝단(호스트)에 위치시킨다.

탄력적인 라우팅

IP 프로토콜을 통해 경로 장애 시 대체 경로를 찾는 견고한 통신을 가능하게 한다.

2. 계층 구조

TCP IP 프로토콜 스택은 네트워크 통신을 4개의 논리적 계층으로 나누어 설계한다. 각 계층은 특정한 기능을 담당하며, 상위 계층은 하위 계층의 서비스를 이용하여 데이터를 전송한다. 이 계층화된 구조는 복잡한 통신 과정을 모듈화하여 설계, 구현, 문제 해결을 용이하게 한다.

주요 4계층은 다음과 같다.

계층

주요 프로토콜

기본 단위

주요 역할

응용 계층

HTTP, DNS, FTP, SMTP

메시지/데이터

사용자 애플리케이션에 네트워크 서비스 제공

전송 계층

TCP, UDP

세그먼트(TCP), 데이터그램(UDP)

프로세스 간 논리적 통신, 신뢰성/흐름 제어

인터넷 계층

IP, ICMP

패킷

논리적 주소(IP 주소)를 사용한 경로 선택과 단말 간 전송

링크 계층

이더넷, ARP

프레임

물리적 네트워크 매체를 통해 실제 데이터 전송

데이터는 응용 계층에서 생성되어 하위 계층으로 전달되며, 각 계층은 자신의 제어 정보(헤더)를 추가하는 캡슐화 과정을 거친다. 수신 측에서는 반대 순서로 역캡슐화가 이루어져 최종적으로 응용 프로그램에 데이터가 도착한다. 이 구조는 하위 계층의 기술이 변경되어도 상위 계층에 영향을 최소화하는 이점을 제공한다.

2.1. OSI 7계층과의 비교

TCP IP 프로토콜 스택은 OSI 모델보다 먼저 개발되어 실제 인터넷의 기반이 된 실용적인 참조 모델이다. 두 모델 모두 네트워크 통신을 계층적으로 나누어 설명하지만, 계층 수와 설계 철학에서 차이를 보인다. TCP/IP 모델은 4개의 계층(링크, 인터넷, 전송, 응용)으로 구성되는 반면, OSI 모델은 보다 세분화된 7개의 계층(물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용)을 정의한다.

주요 차이점은 다음과 같다.

비교 항목

TCP/IP 모델

OSI 모델

계층 수

4계층

7계층

개발 배경

실용적, 실제 프로토콜 기반

이론적, 표준화 지향

상호 운용성

프로토콜 집합 자체가 표준

프로토콜 독립적인 프레임워크

접근 방식

수평적 접근 (엔드 투 엔드)

수직적 접근 (계층별 엄격한 분리)

TCP/IP 모델의 링크 계층은 OSI의 물리 계층과 데이터 링크 계층의 기능을 통합한다. 인터넷 계층은 OSI의 네트워크 계층에 대응하며, IP 프로토콜이 핵심 역할을 담당한다. 전송 계층은 두 모델에서 동일한 이름과 개념(TCP, UDP)을 공유한다. 가장 큰 차이는 상위 계층에서 나타나는데, TCP/IP의 응용 계층 하나가 OSI의 세션 계층, 표현 계층, 응용 계층에 해당하는 모든 기능을 포괄한다[1].

결과적으로 OSI 모델은 교육이나 개념적 설명에 유용한 이론적 틀을 제공하는 반면, TCP/IP 모델은 실제 인터넷과 대부분의 현대 네트워크에서 사용되는 프로토콜들의 구조를 직접적으로 반영한다. 현대의 네트워크 교육과 설명은 흔히 두 모델을 혼합한 5계층 모델(물리, 데이터 링크, 네트워크, 전송, 응용)을 참조하기도 한다.

2.2. 각 계층의 역할

TCP/IP 프로토콜 스택은 일반적으로 4개의 계층으로 구성되며, 각 계층은 특정한 통신 기능을 담당합니다. 상위 계층은 하위 계층이 제공하는 서비스를 기반으로 동작하며, 데이터는 상위 계층에서 하위 계층으로 내려가면서 캡슐화되고, 반대 방향으로 올라가면서 역캡슐화됩니다.

응용 계층은 최상위 계층으로, 사용자나 응용 프로그램이 네트워크 서비스를 이용할 수 있도록 인터페이스를 제공합니다. HTTP, DNS, FTP, SMTP 등 사용자가 직접 접하는 프로토콜들이 이 계층에 속합니다. 이 계층의 데이터 단위는 메시지 또는 데이터 스트림입니다.

전송 계층은 호스트 간의 논리적 통신을 담당하며, 데이터의 신뢰성 있는 전송을 보장합니다. 주요 프로토콜로는 연결 지향적이고 신뢰성 있는 TCP와 비연결형이며 간단한 UDP가 있습니다. 이 계층은 포트 번호를 사용하여 특정 응용 프로그램을 식별하고, 데이터를 세그먼트(TCP) 또는 데이터그램(UDP)으로 나눕니다.

인터넷 계층은 네트워크 상에서 패킷의 논리적 주소 지정과 경로 선택(라우팅)을 담당합니다. 핵심 프로토콜인 IP는 패킷을 목적지까지 전달하는 책임을 지며, ICMP는 오류 메시지와 운영 정보를 전달합니다. 이 계층의 데이터 단위는 패킷입니다.

링크 계층은 네트워크 인터페이스 카드와 같은 물리적 장치를 통해 인접한 노드 간의 실제 데이터 전송을 처리합니다. 이더넷, Wi-Fi와 같은 기술과 MAC 주소를 사용하며, 데이터 단위는 프레임입니다. 이 계층은 하드웨어와 가장 밀접하게 연관되어 있습니다.

계층

주요 역할

데이터 단위

대표 프로토콜/기술

응용 계층

응용 프로그램 서비스 제공

메시지/데이터

HTTP, DNS, FTP, SMTP

전송 계층

호스트 간 종단 통신, 신뢰성 보장

세그먼트/데이터그램

TCP, UDP

인터넷 계층

논리적 주소 지정, 경로 설정

패킷

IP, ICMP

링크 계층

물리적 매체를 통한 실제 전송

프레임

이더넷, Wi-Fi, ARP

3. 링크 계층

링크 계층은 TCP IP 프로토콜 스택의 가장 하위 계층으로, 물리적인 네트워크 매체를 통해 데이터를 직접 전송하는 역할을 담당한다. 이 계층은 네트워크 인터페이스 카드(NIC)와 같은 하드웨어 장치와 그 장치를 제어하는 드라이버 소프트웨어로 구성된다. 주요 기능은 같은 네트워크 세그먼트 내에서 호스트 간에 데이터 프레임을 전달하는 것이다.

이 계층의 대표적인 기술은 이더넷이다. 이더넷은 LAN에서 가장 널리 사용되는 표준으로, CSMA/CD 방식을 통해 여러 장치가 하나의 전송 매체를 공유할 수 있게 한다. 데이터는 프레임이라는 단위로 캡슐화되어 전송된다. 각 네트워크 장치는 고유한 MAC 주소를 가지며, 이는 48비트 길이의 물리적 주소로 제조 시 할당된다. MAC 주소는 프레임의 목적지와 출발지를 식별하는 데 사용된다.

같은 네트워크 내에서 통신을 위해 ARP 프로토콜이 동작한다. ARP는 상대방의 IP 주소를 알고 있을 때, 그 IP에 해당하는 MAC 주소를 찾기 위한 프로토콜이다. 예를 들어, 컴퓨터 A가 컴퓨터 B와 통신하려면 B의 MAC 주소가 필요하다. A는 네트워크에 ARP 요청 브로드캐스트를 보내고, 해당 IP를 가진 B는 자신의 MAC 주소가 담긴 ARP 응답을 보낸다. 이 정보는 일정 시간 동안 ARP 캐시에 저장되어 재사용된다.

링크 계층의 프로토콜과 표준은 네트워크 접근 방식을 정의하며, 그 종류는 다양하다.

기술/프로토콜

주요 설명

이더넷 (IEEE 802.3)

유선 LAN의 사실상 표준.

Wi-Fi (IEEE 802.11)

무선 LAN 표준.

PPP

점대점 연결(예: 전화선 모뎀)에 사용.

MAC 주소

네트워크 인터페이卡的 고유 하드웨어 주소.

ARP

IP 주소를 MAC 주소로 변환하는 프로토콜.

이 계층은 오류 검출 기능도 제공한다. 전송된 프레임에는 FCS가 포함되어 있어 수신 측에서 데이터의 무결성을 확인할 수 있다. 그러나 오류 복구는 상위 계층에 맡기고, 오류가 발견된 프레임은 단순히 폐기한다.

3.1. 이더넷

이더넷은 TCP IP 프로토콜 스택의 링크 계층에서 가장 널리 사용되는 유선 LAN 기술이다. IEEE 802.3 표준으로 정의되며, 네트워크 장치들이 공유 매체를 통해 데이터 프레임을 전송하는 방식을 규정한다. 초기에는 동축 케이블과 버스 토폴로지를 사용했으나, 현대에는 트위스티드 페어 케이블과 스위치를 이용한 스타 토폴로지가 주류를 이룬다.

이더넷은 CSMA/CD 방식을 기반으로 동작한다. 이 방식은 여러 장치가 동일한 전송 매체를 공유할 때, 데이터 충돌을 감지하고 재전송하는 메커니즘을 제공한다. 그러나 전이중 통신이 가능한 스위치 환경이 보편화되면서, CSMA/CD의 역할은 크게 줄어들었다.

전송 속도와 물리적 매체에 따라 다양한 이더넷 표준이 존재한다. 주요 발전 단계는 아래 표와 같다.

표준 명칭

속도

매체

비고

10BASE-T

10 Mbps

UTP 케이블

초기 스타 토폴로지 표준

100BASE-TX (패스트 이더넷)

100 Mbps

UTP 케이블(Cat 5)

1995년 표준화

1000BASE-T (기가비트 이더넷)

1 Gbps

UTP 케이블(Cat 5e 이상)

현재 가장 보편적

10GBASE-T

10 Gbps

UTP 케이블(Cat 6a 이상)

데이터센터 등 고속 환경

이더넷 프레임은 MAC 주소를 기반으로 목적지 장치를 식별하며, 프리앰블, 목적지/출발지 MAC 주소, 이더타입, 데이터 페이로드, FCS 등으로 구성된다. 이더넷의 단순성, 저비용, 높은 호환성은 인터넷의 기반 인프라를 구축하는 데 결정적인 역할을 했다.

3.2. MAC 주소

MAC 주소는 네트워크 인터페이스 컨트롤러(NIC)에 할당된 고유한 물리적 주소입니다. 이더넷이나 와이파이와 같은 링크 계층 기술에서 통신할 장치를 식별하는 데 사용됩니다. MAC 주소는 48비트 길이로, 일반적으로 00:1A:2B:3C:4D:5E와 같이 16진수 6쌍으로 표현됩니다. 앞쪽 24비트는 제조업체를 식별하는 OUI(Organizationally Unique Identifier)이고, 뒤쪽 24비트는 해당 제조업체가 각 장치에 할당한 일련번호입니다.

MAC 주소는 IP 주소와 달리 하드웨어에 고정되어 있으며, 일반적으로 변경되지 않습니다. 이 주소는 동일한 로컬 영역 네트워크(LAN) 내에서 데이터 프레임이 정확한 목적지에 도달하도록 하는 데 핵심적인 역할을 합니다. 스위치나 AP(Access Point)는 수신한 프레임의 목적지 MAC 주소를 확인하고, 해당 주소가 연결된 포트로만 프레임을 전달하여 네트워크 효율성을 높입니다.

구분

설명

구조

48비트(6바이트), 16진수 12자리 (예: 00-1A-2B-3C-4D-5E)

전반부 (24비트)

제조업체 코드 (OUI)

후반부 (24비트)

제조업체가 할당한 일련번호

주소 유형

유니캐스트, 멀티캐스트, 브로드캐스트(FF:FF:FF:FF:FF:FF)

작동 범위

동일한 LAN 또는 브로드캐스트 도메인 내

일부 운영 체제에서는 소프트웨어적으로 MAC 주소를 변경할 수 있지만, 이는 임시적인 조치이며 실제 하드웨어에 박힌 주소를 바꾸는 것은 아닙니다. MAC 주소는 ARP(Address Resolution Protocol) 프로토콜을 통해 논리적인 IP 주소와 매핑되어, 네트워크 통신의 기반을 이루는 중요한 식별자 역할을 합니다.

3.3. ARP 프로토콜

ARP 프로토콜은 인터넷 계층의 IP 주소를 링크 계층의 MAC 주소로 변환하는 역할을 한다. 네트워크 상에서 데이터를 전송하려면 최종 목적지의 IP 주소뿐만 아니라, 같은 네트워크 세그먼트 내에서 다음 장치의 실제 하드웨어 주소인 MAC 주소를 알아야 한다. ARP는 이 변환을 자동으로 수행하여 사용자가 수동으로 MAC 주소를 관리할 필요가 없게 한다.

ARP의 동작 과정은 다음과 같다. 특정 IP 주소에 해당하는 MAC 주소를 알기 위해, 호스트는 네트워크에 ARP 요청 브로드캐스트 패킷을 보낸다. 이 패킷은 "이 IP 주소를 가진 장치는 자신의 MAC 주소를 알려달라"는 내용을 담고 있다. 네트워크 상의 모든 장치는 이 요청을 받지만, 지정된 IP 주소를 가진 장치만이 ARP 응답 유니캐스트 패킷으로 자신의 MAC 주소를 응답한다. 요청을 보낸 호스트는 이 응답을 받아 자신의 ARP 캐시 테이블에 IP 주소와 MAC 주소의 매핑 정보를 일정 시간 동안 저장한다.

패킷 유형

전송 방식

목적

ARP 요청

브로드캐스트

특정 IP의 MAC 주소 질의

ARP 응답

유니캐스트

자신의 MAC 주소 회신

ARP 캐시는 성능을 위해 사용되지만, 이로 인해 ARP 스푸핑과 같은 보안 위협이 발생할 수 있다. 이는 공격자가 위조된 ARP 응답을 보내 정상적인 IP-MAC 주소 매핑을 변조하는 공격 방식이다. 또한, RARP 프로토콜은 ARP의 반대 과정으로, MAC 주소를 알고 있을 때 IP 주소를 요청하는 데 사용되었으나, 현재는 DHCP에 의해 대체되었다.

4. 인터넷 계층

인터넷 계층은 TCP/IP 프로토콜 스택의 핵심 계층으로, 패킷을 출발지에서 목적지까지 전달하는 라우팅을 담당한다. 이 계층의 주요 임무는 호스트 간 논리적 주소를 기반으로 한 엔드투엔드 통신을 가능하게 하는 것이다. IP는 이 계층의 대표적 프로토콜로, 데이터를 패킷으로 분할하고, 각 패킷에 송수신 호스트의 IP 주소를 담은 헤더를 추가한다. 이 헤더 정보를 바탕으로 네트워크상의 라우터들이 패킷을 최종 목적지까지 중계한다.

이 계층의 중심에는 IP 프로토콜이 있다. IP는 비연결형(Connectionless) 및 비신뢰성(Best-effort delivery) 서비스를 제공한다. 이는 각 패킷이 독립적으로 전송되며, 패킷의 순서 보장, 손실 복구, 중복 제거 등을 이 계층에서 보장하지 않음을 의미한다. 이러한 신뢰성 문제는 상위 계층인 전송 계층에서 해결한다. IP의 주요 기능은 패킷 분할, IP 주소 지정, 그리고 라우팅이다.

ICMP 프로토콜은 인터넷 계층의 보조 프로토콜로, IP 패킷 전송 과정에서 발생하는 오류나 상태 정보를 보고하는 데 사용된다. 예를 들어, 목적지에 도달할 수 없거나 TTL이 만료된 패킷에 대해 오류 메시지를 생성하여 송신자에게 알린다. 또한 ping과 traceroute 같은 네트워크 진단 도구는 ICMP 메시지를 활용하여 호스트의 응답 여부나 경로를 추적한다.

라우팅은 패킷이 네트워크를 통해 최적의 경로로 전달되도록 하는 과정이다. 이는 네트워크의 라우터들이 서로 라우팅 프로토콜을 통해 경로 정보를 교환하고, 자신이 가진 라우팅 테이블을 참조하여 각 패킷의 다음 경유지(Next Hop)를 결정함으로써 이루어진다. 주요 라우팅 프로토콜에는 RIP, OSPF, BGP 등이 있다. 라우팅의 최종 목표는 서로 다른 물리적 네트워크(서브넷)를 연결하여 하나의 통합된 인터넷을 구성하는 것이다.

4.1. IP 프로토콜

IP 프로토콜은 인터넷 계층의 핵심 프로토콜로, 패킷을 발신지에서 목적지까지 전달하는 비연결형 패킷 교환 네트워크 서비스를 제공한다. 이 프로토콜의 주요 임무는 패킷의 라우팅과 단편화이다. IP는 상위 전송 계층으로부터 데이터를 받아 IP 헤더를 추가하여 IP 패킷을 생성하고, 이를 목적지 IP 주소를 기준으로 최선의 경로를 통해 전송한다. 신뢰성 있는 전송을 보장하지는 않으며, 이는 상위 계층인 TCP와 같은 프로토콜의 역할이다.

IP 프로토콜의 가장 중요한 요소는 IP 주소 체계이다. 현재 널리 사용되는 IPv4는 32비트 주소를 사용하며, 보통 점으로 구분된 십진수 형태(예: 192.168.1.1)로 표현된다. 이 주소는 네트워크 부분과 호스트 부분으로 나뉘며, 서브넷 마스크를 통해 구분된다. IP 주소는 패킷이 목적지에 도달하기 위해 거쳐야 할 경로를 결정하는 라우팅의 근간이 된다.

IP 패킷의 구조는 헤더와 페이로드로 구성된다. 헤더에는 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, 식별자, 단편화 정보, 생존 시간(TTL), 프로토콜, 헤더 체크섬, 발신지 및 목적지 IP 주소 등의 필드가 포함된다. 특히 TTL 필드는 패킷이 네트워크를 무한히 순환하는 것을 방지하며, 프로토콜 필드는 패킷의 데이터 부분이 어떤 상위 계층 프로토콜(TCP 또는 UDP 등)에 속하는지 식별한다.

IP 프로토콜의 한계로는 주소 공간의 고갈(IPv4), 보안 기능의 부재, 신뢰성 미보장 등을 꼽을 수 있다. 이러한 문제를 해결하기 위해 128비트 주소 체계를 사용하는 IPv6가 개발되어 점진적으로 도입되고 있다.

4.2. ICMP 프로토콜

ICMP는 인터넷 계층에서 동작하는 지원 프로토콜이다. 주요 목적은 IP 패킷 전송 과정에서 발생하는 오류나 상태 정보를 보고하는 것이다. IP 자체는 신뢰성을 보장하지 않는 비연결형 프로토콜이므로, 데이터그램 전달 실패와 같은 문제를 알리기 위한 별도의 메커니즘이 필요하다. ICMP는 이러한 역할을 수행하여 네트워크 진단과 관리를 가능하게 한다.

ICMP 메시지는 특정 유형(Type)과 코드(Code)로 구분된다. 주요 메시지 유형으로는 목적지 도달 불가(Type 3), 시간 초과(Type 11), 에코 요청/응답(Type 8/0) 등이 있다. 예를 들어, 라우터가 패킷을 전달할 수 없을 때는 목적지 도달 불가 메시지를, TTL 값이 0이 되어 패킷이 폐기될 때는 시간 초과 메시지를 송신자에게 보낸다. 에코 요청과 응답은 ping 명령어의 기반이 되어 특정 호스트의 연결 가능성을 테스트하는 데 사용된다.

주요 ICMP 메시지 유형

타입 값

용도

에코 응답 (Echo Reply)

0

ping 명령에 대한 응답

목적지 도착 불가 (Destination Unreachable)

3

패킷을 목적지에 전달할 수 없음을 알림

소스 억제 (Source Quench)

4

혼잡 제어를 위해 전송 속도를 낮추도록 요청[2]

리다이렉트 (Redirect)

5

더 나은 경로를 알려줌

에코 요청 (Echo Request)

8

ping 명령으로 연결 테스트

라우터 광고 (Router Advertisement)

9

라우터의 존재를 알림

시간 초과 (Time Exceeded)

11

TTL이 0이 되거나 조각 재조합 시간 초과 시

ICMP는 네트워크 문제 해결에 필수적인 도구를 제공하지만, 악의적인 목적으로도 사용될 수 있다. ICMP 플러딩 공격이나 스머프 공격과 같은 보안 위협에 이용되기도 한다. 따라서 많은 네트워크 관리자는 불필요한 ICMP 트래픽을 제한하는 정책을 적용한다. 그러나 트레이스루트나 MTU 경로 발견 같은 중요한 네트워크 기능이 ICMP에 의존하기 때문에, 완전히 차단하는 것은 바람직하지 않다.

4.3. 라우팅

라우팅은 인터넷 계층에서 IP 패킷이 출발지에서 목적지까지 효율적으로 전달되도록 경로를 결정하는 과정이다. 이 과정은 네트워크의 핵심 인프라인 라우터에 의해 수행된다. 라우터는 연결된 여러 네트워크 사이에서 패킷을 중계하는 장치로, 내부에 라우팅 테이블을 유지 관리한다.

라우팅 테이블은 목적지 네트워크에 도달하기 위한 최적의 다음 경로(Next Hop) 정보를 담고 있는 지도와 같다. 라우터는 수신한 패킷의 목적지 IP 주소를 확인하고, 라우팅 테이블을 조회하여 해당 패킷을 어느 인터페이스로 포워딩할지 결정한다. 테이블 구축 방법은 크게 정적 라우팅과 동적 라우팅으로 나뉜다. 정적 라우팅은 관리자가 수동으로 경로를 입력하는 방식이며, 소규모 네트워크에 적합하다. 동적 라우팅은 라우팅 프로토콜을 통해 라우터들이 서로 정보를 교환하여 테이블을 자동으로 구성하고 네트워크 상태 변화에 적응하는 방식이다.

주요 동적 라우팅 프로토콜은 그 동작 범위와 알고리즘에 따라 분류된다. 자율 시스템(AS) 내부에서 사용되는 내부 게이트웨이 프로토콜(IGP)에는 RIP, OSPF, IS-IS 등이 있다. 자율 시스템 간에 사용되는 외부 게이트웨이 프로토콜(EGP)의 대표적인 예는 BGP이다. 이 프로토콜들은 각각 거리 벡터(Distance-Vector)나 링크 상태(Link-State) 등의 알고리즘을 사용하여 최단 경로를 계산한다.

프로토콜 종류

대표 프로토콜

사용 범위

주요 알고리즘

내부 게이트웨이 프로토콜 (IGP)

RIP, OSPF, EIGRP

자율 시스템(AS) 내부

거리 벡터, 링크 상태

외부 게이트웨이 프로토콜 (EGP)

BGP

자율 시스템(AS) 사이

경로 벡터

라우팅의 최종 목표는 패킷이 홉(Hop) 단위로 중계되어 최종 목적지에 도달하게 하는 것이다. 이 과정에서 발생할 수 있는 라우팅 루프나 네트워크 장애를 방지하고, 대역폭, 지연 시간, 비용 등의 메트릭을 고려한 효율적인 경로 선택이 이루어진다.

5. 전송 계층

전송 계층은 인터넷 계층 위에서 동작하며, 호스트 간의 논리적 통신을 제공하는 계층이다. 이 계층의 핵심 역할은 종단 시스템 간의 신뢰성 있고 효율적인 데이터 전송을 보장하는 것이다. 특히, 데이터의 순서 보장, 오류 검출 및 복구, 흐름 제어, 혼잡 제어와 같은 기능을 담당한다. 인터넷 프로토콜 스택에서 전송 계층은 주로 TCP와 UDP라는 두 가지 대표적인 프로토콜을 사용한다.

TCP는 연결 지향적이고 신뢰성 있는 데이터 전송 서비스를 제공한다. 통신을 시작하기 전에 3방향 핸드셰이크 과정을 통해 연결을 설정하고, 데이터 전송 중에는 확인응답, 재전송, 슬라이딩 윈도우 기법을 사용하여 데이터의 정확한 전달을 보장한다. 또한 혼잡 제어 알고리즘을 통해 네트워크의 과부하를 방지한다. 반면, UDP는 비연결형이고 신뢰성을 보장하지 않는 간단한 데이터그램 서비스를 제공한다. 헤더가 간소하고 오버헤드가 적어 실시간 스트리밍, DNS 질의, VoIP와 같이 속도가 중요한 응용에 적합하다.

두 프로토콜 모두 포트 번호를 사용하여 동일한 호스트 내에서 실행되는 여러 응용 프로그램을 구분한다. 포트 번호는 0부터 65535까지의 범위를 가지며, 잘 알려진 포트(0-1023)는 HTTP(80), HTTPS(443), FTP(21) 등 주요 서비스에 할당된다. 전송 계층은 상위 응용 계층으로부터 받은 데이터에 자신의 헤더(세그먼트 또는 데이터그램)를 추가하여 인터넷 계층으로 전달하는 캡슐화 과정을 수행한다.

프로토콜

특징

주요 용도

TCP

연결형, 신뢰성 보장, 흐름/혼잡 제어

웹 브라우징(HTTP), 이메일(SMTP), 파일 전송(FTP)

UDP

비연결형, 신뢰성 미보장, 저지연, 간단한 헤더

실시간 동영상/음성 스트리밍, DNS 조회, 온라인 게임

5.1. TCP 프로토콜

TCP는 전송 계층에서 동작하는 연결 지향적이고 신뢰성 있는 프로토콜이다. 데이터를 보내기 전에 3방향 핸드셰이크 과정을 통해 논리적인 연결을 수립하고, 전송이 완료된 후에는 연결을 정리한다. 이는 비연결형 프로토콜인 UDP와 대비되는 주요 특징이다. TCP는 데이터의 순차적 전달, 오류 검출 및 재전송, 흐름 제어, 혼잡 제어 등의 메커니즘을 제공하여 애플리케이션에 신뢰성 있는 바이트 스트림 서비스를 보장한다.

TCP의 신뢰성은 시퀀스 번호와 확인 응답을 기반으로 한다. 전송된 각 데이터 세그먼트에는 고유한 시퀀스 번호가 부여되며, 수신 측은 이를 확인하여 성공적으로 받은 데이터의 다음 번호를 ACK로 응답한다. 패킷 손실이 발생하면 송신 측은 일정 시간 내에 ACK를 받지 못해 타임아웃이 발생하거나, 중복된 ACK를 여러 번 받으면 해당 데이터를 재전송한다. 또한 슬라이딩 윈도우 방식을 사용한 흐름 제어로 수신자의 처리 능력을 고려하여 데이터 전송 속도를 조절한다.

TCP 헤더에는 연결 관리와 데이터 전송을 위한 여러 필드가 포함되어 있다. 주요 필드는 다음과 같다.

필드

주요 역할

송신/수신 포트

통신하는 애플리케이션을 식별

시퀀스 번호

데이터의 순서를 관리

확인 응답 번호

수신한 데이터에 대한 응답

헤더 길이/플래그

헤더 정보 및 연결 상태 제어(SYN, ACK, FIN 등)

윈도우 크기

수신 가능한 데이터 양(흐름 제어)

체크섬

헤더와 데이터의 오류 검출

혼잡 제어는 네트워크의 과부하를 방지하는 중요한 기능이다. 슬로우 스타트, 혼잡 회피, 빠른 재전송, 빠른 회복 등의 알고리즘을 통해 네트워크 상황을 탐지하고 전송 속도를 동적으로 조정한다. 이로 인해 TCP는 HTTP, FTP, SMTP 등 데이터의 완전한 전달이 필수적인 대부분의 인터넷 응용 프로그램에서 핵심 프로토콜로 사용된다.

5.2. UDP 프로토콜

UDP는 전송 계층에서 동작하는 연결 없는 프로토콜이다. TCP와 달리 사전 3방향 핸드셰이크 과정 없이 데이터를 전송하며, 데이터의 신뢰성 있는 전달을 보장하지 않는다. 대신 헤더가 간단하고 오버헤드가 적어 처리 속도가 빠르며 지연 시간이 짧은 특징을 가진다. 이러한 특성으로 인해 실시간성이 중요한 애플리케이션에서 널리 사용된다.

UDP 헤더는 출발지 포트 번호, 목적지 포트 번호, 패킷 길이, 체크섬으로 구성된 고정 8바이트의 매우 단순한 구조를 가진다. 체크섬은 데이터 무결성 검사를 위한 선택적 필드이다. UDP는 흐름 제어, 혼잡 제어, 순서 보장, 재전송 메커니즘을 제공하지 않는다. 따라서 패킷 손실, 중복, 순서 뒤바뀜이 발생할 수 있으며, 이러한 문제는 필요 시 응용 프로그램 자체에서 처리해야 한다.

UDP의 대표적인 사용 사례는 다음과 같다.

애플리케이션

프로토콜/용도

UDP를 사용하는 이유

도메인 이름 시스템

DNS

단일 요청-응답 쿼리의 빠른 처리 필요

실시간 스트리밍

RTP, VoIP

작은 지연과 지터가 신뢰성보다 중요

온라인 게임

게임 패킷 전송

실시간 상호작용에 낮은 레이턴시 필요

네트워크 관리

SNMP

간단한 상태 정보 교환

브로드캐스트/멀티캐스트

DHCP, 일부 라우팅 프로토콜

하나의 송신자가 여러 수신자에게 전송

UDP는 신뢰성보다는 속도와 효율성을 우선시하는 통신 환경에 적합한 프로토콜이다. 애플리케이션 개발자는 UDP의 특성을 이해하고, 필요한 경우 애플리케이션 수준에서 신뢰성 메커니즘을 추가하여 사용한다.

5.3. 포트 번호

포트 번호는 전송 계층 프로토콜인 TCP와 UDP가 동일한 IP 주소를 가진 호스트 내에서 여러 개의 네트워크 응용 프로그램이나 서비스를 구별하기 위해 사용하는 16비트 논리적 주소이다. IP 주소가 특정 컴퓨터나 장치를 찾는 주소라면, 포트 번호는 그 장치 내에서 실행 중인 특정 프로세스나 서비스에 도달하기 위한 추가적인 식별자 역할을 한다.

포트 번호의 범위는 0부터 65535까지이며, 크게 세 가지 범주로 나뉜다.

포트 범위

구분

설명

예시

0 ~ 1023

잘 알려진 포트 (Well-Known Ports)

IANA에 의해 할당된 표준 서비스용 포트

HTTP: 80, HTTPS: 443, FTP: 21, SSH: 22

1024 ~ 49151

등록된 포트 (Registered Ports)

소프트웨어 회사가 IANA에 등록하여 사용하는 포트

MySQL: 3306, MS SQL Server: 1433

49152 ~ 65535

동적/사설 포트 (Dynamic/Private Ports)

클라이언트 측에서 임시로 사용하는 포트 (Ephemeral Ports)

일반적으로 클라이언트 프로그램이 연결 시 임의로 선택

클라이언트가 서버에 연결을 요청할 때, 클라이언트는 자신의 포트 번호로 임시 포트(동적 포트)를 사용하고, 목적지 포트 번호로는 접속하려는 서비스의 잘 알려진 포트를 지정한다. 이를 통해 하나의 클라이언트 IP 주소에서 웹 브라우징, 이메일 전송, 파일 다운로드 등 여러 네트워크 활동을 동시에 구분하여 처리할 수 있다. 포트 번호는 TCP 세그먼트와 UDP 데이터그램 헤더에 포함되어 전송 계층에서 데이터의 최종 목적지 응용 프로그램을 정확히 식별하는 데 핵심적인 역할을 한다.

6. 응용 계층

응용 계층은 TCP IP 프로토콜 스택의 최상위 계층으로, 사용자나 응용 프로그램이 네트워크 서비스를 직접 이용할 수 있도록 인터페이스를 제공한다. 이 계층의 프로토콜들은 전송 계층에서 제공하는 종단 간 통신을 기반으로, 구체적인 서비스의 규칙을 정의한다. 예를 들어 웹 페이지를 가져오거나, 이메일을 보내고, 파일을 전송하는 등의 작업은 모두 응용 계층 프로토콜에 의해 수행된다.

가장 대표적인 프로토콜로는 HTTP와 그 보안 버전인 HTTPS가 있다. HTTP는 월드 와이드 웹에서 데이터를 교환하기 위한 핵심 프로토콜로, 클라이언트가 요청을 보내고 서버가 응답을 반환하는 구조를 가진다. HTTPS는 HTTP에 암호화와 인증 기능을 더한 것으로, TLS 또는 그 전신인 SSL 프로토콜을 사용하여 통신 내용의 기밀성을 보장한다.

인터넷 사용의 편의성을 뒷받침하는 또 다른 핵심 프로토콜은 DNS이다. DNS는 사람이 이해하기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 처리하는 IP 주소로 변환하는 역할을 한다. 이 시스템 없이는 사용자가 웹 사이트에 접속하기 위해 긴 숫자열인 IP 주소를 일일이 기억해야 하는 불편함이 생긴다. DNS는 분산형 데이터베이스 시스템으로 운영된다.

파일 전송과 이메일 교환을 위한 프로토콜도 응용 계층에 속한다. FTP는 서버와 클라이언트 간에 파일을 전송하는 데 사용되며, SMTP는 이메일을 발송하는 데 사용되는 표준 프로토콜이다. 이들 프로토콜은 각각의 목적에 맞는 특정 명령어와 응답 코드 체계를 정의하여 데이터 교환을 관리한다.

프로토콜

기본 포트

주요 용도

HTTP

80

웹 페이지 전송

HTTPS

443

보안 웹 페이지 전송

DNS

53

도메인 이름 시스템 질의/응답

FTP

20(데이터), 21(제어)

파일 전송

SMTP

25

이메일 발송

6.1. HTTP/HTTPS

HTTP는 월드 와이드 웹에서 정보를 주고받기 위해 사용되는 응용 계층 프로토콜이다. 클라이언트가 서버에게 요청을 보내면 서버는 그에 대한 응답을 반환하는 클라이언트-서버 모델을 기반으로 동작한다. HTTP는 기본적으로 평문으로 데이터를 전송하기 때문에, 개인정보나 결제 정보 같은 민감한 데이터 전송 시 도청이나 변조의 위험이 존재한다.

이 보안 문제를 해결하기 위해 등장한 것이 HTTPS이다. HTTPS는 HTTP에 전송 계층 보안 또는 그 전신인 SSL 프로토콜을 더한 것이다. HTTPS는 대칭키 암호화와 공개키 암호화를 조합하여 데이터를 암호화하며, 서버의 신원을 인증 기관이 발급한 디지털 인증서를 통해 확인한다. 이를 통해 통신 과정에서의 기밀성, 무결성, 인증을 보장한다.

두 프로토콜의 주요 차이점은 다음과 같다.

구분

HTTP

HTTPS

기본 포트

80

443

보안

없음 (평문 전송)

강화 (암호화 통신)

프로토콜

응용 계층

HTTP + TLS/SSL (전송 계층 보안)

인증서

필요 없음

SSL 인증서 필요

주소 표시

http://

https://

현대 웹에서는 보안과 개인정보 보호의 중요성이 증가하면서, HTTPS는 모든 웹사이트의 표준이 되었다. 주요 웹 브라우저들은 HTTPS를 사용하지 않는 사이트에 대해 '안전하지 않음' 경고를 표시하며, 검색 엔진 또한 HTTPS 사이트에 검색 순위에서의 가산점을 부여한다[3].

6.2. DNS

DNS는 도메인 이름을 IP 주소로 변환하는 분산형 데이터베이스 시스템이다. 사람이 이해하기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 통신에 사용하는 숫자 형태의 IP 주소(예: 192.0.2.1)로 변환하는 핵심 서비스를 제공한다. 이 시스템은 인터넷 사용자가 복잡한 IP 주소를 외울 필요 없이 직관적인 주소로 웹사이트와 서비스에 접근할 수 있게 한다.

DNS는 계층적이고 분산된 구조로 운영된다. 최상위에는 루트 DNS 서버가 존재하며, 그 아래에 .com, .net, .org 같은 최상위 도메인(TLD) 서버, 그리고 각 도메인을 관리하는 권한 있는 네임 서버가 계층을 이룬다. 클라이언트가 도메인을 질의하면, 일반적으로 재귀적 해석기 역할을 하는 ISP의 DNS 리졸버가 이 계층 구조를 따라 차례로 질의하여 최종 IP 주소를 찾아낸다. 이 과정을 DNS 쿼리라고 한다.

DNS는 단순한 변환뿐만 아니라, 메일 교환기 레코드를 통한 이메일 라우팅, 도메인에 대한 텍스트 정보 제공, 도메인 별명 지정 등 다양한 기능을 위한 여러 유형의 리소스 레코드를 관리한다. 주요 레코드 유형은 다음과 같다.

레코드 유형

설명

A / AAAA

호스트의 IPv4 / IPv6 주소를 매핑한다.

CNAME

도메인 이름의 별칭(Canonical Name)을 정의한다.

MX

도메인을 위한 메일 교환 서버를 지정한다.

NS

도메인에 대한 권한 있는 네임 서버를 지정한다.

TXT

도메인에 대한 임의의 텍스트 정보를 저장한다.

DNS 시스템의 보안을 강화하기 위해 DNSSEC이 개발되었다. 이는 DNS 응답의 무결성과 인증을 제공하여 중간자 공격이나 캐시 중독 공격을 방지하는 확장 프로토콜이다.

6.3. FTP/SMTP

FTP는 파일 전송 프로토콜의 약자로, 네트워크 상의 컴퓨터들 간에 파일을 전송하기 위한 표준 프로토콜이다. 클라이언트-서버 모델을 사용하며, 제어 연결(기본 포트 21)과 데이터 연결(기본 포트 20)이라는 두 개의 별도 TCP 연결을 통해 동작한다. 제어 연결은 명령과 응답을 교환하는 데 사용되고, 실제 파일 데이터는 데이터 연결을 통해 전송된다. 이 프로토콜은 익명 접속을 허용하거나, 사용자 인증을 요구하는 방식으로 운영된다.

SMTP는 간이 전자 우편 전송 프로토콜의 약자로, 이메일을 보내고 전달하는 데 사용되는 핵심 프로토콜이다. 주로 TCP 포트 25를 사용한다. SMTP의 주요 역할은 메일 발신자의 메일 서버(MTA)에서 수신자의 메일 서버로 이메일을 전송하는 것이다. 이 프로토콜은 텍스트 기반의 간단한 명령과 응답 체계로 구성되어 있으며, 메일 수신을 위한 POP3나 IMAP과는 구별되는 발신 전용 프로토콜이다.

두 프로토콜의 주요 특징과 차이점은 다음과 같다.

특징

FTP (File Transfer Protocol)

SMTP (Simple Mail Transfer Protocol)

주요 목적

파일 전송

전자우편 발송 및 중계

사용 계층

응용 계층

응용 계층

기본 포트

제어: 21, 데이터: 20

25

연결 방식

제어 연결과 데이터 연결 분리

단일 연결 (명령/데이터 혼합)

보안

기본적으로 평문 전송[4]

기본적으로 평문 전송[5]

데이터 형식

바이너리 또는 텍스트 파일

7비트 ASCII 텍스트 기반의 이메일 메시지 및 첨부파일[6]

FTP는 대용량 파일을 효율적으로 업로드하거나 다운로드하는 데, SMTP는 이메일 시스템의 백본 프로토콜로서 여전히 널리 사용된다. 그러나 두 프로토콜 모두 초기에 설계되어 기본 동작에서 평문 통신을 사용하기 때문에, 현대에는 보안 강화를 위해 FTPS, SFTP(SSH File Transfer Protocol) 또는 SMTPS와 같은 암호화된 확장 프로토콜이 권장된다.

7. 주요 프로토콜 상세

TCP 연결은 3방향 핸드셰이크 과정을 통해 설정된다. 먼저 클라이언트는 SYN 플래그가 설정된 패킷을 서버로 보낸다. 서버는 이에 응답하여 SYN-ACK 패킷을 보내고, 클라이언트가 최종적으로 ACK 패킷을 보내면 연결이 수립된다. 데이터 전송 후에는 FIN 패킷을 교환하여 연결을 종료한다. TCP는 흐름 제어와 혼잡 제어를 통해 네트워크 효율을 관리하며, 슬라이딩 윈도우 기법을 사용한다.

IP 주소는 네트워크 상의 장치를 식별하는 논리적 주소이다. 역사적으로 널리 사용된 IPv4 주소는 32비트로 구성되어 약 43억 개의 고유 주소를 제공한다. 이 주소는 점으로 구분된 10진수(예: 192.168.1.1)로 표현된다. 주소 공간의 고갈을 해결하기 위해 개발된 IPv6는 128비트 주소 체계를 사용한다.

주소 클래스

첫 옥텟 범위

네트워크 ID 비트

호스트 ID 비트

용도

A

1–126

8비트

24비트

대규모 네트워크

B

128–191

16비트

16비트

중규모 네트워크

C

192–223

24비트

8비트

소규모 네트워크

서브넷팅은 하나의 큰 네트워크를 여러 개의 작은 논리적 네트워크(서브넷)로 분할하는 기술이다. 이는 네트워크 관리 효율성을 높이고 브로드캐스트 트래픽을 제한한다. 서브넷 마스크는 IP 주소의 어느 부분이 네트워크 주소이고 어느 부분이 호스트 주소인지를 정의한다. 예를 들어, 255.255.255.0(C 클래스 기본 서브넷 마스크)은 앞의 24비트를 네트워크 주소로, 나머지 8비트를 호스트 주소로 사용함을 의미한다.

7.1. TCP 연결 관리

TCP는 연결 지향형 프로토콜로, 데이터 전송을 시작하기 전에 송신자와 수신자 사이에 논리적인 연결을 설정한다. 이 연결 설정 과정을 3방향 핸드셰이크라고 한다. 첫 번째 단계에서 클라이언트는 SYN 플래그가 설정된 패킷을 서버로 보낸다. 두 번째 단계에서 서버는 이에 응답하여 SYN과 ACK 플래그가 모두 설정된 패킷을 클라이언트로 보낸다. 마지막으로 클라이언트가 ACK 패킷을 보내면 연결이 성립된다[7].

연결이 설정된 후, TCP는 신뢰성 있는 데이터 전송을 보장하기 위해 흐름 제어와 혼잡 제어 메커니즘을 사용한다. 흐름 제어는 수신자의 처리 능력을 고려하여 데이터 전송 속도를 조절하며, 주로 슬라이딩 윈도우 프로토콜을 통해 구현된다. 혼잡 제어는 네트워크의 혼잡을 감지하고 패킷 손실을 방지하기 위해 전송 속도를 동적으로 조정한다. 대표적인 알고리즘으로는 슬로 스타트, 혼잡 회피, 빠른 재전송, 빠른 회복 등이 있다.

데이터 전송이 완료되면 연결을 정상적으로 종료하기 위해 4방향 핸드셰이크 과정을 수행한다. 먼저 연결 종료를 요청하는 측(보통 클라이언트)이 FIN 플래그가 설정된 패킷을 보낸다. 수신측은 이에 대한 ACK를 보낸 후, 자신도 FIN 패킷을 보낸다. 최종적으로 최초의 요청측이 마지막 ACK를 보내면 연결이 완전히 종료된다. 만약 비정상적인 상황이 발생하면 RST 플래그를 사용하여 연결을 강제로 재설정할 수 있다.

7.2. IP 주소 체계

IP 주소는 인터넷 또는 로컬 네트워크에서 각 장치를 고유하게 식별하는 논리적 주소이다. IPv4 주소는 일반적으로 점으로 구분된 네 개의 십진수(예: 192.168.1.1)로 표현되며, 각 숫자는 0부터 255까지의 값을 가진 8비트 옥텟을 나타낸다. 이는 총 32비트(약 43억 개)의 주소 공간을 제공한다. 주소는 네트워크 ID와 호스트 ID 두 부분으로 구성되며, 서브넷 마스크를 통해 이 구분이 이루어진다.

IP 주소는 사용 범위와 목적에 따라 여러 클래스로 분류된다. 초기에는 클래스풀(Classful) 주소 체계가 사용되었으나, 현재는 주소 공간을 효율적으로 할당하기 위해 클래스리스 어드레싱과 CIDR이 표준으로 자리 잡았다.

클래스

주소 범위 (첫 옥텟)

용도

기본 서브넷 마스크

A

1 - 126

대규모 네트워크

255.0.0.0

B

128 - 191

중규모 네트워크

255.255.0.0

C

192 - 223

소규모 네트워크

255.255.255.0

D

224 - 239

멀티캐스트

N/A

E

240 - 254

실험용

N/A

특수 목적을 위한 주소도 존재한다. 예를 들어, 127.0.0.1은 루프백 주소로, 장치 자신을 가리킨다. 169.254.0.0/16 대역은 APIPA 주소로, DHCP 서버로부터 IP를 할당받지 못했을 때 자동으로 설정된다. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 대역은 사설 IP 주소로, 내부 네트워크에서만 사용되며 인터넷에 직접 라우팅되지 않는다[8]. 이 사설 주소를 공인 주소로 변환하기 위해 NAT 기술이 널리 사용된다.

7.3. 서브넷팅

서브넷팅은 하나의 큰 IP 주소 네트워크를 여러 개의 작은 논리적 서브네트워크로 분할하는 기술이다. 이는 네트워크 관리 효율성을 높이고, 브로드캐스트 도메인을 분리하여 트래픽을 제한하며, 보안과 자원 할당을 최적화하는 목적으로 사용된다. 서브넷팅은 기본 IP 주소를 네트워크 부분과 호스트 부분으로 나누는 서브넷 마스크를 조정하여 수행된다.

기본적으로 IPv4 주소는 클래스(A, B, C)에 따라 고정된 네트워크와 호스트 구분을 갖지만, 서브넷팅은 이를 유연하게 변경한다. 예를 들어, 클래스 C 네트워크(기본 마스크 255.255.255.0)에서 호스트 부분의 일부 비트를 네트워크 부분으로 빌려 서브넷을 생성할 수 있다. 마스크를 255.255.255.224로 변경하면, 원래 하나의 네트워크가 여러 개의 서브넷으로 나뉘고, 각 서브넷이 사용 가능한 호스트 주소 수는 줄어든다.

서브넷을 설계할 때는 필요한 서브넷 수와 각 서브넷 내 최대 호스트 수를 고려한다. 이를 바탕으로 필요한 비트 수를 계산하고 적절한 서브넷 마스크를 결정한다. 서브넷팅은 주소 공간의 낭비를 줄이는 CIDR(Classless Inter-Domain Routing)과 함께 사용되는 경우가 많다. 네트워크 주소(서브넷의 첫 주소)와 브로드캐스트 주소(서브넷의 마지막 주소)는 호스트에 할당할 수 없으므로, 사용 가능한 호스트 주소 수는 2^n - 2(n은 호스트 비트 수)로 계산된다[9].

원본 네트워크

서브넷 마스크

서브넷 수

서브넷당 호스트 수

사용 가능 호스트 수

192.168.1.0/24

255.255.255.0 (기본)

1

256

254

192.168.1.0/24

255.255.255.192 (/26)

4

64

62

192.168.1.0/24

255.255.255.224 (/27)

8

32

30

서브넷팅은 라우팅 테이블의 크기를 줄이고, 서로 다른 물리적 네트워크 세그먼트에 논리적 구조를 부여하여 관리 편의성을 제공한다. 또한, IPv4 주소 고갈 문제를 완화하는 데 기여하는 중요한 네트워크 설계 기법이다.

8. 실제 동작 과정

데이터가 TCP IP 프로토콜 스택을 통해 전송될 때는 패킷 캡슐화 과정을 거친다. 송신 측의 응용 계층에서 생성된 데이터는 아래 계층으로 전달되며, 각 계층에서는 자신의 역할에 필요한 헤더 정보를 데이터 앞부분에 추가한다. 이 과정을 통해 최종적으로 링크 계층에서는 이더넷 프레임 같은 형태로 물리적 매체를 통해 전송된다.

수신 측에서는 정반대의 역캡슐화 과정이 이루어진다. 물리적 신호로 도착한 데이터는 링크 계층에서 프레임 헤더를 분석하고 제거한 후, 상위 계층으로 올려보낸다. 이후 각 계층은 자신의 프로토콜에 해당하는 헤더를 순차적으로 분석하고 제거하며 데이터를 위로 전달한다. 최종적으로 응용 계층에는 원본의 순수한 응용 데이터만이 도착하게 된다.

예를 들어, 사용자가 웹 브라우저에서 웹 페이지를 요청하는 과정은 다음과 같이 진행된다.

1. 응용 계층: HTTP 요청 메시지가 생성된다.

2. 전송 계층: 이 메시지에 TCP 헤더가 추가되어 세그먼트가 된다. 헤더에는 포트 번호와 연결 관리 정보가 포함된다.

3. 인터넷 계층: TCP 세그먼트에 IP 헤더가 추가되어 패킷이 된다. 헤더에는 송수신지의 IP 주소가 포함된다.

4. 링크 계층: IP 패킷에 이더넷 헤더와 트레일러가 추가되어 프레임이 된다. 헤더에는 송수신지의 MAC 주소가 포함된다.

이 프레임은 라우터와 스위치를 거쳐 목적지에 도착하면, 각 노드와 최종 수신 호스트에서 역순으로 헤더를 벗겨내며 원래의 HTTP 요청을 복원한다. 이 과정에서 라우팅과 오류 제어, 흐름 제어 등이 투명하게 수행된다.

8.1. 패킷 캡슐화/역캡슐화

데이터가 TCP IP 프로토콜 스택의 각 계층을 통과할 때마다, 해당 계층의 특정 헤더 정보가 추가되는 과정을 패킷 캡슐화라고 한다. 반대로 수신 측에서는 각 계층을 거슬러 올라가며 헤더를 하나씩 제거하고 데이터를 복원하는 역캡슐화 과정을 거친다. 이 과정은 송신 호스트에서 응용 계층부터 시작하여 링크 계층까지 하향으로 진행된다.

캡슐화는 다음과 같은 순서로 이루어진다. 응용 계층에서 생성된 데이터(메시지)는 전송 계층으로 전달된다. 전송 계층(TCP 또는 UDP)은 데이터에 세그먼트 또는 데이터그램 헤더를 추가하는데, 여기에는 포트 번호와 같은 정보가 포함된다. 이 데이터 단위는 인터넷 계층으로 전달되어 IP 헤더가 추가되어 패킷이 된다. IP 헤더에는 IP 주소와 같은 라우팅 정보가 담긴다. 마지막으로 링크 계층(이더넷 등)은 패킷에 프레임 헤더와 트레일러를 추가하여 최종적인 프레임을 생성하고, 이를 물리적 매체를 통해 전송한다.

수신 측에서는 역순으로 역캡슐화가 수행된다. 링크 계층은 수신된 프레임의 헤더와 트레일러를 제거하여 IP 패킷을 인터넷 계층으로 올려보낸다. 인터넷 계층은 IP 헤더를 검사하고 제거한 후, 내부의 전송 계층 데이터 단위를 전송 계층으로 전달한다. 전송 계층은 다시 자신의 헤더를 처리하고 제거하여 최종 응용 데이터를 응용 계층에 건네준다. 각 계층은 자신의 헤더 정보를 해석하여 올바른 처리를 보장한다.

이러한 캡슐화와 역캡슐화 과정은 계층별 독립성을 유지하면서 데이터가 네트워크를 통해 정확히 전달되도록 하는 핵심 메커니즘이다.

8.2. 데이터 전송 예시

웹 브라우저에서 "www.example.com"에 접속하는 과정을 통해 데이터 전송을 설명한다. 사용자가 주소를 입력하고 엔터를 누르면, 응용 계층의 HTTP 프로토콜이 "GET /" 요청 메시지를 생성한다.

이 메시지는 전송 계층으로 전달되어 TCP 세그먼트로 캡슐화된다. 출발지와 목적지의 포트 번호(예: 80번)가 헤더에 추가되고, 3-way handshake를 통해 연결이 확립된 후 데이터가 전송된다. TCP 세그먼트는 다시 인터넷 계층으로 내려가 IP 패킷으로 캡슐화된다. 출발지 IP 주소와 목적지 IP 주소(이는 DNS 조회를 통해 먼저 확인됨)가 헤더에 기록된다.

계층

프로토콜 단위

추가 정보 (예시)

응용 계층

HTTP 메시지

GET / HTTP/1.1

전송 계층

TCP 세그먼트

출발지 포트: 54321, 목적지 포트: 80

인터넷 계층

IP 패킷

출발지 IP: 192.168.1.10, 목적지 IP: 93.184.216.34

링크 계층

이더넷 프레임

출발지 MAC: AA:BB:CC:DD:EE:FF, 목적지 MAC: 라우터 MAC 주소

최종적으로 IP 패킷은 링크 계층에서 이더넷 프레임으로 캡슐화된다. 출발지 MAC 주소는 본인의 네트워크 카드 주소이며, 목적지 MAC 주소는 기본 게이트웨이(라우터)의 주소가 된다[10]. 이 프레임이 전기 신호로 변환되어 네트워크 케이블을 통해 라우터로 전송된다.

라우터는 프레임의 이더넷 헤더를 벗기고 IP 패킷 헤더를 확인한 후, 라우팅 테이블을 참조하여 다음 목적지(다음 홉)로 패킷을 전달한다. 이 과정에서 새로운 링크 계층 헤더(예: 새로운 MAC 주소)로 다시 캡슐화된다. 패킷은 최종 목적지 서버에 도달하면 역순으로 역캡슐화되어 웹 서버의 HTTP 데몬에 전달되고, 요청에 대한 응답 페이지 데이터가 동일한 과정을 거쳐 사용자의 컴퓨터로 회신된다.

9. 보안 및 현대적 발전

IPv6는 기존 IPv4의 주소 고갈 문제를 해결하기 위해 개발된 차세대 인터넷 프로토콜이다. 128비트 주소 체계를 사용하여 거의 무한에 가까운 수의 주소를 제공하며, 보안 기능(IPsec)이 기본으로 통합되어 있고, 헤더 구조가 단순화되어 라우팅 효율이 향상되었다. 자동 구성 기능으로 네트워크 관리가 용이해졌으나, 여전히 IPv4와의 공존 및 전환 과정이 진행 중이다.

TLS/SSL은 응용 계층과 전송 계층 사이에서 동작하여 데이터의 기밀성과 무결성을 보장하는 프로토콜이다. 주로 HTTP와 결합된 HTTPS 형태로 웹 통신 보안에 널리 사용된다. 핸드셰이크 과정을 통해 서버를 인증하고 세션 키를 협상하며, 이후의 모든 데이터는 대칭키 암호화 방식으로 암호화되어 전송된다.

방화벽은 미리 정의된 보안 규칙에 따라 네트워크 트래픽을 허용하거나 차단하는 장치 또는 소프트웨어이다. 주로 신뢰할 수 있는 내부 네트워크와 외부 네트워크 사이의 경계에서 동작한다. NAT(Network Address Translation)은 사설 IP 주소를 공인 IP 주소로 변환하는 기술이다. 하나의 공인 IP를 여러 내부 장치가 공유할 수 있게 하여 주소 고갈을 완화하고, 내부 네트워크 구조를 외부에 숨기는 부수적인 보안 효과를 제공한다.

9.1. IPv6

IPv6은 IPv4 주소 고갈 문제를 해결하기 위해 개발된 차세대 인터넷 프로토콜이다. IPv4의 32비트 주소 체계로는 약 43억 개의 주소만 생성할 수 있었으나, IPv6는 128비트 주소 체계를 채택하여 거의 무한에 가까운 주소 공간(약 3.4×10^38개)을 제공한다. 이는 인터넷에 연결되는 모든 장치에 고유 주소를 할당하는 것을 가능하게 하며, 사물인터넷 시대의 핵심 인프라가 된다.

IPv6는 단순히 주소 공간을 확장하는 것 외에도 여러 기술적 개선을 포함한다. 주요 특징으로는 IPsec을 통한 기본적인 보안 지원, 자동 주소 구성 기능의 향상, 더욱 단순해진 헤더 구조로 인한 효율적인 패킷 처리 등이 있다. 또한 멀티캐스트 통신이 강화되고, 모바일 IP 지원이 용이해졌다.

IPv6 주소는 16비트씩 8개의 그룹으로 나누어지며, 각 그룹은 16진수로 표현된다. 예를 들어 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같은 형식을 가진다. 연속되는 0의 그룹은 '::'로 축약하여 표현할 수 있어 가독성을 높인다.

특징

IPv4

IPv6

주소 길이

32비트

128비트

주소 표기법

10진수 점분할 (예: 192.168.0.1)

16진수 콜론분할 (예: 2001:db8::1)

주소 구성 방식

DHCP 또는 수동 구성

SLAAC(Stateless Address Autoconfiguration) 및 DHCPv6

IPsec 지원

선택적

기본 내장

헤더 구조

복잡 (가변 길이 옵션)

단순화 (고정 길이, 확장 헤더 사용)

전 세계적으로 IPv6의 배포가 지속적으로 확대되고 있으나, 여전히 많은 네트워크는 IPv4와 IPv6가 공존하는 이중 스택 방식으로 운영된다. 완전한 전환까지는 상당한 시간이 소요될 것으로 예상된다.

9.2. TLS/SSL

TLS와 SSL은 인터넷 통신의 보안을 강화하기 위해 설계된 암호화 프로토콜이다. 이들은 주로 응용 계층의 프로토콜(예: HTTP, SMTP, FTP)과 함께 사용되어 데이터의 기밀성, 무결성, 인증을 제공한다. SSL은 넷스케이프사가 처음 개발했으며, 이후 IETF에 의해 표준화되어 TLS라는 이름으로 발전하였다. 현대의 보안 통신은 사실상 TLS를 기준으로 하며, SSL이라는 용어는 역사적 맥락이나 구버전을 지칭할 때 주로 사용된다.

이 프로토콜들은 전송 계층 위에서 동작하여, 응용 프로그램이 네트워크를 통해 데이터를 주고받기 전에 안전한 연결을 수립한다. 핵심 과정은 핸드셰이크라고 불리는 협상 단계로 시작한다. 이 단계에서 클라이언트와 서버는 사용할 암호화 알고리즘을 협상하고, 서버의 신원을 디지털 인증서를 통해 확인하며, 세션에 사용할 대칭 키를 안전하게 교환한다. 핸드셰이크가 완료되면, 실제 데이터는 효율적인 대칭키 암호화 방식으로 암호화되어 전송된다.

특징

설명

기밀성

대칭키 암호화를 통해 전송 데이터를 제3자가 읽지 못하도록 보호한다.

무결성

메시지 인증 코드(MAC) 등을 사용하여 데이터가 전송 중 변조되지 않았음을 보장한다.

인증

서버(및 선택적으로 클라이언트)의 신원을 공개키 기반 구조(PKI)와 디지털 인증서로 확인한다.

호환성

HTTPS, SMTPS, FTPS 등 여러 응용 프로토콜과 결합하여 사용된다.

현대 웹의 핵심 보안 인프라로서, TLS는 HTTPS를 통해 모든 웹 트래픽의 표준 암호화를 가능하게 한다. 또한, 이메일 전송(SMTP), 파일 전송(FTP), 가상 사설망(VPN) 등 광범위한 응용 분야에서 채택되었다. 지속적인 보안 연구를 통해 프로토콜의 취약점이 발견되고 개선되며, 오래된 버전(SSL 2.0/3.0, TLS 1.0/1.1)은 사용이 중단되는 추세이다.

9.3. 방화벽과 NAT

방화벽은 사전에 정의된 보안 규칙에 따라 네트워크 트래픽을 허용하거나 차단하는 소프트웨어 또는 하드웨어 장치이다. 주로 신뢰할 수 있는 내부 네트워크와 신뢰할 수 없는 외부 네트워크(예: 인터넷) 사이의 경계에 배치된다. 방화벽은 패킷 필터링, 상태 기반 검사, 애플리케이션 계층 게이트웨이 등 다양한 기술을 사용하여 악성 트래픽이나 무단 접근을 차단한다. 기본적으로 특정 IP 주소, 포트 번호, 프로토콜 유형을 기준으로 접근을 통제한다.

NAT(Network Address Translation, 네트워크 주소 변환)은 주로 사설 네트워크 내의 여러 장치가 하나의 공인 IP 주소를 공유하여 인터넷에 접속할 수 있도록 하는 기술이다. NAT 장치(일반적으로 라우터)는 내부 장치의 사설 IP 주소와 포트 번호를 외부로 나가는 패킷에서는 공인 IP 주소와 다른 포트 번호로 변환한다. 반대로 외부에서 들어오는 응답 패킷의 주소를 다시 적절한 내부 사설 주소로 변환하여 전달한다. 이 과정은 주소 변환 테이블을 통해 관리된다.

방화벽과 NAT는 현대 네트워크에서 종종 결합되어 사용된다. NAT는 사설 IP 주소 체계(예: 192.168.x.x)를 사용함으로써 공인 IP 주소 고갈 문제를 완화하고, 내부 네트워크 토폴로지를 외부에 숨기는 부수적인 보안 효과를 제공한다[11]. 반면, 방화벽은 명시적인 보안 정책에 따라 트래픽을 제어하는 데 중점을 둔다. 많은 가정용 및 기업용 라우터는 이 두 기능을 통합하여 제공한다.

기능

주요 목적

동작 수준

부수적 효과

방화벽

접근 제어 및 보안

주로 IP 계층 이상 (3-4계층, 7계층)

네트워크 보호

NAT

주소 변환 및 공유

IP 계층 및 전송 계층 (3-4계층)

주소 보존, 내부 네트워크 은닉

NAT의 보안 효과는 제한적이며, 애플리케이션 계층 공격이나 내부에서 시작된 악성 코드에는 무력하다. 따라서 포괄적인 보안을 위해서는 NAT와 함께 전용 방화벽, 침입 탐지 시스템(IDS), 안티바이러스 소프트웨어 등을 함께 구성하는 것이 일반적이다.

10. 관련 문서

  • Wikipedia - 인터넷 프로토콜 스위트

  • Wikipedia - Transmission Control Protocol

  • Wikipedia - Internet Protocol

  • IETF - RFC 793: Transmission Control Protocol

  • IETF - RFC 791: Internet Protocol

  • KISA - 인터넷 프로토콜(IP) 개요

  • Oracle - TCP/IP 프로토콜 스택 이해

리비전 정보

버전r1
수정일2026.02.14 21:22
편집자unisquads
편집 요약AI 자동 생성