1. 라이브러리
  2. 라우팅과 네트워크
  3. 네트워크 모델

업데이트됨 1개월 전

연결이 끊겼을 때, 어디서부터 확인해야 할까요?

케이블이 꽂혀 있는지 확인할 수 있습니다. Wi-Fi가 연결되어 있는지 확인할 수 있습니다. IP 주소가 있는지 확인할 수 있습니다. 웹사이트가 다운됐는지 확인할 수 있습니다. 수백 가지를 확인할 수 있습니다. 그런데 어떤 순서로? 실제 문제를 찾은 건지, 아니면 증상만 발견한 건지는 어떻게 알 수 있을까요?

OSI 모델이 이 질문에 답합니다. 네트워크 통신을 7개의 계층으로 나누는데, 맨 아래의 물리적 케이블부터 맨 위의 애플리케이션까지입니다. 각 계층은 그 아래 계층에 의존합니다. 1계층에 문제가 생기면, 그 위의 어떤 것도 작동할 수 없습니다. 이 단순한 통찰 하나가 문제 해결을 막연한 추측에서 체계적인 과정으로 바꿔줍니다: 맨 아래에서 시작해 위로 올라가다가, 문제가 있는 지점을 발견하면 멈추면 됩니다.

7개의 계층

OSI(Open Systems Interconnection) 모델은 1980년대에 네트워크를 이해하기 위한 공통 프레임워크를 만들기 위해 개발되었습니다. 7개의 계층을 아래에서 위 순으로 정리하면:

계층이름담당 역할장애 증상
7응용앱이 사용하는 프로토콜 (HTTP, DNS, SMTP)"웹사이트에서 오류가 반환됨"
6표현데이터 형식 변환, 암호화"데이터가 깨져서 보임"
5세션연결 상태 관리"세션 시간 초과"
4전송종단 간 전달 (TCP, UDP)"포트 443에서 연결 거부됨"
3네트워크네트워크 간 라우팅 (IP)"호스트까지 경로 없음"
2데이터 링크로컬 네트워크 통신 (Ethernet, Wi-Fi)"라우터를 찾을 수 없음"
1물리케이블, 신호, 커넥터"링크 LED가 꺼져 있음"

영어 계층명을 외우는 기억법이 있습니다. 위에서 아래로: "All People Seem To Need Data Processing." 아래에서 위로: "Please Do Not Throw Sausage Pizza Away."

가장 중요한 계층들

1계층: 물리

이 계층은 구리선의 전압, 광섬유 속의 빛, 공기 중의 전파입니다. RJ45 커넥터가 딸깍 소리를 내며 꽂히고, 링크 LED가 깜박이는 것입니다.

1계층은 데이터를 이해하지 못합니다. 비트—1과 0—를 그 의미는 알지도 신경 쓰지도 않으면서 전송합니다. 1계층 위의 모든 것은 그 비트들이 무엇을 나타내는지에 대한 합의일 뿐입니다.

문제 해결 시: 링크 LED가 켜져 있나요? 케이블이 손상됐나요? 무선 신호가 충분히 강한가요?

2계층: 데이터 링크

2계층은 원시 비트를 프레임으로 조직하고 직접 연결된 기기 간의 통신을 처리합니다. 여기에 MAC 주소가 있습니다—모든 네트워크 인터페이스에 내장된 하드웨어 주소입니다.

Ethernet과 Wi-Fi는 2계층 기술입니다. 스위치가 이 계층에서 작동하며, MAC 주소를 기반으로 프레임을 전달합니다. 2계층은 데이터를 다음 홉까지만 전달합니다.

문제 해결 시: 로컬 네트워크의 다른 기기들이 보이나요? 스위치 포트가 작동하나요? MAC 주소 충돌이 있나요?

3계층: 네트워크

3계층에 IP 주소가 있습니다. 2계층이 로컬 전달을 담당한다면, 3계층은 라우팅을 담당합니다—출발지에서 목적지까지 여러 네트워크를 거쳐 패킷을 전달하는 것입니다.

라우터가 3계층에서 작동합니다. 목적지 IP 주소를 확인하고, 라우팅 테이블을 참조하여, 패킷을 목적지 방향으로 전달합니다. 이것이 인터넷을 가능하게 하는 원리입니다: 수십억 개의 기기가 수많은 중간 라우터를 통해 연결되어, 각각이 독립적으로 전달 결정을 내립니다.

