• network
  • tcp-ip

OSI 7 Layer와 계층별 역할, ARP

네트워크를 계층으로 나누는 이유와 각 계층의 역할, 계층별 데이터 단위, IP 주소를 MAC 주소로 바꾸는 ARP를 정리한다.

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

계층을 나누는 이유

OSI 7계층 모델과 TCP/IP Original, TCP/IP Updated 모델의 계층 비교

네트워크 통신을 계층으로 나누면 통신이 단계별로 진행되므로, 문제가 생겼을 때 어느 단계가 원인인지 빠르게 파악할 수 있다.

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).
  • 같은 네트워크에 있는 여러 대의 컴퓨터가 데이터를 주고받기 위해 필요한 모듈이다.
  • 송신 데이터의 시작과 끝에 특정 비트를 붙여 구분하는 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 주소)로 대응시키는 주소 결정 프로토콜이다.

  1. 송신자 A가 목적지의 MAC 주소를 모르면, 찾으려는 IP 주소를 담은 ARP 패킷을 브로드캐스트 주소 FF:FF:FF:FF:FF:FF로 네트워크 전체에 보낸다.
  2. 각 호스트는 ARP 패킷을 받아 자신의 IP 주소가 목적지인지 확인한다.
  3. 해당 IP를 가진 호스트가 자신의 MAC 주소를 A에게 응답한다.
  4. A는 IP 주소와 MAC 주소의 대응 정보를 ARP 캐시라는 메모리 테이블에 저장해 두고 재사용한다.

ARP에는 정보의 출처를 검증할 수단이 없다. 누군가 변조된 응답을 보내도 감지할 수 없다는 것이 단점이다.