✅ ARP (Address Resolution Protocol)
- IP 주소를 MAC 주소로 변환해주기 위해 사용하는 동적 매핑 프로토콜
- 목적지 호스트 IP 주소는 아는데, MAC 주소(물리적 주소)를 모를 경우 사용한다.
2계층에서 사용하는 MAC 주소와 3계층에서 사용하는 IP 주소를 연계시켜 주기 위한 프로토콜이다.
호스트에서 아무 통신이 없다가 처음 통신을 시도하면 패킷을 바로 캡슐화 할 수 없다.
통신을 시도할 때 출발지와 목적지 IP 주소는 미리 알고 있어 캡슐화하는 데 문제가 없지만 상대방의 MAC 주소를 알 수 없어 2계층 캡슐화를 수행할 수 없다.
ARP 프로토콜 동작이 완료되면 출발지, 목적지 둘 다 상대방의 MAC 주소를 학습하고 이후 패킷이 정상적으로 인캡슐레이션되어 상대방에게 전달될 수 있다.
✅ ARP 테이블
패킷 네트워크에서는 큰 데이터를 잘라 전송하므로 여러개의 패킷을 전송해야 한다.
패킷을 보낼 때 마다 ARP 브로드캐스트를 수행하면 네트워크 통신의 효율성이 크게 저하되므로 메모리에 이 정보를 저장해두고 재사용한다.
성능 유지를 위해서는 ARP 테이블을 오래 유지하는 것이 좋지만 논리 주소는 언제든지 바뀔 수 있으므로 일정 시간 동안 통신이 없으면 테이블은 삭제된다.
네트워크 장비에서의 ARP 작업은 하드웨어 가속으로 처리되지 않고 CPU에서 직접 수행하므로 짧은 시간에 많은 ARP 요청이 들어오면 큰 부하로 작용한다.
✅ ARP 동작 원리
- 송신자는 목적지 물리 주소가 필요하므로, 물리 주소 요청을 위한 ARP 요청 패킷을 브로드캐스트로 전송한다.
브로드캐스트를 하는 이유는 목적지의 물리주소를 모르므로 모두에게 요청하기 위함이다.
요청 패킷에는 수신자가 수신자 주소를 응답할 때 필요한 송신자 주소가 포함된다.
(수신자 : 내가 너의 목적지 주소야 !! 너의 주소를 확인했어 내 정보를 너에게 보낼게 !) - 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신한다.
- 해당되는 수신자만 자신의 논리주소(IP)와 물리주소(MAC)를 넣어 응답 패킷을 유니캐스트로 전송한다.
이때 ARP Cache에 IP에 매핑된 MAC 주소를 일정시간 1~2분 정도 보관해두고 시간이 지나면 삭제한다.
✅ ARP 패킷
송신자 MAC 주소, 송신자 IP 프로토콜 주소, 대상자 MAC 주소, 대상자 IP 프로토콜 주소 총 4개의 필드가 중요하게 사용된다.
✅ ARP 동작
1) 송신자는 목적지 IP Address를 지정해 패킷 송신
2) IP 프로토콜이 ARP 프로토콜에게 ARP Request 메시지를 생성하도록 요청
= ARP 요청 메시지 (송신자 물리주소, 송신자 IP주소, 00-00-00-00-00, 수신자 IP주소)
3) 메시지는 2계층으로 전달되고 이더넷 프레임으로 Encapsulation 됨
= 송신자 물리주소를 발신지 주소, 수신자 물리주소를 브로드캐스트 주소로 지정
4) 모든 호스트와 라우터는 프레임을 수신 후 자신의 ARP 프로토콜에게 전달
5) 목적지 IP Address가 일치하는 시스템은 자신의 물리주소를 포함하고 있는 ARP Reply 메시지를 보냄
= 자신의 물리주소를 포함하는 응답 메시지
6) 최초 송신 측은 지정한 IP Address에 대응하는 물리주소를 획득
cf) ARP 요청은 브로드캐스트, ARP 응답은 유니캐스트
서버 A는 서버 D로부터 ARP 응답을 받아 자신의 ARP 캐시 테이블을 갱신한다.
이 ARP 캐시 테이블은 정해진 시간 동안 서버 D와의 통신이 없을 때까지 유지된다.
해당 시간 안에 통신이 다시 이루어지면 그 시간은 다시 초기화된다.
'CS > 네트워킹' 카테고리의 다른 글
서브넷과 게이트웨이 (0) | 2022.10.03 |
---|---|
GARP(Gratuitous ARP) (0) | 2022.10.03 |
인캡슐레이션과 디캡슐레이션 (0) | 2022.09.28 |
OSI 7 Layer - 데이터 플로 계층 (1) | 2022.09.27 |
[네트워킹] SSH (Secure Shell Protocol) (1) | 2022.03.22 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!