ARP 프로토콜 동작순서

GonnabeAlright·2022년 2월 11일
1
post-thumbnail

ARP (Address Resolution Protocol) 프로토콜이란, 소프트웨어적으로 할당된 논리 주소인 IP 주소(L3, 네트워크 계층)를 실제적인 물리 주소인 MAC 주소(Media Access Control /L2, 데이터링크 계층)로 바꾸어주는 역할을 하는 '주소 해석 프로토콜'을 의미합니다.

반대로 MAC 주소를 가지고 IP 주소를 알아내는 프로토콜RARP 프로토콜이라고 합니다.

두 단말간 통신을 할 때에는 기본적으로 각각의 LAN 카드에 할당되어 있는 고유한 실질적인 물리 주소 (MAC 주소)를 통해 결국 데이터가 전달되게 됩니다. 그 이유는 MAC 주소가 시리얼 번호와 같이 전 세계에서 유일한 실제 목적지의 주소이며, 이를 바탕으로 OSI 7계층 또는 TCP/IP 4계층의 표준화된 모델에 따라 그렇게 통신을 하기로 약속했기 때문입니다.

OSI 7계층TCP/IP 4계층
응용 (Application)
표현 (Presentation)HTTP, FTP, SSH응용 (Application)
세션 (Session)
---------------------------------------------------------------------------------------------------------------------
전송 (Transport)TCP/UDP전송 (Transport)
---------------------------------------------------------------------------------------------------------------------
네트워크 (Network)IP인터넷 (Internet)
---------------------------------------------------------------------------------------------------------------------
데이터 링크 (Data Link)
MAC네트워크 인터페이스 (Network Interface)
물리 (Physical)

1. ARP 프로토콜 동작 순서

ARP 프로토콜이 동작하는 경우는 크게 통신하고자 하는 두 단말이 같은 네트워크에 있을 때와 다른 네트워크에 있을 때로 나눌 수 있습니다.

같은 네트워크에 있을 때

같은 네트워크 내에 있는 단말들의 MAC 주소는 중계 장치가 MAC 주소 테이블 정보를 저장하고 관리하고 있으므로 내부에서 단말들이 MAC 주소를 가지고 통신을 할 수 있게 됩니다.

단말(A)<---------->네트워크 스위치<---------->단말(B)
IP 주소: 10.0.0.1/24IP 주소: 10.0.0.2/24
MAC 주소: 00:11:BB:00:00:AAMAC 주소: 00:11:BB:00:00:BB

1) A가 B와 통신하기 위해 같은 네트워크 대역에 ARP 요청을 브로드캐스트(Broadcast) 방식 (A 단말이 전송한 데이터가 네트워크에 연결된 모든 단말에 전송)으로 B의 10.0.0.2/24 IP 주소를 가진 단말이 있는지 물어봅니다. (IP 주소와 MAC 주소를 비교해서 확인 해달라는 요청) A는 상대방 B의 MAC 주소를 모르기 때문에 MAC 주소는 일단 기본 게이트웨이(FF:FF:FF:FF:FF:FF)로 기록합니다.

2) 네트워크 스위치 장비는 A의 MAC 주소(00:11:BB:00:00:AA)를 자신의 MAC 주소 테이블에 저장합니다. (저장되어 있지 않은 경우)

3) 네트워크 스위치 장비가 ARP 요청을 받고나서 자신이 가지고 있는 MAC 테이블에 B의 IP 주소 10.0.0.2/24에 대한 MAC 주소(00:11:BB:00:00:BB)가 저장되어 있다면, A에게 B의 IP 주소 10.0.0.2/24MAC 주소(00:11:BB:00:00:BB)를 알려줍니다.

4) 네트워크 스위치 장비가 ARP 요청을 받고나서 자신이 가지고 있는 MAC 테이블에 B의 IP 주소 10.0.0.2/24MAC 주소 (00:11:BB:00:00:BB)가 저장되어 있지 않다면, 반대편의 B까지 ARP 요청이 전달됩니다. 이후 B는 ARP 요청을 받은 다음 자신의 IP 주소가 목적지에 기록되어 있음을 확인한 후 자신의 MAC 주소(00:11:BB:00:00:BB)를 알려주는 응답을 합니다. 이후 네트워크 스위치는 B의 MAC 주소(00:11:BB:00:00:BB)를 MAC 주소 테이블에 저장합니다.

5) A는 마침내 전달 받은 B의 MAC 주소(00:11:BB:00:00:BB)를 확인하고 B와 통신을 시작합니다.

같은 네트워크에 없을 때

같은 네트워크에 있는 중계 장비의 MAC 주소 테이블에 존재하지 않는 다른 네트워크 대역에 있는 단말과 통신을 해야 하는 경우, IP 주소를 이용하여 통신하게 되므로 ARP 프로토콜을 통해 IP 주소와 MAC 주소 간 변환을 통해 통신을 하게 됩니다.

단말(A)<--네트워크 스위치--><---->라우터<----><--네트워크 스위치-->단말(B)
IP 주소: 10.0.0.1/24A (MAC 주소) 00:00:00:00:RR:00IP 주소: 10.0.0.2/24
MAC 주소: 00:11:BB:00:00:AAB (MAC 주소) 00:00:00:00:RR:01MAC 주소: 00:11:BB:00:00:BB

1) A가 B와 통신하기 위해 같은 네트워크 대역에 ARP 요청을 브로드캐스트(Broadcast) 방식으로 B의 20.0.0.1/24 IP 주소를 가진 단말이 있는지 물어봅니다. (IP 주소와 MAC 주소를 비교해서 확인해달라는 요청)A는 상대방 B의 MAC 주소를 모르기 때문에 MAC 주소는 일단 기본 게이트웨이(FF:FF:FF:FF:FF:FF)로 기록합니다.

2) 라우터는 해당 ARP 요청을 받고 (목적지가 게이트웨이의 MAC 주소이므로) 목적지 B의 IP 주소가 같은 네트워크에 있지 않기 때문에 같은 네트워크 대역대에 있는 라우터 자신의 인터페이스 MAC 주소(00:00:00:00:RR:00)로 응답해줍니다.

3) A는 B와 통신하기 위해 다시 라우터에게 B의 목적지 IP 주소 20.0.0.1/24와 같은 네트워크 대역의 라우터 인터페이스 MAC 주소(00:00:00:00:RR:00)를 목적지로 ARP 요청을 보냅니다.

4) 라우터는 해당 네트워크 대역까지 패킷을 보냅니다.단, 라우터도 목적지 B의 MAC 주소를 모르므로 해당 네트워크 대역대에 Broadcast 메세지로 20.0.0.1/24 IP 주소를 가진 단말이 있는지 물어봅니다.

5) B 단말이 자신의 IP 주소가 목적지로 되어 있는 패킷을 보고 라우터에게 자신의 MAC 주소(00:11:BB:00:00:BB)를 포함하여 응답합니다.

6) 이 후 라우터를 통해 A와 B가 통신을 시작합니다.

  • MAC 주소를 어렵게 얻어왔으므로, 각 단말은 방금 통신한 IP 주소의 MAC 주소를 일정 시간 동안 보관하여 활용합니다. 이를 ARP캐시(Cache)라고 합니다.

0개의 댓글