문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.


TCP/IP 모델은 인터넷 및 대부분의 사설 네트워크에서 데이터 통신을 위한 네트워크 프로토콜 스택의 개념적 모델이다. 이 모델은 TCP/IP 프로토콜 스위트의 구현을 설명하는 추상적 계층화 모델로, 데이터가 네트워크를 통해 어떻게 전송되고 수신되는지를 네 개의 논리적 계층으로 나누어 정의한다.
이 모델의 주요 목적은 이기종 네트워크 간의 상호 연결을 가능하게 하여, 서로 다른 하드웨어와 소프트웨어를 가진 시스템들 사이에서도 원활한 통신이 이루어지도록 하는 것이다. 이는 인터넷 통신의 사실상 표준으로 자리 잡았으며, 월드 와이드 웹, 이메일, 파일 전송 등 현대의 대부분의 네트워크 서비스가 이 모델 위에서 동작한다.
TCP/IP 모델은 일반적으로 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 접속 계층의 네 계층으로 구성된다. 각 계층은 특정한 기능을 담당하며, 하위 계층이 제공하는 서비스를 이용하여 상위 계층에 서비스를 제공하는 계층적 구조를 가진다. 이 모델의 핵심은 TCP와 IP 프로토콜에 있으며, 모델의 이름도 여기서 유래되었다.
보다 이론적인 참조 모델인 7계층 OSI 모델과 비교될 때, TCP/IP 모델은 실제 구현과 인터넷의 발전 과정에서 실용적으로 진화해왔다는 특징이 있다. 두 모델 모두 계층화 원칙을 따르지만, 계층의 수와 세부적인 기능 분배에 차이가 존재한다.