문제 해결 시: 목적지에 ping이 되나요? IP 주소가 올바른가요? 목적지까지 경로가 있나요? 게이트웨이 설정이 되어 있나요?

4계층: 전송

4계층은 애플리케이션 간의 연결을 제공합니다. TCP와 UDP가 이 계층에 있습니다. 포트 번호도 마찬가지입니다—단일 IP 주소에서 여러 서비스를 운영할 수 있게 해주는 메커니즘입니다 (웹은 포트 80, 이메일은 포트 25, SSH는 포트 22).

TCP는 신뢰성을 제공합니다: 데이터가 완전하고 순서대로 도착하도록 보장하며, 손실된 부분은 재전송합니다. UDP는 속도를 제공합니다: 수신 확인 없이 패킷을 전송합니다. 어떤 것을 쓸지는 무엇을 전송하느냐에 달려 있습니다.

문제 해결 시: 포트가 열려 있나요? 방화벽이 연결을 차단하고 있나요? TCP 연결이 수립되나요 (3-way 핸드셰이크가 완료되나요)?

5, 6, 7계층: 상위 계층들

솔직히 말씀드리면, 상위 3개 계층은 실제로 다소 모호합니다.

세션 계층(5)은 지속적인 통신 세션을 관리합니다. 표현 계층(6)은 데이터 형식 변환과 암호화를 처리합니다. 응용 계층(7)은 HTTP, DNS, SMTP 같은 프로토콜이 동작하는 곳입니다.

실제 현장에서는 이 기능들이 종종 하나로 합쳐집니다. TLS 암호화는 여러 계층에 걸쳐 있습니다. HTTP는 자체적인 세션 관리를 처리합니다. 대부분의 현대 프로토콜은 표현 계층과 응용 계층의 역할을 명확히 구분하지 않습니다.

그래도 문제 해결 관점에서 이 구분은 여전히 유용합니다: TCP 연결은 되는데 (4계층 정상) 애플리케이션이 여전히 실패한다면, 문제는 5~7계층에 있습니다. 그것만으로도 범위를 많이 좁힌 셈입니다.

데이터가 계층을 통해 이동하는 방식

데이터를 전송할 때, 스택을 아래로 이동합니다. 각 계층은 상위 계층의 데이터를 자신의 헤더로 감쌉니다:

애플리케이션 데이터
    ↓ (전송 헤더 추가)
세그먼트 [TCP 헤더 | 애플리케이션 데이터]
    ↓ (네트워크 헤더 추가)
패킷 [IP 헤더 | TCP 헤더 | 애플리케이션 데이터]
    ↓ (프레임 헤더 및 트레일러 추가)
프레임 [Ethernet 헤더 | IP 헤더 | TCP 헤더 | 애플리케이션 데이터 | 트레일러]
    ↓ (신호로 변환)
선 위의 비트: 10110010101001...

목적지에서는 과정이 반대로 일어납니다. 각 계층은 헤더를 제거하고 나머지 데이터를 위로 전달합니다. 응용 계층이 받는 것은 출발지 응용 계층이 전송했던 것과 정확히 같습니다—양쪽에서 7개 계층의 캡슐화를 거쳤음에도 불구하고.

OSI와 현실

인터넷은 실제로 OSI 모델을 사용하지 않습니다. 4개의 계층을 가진 TCP/IP 모델을 사용합니다:

TCP/IP 계층OSI 대응 계층
응용OSI 5~7계층
전송OSI 4계층
인터넷OSI 3계층
네트워크 접근OSI 1~2계층

그렇다면 왜 OSI를 배울까요? 문제에 대해 생각하기에 더 적합하기 때문입니다.

TCP/IP 모델은 실제로 존재하는 것을 설명합니다. OSI 모델은 그것에 대해 어떻게 생각할지를 알려줍니다. 엔지니어가 "그건 2계층 문제야"라고 말하면, 모두가 즉시 스위치, MAC 주소, 로컬 네트워크 문제를 이야기하는 것임을 압니다—라우팅도, 애플리케이션도, 케이블도 아닌. 7개의 계층은 정확한 소통을 위한 공통 어휘를 제공합니다.

문제 해결 프레임워크

이것이 OSI 모델이 진가를 발휘하는 순간입니다. 무언가 고장났을 때:

1계층에서 시작하세요. 물리적 연결이 있나요? 링크 LED는요? 케이블이 제대로 꽂혀 있나요?

2계층으로 넘어가세요. 같은 네트워크의 기기들이 서로 보이나요? 스위치가 작동하나요? MAC 주소 문제가 있나요?

