OSI 7계층

2025. 4. 21. 15:10·Computer Science/네트워크
728x90

OSI 7계층 (Open Systems Interconnection 7 Layers)

네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준 모델로, ISO(국제 표준화기구)에서 정의

OSI 7계층 & 계층별 데이터 단위

각 계층은 네트워크에서 데이터가 어떻게 생성, 전송, 수신 되는지 단계별로 역할을 나눔

계층 대표 장비/ 프로토콜
물리 계층 허브, 리피터, 케이블
데이터 링크 계층 스위치, 브리지, 랜카드
네트워크 계층 라우터, IP, ICMP
전송 계층 TCP, UDP
세션 계층 NetBIOS, SAP
표현 계층 JPEG, MPEG, ASCII
응용 계층 HTTP, FTP, SMPTP
계층을 나눈 이유 ❓
흐름을 한 눈에 알아보기 쉽고,
특정한 곳에 이상이 생기면 다른 단계의 장비 & 소프트웨어를 건들지 않고 이상이 생간 단계만 고칠 수 있기 때문에

1) 물리 계층 (Physical Layer)

데이터를 0과 1의 비트로 해석해서, 이를 전기적 신호, 광 신호, 전파 등으로 바꿔 전달하는 계층

실제 데이터를 어떻게 전송할 것인가 에 집중 (무슨 내용인지 신경X)

주요 특징

  • 전송 매체: 유선(랜선, 광케이블), 무선(Wi-Fi, Bluetooth 등)
  • 장비 예시: 허브, 리피터, 케이블, 모뎀, 네트워크 카드(NIC)의 하드웨어 부분
  • 데이터 단위: `비트(bit)`
  • 오류 제어 X, 주소 X, 내용 이해 X
  • 그냥 0과 1을 물리적으로 주고받기만 함

2) 데이터 링크 계층 (Data Link Layer)

물리 계층에서 받은 비트 데이터를 프레임 단위로 변환하여 처리.
이 과정에서 CRC 기반 오류 검출과 흐름 제어를 통해 안전한 데이터 전달을 지원
`MAC 주소`를 기반으로 통신

같은 네트워크 내(Point to Point) 장치 간 정확한 전송을 담당하며, 스위치(Switch) 가 이 계층에서 동작하는 대표 장비

MAC 주소 (Media Access Control 주소)

물리적 장비에 할당하는, 네트워크에서 각 장치를 고유하게 식별하는 주소

네트워크 카드나 라우터 등 네트워크 장비에 내장된 하드웨어에 설정

내 PC의 MAC 주소

물리적 네트워크 장치에 대한 주소이므로 전 세계 어디서나 고유함

CRC 오류 검출 (Cycle Redundancy Check)

데이터를 보낼 때 계산한 `검사값`을 함께 보내고,
받는 쪽에서 다시 계산하면서 데이터에 오류가 있는지 확인하는 방식

택배 상자 비유
📤 송신
- 예시
: 친구한테 택배를 보낼 때, 안에 물건을 넣고  "이 상자의 무게는 3.4kg이야!"  라고 써둠
- 실제 : 보낼 데이터에 데해 나눗셈을 해서 CRC 검사값 생성 (본 데이터 + 검사값)

📥 수신
- 예시 : 친구가 상자를 실제로 재봤을 때  무게가 3.4kg이 아니면 뭔가 빠졌거나 이상이 있다는 것
- 실제 : 받은 데이터에 전체에 대해 다시 나눗셈 연산 → 나머지가 0이 아니면 데이터 변형 有 (오류!)

→ CRC는 데이터에 '검사값'이라는 무게표 같은 걸 붙여서, 받는 쪽이 다시 계산해보고 문제가 생겼는지 파악

나눗셈 방식 예시  👇🏻

