네트워크에서 계층(Layer)은 복잡한 통신 과정을 단계별로 나누어 처리하고, 각 계층의 역할을 명확히 하여 효율적이고 표준화된 통신을 하기 위한 이론입니다.
대표적으로 2가지가 있습니다. OSI 7계층, TCP/IP
OSI 7계층은 국제표준기구(ISO)에서 만든 네트워크 통신에 대한 표준 이론입니다.
하지만 TCP/IP에 비해 실무에서 거의 안 쓰이는 이론입니다.
OSI는 각 계층을 너무 명확하게 분리하려고 해서 실제로는 구현이 복잡하거나 비효율적인 부분이 상당히 많습니다
예를 들면 표현층과 세션층은 실제 구현에서 거의 따로 구분하지 않고 보통 응용층에 통합해서 다룹니다.
OSI는 고정된 7계층 구조로 이루어져있어 각각의 계층은 특정 기능을 담당하며, 계층 간 인터페이스는 명확히 분리되어 있습니다.
그래서 새로운 기술이 생기면 기존 계층 정의에 억지로 끼워넣어야 해서 유연성이 떨어집니다.
네트워크 문제 발생 시 어디서 문제가 생겼는지 빠르게 원인을 찾는 것이 중요합니다!
문제가 생겼을 때 계층별로 분석하여 찾아 빠르게 해결하는거죠
네트워크 엔지니어: “지금 3계층에서 ICMP 응답 없음” → IP 문제
보안 분석가: “패킷 스니핑이 4계층까지 침투했음” → 전송층까지 노출
프로그래머: “응용층에서 REST API 호출이 실패함” → HTTP 문제
OSI 계층은 현업에서 커뮤니케이션을 위한 표준 언어 역할을 합니다.
TCP/IP를 배우기 전에 OSI 7계층을 알면 이해하기가 더 쉽습니다.
애초에 TCP/IP 계층은 OSI 계층의 모델이 너무 이론적이라 현업에서 사용하기 위해서 만든 계층이기 때문에 OSI 계층을 기본 토대로 이루어져 있습니다.
결국 TCP/IP 계층을 알기 위해서는 OSI 계층의 대한 이해가 필요합니다.
물리층은 OSI 1계층으로 가장 아래에 있습니다.
0과 1로 된 데이터를 실제 물리적 신호로 바꾸어 전송하는 역할을 진행하는 계층입니다.
컴퓨터와 물리적으로 연결되는 장비들이 속하는 단계이며,
케이블, 모뎀, 허브, 리피터 등이 여기에 속합니다.
데이터링크층은 OSI 2계층입니다.
여기선 동일한 네트워크 내에서 발생하는 컴퓨터들 간의 통신을 다룹니다.
물리 계층에서 받은 데이터를 분할한 프레임에 고유한 식별자를 부여하여 오류 없이 정확하게 목적지까지 전달하는 역할을 합니다.
보통 MAC 주소로 데이터를 전송합니다.
네트워크층은 OSI 3계층입니다.
데이터를 다른 네트워크로 전달하기 위해 IP 주소를 사용하고,
최적의 경로(Route)를 찾아가는 역할입니다.
여기서 라우팅(Routing)이라는 개념을 알면 좋은데
데이터가 최단 경로로 목적지까지 도달하도록 길찾아주는 역할을 합니다.
이 계층이 있어 서울에 있는 PC에서 미국 구글 서버에 접근이 가능하도록 만드는 것입니다.
전송층은 OSI 4계층입니다.
이전 1~3계층이 데이터를 보내는 것에 집중했다면,
4계층은 데이터를 어떻게 누가 받을지 집중합니다.
송신자와 수신자 간의 종단 간(end-to-end) 통신을 관리하고,
신뢰성있는 데이터 전송을 위해 오류검사, 복구, 흐름제어 등의 기능을 제공합니다.
TCP (웹, 이메일 등), UDP (게임, 스트리밍, VoIP), 포트 번호를 사용합니다.
세션층은 OSI 5계층입니다.
통신 세션(대화)을 설정하고, 유지하며, 끊는 역할하는 관리자입니다.
로그인 세션 유지, 영상통화 연결 지속 같은 부분이 세션 관리라고 보시면 됩니다.
표현층은 OSI 6계층입니다.
데이터를 송신자와 수신자가 이해할 수 있는 형식으로 변환하는 계층입니다.
데이터의 인코딩, 디코딩, 압축, 암호화를 위한 소프트웨어가 사용됩니다.
SSL/TLS 암호화(HTTPS), 영상/이미지 압축(JPEG, MPEG), 문자 인코딩(UTF-8) 등 있습니다.
마지막으로 응용층은 7계층입니다.
사용자와 프로그램이 네트워크 서비스를 직접 사용할 수 있게 해주는 계층입니다.
여기서 이제 사용자가 “인터넷을 사용한다”는 것이 응용층을 사용한다고 보시면 됩니다.
웹사이트 접속 (크롬, 엣지 등), 이메일 보내기 (Gmail, Outlook), 구글 검색 등 실생활에서 인터넷을 한다면 대부분 응용층의 이야기 하고 보시면 됩니다.
TCP / IP는 OSI 7계층을 실무에서 사용하기 위해 네트워크를 통한 계층을 간소화하고 신 기술의 적용을 용이하게 하기 위해 만들어졌습니다.
물리적인 네트워크에서 데이터를 전송하기 위한 요소(하드웨어/소프트웨어)를 다루는 계층입니다.
OSI 1, 2계층의 역할을 하고 있습니다.
MAC 주소 기반으로 실제 신호로 데이터 전송하며,
장비로 허브, 스위치, 케이블등을 사용합니다.
상대 네트워크와 통신하기 위한 IP주소를 사용해 데이터를 전송합니다.
여기서 라우터를 이용해 패킷의 경로를 설정하고 전송합니다.
OSI 3계층 역할을 하고 있습니다.
프로토콜은 IP 주소, ICMP (Ping), ARP (MAC-IP 매핑)이 있습니다.
OSI 4계층의 역할을 하는 계층입니다.
TCP / UDP 방식을 사용해 데이터의 전송을 담당합니다.
데이터 전송 전 상대와 연결하고, 데이터를 조금씩 나눠 보내며 수시로 상대가 데이터를 받았는지 확인합니다.
상대방 컴퓨터에서 정확하게 데이터를 받았는지 확인이 가능하므로 웹사이트 방문시 대부분 이 방식이 사용됩니다.
별도의 과정 없이 한번에 많은 양의 데이터를 보낼 수 있어 빠르지만, 상대방 컴퓨터에서 정확한 데이터가 도착하지 않을 수 있습니다.
마지막으로 응응 계층입니다.
OSI 5, 6, 7 계층의 역할을 하고 있습니다.
사용자와 직접 통신하는 앱 계층. 데이터 표현, 암호화, 세션까지 모두 포함하고 있으며, HTTP, FTP, SMTP등 응용 프로그램에서 사용되는 프로토콜을 다룹니다.
HTTP (웹사이트), FTP (파일 전송), DNS (도메인 → IP 변환), 이메일(SMTP/IMAP), 메신저 등 있습니다.
┌────────────────────────────┐
│ OSI 7계층 │ TCP/IP 4계층
├────────────────────────────┤
│ 7 응용(Application) │ │
│ 6 표현(Presentation) │ │ → 4. 응용 계층
│ 5 세션(Session) │ │
├────────────────────────────┤
│ 4 전송(Transport) │ → 3. 전송 계층
├────────────────────────────┤
│ 3 네트워크(Network) │ → 2. 인터넷 계층
├────────────────────────────┤
│ 2 데이터링크(Data Link) │ │
│ 1 물리(Physical) │ │ → 1. 네트워크 접근 계층
└────────────────────────────┘