[네트워크] ARP (Address Resolution Protocol)

나뭇잎으로코딩·2024년 8월 19일

네트워크

목록 보기
4/7

Logical Address vs. Physical Address

  • Logical address: IP 주소

    • Network layer에서 사용됨
    • 호스트가 인터넷에 연결될 때 할당된다.
  • Physical address: Ethernet MAC 주소

    • Data link layer에서 사용됨
    • 하드웨어가 공장에서 나올 때 할당된다.
  • Data link layer에서의 데이터 포워딩

    • physical address 사용
    • 즉, IP 주소만으로는 Data link layer에서 통신이 불가능
    • 따라서 논리주소(IP주소)는 물리주소로 매핑되어야 한다

ARP (Address Resolution Protocol)

  • 송신자가 목적지 IP주소는 알지만 MAC주소를 모를 때 사용

  • ARP 요청을 망 전체에 브로드캐스트 (broadcast address 사용)

  • 대응되는 물리주소를 가진 호스트가 ARP 응답을 보냄

  • 송신자는 해당 물리주소를 ARP 테이블에 기록하여, 일정 시간동안 유지함

  • ARP는 Data link layer(layer 2)과 Network layer(layer 3) 사이의 중간적인 역할을 하는 프로토콜이다.

송신자가 목적지 IP주소 가진 호스트의 MAC주소를 알고 싶을 때, ARP 요청을 broadcast한다. 해당 IP주소를 가진 호스트가 자신의 MAC주소를 담은 ARP reply를 unicast 한다.


ARP packet format

  • Hardware Type: 네트워크 타입 (요즘은 대부분 Ethernet)
  • Protocol Type: 사용되는 프로토콜 타입 (요즘은 대부분 IP)
  • Hardware length: 물리주소(MAC) 길이 (Ethernet의 경우 6)
  • Protocol length: 프로토콜 주소(IP) 길이 (IP의 경우 4)
  • Operation: 1이면 ARP 요청, 2면 ARP 응답

Encapsulation of ARP packet

  • ARP packet은 data link frame에 캡슐화된다.
  • ‘Type’ 필드는 ‘Data’가 ARP request인지 reply인지를 나타낸다.


ARP protocol operation

  • Source(출발지, host)는 목적지의 IP 주소는 알고 있지만, 물리적 주소(MAC 주소)는 모른다. 따라서 패킷을 보낼 수 없다.

  • Source는 ARP 요청을 생성한다. 이 요청에는 출발지의 IP 주소와 물리적 주소, 그리고 목적지의 IP 주소가 포함된다.

  • ARP 요청은 네트워크 전체에 브로드캐스트된다.

  • 네트워크의 모든 호스트는 ARP 요청을 수신한다.

  • 목적지 IP 주소를 가진 호스트만이 패킷에 응답한다. 그 외의 모든 호스트는 패킷을 폐기한다.

  • 목적지 노드는 ARP 요청을 수신한 후 자신의 MAC 주소를 포함하여 ARP 응답을 보낸다. 목적지 노드는 이미 출발지의 물리적 주소(MAC 주소)를 알고 있기 때문에, 응답 패킷은 출발지 노드에게만 유니캐스트(unicast)로 전송된다.

  • 출발지 노드ARP 응답을 수신하여 목적지의 물리적 주소(MAC 주소)를 알게 된다. 목적지 MAC 주소를 자신의 ARP 캐시 테이블에 저장하며, ARP 테이블은 일정 시간동안 유효하다.

이제 출발지 장치는 목적지 장치의 IP 주소와 MAC 주소를 모두 알고 있으므로, 데이터 패킷을 장치 B로 전송할 수 있다.


ARP: example

호스트의 IP 주소: 130.23.43.20

호스트의 물리 주소: B2:34:55:10:22:10

호스트는 IP 주소가 130.23.43.25이고, 물리주소가 A4:6E:F4:59:83:AB인 목적지에 보내려고 한다. 그러나 출발지 호스트는 목적지 호스트의 물리주소를 몰라서, ARP를 사용해야 한다.

ARP request와 reply의 내용은 무엇일까?

  • ARP request

    하드웨어 타입 이더넷, 프로토콜 타입 IPv4
    MAC주소 길이 6바이트, IP주소 길이 4바이트, Operation은 요청 (1)
    출발지 MAC주소
    출발지 IP주소
    목적지 MAC주소 (알수 없어서 00으로 보낸다)
    목적지 IP주소

  • ARP reply

    하드웨어 타입 이더넷, 프로토콜 타입 IPv4
    MAC주소 길이 6바이트, IP주소 길이 4바이트, Operation은 응답 (2)
    송신자 MAC주소 (알고 싶었던 MAC주소)
    송신자 IP주소
    수신자 MAC주소 (ARP request에서 받은 출발지의 MAC주소)
    수신자 IP주소

0개의 댓글