응용 계층은 TCP/IP 모델의 최상위 계층으로, 최종 사용자에게 직접 서비스를 제공하는 응용 프로그램이 작동하는 영역이다. 이 계층은 사용자가 네트워크를 통해 수행하려는 실제 작업, 예를 들어 웹 페이지 열람, 이메일 송수신, 파일 전송 등을 위한 프로토콜을 정의한다. HTTP, HTTPS, FTP, SMTP, DNS 등이 대표적인 응용 계층 프로토콜에 해당한다.
이 계층의 주요 역할은 데이터의 의미와 표현 방식을 다루는 것이다. 즉, 전송 계층에서 제공하는 신뢰할 수 있는 또는 신속한 데이터 전송 서비스를 기반으로, 특정 응용에 맞는 데이터 형식, 명령어, 세션 관리 규칙을 정한다. 예를 들어, 웹 브라우저가 웹 서버에 페이지를 요청할 때 사용하는 HTTP는 "GET"이나 "POST" 같은 메서드를 정의하며, 이메일 클라이언트가 메일을 보낼 때는 SMTP 프로토콜의 규칙에 따라 송신자, 수신자, 제목, 본문을 구성한다.
응용 계층의 프로토콜은 주로 클라이언트-서버 모델이나 P2P 모델을 통해 구현된다. 사용자의 요청을 처리하기 위한 서버 프로그램과 요청을 생성하는 클라이언트 프로그램이 이 계층의 프로토콜을 준수하며 통신한다. 이때 생성된 응용 데이터는 하위 계층인 전송 계층으로 전달되어 세그먼트나 데이터그램으로 캡슐화되는 과정을 거친다.
전송 계층은 TCP/IP 모델의 두 번째 계층으로, 애플리케이션 계층과 인터넷 계층 사이에서 데이터 전송 서비스를 제공한다. 이 계층의 주요 역할은 호스트 간의 논리적 통신을 관리하고, 애플리케이션 프로세스 간의 신뢰할 수 있는 데이터 전송을 보장하는 것이다. 이를 위해 포트 번호를 사용하여 특정 응용 프로그램이나 서비스를 식별하고 데이터를 전달한다.
전송 계층의 대표적인 두 가지 프로토콜은 TCP와 UDP이다. TCP는 연결 지향적이고 신뢰성 있는 데이터 전송을 제공한다. 데이터를 전송하기 전에 3방향 핸드셰이크 과정을 통해 연결을 설정하고, 흐름 제어, 혼잡 제어, 오류 검출 및 재전송 메커니즘을 사용하여 데이터가 순서대로 손실 없이 도착하도록 보장한다. 반면, UDP는 비연결형 프로토콜로, 신뢰성보다는 속도와 단순함을 중시한다. UDP는 헤더가 간단하고 연결 설정 과정이 없어 실시간 스트리밍, DNS 조회, 음성 over IP와 같이 작은 지연 시간이 중요한 서비스에 주로 사용된다.
이 계층은 인터넷 계층이 제공하는 호스트 대 호스트 전송 서비스를, 특정 프로세스 대 프로세스 통신 서비스로 확장하는 역할을 한다. 소켓 주소는 IP 주소와 포트 번호의 조합으로 구성되어 있으며, 전송 계층은 이 소켓 주소를 기반으로 데이터를 정확한 목적지 애플리케이션으로 전달한다. 따라서 전송 계층은 엔드투엔드 통신의 핵심을 담당하며, 다양한 네트워크 응용 프로그램이 효율적이고 안정적으로 동작할 수 있는 기반을 마련한다.
인터넷 계층은 TCP/IP 모델의 세 번째 계층으로, 네트워크 상에서 데이터 패킷의 논리적 주소 지정과 경로 선택(라우팅)을 담당한다. 이 계층의 핵심 임무는 출발지 호스트에서 목적지 호스트로 패킷을 전달하는 것이며, 이 과정에서 여러 개의 서로 다른 네트워크를 거치는 경로를 설정한다. 이를 통해 이기종 네트워크 간의 상호 연결과 인터넷 통신이 가능해진다.
이 계층의 가장 대표적인 프로토콜은 IP이다. IP는 패킷의 헤더에 출발지와 목적지의 논리적 주소(IP 주소)를 기록하고, 이 정보를 바탕으로 라우터가 패킷을 다음 목적지로 전달하도록 한다. IP는 비연결형 및 신뢰성 없는 서비스를 제공하는데, 이는 패킷의 순차적 전달이나 손실 복구를 보장하지 않음을 의미한다. 이러한 신뢰성 문제는 상위 계층인 전송 계층의 TCP가 해결한다.
인터넷 계층에는 IP 외에도 보조적인 프로토콜들이 존재한다. ICMP는 네트워크 진단과 오류 보고를 위해 사용되며, ping 명령어가 대표적이다. ARP는 논리적 IP 주소를 물리적 MAC 주소로 변환하는 역할을 하여, 같은 로컬 네트워크 내에서의 실제 장치 식별을 가능하게 한다. 반대로 RARP는 물리적 주소에서 논리적 주소를 찾는 프로토콜이다.
이 계층은 OSI 모델의 네트워크 계층에 대응된다. 인터넷 계층의 동작은 라우팅 프로토콜에 의해 결정되는 경로 테이블을 기반으로 하며, 복잡한 인터넷 인프라를 통해 데이터가 최종 목적지에 도달할 수 있는 기반을 제공한다.
네트워크 접속 계층은 TCP/IP 모델의 가장 하위 계층으로, 물리적인 네트워크 매체를 통해 실제 데이터 프레임을 송수신하는 역할을 담당한다. 이 계층은 네트워크 카드나 모뎀 같은 하드웨어 장치와 직접적으로 연관되어 있으며, 이더넷, Wi-Fi, PPP와 같은 특정 네트워크 기술의 세부 사항을 다룬다. 따라서 이 계층의 주요 기능은 인터넷 계층에서 내려온 IP 패킷을 해당 로컬 네트워크의 물리적 전송 규칙에 맞는 프레임으로 변환하고, 인접한 네트워크 노드로 전송하거나 수신하는 것이다.
이 계층은 OSI 모델의 물리 계층과 데이터 링크 계층의 기능을 통합한 것으로 볼 수 있다. 구체적으로는 물리적인 연결과 신호 변환, MAC 주소를 이용한 장치 식별, 오류 검출, 그리고 동일한 네트워크 세그먼트 내에서의 데이터 흐름 제어 등을 포함한다. 예를 들어, 이더넷 케이블을 통해 데이터를 보낼 때는 이더넷 프레임 형식에 맞춰 데이터를 포장하고, Wi-Fi를 통해 보낼 때는 무선 프레임의 규칙을 따른다.
네트워크 접속 계층은 로컬 네트워크의 한계를 벗어나지 않는 통신, 즉 같은 LAN 내의 통신을 책임진다. 반면, 다른 네트워크로 데이터를 보내는 라우팅과 같은 기능은 상위 계층인 인터넷 계층의 역할이다. 이처럼 TCP/IP 모델은 하위 계층인 네트워크 접속 계층에서 물리적 전송의 구체적 사항을 처리함으로써, 상위 계층들이 하드웨어와 네트워크 기술의 다양성으로부터 독립적으로 동작할 수 있는 기반을 제공한다.

