base
네트워크는 하나의 회사나 기술로만 구성되지 않습니다. 서로 다른 제조사, 운영체제, 장비가 함께 쓰이더라도 원활하게 통신하려면 공통의 규칙이 필요합니다. 이 공통 규칙을 만들기 위해 1978년 프랑스의 Hubert Zimmermann이 ‘7계층 참조 모델(OSI Reference Model)’ 초안을 발표했고, 1980년 초반 국제표준화기구(ISO)가 이를 표준화했습니다
OSI 모델은 네트워크 통신 과정을 7개의 계층으로 나누어 정의한 개념적·추상적 틀입니다. 각 계층은 서로 독립적이면서도 상위·하위 계층과 명확한 인터페이스를 가집니다. 이를 통해 하드웨어와 소프트웨어, 그리고 서로 다른 네트워크 장비 간에도 상호운용성을 보장할 수 있습니다. 1984년에는 ISO 공식 표준으로 채택되어, 네트워크 프로토콜 설계와 교육의 기반이 되었습니다.
한편, TCP/IP는 1974년 Vint Cerf와 Bob Kahn이 논문으로 개념을 제시한 뒤, 1977년 ARPANET에서 다른 네트워크 간 연결 실험을 거쳐 1983년 공식 프로토콜로 채택되었습니다. 미국 국방성(DoD)이 이를 표준으로 채택하고 다양한 운영체제에 구현하면서, TCP/IP는 실전 환경에서 빠르게 확산되었습니다.
OSI 모델은 매우 포괄적이고 이론적인 구조를 지녔지만, TCP/IP는 실제 네트워크 환경에 최적화된 단순하고 효율적인 구조를 가졌습니다. 1980년대 후반 인터넷 상용화와 함께, 구현이 쉽고 성능이 검증된 TCP/IP 스택이 사실상의 인터넷 표준이 되었고, OSI 기반 제품은 일부에만 적용되었습니다.
그럼에도 불구하고 OSI 모델은 여전히 가치가 있습니다. 실제 구현에 쓰이는 TCP/IP와 달리, OSI 모델은 네트워크 동작을 이해하고, 문제를 진단하며, 설계를 표준화하는 ‘공통 언어’ 역할을 합니다. 네트워크 엔지니어와 개발자가 원인 분석이나 설계 논의를 할 때, OSI 7계층은 필수적인 참조 구조입니다. 이 글에서는 OSI 모델의 7계층 구조와 각 계층이 어떤 역할을 하는지, 그리고 이를 어떻게 활용할 수 있는지 살펴보겠습니다.
[7 Layer] 응용 계층 (Application Layer)
[6 Layer] 표현 계층 (Presentation Layer)
[5 Layer] 세션 계층 (Session Layer)
[4 Layer] 전송 계층 (Transport Layer)
[3 Layer] 네트워크 계층 (Network Layer)
[2 Layer] 데이터 링크 계층 (Data Link Layer)
[1 Layer] 물리 계층 (Physical Layer)
물리 계층은 네트워크 통신의 가장 기초적인 단계로, 컴퓨터 내부의 0과 1로 표현된 디지털 데이터를 실제로 전송할 수 있는 전기 신호, 빛, 전자파와 같은 물리적인 형태로 변환하는 역할을 합니다. 반대로, 전송 매체를 통해 도착한 신호를 다시 0과 1의 디지털 데이터로 복원하는 과정도 담당합니다.
이 계층에서는 케이블, 커넥터, 무선 주파수, 광섬유, 전압·전류 규격, 신호 주파수와 같은 전기적·기계적 특성이 정의됩니다. 쉽게 말해, ‘어떤 모양의 신호를 어떤 선(또는 전파)으로, 어떤 속도로 보낼지’에 대한 물리적인 규칙을 정하는 곳입니다.
예를 들어, 0을 낮은 전압, 1을 높은 전압으로 변환하거나, 각각을 서로 다른 주파수 패턴으로 바꾸는 과정을 **인코딩(Encoding)**이라고 합니다. 수신 측에서는 이 전압이나 주파수 변화를 감지하여 다시 0과 1로 되돌리는데, 이를 **디코딩(Decoding)**이라고 합니다. 광케이블의 경우 전압 대신 빛의 깜빡임(빛의 세기나 파장 변화)으로 같은 원리를 구현합니다.
결국 물리 계층은 비트 단위 전송의 표준을 정하는 곳입니다. 이 계층이 정확히 정의되어야, 상위 계층에서 “이 구간이 0이고, 저 구간이 1이구나”를 명확히 구분할 수 있고, 그 위에서 동작하는 데이터 링크 계층이나 네트워크 계층이 안정적으로 통신할 수 있습니다.
물리 계층은 ‘편지를 어떻게 종이에 인쇄하고, 어떤 봉투에 넣어, 어떤 택배 차량이나 비행기로 보낼지’를 정하는 단계입니다. 편지의 내용(데이터)은 다음 계층에서 다루지만, 어떻게 운반할지는 물리 계층이 전담합니다.
데이터 링크 계층은 물리 계층이 단순히 0과 1의 신호를 전달하는 데서 한 걸음 더 나아가, 데이터를 안전하고 질서 있게 전송하도록 돕는 계층입니다. 네트워크 계층에서 내려온 패킷을 **프레임(Frame)**이라는 전송 단위로 감싸 물리 매체에 실어 보냅니다.
[패킷 수신]
↓
프레이밍 → 주소 지정 → 오류 검출 → 흐름 제어
↓
[물리 계층으로 전송]
데이터를 일정 크기로 나눈 뒤, 각 프레임의 시작과 끝을 특정 비트 패턴(시작·종료 마커)으로 표시합니다. 이렇게 하면 수신 측이 “여기서부터 데이터가 시작이고, 여기서 끝이구나”를 명확히 구분할 수 있습니다. 책에서 챕터의 시작과 끝을 제목과 구분선으로 표시하는 것과 비슷합니다.
프레임의 헤더에는 송신자와 수신자의 MAC 주소를 기록합니다. MAC 주소는 네트워크 카드(NIC)에 고유하게 부여된 물리 주소로, 같은 네트워크 안에서 정확한 수신자를 찾는 역할을 합니다. 우편물에 집 주소를 적어야 배달원이 정확한 곳에 전달할 수 있는 것과 같습니다.
전송 과정에서 데이터가 손상될 수 있으므로, 프레임에는 CRC(Cyclic Redundancy Check) 같은 오류 검출 코드를 포함합니다. 수신 측은 이를 검사해 오류가 있으면 해당 프레임의 재전송을 요청할 수 있습니다. 택배를 받았을 때 내용물이 파손되면 교환을 요청하는 절차와 같습니다.
송신 측이 너무 빠르게 데이터를 보내면, 수신 측 버퍼가 꽉 차 데이터 손실이 발생할 수 있습니다. 이를 방지하기 위해 “잠시 멈춰 달라” 또는 “이제 보내도 된다”와 같은 제어 신호를 주고받아 전송 속도를 조절합니다. 대화를 할 때, 상대방이 메모를 다 적을 때까지 말을 잠시 멈추는 것과 유사합니다.
데이터 링크 계층은 프레이밍, 주소 지정, 오류 검출, 흐름 제어의 네 가지 핵심 기능을 수행합니다. 이 덕분에 상위 계층은 데이터가 정확히, 순서대로, 안전하게 도착한다는 전제 하에 더 복잡한 작업을 처리할 수 있습니다. 비유하자면, 데이터 링크 계층은 고속도로의 교통 관리 센터처럼, 차량(데이터)이 충돌 없이, 잘못된 출구로 빠지지 않고, 속도를 맞춰 안전하게 목적지에 도착하도록 관리하는 역할을 합니다.
데이터 링크 계층의 주요 기능을 정리하면 아래와 같습니다.
네트워크 계층은 서로 다른 네트워크(예: LAN, WAN)를 연결해 데이터를 목적지까지 전달하는 ‘길잡이’ 역할을 합니다. 이 계층은 논리 주소(예: IP 주소)를 사용해 송신자와 수신자를 구분하며, 패킷이 여러 구간을 거쳐도 출발지와 도착지를 정확히 식별할 수 있도록 합니다. 특히 경로 결정(Routing) 기능을 통해 네트워크 토폴로지와 라우팅 알고리즘을 바탕으로 최적의 전송 경로를 찾아 패킷을 전달하며, 필요할 경우 중간 라우터에서 다음 목적지로 중계합니다. 이는 마치 내비게이션이 여러 도로 상황을 고려해 가장 효율적인 길을 안내하는 것과 같습니다.
또한 네트워크 계층은 단편화(Fragmentation)와 재조합(Reassembly) 기능을 제공해 안정적인 전송을 보장합니다. 패킷이 너무 크면 전송 중 손실 위험이 커지고, 일부 네트워크 구간의 MTU(Maximum Transmission Unit) 제한을 초과할 수 있습니다. 이 경우 데이터를 여러 개의 작은 조각으로 나누어 보내고, 수신 측에서 원래 순서대로 다시 합쳐 복원합니다. 각 조각에는 식별자를 부여해 “이 조각들은 같은 데이터의 일부”임을 구분할 수 있도록 합니다.
네트워크 계층의 대표적인 구현은 IP(Internet Protocol)입니다. IP는 각 패킷에 출발지와 목적지의 IP 주소를 기록한 헤더를 덧붙이고, 비연결형 방식으로 최적 경로를 찾아 전송합니다. 다만 IP 자체는 오류 복구나 순서 보장 기능이 없으므로, 신뢰성 있는 통신이 필요한 경우 상위 계층의 TCP와 함께 사용합니다.
결국 네트워크 계층은 논리 주소 지정, 경로 결정, 단편화·재조합을 통해 서로 다른 네트워크 간의 데이터 흐름을 제어하며, IP는 이러한 기능을 구현하는 핵심 프로토콜이라는 점이 중요합니다.
전송 계층은 애플리케이션이 보내는 큰 데이터를 여러 개의 작은 조각으로 나누고, 각 조각에 일련번호를 붙여 전송합니다. 이렇게 하면 수신 측은 번호를 확인해 조각들을 원래 순서대로 조립할 수 있고, 전송 과정에서 손상되거나 누락된 조각이 있으면 “이 부분만 다시 보내 주세요”라고 요청할 수 있습니다. 덕분에 데이터가 깨지거나 순서가 뒤바뀌는 일을 막을 수 있습니다.
이 계층에서 가장 널리 쓰이는 프로토콜은 TCP와 UDP입니다. TCP(Transmission Control Protocol)는 신뢰성을 최우선으로 하며, 연결을 시작할 때 3-way 핸드셰이크로 서로 준비 상태를 확인하고, 데이터가 올바르게 도착했는지 ACK(확인 응답)으로 체크합니다. 연결을 끝낼 때는 4-way 핸드셰이크를 거쳐 안전하게 종료합니다. 이 과정을 통해 데이터가 순서대로, 빠짐없이 전달됩니다. 반면 UDP(User Datagram Protocol)는 속도를 우선시해 이러한 절차를 생략하고 데이터를 빠르게 전송합니다. 덕분에 약간의 손실이 발생해도 큰 문제가 없는 실시간 영상·음성 스트리밍, 온라인 게임처럼 지연이 치명적인 서비스에 적합합니다.
결국 전송 계층은 데이터를 쪼개고, 번호를 매기고, 다시 정확히 조립하는 배송 관리인과 같습니다. 그리고 TCP나 UDP 중 상황에 맞는 방식을 선택해 신뢰성과 속도라는 두 가지 요구를 균형 있게 충족시킵니다.
세션 계층은 애플리케이션 간의 **대화(세션)**를 시작하고, 유지하며, 종료하는 역할을 담당합니다. 예를 들어, 사용자가 웹사이트에 로그인하면 브라우저와 서버 사이에 하나의 세션이 만들어지고, 사용자가 페이지를 이동하거나 데이터를 전송하는 동안 이 연결이 유지됩니다. 이후 로그아웃하거나 일정 시간이 지나면 세션이 종료됩니다. 만약 이 계층이 없다면, 애플리케이션은 “누가 연결되어 있는지”, “대화가 어디까지 진행됐는지”를 파악하기 어려워 안정적인 통신을 보장하기 힘듭니다.
세션 계층의 주요 기능은 크게 세 가지입니다. 첫째, 연결 설정·유지·종료를 관리하여 송·수신 측이 언제 대화를 시작하고 끝낼지 합의합니다. 둘째, 대화 제어(Dialog Control) 기능을 통해 전이중(full-duplex)·반이중(half-duplex)과 같은 통신 모드를 지정해, “누가 먼저 말할지”를 정리합니다. 셋째, 동기화(Synchronization)와 체크포인트를 제공해, 긴 파일 전송이나 트랜잭션 도중 네트워크 장애가 발생하더라도 마지막 저장 지점부터 다시 전송을 재개할 수 있게 합니다. 이는 대규모 파일 다운로드에서 ‘이어받기’ 기능이 가능한 이유이기도 합니다.
참고로 OSI 7계층에서 세션(5), 표현(6), 응용(7) 계층은 TCP/IP 모델에서는 하나로 통합되어 응용 계층(Application Layer)로 동작합니다. 즉, 실제 인터넷 환경에서는 세션 관리, 데이터 형식 변환, 애플리케이션 서비스가 상위 계층에서 함께 처리됩니다. 결국 세션 계층은 애플리케이션 간에 언제, 어떻게 대화를 시작하고 끝낼지를 관리하며, 중간중간 동기화 지점을 두어 통신이 끊기더라도 안정적이고 효율적으로 이어갈 수 있도록 하는 ‘대화 진행 매니저’ 역할을 합니다.
표현 계층은 애플리케이션 계층에서 생성된 데이터를 네트워크로 보내기 전에, 송신 측과 수신 측이 같은 형식으로 이해할 수 있도록 변환해 주는 역할을 합니다. 쉽게 말해, 서로 다른 언어를 쓰는 사람 사이에서 의미를 잃지 않게 통역을 맡는 계층입니다. 예를 들어, 한쪽에서 UTF-8로 인코딩된 텍스트를 보내는데 다른 쪽에서 이를 EBCDIC로 해석한다면, 데이터 내용이 뒤틀려 버립니다. 표현 계층은 이런 상황을 막기 위해 문자 인코딩(UTF-8, ASCII, ISO-8859 등)이나 데이터 직렬화(JSON, XML 등)의 규칙을 맞춰 줍니다.
이 계층은 단순히 형식을 맞추는 것에 그치지 않고, 압축과 암호화도 담당합니다.
결국 표현 계층은 인코딩·디코딩, 압축·해제, 암호화·복호화 과정을 통해 서로 다른 시스템 간에도 데이터의 형식과 의미를 유지하며, 보안과 효율까지 보장합니다. 덕분에 애플리케이션 계층은 “이 데이터가 어떤 구조로 왔는지” 고민할 필요 없이 바로 사용할 수 있습니다.
응용 계층은 사용자와 네트워크를 직접 연결하는 최상위 계층으로, 우리가 눈으로 보고 직접 사용하는 서비스가 이 계층에서 동작합니다. 웹 브라우저, 이메일 클라이언트, 파일 전송 프로그램 등 다양한 애플리케이션이 바로 여기서 네트워크 기능을 활용합니다.
이 계층에서 쓰이는 대표적인 프로토콜은 다음과 같습니다.
각 프로토콜은 자신이 담당하는 서비스(웹, 메일, 파일, 도메인 조회 등)에 맞게 설계된 규칙과 절차를 가지고 있습니다.
응용 계층은 또한 API나 라이브러리 형태의 인터페이스를 제공해, 개발자가 복잡한 데이터 전송·암호화·세션 관리를 직접 구현하지 않고도 네트워크 기능을 손쉽게 사용할 수 있게 합니다. 예를 들어, 웹 애플리케이션 개발자가 단 몇 줄의 코드만 작성해도 서버와 데이터를 주고받을 수 있는 이유가 바로 이 계층 덕분입니다.
결국 응용 계층은 사용자가 체감하는 네트워크 서비스를 실제로 실행하는 무대이자, 다양한 프로토콜과 개발 인터페이스를 통해 웹, 이메일, 파일 전송 같은 최종 서비스를 가능하게 만드는 네트워크의 출구입니다.
오늘날 OSI 7계층 모델은 네트워크 교육과 설계 시 참고용 개념 모델로 널리 활용되며, 실제 인터넷 구현은 TCP/IP 모델을 따릅니다. 따라서 OSI의 계층 구조와 TCP/IP의 실무적 프로토콜을 함께 이해함으로써 안정적이고 확장 가능한 네트워크를 구축할 수 있습니다. 조금 더 TCP/IP와 OSI 모델을 비교하자면, TCP/IP 모델과 OSI 모델은 네트워크 통신을 설명하기 위한 구조지만 설계 목적과 사용 방식이 다릅니다. TCP/IP 모델은 실제 인터넷을 설계하고 동작시키기 위해 만들어진 현실적인 구현 모델입니다. 현재 우리가 사용하는 인터넷, 웹, 이메일 등 대부분의 통신은 이 TCP/IP 모델을 따릅니다. 계층 수는 총 4개이며, 응용 계층에서는 HTTP, SMTP 등이 동작하고, 전송 계층에서는 TCP/UDP가, 인터넷 계층에서는 IP, 데이터 링크 및 물리 계층은 하드웨어 기반 네트워크와 연결됩니다. 계층 간 역할이 통합되어 있어 실제 구현에 최적화된 구조입니다. 반면 OSI 모델(Open Systems Interconnection)은 다양한 네트워크 장비와 프로토콜 간 호환성과 이해를 돕기 위한 이론적인 표준 모델입니다. 총 7개의 계층으로 구성되어 있고, 각 계층은 전송, 표현, 세션처럼 세분화된 기능을 담당합니다. 이는 실제 구현보다는 교육, 설계 가이드라인, 프로토콜 분석에 주로 사용됩니다.
가장 큰 차이는 TCP/IP는 실제 동작하는 인터넷을 위한 구조인 반면, OSI는 이상적인 분리를 통한 이해 중심의 구조라는 점입니다. TCP/IP는 간결하고 현실적이며, OSI는 구조적으로 정밀하고 이상적인 형태를 추구합니다. 두 모델은 목적이 다르기 때문에 계층 수, 구성 방식, 적용 범위에서 차이를 보이며, 결국 TCP/IP는 실제 구현의 표준, OSI는 이론적 기준점으로 함께 이해하는 것이 중요합니다.