먼저, OSI 7계층에서 주소를 지정하는 계층을 떠올려보자.
MAC 주소를 사용하는 DataLink 계층 (2계층)과 IP 주소를 사용하는 Network 계층 (3계층)이 떠오를 것이다.
그런데 주소를 지정하는 계층은 왜 한 계층이 아닌 두 계층일까?
두 계층에서 쓰이는 주소의 목적과 유형이 서로 다르기 때문이다.
우리가 통신한다고 얘기할 때, 개념적으론 IP주소(3계층)으로 통신한다고 하지만, 실제론 MAC주소(2계층)으로 통신으로 수행한다.
그래서 3계층에 대응하는 2계층 주소를 매핑 시켜줘야하는데 이것을 ‘주소결정’이라고 한다.
1. 주소 결정 방법
(1) 직접 매핑
– 3계층 IP 주소 <–> 2계층 MAC 주소를 직접 매핑하는 방법이다.
– 1 대 1로 고정하므로 유연하지 않다.
– 3계층 주소가 2계층 주소보다 길어야 함, IP주소 32bit, MAC주소 48bit로 사실 상 사용할 수 없다.
(2) 동적 주소 결정
– IP주소를 안다면, 두 주소의 유형이 다르더라도 MAC주소를 찾아낼 수 있는 프로토콜을 사용한다. 일반적으로 ARP를 사용한다.
– 지속적인 주소 작업은 성능에 영향을 주므로 캐싱을 사용한다. 하지만 캐싱을 사용하면 복잡도가 증가하고 시간이 지날수록 캐싱 정보의 유효성이 낮아진다.
2. ARP
Address Resolution Protocol , RFC 826
ARP 기본동작
① 요청
주소 결정이 필요한 장비의 IP 주소를 브로드캐스트 메시지로 전송.
(= MAC을 알고 싶은 장비의 IP 를 브로드캐스트)
② 응답
해당 장비가 자신의 MAC주소를 송신자에게 유니캐스트 메시지로 전송.
(= 해당 IP를 가진 장비가 자신의 MAC을 요청자에게 유니캐스트)
ARP 상세동작

① 출발지 장비에서 ARP 캐시 확인
(캐시 정보가 있으면 ARP 캐시를 한 번 갱신, ARP 요청은 따로 안함.)
② 출발지 장비에서 ARP Request 메시지 생성 (SHA,SPA,TPA 필드값 o)
③ 출발지 장비에서 ARP Request 메시지를 브로드캐스트
④ 로컬 네트워크에 있는 각 장비에서 상기 ARP Request 메시지 처리
(자신과 관련 없는 정보는 무시, 관련 있다면 ⑤로 이동)
⑤ 목적지 장비에서 ARP Reply 메시지 생성 및 ARP 캐시 갱신
⑥ 목적지 장비에서 ARP Reply 메시지를 아까 요청한 장비로 유니캐스트
⑦ 출발지 장비에서 ARP Reply 메시지 처리 후 ARP 캐시 갱신
ARP 메시지 포맷

– HRD: 하드웨어 유형과 주소 지정 방식, 이더넷 – 1 / IEEE 802 – 6 / 이외
– PRO: 이 메시지에서 사용하는 3계층 주소 유형 지정, IPv4 방식은 2048.
– HLN: 2계층 주소 길이를 바이트 단위로 표시. 일반적으로 6.
– PLN: 3계층 주소 길이를 바이트 단위로 표시. 일반적으로 4.
– OP: 이 메시지의 동작 유형 지정, ARP 요청 – 1 / ARP 응답 – 2 / 이외
– SHA: 송신자의 2계층 주소
– SPA: 송신자의 3계층 주소
– THA: 수신자의 2계층 주소
– TPA: 수신자의 3계층 주소
ARP 캐싱
ARP 메세지가 크진 않지만, 모든 장비에서 ARP 메세지를 보낸다면 네트워크에 부하가 걸릴 수 있다. 그래서 일반적으로 ‘캐싱’ 방법을 사용한다.
ARP 캐시 안에는 MAC주소와 IP주소 집합을 포함하는 테이블이 있다.
ARP 캐시 테이블에 캐시 항목을 추가하는 방법은 정적 ARP 캐시 항목(수동으로 추가하는 방법)과 동적 ARP 캐시 항목(이전에 성공한 ARP 결과를 SW가 자동 추가하는 방법)이 있다.
- 정적 ARP 캐시 항목: 만료 기간 없음, 특정 장비와 정기적으로 통신이 필요한 경우에 사용.
- 동적 ARP 캐시 항목: 일반적인 유효기간은 10~20분, ARP 요청 할 때와 받을 때 추가.
프록시 ARP

Datalink 계층 관점에서 서로 다른 네트워크지만, Network 계층 관점에서 동일한 IP대역이나 서브네트워크에 존재하는 경우 사용한다.
프록시 ARP를 사용하게 되면, 로컬 네트워크 사이에 위치한 라우터가 ARP 브로드캐스트 요청에 응답하게 된다.
하지만 프록싱으로 인해 네트워크가 복잡해지고, 라우터가 다른 장비인 척 가장하는 것이므로 잠재적 보안 위협도 존재한다.
3. 멀티캐스트 통신에서의 ARP
일반적인 ARP 동작 방식처럼 IP 멀티캐스트 데이터그램을 각 유니캐스트 전송으로 변환 후 ARP 개별로 동작하도록 할 수 있으나, 너무 비효율적이다. 그래서 IP 멀티캐스트 그룹과 Datalink 계층 멀티캐스트 그룹 간 매핑을 직접 정의한다.

이 때, 멀티캐스팅용 MAC주소를 지정할 때에는 ‘IEEE 802 주소 지정 방법’을 사용한다. 0~24bit는 IANA에서 지정한 멀티캐스트 OUI를 사용하고, 25번째 bit는 0, 나머지 23bit(26~48번째)는 IP 주소의 하위 23bit를 사용한다.
4. IPv6에서의 주소 결정
IPv6에서 주소를 결정할 때, ARP가 아닌 주변 ND 프로토콜(주변 탐색 프로토콜)을 사용한다.
Neighbor Discovery의 약자로 여기서 Neighbor는 단순히 LAN 안에 있는 장비를 일컫는다.
동적 주소 결정 방식이며, IPv6-MAC주소 쌍으로 된 캐시 테이블을 사용한다.
동작방식
① 출발지 장비에서 ND 주변 정보 요청 메세지 전송
② 하위 Datalink 계층 프로토콜이 멀티캐스팅을 지원하면, 목적지 장비의 요청 노드 주소로 멀티캐스트 전송
(*요청 노드 멀티캐스트 주소: 멀티캐스트 가능 네트워크에 있는 장비가 유니캐스트 주소로부터 특수한 매핑을 통해 만든 주소)
③ 목적지 장비는 주변 정보 요청을 받은 뒤 출발지 장비에게 주변 정보 광고로 응답