ARP는 무엇인가?
ARP (Address Resolution Protocol)
--
ARP는
동일 네트워크에서 IP 주소를 MAC 주소로 변환하는 프로토콜로
(IP 주소를 통해 MAC 주소를 알아내는 프로토콜)
논리적 주소(IP)와 물리적 주소(MAC) 간의 매핑을 수행하여
동일 네트워크 내에서 전송이 가능하게 만들어 준다.
네트워크 통신을 할 때 IP 주소와 MAC 주소를 함께 사용하지만,
근본적인 목적은 최종 호스트로 전달하는 것이기 때문에
최종 호스트를 가리키는 IP 주소를 기본적으로 사용한다.
--
ARP 과정
--
- ARP 요청 (IP 주소 -> MAC 주소 변환 요청)
- ARP 응답 (MAC 주소 반환)
- ARP 테이블 갱신 (MAC 주소 캐싱)
참고
스위치에서 MAC주소를 학습하는 것과 호스트끼리 서로의 MAC 주소를 학습하는 것은 다르다.
즉, 해당 과정은 스위치에서 MAC주소를 학습하는 과정과 상관없다.
ARP 요청
호스트 A는 IP 주소가 0.0.0.1인 장치와 통신하고 싶어 한다.
그래서 해당 장치의 MAC 주소가 알아내기 위해
네트워크 내의 모든 호스트에게 브로드캐스트 메시지를 전송한다.
브로드캐스트는
현재 네트워크에서 자신을 제외한 모든 호스트에게 전송하는 방식을 의미한다.
브로드캐스트 메시지(ARP 요청 메시지)를 받은 호스트들은
자신의 IP 주소가 아니라면 해당 요청을 그냥 무시한다.
ARP 응답
IP 주소가 0.0.0.4인 호스트 D는
자신의 MAC 주소를 담은 메시지를 다시 A에게 응답한다.
이때 응답한 메시지는 "ARP 응답(ARP Reply)"라는 ARP 패킷이다.
이를 통해 해당 ARP 패킷을 받은 호스트 A는 호스트 D의 MAC 주소를 알게 된다.
ARP 테이블 갱신
ARP를 활용할 수 있는 모든 호스트는 "ARP 테이블"가지고 있으며 관리할 수 있다.
ARP 테이블은
IP 주소와 그에 맞는 MAC 주소를 담는 표로,
일정 시간이 지나면 자동으로 삭제되고, 임의로도 삭제가 가능하다.
"ARP 캐시" 또는 "ARP 캐시 테이블"이라고도 부른다.
호스트 A는 ARP 요청과 응답을 통해 호스트 B의 MAC 주소를 알게 되었으며, 이 정보를 ARP 테이블에 추가한다.
해당 과정을 모두 겪으면 앞으로 호스트 A는 B와 통신할 때 브로드캐스트로 ARP 요청을 보낼 필요가 없어진다.
만약 호스트 A와 B가 서로 다른 네트워크에 속해 있다면?
ARP는 동일한 네트워크 내에 있는 호스트의 IP 주소를 통해 MAC 주소를 알아내서
동일한 네트워크 내에서 데이터 전송이 가능하게 만든다.
그러면 사로 다른 네트워크에 속한 호스트는 어떻게 동작할까?
1. 호스트 A가 라우터 A의 MAC 주소를 파악하기 위해 "ARP 요청"과 "ARP 응답" 과정을 통해 호스트 A의 ARP 테이블에 해당 정보를 담는다.
2. 라우터 A가 라우터 B의 MAC 주소를 파악하기 위해 "ARP 요청"과 "ARP 응답" 과정을 통해 라우터 A의 ARP 테이블에 해당 정보를 담는다.
3. 라우터 B가 호스트 B의 MAC 주소를 파악하기 위해 "ARP 요청"과 ARP 응답" 과정을 통해 라우터 B의 ARP 테이블에 해당 정보를 담는다.
이렇게 각 단계별로 서로 연결된 MAC 주소를 파악하여 순차적으로 전달할 수 있도록 구성한다.
(해당 과정은 매우 간략한 예시로 실제로는 ARP만 사용하지 않는다. 그냥 느낌을 보면 이런 느낌이라고 이해하면 된다.)
--
'CS > 네트워크' 카테고리의 다른 글
[네트워크 계층] 라우팅 (0) | 2024.11.19 |
---|---|
[네트워크 계층] IP 주소 (0) | 2024.11.18 |
[네트워크 계층] IP (0) | 2024.11.16 |
[OSI 물리 계층, 데이터 링크 계층] 스위치 (0) | 2024.11.12 |
[OSI 물리 계층, 데이터 링크 계층] 허브 (+ 반이중/전이중, CSMA/CD) (1) | 2024.11.11 |