반응형

ARP(Address Resolution Protocol)

  • 통신을 주고 받고자 하는 호스트의 IP 주소는 알지만 MAC 주소는 모르는 경우 사용되는 프로토콜
  • 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음

예시 상황

  • 동일 네트워크에 속한 호스트 A, B가 있음
  • 호스트 A는 호스트 B의 IP 주소는 알지만 MAC 주소는 모름
  • 이 상황에서 호스트 B의 MAC 주소를 알아내기 위해 ARP를 이용함

1. ARP 요청

  • 호스트 A는 브로드캐스트 메시지를 전송. 브로드캐스트 메시지란 네트워크에 속한 모든 호스트에게 보내는 메시지
  • 브로드캐스트 메시지는 ARP요청이라는 ARP 패킷

 

2. ARP 응답 (ARP Reply)

  • 호스트 B이외에 나머지 호스트들은 받은 메시지의 수신 IP가 자신의 IP 주소가 아니므로 무시
  • 호스트 B는 자신의 MAC 주소를 담은 유니캐스트 메시지를 A에게 전송 (1:1 통신을 위한 유니캐스트 메시지)
  • 유니캐스트 메시지 = ARP 응답이라는 ARP 패킷으로 이 메시지를 수신한 A는 B의 MAC 주소를 알게 됨

 

3. ARP 테이블 갱신

  • ARP 테이블: ARP 요청-응답을 통해 알게된 IP주소와 MAC 주소의 연관 관계를 기록한 테이블
  • 테이블 항목은 일정시간이 지나면 삭제되거나 임의 삭제도 가능
  • 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음

 

ARP 패킷

  • ARP 요청과 응답 과정에서 송수신되는 패킷

  • 오퍼레이션 코드(Opcode; Operation Code) : ARP 요청의 경우 1, ARP 응답의 경우 2
  • 송신지 하드웨어 주소와 수신지 하드웨어 주소에는 MAC 주소
  • 송신지/수신지 프로토콜 주소에는 IP 주소

ARP 테이블 확인 (Mac OS 터미널)

$ arp -a

 

유의할 점

  • ARP 프로토콜은 같은 네트워크 내에 속해있는 호스트의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜임
  • 그렇다면 다른 네트워크에 속해있는 IP 주소는 알지만 MAC 주소는 모르는 경우는?
  • 통신하고자 하는 호스트 A와 B가 서로 다른 네트워크에 속해있는 상황

 

1. ARP 요청/응답 과정을 통해 라우터 A의 MAC 주소를 알아낸 뒤, 이를 향해 패킷 전송

 

2. 라우터 A가 라우터 B의 MAC 주소를 모르는 경우에는 ARP 요청/응답 과정을 통해 라우터 B의 MAC 주소를 알아낸 뒤, 이를 향해 패킷 전송

 

3. 라우터 B가 호스트 B의 MAC 주소를 모르는 경우 ARP 요청/응답 과정을 통해 호스트 B의 MAC 주소를 알아낸 뒤, 이를 향해 패킷 전송

 

 

 

 

References

 

반응형

+ Recent posts