2개 이상의 Network Interface 사이의 통신이다. Network Interface는 컴퓨터가 네트워크에 연결되는 물리적/논리적 접점으로, 노트북의 Wi-Fi 카드, 데스크탑의 이더넷 포트, VM의 ens160 등이 해당된다.
ISO(International Organization for Standardization)가 1984년에 개발한 7계층 통신 표준이다. 표준화 이전에는 각 제조사가 자체 통신 규격을 사용해서 서로 다른 장비 간 통신이 되지 않는 문제가 있었다.
모든 계층은 세 가지 요소로 구성된다:
| 개념 | 의미 |
|---|---|
| Service | 아래 계층이 위 계층에 제공하는 기능 (뭘 해주나?) |
| Protocol | 같은 계층끼리 정보를 교환하는 규칙 (무슨 규칙으로 말하나?) |
| Interface | 위 계층이 아래 계층의 기능을 사용하는 접점 (어떻게 쓰나?) |
| 구분 | Data Unit | Layer | 역할 |
|---|---|---|---|
| Host | data | 7. Application | 사용자가 직접 쓰는 앱 (브라우저, 메일) |
| Host | data | 6. Presentation | 데이터 형식 변환, 암호화 (UTF-8, TLS, gzip) |
| Host | data | 5. Session | 연결 유지/종료 관리 |
| Host | segments | 4. Transport | TCP(신뢰) vs UDP(속도), 포트 번호 |
| Media | packets | 3. Network | IP 주소, 라우팅 |
| Media | frames | 2. Data Link | MAC 주소, 스위치 |
| Media | bits | 1. Physical | 전기신호, 케이블 |
Layer 1은 전기신호 같은 물리적 신호이고, 위로 올라갈수록 사람이 이해할 수 있는 형태로 가공된다. 데이터를 보낼 때는 위에서 아래로(캡슐화), 받을 때는 아래에서 위로(역캡슐화) 흐른다.
브라우저에서 https://example.com에 접속할 때:
받는 쪽은 L1 → L7로 반대로 올라온다.
한 번에 "전기신호 → 웹페이지"로 변환하면 너무 복잡하다. 계층을 나누면 각 계층이 자기 역할만 신경 쓰면 되고(관심사 분리), 한 계층을 바꿔도 다른 계층에 영향이 없다. 케이블을 광섬유로 바꿔도 TCP는 그대로 동작한다.
OSI 계층을 이해하면 문제가 어느 계층에서 발생했는지 좁힐 수 있다.
Q. 네트워크 인터페이스란?
컴퓨터가 네트워크에 연결되는 물리적/논리적 접점이다. 노트북의 Wi-Fi 카드, 데스크탑의 이더넷 포트(랜선 꽂는 곳), VM에서 ip addr show 했을 때 보이는 ens160, ens224 등이 해당된다.
Q. OSI 표준화 이전에는 어떤 문제가 있었나?
각 제조사(Cisco, IBM 등)가 자체 통신 규격을 사용해서 Cisco 장비끼리는 통신되지만 IBM 장비와는 안 되는 식이었다.
Q. Link Layer 통신이란?
같은 네트워크 구간(LAN) 안에서 바로 옆 장치까지 데이터를 전달하는 계층이다. MAC 주소를 사용한다. L2는 "같은 동네 안에서 누구 집 문앞까지", L3는 "어느 동네로 보내야 하지?"에 해당한다.
Q. Layer 4는 단순 전달 통로인가?
아니다. Transport 계층은 데이터 조각 나누기, 순서 맞추기, 재전송, 연결 관리(TCP), 포트 번호 기반 구분 등 end-to-end 전송 품질을 관리하는 계층이다.
Q. Session과 연결 보장은 다른 의미인가?
다르다. 연결 보장은 L4(TCP) 쪽으로 전송 안정성에 가깝고, 세션 관리는 L5 쪽으로 대화를 시작/유지/종료하고 현재 어떤 대화가 진행 중인지 관리하는 개념이다.
Q. Presentation Layer의 예시는?
문자열 인코딩(UTF-8), 암호화(TLS/SSL), 압축(gzip), 직렬화/포맷(JSON, XML) 등이다. 같은 데이터라도 어떤 형식으로 표현할지 맞추는 과정이다.
Q. 웹서버의 router와 Layer 3 router의 관계는?
다른 개념이다. 네트워크 router는 IP 패킷의 경로를 결정하는 물리 장비이고, 웹서버 router는 URL 경로를 핸들러에 매핑하는 소프트웨어 패턴이다. "요청을 적절한 목적지로 보낸다"는 비유에서 차용한 것이다.
Q. service / protocol / interface의 차이를 편지로 비유하면?