더보기
용어 설명
데이터 실제 보내려는 이진수 데이터
생성 다항식 (Generator) 나눗셈에 쓰이는 이진수 값 (약속된 값, 송/수신자가 모두 알아야 함)
CRC 데이터에 덧붙이는 나머지 값 (오류 검사용)
  • 보낼 데이터: `11010011101100`
  • 생성 다항식 : `1011` (4비트 = 3자리 CRC 생성)
실제로는 훨씬 더 긴 이진수들이 사용됨

1) 데이터 뒤에 0을 덧붙임

생성 다항식이 4비트이므로, 데이터 뒤에 3개의 0을 덧붙임 (n-1)

11010011101100 → 11010011101100 000

2) 나눗셈 연산 (XOR)

CRC는 일반 나눗셈이 아닌, XOR 연산으로 나눗셈
1이 시작하는 곳마다 generator(1011) 와 XOR 연산을 반복해나가면서 계속 앞에 0이 나오도록 만들어 감

XOR: 두 비트가 다르면 1, 같으면 0

11010011101100000 ÷ 1011
→ 나눗셈 XOR 계산을 반복
→ 마지막 나머지 = 100 (3자리)

3) 결과

  • 원래 데이터: 11010011101100
  • CRC 나머지: 100
  • 전송할 실제 데이터: 11010011101100 100 ✅

4) 수신측

수신자는 받은 데이터 (11010011101100100) 을 다시 1011로 나눠서 나머지가 0이면 OK
나머지가 0이 아니면 오류 발생이라고 판단함.


3) 네트워크 계층 (Network Layer)

  • 경로(Route)와 주소(IP)를 정하고 `패킷`을 전달해주는 역할
  • 즉, 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능, 최적의 경로를 설정해야 함
  • 상대방이 제대로 받았는지 보장X, `비연결형`적 특징

주요 기능

  • 📍 논리 주소 지정 : MAC 주소는 물리적이나, IP 주소는 네트워크 구조를 고려한 논리적 주소
  • 🛣️ 라우팅 : 여러 네트워크 사이 최적 경로 결정 (라우터 수행)
  • ✈️ 패킷 포워딩 : 목적지 IP에 따라 다음 목적지로 데이터 전송
  • 🧩 단편화 : 너무 큰 패킷을 쪼개서 보냄, 수신 측에서 재조립

주요 프로토콜

IP (Internet Protocol) 패킷에 출발지 / 목적지 IP 주소 붙임
ICMP ( Internet Control Message Protocol ) 네트워크 오류, 상태 등을 알려줌 (`ping` 명령어에 사용)
ARP ( Address Resolution Protocol ) IP ↔ MAC 주소 변환 프로토콜 (계층 사이 위치)

 

  • IP는 누구에게 보낼지 정함
  • ICMP는 가다가 문제 생겼는지 알려줌
  • ARP는 네트워크 내부에서 "얘 IP 주소 누구 MAC이야?" 하고 물어봄

 


4) 전송 계층  (Transport Layer)

  • 애플리케이션 계층 간의 `신뢰성` 있는 데이터 전송을 책임짐
  • 네트워크 계층이 호스트 간 통신 (IP 주소 기반)을 제공한다면,
    전송 계층은 호스트 내 애플리케이션 간 통신 (포트 번호 기반) 제공
  • 오류검출 & 복구, 흐름제어와 중복 검사 수행
  • 대표 프로토콜: TCP / UDP

주요 기능

  • 프로세스 간 통신 제공
    포트 번호를 사용해, 하나의 컴퓨터 내에서 여러 프로그램 간 데이터 통신 가능(80번 = 웹서버, 443번=HTTPS)
  • 애플리케이션 구분 
    포트 번호로 어떤 애플리케이션에 데이터 전달할지 식별
  • 다중화 및 역다중화
    여러 애플리케이션에 데이터를 전송할 수 있고, 수신 시 정확한 앱으로 전달
  • 에러 검출
    데이터가 중간에 손상됐는지 검출

TCP VS UDP

