LabHub

네트워크 기초 · OSI 와 TCP/IP 계층 · 이론

계층 모델 — 각 층이 무엇을 결정하는가

LabHub 에서 이어서 보기

한 줄 요약

계층은 각 층이 아래층의 서비스만 쓰고 위층에는 인터페이스만 노출하도록 나눈 설계이며, 장애를 진단할 때는 "어느 층까지 성공했는가"를 묻는 도구가 된다.

왜 이게 필요했나

네트워크는 한 사람이 만들지 않는다. 광케이블을 까는 회사, 라우터를 만드는 회사, 브라우저를 만드는 회사가 다 다르다. 이들이 서로의 구현을 몰라도 함께 동작하려면 경계와 계약이 필요하다.

계층화가 그 계약이다. 아래층은 위층에 서비스를 제공하고, 위층은 아래층이 그 서비스를 어떻게 구현했는지 몰라도 된다. TCP 는 자기 세그먼트가 광케이블로 가든 와이파이로 가든 신경 쓰지 않는다.

어떻게 동작하나

교과서의 OSI 7계층과 실제 인터넷의 TCP/IP 모델은 이렇게 대응한다.

| OSI | TCP/IP | 이 층이 결정하는 것 | 데이터 단위 |
| --- | --- | --- | --- |
| 응용, 표현, 세션 | 응용 | 무엇을 주고받을 것인가 (HTTP, DNS) | 메시지 |
| 전송 | 전송 | 어느 프로세스에게, 신뢰성 있게 보낼 것인가 | 세그먼트 / 데이터그램 |
| 네트워크 | 인터넷 | 어느 호스트로, 어떤 경로로 보낼 것인가 | 패킷 |
| 데이터 링크 | 링크 | 같은 네트워크 안 다음 장비까지 어떻게 보낼 것인가 | 프레임 |
| 물리 | 링크 | 비트를 어떤 신호로 바꿀 것인가 | 비트 |

캡슐화는 위층 데이터에 아래층 헤더를 덧붙이는 과정이다. HTTP 요청에 TCP 헤더가 붙어 세그먼트가 되고, IP 헤더가 붙어 패킷이 되고, 이더넷 헤더가 붙어 프레임이 된다. 받는 쪽은 역순으로 벗긴다.

여기서 자주 오해되는 지점을 짚어야 한다. OSI 7계층은 교육용 모형이지 인터넷의 구현이 아니다. 표현 계층과 세션 계층에 정확히 대응하는 인터넷 프로토콜은 없다. "TLS 는 몇 계층인가" 같은 질문에 딱 떨어지는 답이 없는 이유다. TLS 는 TCP 위에서 동작하며 응용 데이터를 암호화하므로 어디에 놓아도 어색하다. 모델은 이해를 돕는 도구이지 실체가 아니다.

현장에서 만나는 모습

계층 모델의 실전 가치는 진단 순서에 있다. 접속이 안 될 때 다음 순서로 물으면 범위가 빠르게 좁혀진다.

1. 이름이 풀리는가 — getent hosts api.example.com (응용 계층 아래의 이름 해석)
2. 그 주소로 TCP 연결이 되는가 — curl -v --connect-timeout 3 http://주소:포트/
3. 연결은 되는데 응답이 없는가 — 전송 계층은 통과했고 응용 계층 문제다

이 순서를 지키면 "네트워크가 안 돼요"라는 보고를 "3번 단계에서 멈춘다"로 바꿀 수 있다. 참고로 실습 환경처럼 ping 이나 tcpdump 를 쓸 수 없는 곳에서도 ss, curl, dig, getent, /proc/net/* 만으로 위 세 단계는 전부 확인할 수 있다.

이어지는 퀴즈에서 확인할 것

각 계층이 무엇을 결정하는지, 캡슐화 순서가 어떻게 되는지, 그리고 OSI 모형을 어디까지 믿어야 하는지 확인한다.