TCP/IP 모델과 OSI 모델은 모두 네트워크 통신을 계층적으로 설명하는 개념 모델이지만, 계층 수와 구조, 실용성에서 차이를 보인다. 가장 큰 차이는 계층의 수로, OSI 모델은 7계층 구조를 채택한 반면, TCP/IP 모델은 4계층 구조로 단순화되어 있다. 이는 TCP/IP 모델이 실제 인터넷 프로토콜 스위트의 구현을 기반으로 발전한 실용적 모델이기 때문이다.
두 모델의 계층을 비교하면, TCP/IP 모델의 응용 계층은 OSI 모델의 응용 계층, 표현 계층, 세션 계층의 기능을 포괄한다. 전송 계층은 두 모델에서 동일한 이름과 역할을 가진다. TCP/IP 모델의 인터넷 계층은 OSI 모델의 네트워크 계층에 대응되며, 네트워크 접속 계층은 OSI의 데이터 링크 계층과 물리 계층을 합친 개념이다.
실제 산업 표준과의 관련성에서도 차이가 두드러진다. OSI 모델은 통신 과정을 이론적으로 세분화한 참조 모델로서의 역할이 강하지만, TCP/IP 모델은 인터넷 프로토콜 스위트라는 실제 프로토콜 군을 직접 설명한다. 따라서 현대 인터넷과 대부분의 네트워크는 TCP/IP 모델을 기반으로 구축되어 있으며, OSI 모델은 교육이나 네트워크 문제 해결 시 개념적 틀을 제공하는 데 더 많이 활용된다.

