Network

네트워크] ARP (Address Resolution Protocol)

Orblangjeee 2025. 2. 2. 22:58
반응형

ARP (Address Resolution Protocol)

  • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜 (스위치의 MAC 주소 학습은 주체가 스위치, ARP는 주체가 호스트이다.)
  • 사용 이유 : MAC 주소와 IP 주소는 함께 사용하지만, 기본적으로 IP주소(수신지)를 우선 고려하여 사용한다. 이 과정에서 IP 주소는 알지만 MAC 주소를 알지 못하는 상황이 발생하는데, 이 때 ARP 프로토콜을 사용한다.
  • ARP 동작
    1. ARP 요청 (ARP Request)
      • 호스트A가 ‘ARP 요청 브로드캐스트 메시지(ARP 패킷)’ 전송
      • “누가 IP = 192.168.0.10을 가지고 있나요? 제 MAC 주소는 XX:XX:XX:XX:XX:XX이고, 제 IP는 192.168.0.1입니다”
    2. ARP 응답 (ARP Reply)
      • 메시지에 해당하지 않는 호스트들은 메시지를 무시하고, 해당하는 호스트는 자신의 MAC 주소를 담은 ‘ARP응답 유니캐스트 메시지’(ARP 패킷)를 호스트A에게 전송.
      • 호스트 A는 해당 호스트의 MAC 주소를 알게 됨
    3. ARP 테이블 갱신
      • ARP 테이블(ARP Table) : ARP 요청-응답을 통해 알게 된 IP 주소와 MAC 주소의 연관 관계
        • 테이블 항목은 일정 시간이 지나면 삭제 됨. 임의로 삭제 가능
        • 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음
        • ARP 테이블 확인 방법IP 주소와 그에 대응된 MAC 주소 확인 가능
        • cmd 또는 터미널 → arp -a
  • ARP 패킷

    • ARP 요청, ARP 응답 과정에서 송수신되는 패킷
    • 프레임의 페이로드에 포함되어 전송
    • 오퍼레이션 코드(Opcode; Operation Code)
      • 1 : ARP 요청
      • 0 : ARP 응답
    • 송수신지 하드웨어 주소 : MAC 주소
    • 송수신지 프로토콜 주소 : IP 주소
    • ARP 요청시,
      • 이더넷 프레임의 수신지 MAC 주소 : ff:ff:ff:ff:ff:ff (브로드캐스트)
      • ARP 패킷의 수신지 하드웨어 주소 : 00:00:00:00:00:00
  • 통신하고자 하는 호스트 A와 B가 서로 다른 네트워크에 속해 있을 경우
    • 네트워크 외부로 나가기 위해 ‘라우터’라는 장비 사용
    1. 라우터 A에 패킷 전송한다.
      • 만약, 호스트 A가 라우터 A의 MAC 주소를 모른다면 ARP 요청 - ARP 응답 과정을 통해 라우터 A의 MAC 주소를 알아낸다.
    2. 라우터 A는 패킷을 라우터 B로 전달
      • 만약, 라우터 A가 라우터 B의 MAC 주소를 모른다면 한 번 더 ARP 요청 - ARP 응답 과정 거침
    3. 라우터 B는 호스트B에게 패킷 전달
      • 만약, 라우터 B가 호스트 B의 MAC 주소를 모른다면 또 ARP 요청 - ARP 응답

 

 

더보기
반응형