ARP 작동 과정

L3 네트워크 계층

  1. 프로세스로부터 IP 데이터그램(IP header + TPDU)이 커널에 도착

  2. IP 데이터그램 헤더에 적힌 목적지 주소를 라우팅 테이블에 입력 → 나아갈 인터페이스 및 다음 홉의 IP 주소 출력

    1. L2.5 주소 결정 (인터페이스가 공유형 매체 링크를 사용한다면)

      다음 홉의 IP 주소를 ARP 캐시에 입력 → 다음 홉 컴퓨터의 MAC 주소 출력

      ARP: 다음 홉 unicast IP주소의 엔트리가 ARP 캐시에 없을 때 작동

  3. IP 데이터그램에 MAC 주소를 포함한 헤더를 붙여 MAC 프레임(PDU) 생성

L2 (공유형) 링크 계층

  1. 프레임이 링크 계층을 타고 다음 라우터로 전송

ARP 캐시는 컴퓨터구조의 캐시처럼 라우팅 테이블로부터 입력받은 다음 홉 IP 주소가 엔트리에 있으면 바로 출력하고, 아니라면 ARP 프로토콜이 작동하여 IP 주소에 대응하는 MAC 주소를 구해온다.

ARP 캐시: (인터페이스마다) 다음 홉 IP주소 → MAC 주소

ARP 캐시 엔트리 유형 생성 주체 IP주소 유형
동적 ARP unicast
정적 OS 커널 multicast, broadcast

Directed ARP

directed ARP에서 왜 ARP 응답에 의해 ARP 캐시 갱신?

directed ARP는 ARP cache entry에 이미 존재하는 인터페이스에 대해 ARP 요청을 unicast로 보내는 것이다. 이 프로토콜은 ARP 응답을 받으면 패킷에 적힌 sender의 주소들로 ARP cache를 갱신하는 특수한 루틴을 포함한다.

일반적인 ARP에서는 ARP cache에 다음 홉 IP주소가 존재하지 않으며, ARP 응답에 의해 ARP 캐시에 entry가 생성된다.

ACD 패킷 분석

ARP Probe and ARP Announcement - Practical Networking .net