ARP(주소 결정 프로토콜) 정의, ARP 종류, ARP Hedaer(헤더)

반응형

ARP(Address Resolution Protocol)

[정의]

  • 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소(MAC)는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻한다.

[개요]

이를테면, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다.

이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용된다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용한다.

※ 내용 출처 : 위키백과


ARP Cache Table

[개요]

ARP Request를 통하여 얻은 하드웨어 주소는 다음에 또 사용할 수 있으므로 ARP Cache Table에 일정 시간 동안 저장된다. 그리고 다음에 데이터를 보낼 때에는 ARP Cache를 검사하여 있으면 브로드캐스트를 하지 않고 원하는 주소에 바로 보낼 수 있게 된다. 이렇게 되면 브로드캐스트가 줄어들기 때문에 네트워크의 부하가 적어지고 성능이 향상된다. 즉, 한번 알아온 정보는 ARP cahch table에 일정 시간 동안 저장하고 통신하고자 하는 목적지의 MAC 주소가 table에 저장되어 있는 경우에는 ARP 프로토콜이 동작하지 않는다.


[저장 기간]

  • 유닉스: 20분
  • 윈도우 95/2000/20003: 2분
  • 리눅스: 매우 짧음

[확인 방법]

1) 유닉스, 리눅스

#> arp


2) 윈도우

cmd> arp -a



ARP 종류

  • ARP
  • RARP (Reverse ARP)

ARP 의 반대 개념으로, MAC 주소로 IP 주소를 가져오는 것을 말한다.

  • PROXY ARP

호스트 게이트웨이가 설정되어 있지 않은 경우에 사용, 라우터가 ARP 프레임을 수신 했을 때 자신의 MAC 주소를 알려 주는 기능을 말한다. 단, ARP 목적지 IP 주소가 라우팅 할수 없는 것이거나 PROXY ARP 기능이 활성화되어 있지 않은 경우에는 ARP 응답을 하지 않는다.

  • INVERSE ARP

FRAME-RELAY 환경에서 사용되는 ARP이다. 송신지 IP와 목적지 DLCI를 매핑하여 FR MAP에 저장하는데 처음 연결을 한 경우 해당 목적지 IP에 대한 DCE 테이블에 없으므로 자신과 연결된 모든 선로로 멀티 플렉싱 하여 목적지 IP을 알아낸다.

  • GRATUITOUS ARP

같은 네트워크에서 IP 주소가 중복되는지 확인하고 다른 장치들이 자신의 IP 주소를 갱신하도록 주기적으로 IP 주소를 알려주는 역할을 한다. 자신을 제외하고 대답할 수 없기 때문에 응답이 들어오면 IP 주소가 중복되었다고 판단하여 사용자에게 이를 알린다. 또한 MAC 주소가 변경되었을 때도 다른 호스트들의 CACHE를 갱신시키기 위해 GRATUITOUS ARP를 보낸다.



ARP Header

[구성]

42byte의 고정크기 (이더넷+ARP)

  • 하드웨어 type [2byte]
  • 프로토콜 type [2byte]
  • 하드웨어 주소 길이 [1byte]
  • 프로토콜 주소 길이 [1byte]
  • Opcode[각주:1] [2byte]
  • 출발지 MAC 주소 [6byte]
  • 출발지 IP 주소 [4byte]
  • 도착지 MAC 주소 [6byte]
  • 도착지 IP 주소 [4byte]


  1. opcode : 패킷의 유형이 요청(ARP Request)인지 응답(ARP Reply)인지를 정의. 이때 요청일 경우에는 1, 응답일 경우에는 2가 들어가게 된다. [본문으로]
반응형
TAGS.

Comments