OSI 7계층은 네트워크 통신 과정을 7개의 역할로 나눈 참조 모델(reference model)이다. 실제 인터넷은 이보다 단순한 TCP/IP 모델로 돌아가지만, 통신의 각 단계를 이해하고 문제를 어느 층에서 찾을지 가늠하는 틀로 OSI만 한 게 없다. 정처기 시험에도 빠지지 않는다.
왜 계층으로 나누나
핵심 아이디어는 관심사의 분리다. “전선에 전기 신호를 어떻게 흘릴까”와 “이 데이터를 어느 애플리케이션에 전달할까”는 완전히 다른 문제다. 이걸 한 덩어리로 다루면 손댈 수 없이 복잡해진다.
계층으로 나누면 각 층은 바로 아래 층의 서비스만 쓰고, 바로 위 층에는 서비스만 제공한다. 아래가 어떻게 구현됐는지는 몰라도 된다. 그래서 Wi-Fi를 유선으로 바꿔도 상위 계층 코드는 그대로다.
7개 계층 (위에서 아래로)
- 7. 응용(Application): 사용자와 가장 가까운 층. HTTP, FTP, SMTP, DNS. 브라우저나 메일 클라이언트가 여기서 논다.
- 6. 표현(Presentation): 데이터의 표현 방식을 다룬다. 문자 인코딩, 암호화(SSL/TLS), 압축.
- 5. 세션(Session): 통신의 시작·유지·종료를 관리한다. 연결을 열고 닫고, 동기화 지점을 잡는다.
- 4. 전송(Transport): 종단 간(end-to-end) 데이터 전달을 책임진다. TCP(신뢰성 보장)와 UDP(빠르지만 보장 없음), 그리고 포트 번호로 어느 프로세스인지 구분한다.
- 3. 네트워크(Network): 서로 다른 네트워크를 넘어 목적지까지 경로를 정한다. IP 주소와 라우팅. 장비로는 라우터.
- 2. 데이터링크(Data Link): 같은 네트워크 안에서 인접 노드끼리 프레임을 주고받는다. MAC 주소, 오류 검출. 장비로는 스위치.
- 1. 물리(Physical): 실제 전기 신호·빛·전파로 비트를 전송한다. 케이블, 허브, 리피터.
캡슐화 — 데이터가 층을 내려가는 방법
보낼 때 데이터는 위에서 아래로 내려가며 각 층이 헤더를 덧붙인다. 이걸 캡슐화라 한다. 받는 쪽은 반대로 아래에서 위로 올라가며 헤더를 하나씩 벗긴다.
[7] 데이터
[4] TCP헤더 | 데이터 → 세그먼트(Segment)
[3] IP헤더 | TCP헤더 | 데이터 → 패킷(Packet)
[2] 프레임헤더 | IP헤더 | ... | 트레일러 → 프레임(Frame)
[1] 0101110... → 비트(Bit)
각 계층에서 데이터를 부르는 이름(PDU)이 다르다는 점도 시험에 자주 나온다: 전송은 세그먼트, 네트워크는 패킷, 데이터링크는 프레임, 물리는 비트다.
주소가 계층마다 다른 이유
가장 헷갈리는 부분이 “IP 주소랑 MAC 주소가 왜 둘 다 있나”이다. 역할이 다르다.
- IP 주소(3계층)는 “최종 목적지가 어디인가”를 나타낸다. 출발지부터 도착지까지 변하지 않는다.
- MAC 주소(2계층)는 “바로 다음에 어느 장비로 넘길까”를 나타낸다. 라우터를 하나 지날 때마다 바뀐다.
편지에 비유하면 IP는 받는 사람 집 주소, MAC은 지금 이 편지를 넘겨받을 바로 옆 우체국이다. 목적지는 그대로지만 거쳐 가는 손은 계속 바뀐다.
TCP/IP 모델과의 관계
실무 표준인 TCP/IP는 이를 4계층(또는 5계층)으로 압축한다. OSI의 5·6·7을 하나의 응용 계층으로 묶고, 1·2를 네트워크 접근 계층으로 합치는 식이다. 그래도 “문제가 생기면 어느 층인가”를 물을 때는 OSI의 7단계 구분이 진단 지도로 훨씬 쓸모 있다. 연결이 안 될 때 케이블(1)부터 볼지, IP(3)를 볼지, 포트(4)를 볼지, 애플리케이션 설정(7)을 볼지 — 이 사고 순서 자체가 OSI가 주는 가장 실용적인 선물이다.
이 글에 대한 의견은 아래 댓글로 남겨주세요 (GitHub 계정 필요). 로그인 없이 남기고 싶다면