3계층을 확인하세요. 게이트웨이에 ping이 되나요? 목적지는요? 라우팅이 작동하나요? IP 설정이 올바른가요?

4계층을 테스트하세요. TCP 연결이 수립되나요? 포트가 열려 있나요? 방화벽 규칙이 올바른가요?

마지막으로, 5~7계층. 애플리케이션 프로토콜이 작동하나요? 인증이 성공하나요? 데이터 형식이 올바른가요?

이 체계적인 접근 방식에는 중요한 장점이 있습니다: 하위 계층에 문제가 있다면, 상위 계층을 조사하는 데 시간을 낭비하지 않습니다. 케이블이 뽑혀 있는데 웹 서버 설정을 확인할 필요는 없으니까요.

각 계층이 제공하는 것

계층화의 강점은 각 계층이 복잡성을 숨긴 채 서비스를 제공한다는 점입니다:

  • 물리 계층은 데이터 링크 계층에 원시 비트 전송을 제공합니다
  • 데이터 링크 계층은 네트워크 계층에 로컬 구간의 신뢰성 있는 전달을 제공합니다
  • 네트워크 계층은 전송 계층에 종단 간 패킷 전달을 제공합니다
  • 전송 계층은 응용 계층에 신뢰성 있는 바이트 스트림 또는 데이터그램을 제공합니다

이 추상화 덕분에 Ethernet에서 Wi-Fi로 바꿔도 애플리케이션 동작 방식은 달라지지 않습니다. 상위 계층은 하위 계층이 어떻게 일을 처리하는지 알지도, 신경 쓰지도 않습니다—그저 제공되는 서비스를 사용할 뿐입니다.

핵심 정리

OSI 모델의 7개 계층—물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용—은 네트워크 통신을 이해하기 위한 프레임워크입니다. 각 계층은 그 아래 계층에 의존하고 위 계층에 서비스를 제공합니다. 문제 해결 시에는 1계층에서 시작해 위로 올라가세요. 실제 원인이 빠진 케이블일 때 상위 계층에서 시간을 낭비하지 않기 위해서입니다. 인터넷은 더 단순한 TCP/IP 모델을 사용하지만, OSI 모델은 네트워크 문제를 논의하는 표준 어휘로 자리 잡고 있습니다. "3계층 문제"라는 말은 "네트워크에 뭔가 문제가 있어"보다 훨씬 명확합니다.

OSI 모델에 관해 자주 묻는 질문

TCP/IP처럼 4개가 아니라 왜 7개의 계층이 있나요?

OSI 모델은 각 계층의 역할을 명확히 분리한 이상적인 참조 프레임워크로 설계된 것입니다. TCP/IP 모델은 실제 동작하는 코드에서 진화했으며, 실용적인 이유로 관련 기능들이 합쳐졌습니다. 7개의 계층은 실제 구현이 경계를 엄격히 지키지 않더라도 문제를 논의하기 위한 더 세밀한 어휘를 제공합니다.

스위치는 어느 계층에서 작동하나요? 라우터는요?

스위치는 2계층에서 작동하며, MAC 주소를 기반으로 프레임을 전달합니다. 라우터는 3계층에서 작동하며, IP 주소를 기반으로 패킷을 전달합니다. 단, 현대의 "L3 스위치"는 두 가지 모두 처리할 수 있으며, 많은 장치가 여러 계층에 걸쳐 동작합니다.

TLS/SSL은 모델의 어디에 해당하나요?

TLS는 OSI 모델의 5~6계층에 걸쳐 있으며, 세션 보안과 데이터 암호화를 담당합니다. 실제로 TLS는 응용 계층과 전송 계층 사이에 위치하는데, 이것이 상위 OSI 계층이 모호하게 느껴지는 이유 중 하나입니다—실제 프로토콜이 항상 계층 경계를 따르지는 않기 때문입니다.

7개의 계층을 모두 외워야 하나요?

문제 해결과 전문적인 소통을 위해서라면 네—최소한 각 계층의 기본 역할은 알아야 합니다. 영어 계층명을 외우는 기억법으로 "Please Do Not Throw Sausage Pizza Away" (Physical, Data Link, Network, Transport, Session, Presentation, Application)가 있습니다. 더 중요한 것은, 각 계층이 그 아래 계층에 의존한다는 원리를 이해하는 것입니다.

이 페이지가 도움이 되었나요?

😔
🤨
😃