TCP는 전송 계층에서 동작하는 핵심 프로토콜 중 하나로, 인터넷 통신의 신뢰성을 보장하는 역할을 한다. 연결 지향적이며, 데이터를 전송하기 전에 3방향 핸드셰이크 과정을 통해 송신자와 수신자 간의 논리적 연결을 먼저 수립한다. 이 과정을 통해 양측은 데이터 교환을 준비하고 초기 시퀀스 번호를 교환하여 신뢰성 있는 통신 채널을 확보한다.
TCP의 주요 기능은 데이터의 순차적 전달, 오류 검출 및 복구, 흐름 제어, 혼잡 제어이다. 데이터는 세그먼트라는 단위로 나누어져 전송되며, 각 세그먼트에는 시퀀스 번호와 확인 응답 번호가 포함되어 데이터의 순서와 누락을 관리한다. 수신 측은 성공적으로 받은 데이터에 대해 확인 응답을 보내며, 송신 측은 이를 받지 못하면 데이터를 재전송한다. 이러한 메커니즘을 통해 패킷 손실이나 중복, 순서 뒤바뀜과 같은 문제를 해결한다.
흐름 제어는 수신자의 처리 능력을 고려하여 데이터 전송 속도를 조절하는 기능이다. 주로 슬라이딩 윈도우 방식을 사용하여 수신자의 버퍼 상태에 따라 송신 윈도우 크기를 동적으로 조정한다. 혼잡 제어는 네트워크의 혼잡을 감지하고 예방하여 전체 네트워크의 안정성을 유지한다. 혼잡 윈도우 크기를 조절하는 슬로우 스타트, 혼잡 회피 등의 알고리즘을 사용한다.
TCP는 이메일, 월드 와이드 웹, 파일 전송 등 데이터의 정확한 전달이 중요한 애플리케이션에서 널리 사용된다. 이는 UDP와 대비되는데, UDP는 연결을 설정하지 않고 최소한의 오류 검출만 제공하는 비연결형 프로토콜이다. 따라서 TCP는 신뢰성이 요구되는 통신에, UDP는 실시간성이 더 중요한 스트리밍이나 온라인 게임 등에 적합하다.
IP는 인터넷 프로토콜의 약자로, TCP/IP 모델의 인터넷 계층에서 동작하는 핵심 프로토콜이다. 이 프로토콜의 주요 역할은 패킷을 발신지에서 목적지까지 전달하는 경로를 결정하는 라우팅과, 데이터를 작은 조각으로 나누고 다시 조립하는 단편화를 수행하는 것이다. IP는 데이터그램이라는 패킷 단위로 정보를 전송하며, 각 데이터그램은 출발지와 목적지의 IP 주소 정보를 담은 헤더를 포함한다.
IP의 가장 중요한 기능은 서로 다른 기술을 사용하는 이기종 네트워크들을 상호 연결하여 하나의 통합된 인터넷을 구성할 수 있게 하는 것이다. 이를 통해 LAN과 WAN을 넘나드는 엔드투엔드 통신이 가능해진다. IP는 신뢰성 있는 데이터 전송을 보장하지 않는 비연결형 프로토콜로, 패킷의 순서 보장이나 손실 복구와 같은 기능은 상위 계층인 전송 계층의 TCP와 같은 프로토콜이 담당한다.
현재 널리 사용되는 IP는 IPv4와 IPv6 두 가지 버전이 있다. IPv4는 32비트 주소 체계를 사용하여 약 43억 개의 고유 주소를 제공하지만, 인터넷의 급격한 성장으로 주소가 고갈되었다. 이를 해결하기 위해 개발된 IPv6는 128비트 주소 체계를 도입하여 거의 무한에 가까운 주소 공간을 제공하며, 보안과 네트워크 관리를 위한 기능도 강화되었다. IP는 DNS, HTTP, 이메일 등 모든 인터넷 응용 서비스의 근간을 이루는 프로토콜이다.
UDP는 TCP/IP 모델의 전송 계층에서 동작하는 핵심 프로토콜 중 하나이다. TCP와 함께 가장 널리 사용되는 전송 프로토콜이지만, 연결 설정 과정 없이 데이터를 전송하는 비연결형(Connectionless) 서비스를 제공한다는 점에서 TCP와 근본적으로 다르다. 또한 데이터 전달의 신뢰성을 보장하지 않으며, 순서 제어나 흐름 제어 같은 기능을 수행하지 않는다.
이러한 특성으로 인해 UDP는 신속한 데이터 전송이 최우선인 애플리케이션에서 선호된다. 예를 들어, 실시간 통신 프로토콜인 VoIP, 화상 회의, 온라인 게임, 그리고 도메인 이름 시스템의 질의 응답과 같은 서비스는 작은 지연 시간이 중요하므로 UDP를 사용한다. 실시간 방송이나 스트리밍 서비스에서도 패킷 일부 손실이 전체 서비스 품질에 치명적이지 않은 경우 UDP가 활용된다.
UDP의 데이터 단위는 UDP 데이터그램이라고 하며, 헤더는 출발지와 목적지의 포트 번호, 데이터그램 길이, 그리고 간단한 체크섬으로만 구성되어 매우 가볍다. 이 간결한 구조는 프로토콜 자체의 처리 오버헤드를 최소화하여 네트워크 부하를 줄이고 전송 속도를 높이는 데 기여한다. 따라서 애플리케이션 자체에서 필요에 따라 신뢰성, 순서 보장 등의 메커니즘을 구현할 수 있는 환경에 적합하다.

