OSI 7 Layer와 계층별 역할, ARP
네트워크를 계층으로 나누는 이유와 각 계층의 역할, 계층별 데이터 단위, IP 주소를 MAC 주소로 바꾸는 ARP를 정리한다.
시리즈 · 네트워크1 / 12
- OSI 7 Layer와 계층별 역할, ARP
- IP 주소: IPv4와 IPv6, NAT, 체크섬
- 라우터: 경로 지정, 브로드캐스트 컨트롤, 라우팅과 스위칭
- DHCP 동작 방식과 UDP를 사용하는 이유
- IP의 한계와 TCP·UDP, 3-Way Handshake
- TCP 4-Way Handshake와 TIME_WAIT
- DNS 정리: 구조, 질의 방식, 레코드, 이중화와 위임
- 로드 밸런서: 구성 방식, 헬스 체크, L4와 L7
- HTTP 메서드와 상태 코드: 멱등성, POST와 PUT의 차이
- HTTP의 Stateless·Connectionless와 쿠키, 세션
- HTTP/1.1, HTTP/2, HTTP/3 비교
- 소켓과 포트, 그리고 웹소켓
계층을 나누는 이유

네트워크 통신을 계층으로 나누면 통신이 단계별로 진행되므로, 문제가 생겼을 때 어느 단계가 원인인지 빠르게 파악할 수 있다.
OSI 모델은 7계층이지만, 실제 인터넷은 TCP/IP 모델로 동작한다. 아래에서는 OSI의 상위 세 계층(Session, Presentation, Application)을 Application 하나로 묶은 TCP/IP Updated 모델의 5계층을 기준으로 정리한다.
계층별 역할
| 계층 | 역할 | 구현 위치 | 식별자 |
|---|---|---|---|
| Physical | 물리적으로 연결된 두 컴퓨터가 0과 1의 나열을 주고받게 한다 | PHY 칩 (하드웨어) | - |
| Data-Link | 같은 네트워크에 있는 여러 컴퓨터가 데이터를 주고받게 한다 | 랜카드 (하드웨어) | MAC 주소 |
| Network | 네트워크와 네트워크 사이에서 목적지까지 길을 찾는다 | 운영체제 커널 | IP 주소 |
| Transport | 목적지 컴퓨터 안의 프로세스까지 데이터를 전달한다 | 운영체제 커널 | 포트 번호 |
| Application | 전송 계층의 API로 통신하는 프로그램 | 사용자 프로그램 | - |
Physical Layer
- 0과 1의 나열을 아날로그 신호로 바꿔 전선으로 흘려보낸다(Encoding).
- 아날로그 신호가 들어오면 디지털 신호로 바꿔 해석한다(Decoding).
Data-Link Layer
- 같은 네트워크에 있는 여러 대의 컴퓨터가 데이터를 주고받기 위해 필요한 모듈이다.
- 송신 데이터의 시작과 끝에 특정 비트를 붙여 구분하는 Framing을 수행한다.
Network Layer
- 여러 네트워크가 연결된 inter-network 안에서 IP 주소로 길을 찾고, 다음 라우터에게 데이터를 넘겨준다.
Transport Layer
- 포트 번호를 사용해, 목적지 컴퓨터의 최종 도착지인 프로세스까지 데이터가 도달하게 한다.
Application Layer
- 운영체제의 Transport Layer가 제공하는 API(TCP/IP 소켓)를 활용해 통신 가능한 프로그램을 만드는 계층이다.
Transport Layer와 Network Layer의 차이
- Network Layer: IP 주소로 컴퓨터까지 데이터를 전달한다. 호스트 간의 통신이다.
- Transport Layer: 포트 번호로 프로세스까지 데이터를 전달한다. 애플리케이션 프로세스 간의 통신이다.
계층별 데이터 단위
| 계층 | 단위 |
|---|---|
| Physical | Bit (Signal) |
| Data-Link | Frame |
| Network | Packet |
| Transport | Segment (UDP에서는 흔히 Datagram이라고 부른다) |
ARP (Address Resolution Protocol)
같은 네트워크 세그먼트 안에서는 MAC 주소로 통신한다. ARP는 IP 주소를 물리적 네트워크 주소(MAC 주소)로 대응시키는 주소 결정 프로토콜이다.
- 송신자 A가 목적지의 MAC 주소를 모르면, 찾으려는 IP 주소를 담은 ARP 패킷을 브로드캐스트 주소
FF:FF:FF:FF:FF:FF로 네트워크 전체에 보낸다. - 각 호스트는 ARP 패킷을 받아 자신의 IP 주소가 목적지인지 확인한다.
- 해당 IP를 가진 호스트가 자신의 MAC 주소를 A에게 응답한다.
- A는 IP 주소와 MAC 주소의 대응 정보를 ARP 캐시라는 메모리 테이블에 저장해 두고 재사용한다.
ARP에는 정보의 출처를 검증할 수단이 없다. 누군가 변조된 응답을 보내도 감지할 수 없다는 것이 단점이다.