항목 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
연결 방식 연결 지향 (3-way handshake) 비연결 지향
신뢰성 높음 (재전송, 순서 보장) 낮음 (순서, 재전송 없음)
전송 순서 보장 O X
에러 처리 O (재전송, 순서 체크 등) O (오류만 검출, 처리 X)
속도 느림 (신뢰성 확보 비용 있음) 빠름 (단순한 구조)
헤더 크기 큼 (20바이트 이상) 작음 (8바이트 고정)
용도 예시 웹, 이메일, 파일 전송 (HTTP, FTP, SMTP 등) 스트리밍, 게임, VoIP, DNS 등

 

TCP

TCP 동작 과정

 

TCP 택배 기사 행동

  1. 출발 전에 전화해서 받을 준비됐는지 확인함 → 🧠 3-way handshake
  2. 부품 하나하나에 번호를 붙여서 순서를 지정함
    → "이건 1번 머리, 2번 몸통, 3번 팔, 4번 다리!"
  3. 각각 부품을 따로 포장해서 보내되,
    • 배송 완료 여부를 확인하고,
    • 중간에 잃어버리면 재배송함.
  4. 친구가 받을 때, 순서대로 다시 조립 가능하도록 정리함.
정확하고, 순서대로 모든 부품을 받아서 조립 가능
단점: 시간이 좀 걸릴 수 있음.

UDP

UDP 동작

UDP 기사 행동

  1. 그냥 아무 순서 없이 부품들을 빠르게 날려 보냄
    → “머리부터 날려! 그다음 팔! … 다리!”
  2. 부품이 도착 순서도 불확실하고,
    • 중간에 떨어져 잃어버려도 다시 보내지 않음.
  3. 친구는 받은 것만 가지고 대충 조립하거나, 일부 빠진 채로 사용해야 할 수도 있음.
빠르게 도착하지만, 순서가 틀릴 수 있고 부품이 빠질 수 있음

5) 세션 계층 (Session Layer)

통신을 위한 세션(연결) 설정, 유지 그리고 종료하는 계층

해당 연결 내에서 데이터의 흐름을 동기화 & 관리

주요 기능

기능 설명
🟢 세션 설정 (Session Establishment) 통신할 두 장치 간 세션을 시작 (예: 로그인 요청)
🟡 세션 유지 (Session Management) 연결이 유지되는 동안 통신 흐름 관리
🔴 세션 종료 (Session Termination) 통신이 끝나면 연결을 정상적으로 끊음 (예: 로그아웃)
⏱️ 동기화(Synchronization) 큰 데이터 전송 중간중간에 **동기점(checkpoint)**을 만들어서 오류나 중단 시 재전송 시점 파악 가능
🧭 순서 제어 누가 언제 데이터를 보낼지 제어하는 대화 순서 관리 (dialog control)

 

예시

1. 영상 회의 중 연결 유지

세션 계층이 통신 세션을 유지하여 화상 회의가 끊기기 않게 도움

2. 파일 다운로드 중 끊김
중간에 네트워크가 끊긴 경우 세션 계층이 동기점 기준으로 이어서 받을 수 있게 함

3. 로그인 / 로그아웃 시스템
로그인하면 세션을 열고 로그아웃하면 세션을 닫음 → 담당: 세션 계층

6) 표현 계층 (Presentation Layer)

데이터의 표현 형식을 표준화 하는 역할 

애플리케이션 계층과 세션 계층 사이에서 중간 번역자 역할

주요 기능

1. 데이터 포맷/문자 인코딩 변환

  • 서로 다른 시스템 간에 문자 인코딩 방식이나 포맷이 다를 경우 통신 오류가 발생할 수 있음
  • 표현 계층은 문자 인코딩 변환(예: ASCII ↔ UTF-8), 데이터 포맷 변환(예: JSON ↔ XML)을 통해 이 문제를 해결함
  • 이는 이기종 플랫폼 간 통신에서 특히 중요