데이터 캡슐화와 전송 과정은 TCP/IP 모델의 각 계층이 송신 측에서 데이터를 보내기 위해 처리하는 순차적 작업을 설명한다. 이 과정에서 상위 계층의 데이터는 하위 계층으로 전달될 때마다 해당 계층의 제어 정보가 담긴 헤더로 감싸진다. 이를 통해 데이터는 최종적으로 네트워크 접속 계층을 통해 물리적 매체로 전송되며, 수신 측에서는 반대 순서로 헤더를 제거하며 원본 데이터를 복원한다.
구체적인 과정은 다음과 같다. 먼저 응용 계층에서 생성된 메시지나 데이터 스트림이 전송 계층으로 전달된다. 전송 계층에서는 TCP나 UDP와 같은 프로토콜을 사용해 데이터를 세그먼트(TCP) 또는 데이터그램(UDP)으로 나누고, 출발지와 목적지의 포트 번호 및 오류 제어 정보 등을 담은 전송 계층 헤더를 추가한다. 이렇게 만들어진 PDU는 다음 인터넷 계층으로 전달된다.
인터넷 계층에서는 IP 프로토콜이 동작하여, 전송 계층에서 받은 PDU에 IP 주소 정보를 담은 IP 헤더를 추가해 IP 패킷을 생성한다. 이 패킷의 헤더에는 데이터가 최종 목적지까지 라우팅되기 위한 출발지와 목적지의 논리적 주소가 포함된다. 마지막으로, 네트워크 접속 계층(또는 링크 계층)은 IP 패킷을 프레임으로 포장한다. 이 계층에서는 이더넷 헤더와 트레일러를 추가하여 물리적 네트워크 세그먼트 내에서의 실제 장치 주소(MAC 주소)와 오류 검출 코드 등을 붙인 후, 최종적으로 비트 열로 변환해 네트워크 매체를 통해 전송한다.
수신 측 호스트는 이 과정을 역순으로 진행하여 데이터를 복원한다. 네트워크 접속 계층에서 프레임의 헤더와 트레일러를 제거하고 IP 패킷을 추출하면, 인터넷 계층은 IP 헤더를 확인하고 제거한 후 내용물을 전송 계층으로 올려보낸다. 전송 계층은 다시 전송 헤더를 처리해 데이터를 재조립한 다음, 적절한 포트 번호를 통해 최종적으로 응용 계층의 목표 애플리케이션에 원본 메시지를 전달한다. 이와 같은 캡슐화와 역캡슐화 과정을 통해 이기종 네트워크 간의 신뢰할 수 있는 데이터 통신이 가능해진다.

TCP/IP 모델의 역사는 1960년대 말 미국 국방부의 연구 기관인 국방고등연구계획국(DARPA)이 시작한 ARPANET 프로젝트에서 비롯된다. 초기 ARPANET은 서로 다른 하드웨어와 소프트웨어를 사용하는 컴퓨터들이 통신할 수 있는 공통의 프로토콜이 필요했으며, 이 요구로부터 1970년대 초 빈튼 서프와 로버트 칸이 핵심 프로토콜인 TCP(전송 제어 프로토콜)와 IP(인터넷 프로토콜)의 개념을 정립하게 되었다. 이들의 작업은 네트워크 간의 상호 연결, 즉 인터네트워킹을 가능하게 하는 이론적 기반을 마련했다.
초기에는 통신의 신뢰성을 보장하는 기능을 모두 포함한 단일 프로토콜인 TCP로 설계되었으나, 1970년대 후반에 이르러 핵심 라우팅 기능을 담당하는 IP와 신뢰성 있는 전송을 담당하는 TCP로 기능이 분리된 TCP/IP 프로토콜 스위트가 완성되었다. 1983년 1월 1일은 '플래그 데이'로 불리며, ARPANET이 NCP(네트워크 제어 프로그램)에서 TCP/IP로 공식적으로 전환한 역사적인 날짜이다. 이 전환은 오늘날의 인터넷이 탄생하는 결정적 계기가 되었다.
TCP/IP의 광범위한 채택은 1980년대 BSD 유닉스 운영 체제에 TCP/IP 스택이 기본으로 포함되면서 가속화되었다. 이는 대학과 연구 기관을 중심으로 프로토콜이 빠르게 확산되는 계기가 되었다. 이후 1990년대에 월드 와이드 웹(WWW)이 등장하면서 인터넷이 대중화되었고, TCP/IP 모델은 상업적 네트워크와 인트라넷을 포함한 전 세계 데이터 통신의 사실상의 표준으로 자리 잡게 되었다.
TCP/IP 모델의 발전은 프로토콜 스위트 자체의 지속적인 개정을 통해 이루어져 왔다. 가장 주목할 만한 변화는 32비트 IPv4 주소의 고갈 문제를 해결하기 위해 1990년대 말 표준화된 128비트 주소 체계를 사용하는 IPv6의 도입이다. 또한, 보안 강화를 위한 IPsec(IP Security)과 같은 확장 프로토콜들이 계층 구조에 통합되며, 모델은 새로운 기술과 요구사항에 적응해 나가고 있다.