주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷 또는 토큰링의 48 비트 네트워크 카드 주소를 뜻한다. ARP는 1982년 인터넷 표준 STD 37인 "RFC 826"에 의해 정의되었다. - wikipedia
1) Hardware Type : 하드웨어 주소(MAC) 유형을 나타내며, 이더넷 통신 시 항상 1로 설정된다.
2) Protocol Type : 매핑 대상인 프로토콜 주소의 유형을 나타내며 IPv4의 경우 0x0800으로 설정 된다.
3) Hardware Address Length : 하드웨어 주소(MAC)의 길이를 byte로 나타낸다. 이더넷 상에서 6으로 설정된다.
4) Protocol Address Length : 프로토콜 주소의 길이를 byte로 나타낸다. IPv4의 경우 4로 설정 된다.
5) Operation Code(Opcode) : ARP의 구체적인 동작을 나타낸다.
1 ARP Request
2 ARP Reply
3 RARP Request
4 RARP Reply
6) Source Hardware Address : 송신자의 MAC 주소
7) Source Protocol Address : 송신자의 IP 주소
8) Target Hardware Address : 수신자의 MAC주소, ARP Request 동작시 0으로 설정된다.
(이더넷 헤더의 목적지 주소가 ff:ff:ff:ff:ff:ff로 설정되면 브로드 캐스팅된다.)
9) Target Protocol Address : 수신자의 IP 주소
#1 목적지 MAC 주소를 모르기 때문에 정상적인 패킷을 만들 수 없음
#2 ARP 요청을 네트워크에 브로드캐스터
목적지 MAC 주소를 브로드캐스트(ff-ff-ff-ff-ff-ff)(이더넷해더)로, 대상 MAC 주소를 00-00-00-00-00-00(ARP 해더)으로 채워서 전달(뿌림)
#3 ARP 요청에 있는 대상자 IP 주소가 자신의 IP와 동일한 경우, 출발지로 ARP 응답을 유니캐스트
패킷을 보낼 때 마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하되므로 ARP Reply 정보를 메모리에 정보를 저장해서 재사용하도록 하는 것
arp -d arp 해더를 지우는 명령어
구글 DNS
arp -a arp 캐시 테이블을 확인하는 명령어
ipconfig/all
여기서 우리가 눈여겨 볼것은 IPv4, 기본 게이트웨이 이다.
#1 출발지 IP와 목적지 IP의 네트워크 ID를 비교
출발지 | 목적지 | |
---|---|---|
IP | 192.168.1.130 | 8.8.8.8 |
Subnet Mask | 255.255.255.0 | 255.255.255.0 |
NetworkID | 192.168.1 | 8.8.8 |
#2 게이트웨이의 MAC 주소 확인을 위해 ARP Request(질의)를 브로드캐스팅
수신처 미지정
출발지 | 목적지 | |
---|---|---|
IP | 192.168.1.130 | 192.168.1.1 |
MAC | 38-68-93-CE-F9-D2 | 00-00-00-00-00-00 |
LAN 영역의 모든 호스트는 ARP 브로드캐스팅 질의를 수신
목적지 IP 주소가 일치하는 호스트가 ARP Reply를 전송
출발지 MAC | 목적지 MAC | 출발지 IP | 목적지 IP | 출발지 MAC | 목적지 MAC |
---|---|---|---|---|---|
38-68-93-CE-F9-D2 | FF-FF-FF-FF-FF-FF | 192.168.1.130 | 192.168.1.1 | 38-68-93-CE-F9-D2 | 00-00-00-00-00-00 |
브로드 캐스팅~~~ | ARP request~~~ |
#3 게이트웨이가 자신의 MAC 주소를 유니캐스트
출발지 | 목적지 | |
---|---|---|
IP | 192.168.1.1 | 192.168.1.130 |
MAC | 4c-ed-fb-a3-28-08 | 38-68-93-CE-F9-D2 |
MAC 주소 전송 절차
출발지 MAC | 목적지 MAC | 출발지 IP | 목적지 IP | 출발지 MAC | 목적지 MAC |
---|---|---|---|---|---|
4c-ed-fb-a3-28-08 | 38-68-93-CE-F9-D2 | 192.168.1.1 | 192.168.1.130 | 4c-ed-fb-a3-28-08 | 38-68-93-CE-F9-D2 |
유니캐스팅~~~ | ARP request~~~ |
ARP 요청과 응답이 일어나는 영역
동일한 네트워크 ID를 공유하는 호스트가 MAC 주소에 기반해서 스위칭 방식으로 내부 통신을 수행하면서 단일 ARP 영역을 생성하는 공간
1 → 1
출발지와 목적지가 1:1로 통신
대부분의 통신은 유니케스트 방식으로 진행
TCP, UDP 모두 지원