2. 데이터 암호화 및 복호화

  • TLS/SSL 암호화는 전통적으로 표현 계층에 위치시킴 (비록 TCP/IP에서는 계층 명확하게 구분하지 않지만)
  • 민감한 데이터(로그인 정보, 금융 정보 등)를 안전하게 전달하기 위해 암호화된 바이너리 포맷으로 변환
  • 복호화는 수신 측에서 데이터를 원래의 의미 있는 상태로 되돌리는 과정

3. 데이터 압축 및 해제

  • 전송 효율성을 위해 데이터를 압축 (예: ZIP, gzip, JPEG 등)
  • 표현 계층은 압축 알고리즘을 사용하여 데이터의 크기를 줄이고, 수신 측에서는 이를 복원

7) 애플리케이션 계층 (Application Layer)

OSI 모델의 최상위 계층으로, 사용자 또는 *`애플리케이션`이 네트워크에 접근할 수 있도록 인터페이스를 제공하는 계층

📌 애플리케이션 = 네트워크 서비스를 이용하는 소프트웨어 일부분

주요 기능

기능 설명
📡 네트워크 서비스 제공 사용자에게 의미 있는 네트워크 기반 기능 제공 (e.g. 웹, 이메일, 파일 전송 등)
🔌 프로토콜 기반 통신 HTTP, FTP, SMTP, DNS, POP3 등 다양한 프로토콜 사용
🧾 요청/응답 처리 클라이언트 요청 처리, 서버 응답 송신 등 상호작용 수행
🌐 리소스 접근 URL, URI, 파일 등 외부 리소스 식별 및 접근 지원

포함 프로토콜

FTP (File Transfer Protocol) 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
SSH (Secure Shell) 보안되지 않은 네트워크에서
네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
HTTP (HyperText Transfer Protocol) World Wide Web을 위한 데이터 통신의 기초이자
웹 사이트를 이용하는데 사용되는 프로토콜
SMTP (Simple Mail Transfer Protocol) 전자 메일 전송을 위한 인터넨 표준 통신 프로토콜
DNS (Domain Name Server) 도메인 이름과 IP주소를 매핑해 주는 서버

참고

https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-OSI-7%EA%B3%84%EC%B8%B5-%EC%A0%95%EB%A6%AC#osi_7%EA%B3%84%EC%B8%B5%EC%9D%84_%EB%82%98%EB%88%88_%EC%9D%B4%EC%9C%A0%EB%8A%94?

 

🗼 OSI 7계층 모델 - 핵심 총정리

​OSI 7계층 OSI 7계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7계층을 나눈 이유는? 흐름을 한눈에 알아보기 쉽고 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장

inpa.tistory.com

 

728x90
'Computer Science/네트워크' 카테고리의 다른 글
  • TCP의 흐름 제어 & 혼잡 제어
  • TCP & UDP, TCP의 오류 검출과 재전송
  • HTTP & HTTPS
  • TCP / IP 4계층 모델, PDU
0woy
0woy
Algorithm, CS, Web 등 배운 내용을 기록합니다.
  • 0woy
    0woy dev
    0woy
  • 전체
    오늘
    어제
  • 🌐 LANGUAGE
    • 분류 전체보기 (80)
      • Backend (21)
        • JAVA (7)
        • DB (11)
        • Spring (1)
        • Spring Security (2)
      • Computer Science (22)
        • 네트워크 (9)
        • 운영체제 (5)
        • 보안 (7)
      • Frontend (15)
        • HTML5 (1)
        • CSS (1)
        • JS (4)
        • Vue 3 (9)
      • PS (16)
        • LeetCode (2)
        • Baekjoon (1)
        • Programmers (1)
        • 알고리즘 (12)
      • Dev Trivia (6)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    공개키
    JS
    RDB
    leetcode
    트리
    비밀키
    function
    javascript
    java
    JDBC
    Graph
    tcp
    그래프
    security
    DP
    dfs
    BFS
    Vue3
    대칭키
    가용성
    https
    set
    Props
    Spring
    CA
    Filter
    shortestpath
    select
    PreparedStatement
    속성
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
0woy
OSI 7계층
상단으로

티스토리툴바