사실 ARP란 축약어에 Protocol이 들어가 있기 때문에 ARP Protocol이라 하면 중복이지만, 검색하다 보면 다들 그냥 쓰는 것 같다.
- ARP(Address Resolution Protocol) - 주소 결정 프로토콜
네트워크 상에서 논리적으로 할당되는 IP 주소를 물리적 네트워크 주소(MAC Address = NIC)로 변환하기 위해 사용되는 주소 해석 프로토콜이다.
(+ 반대로 MAC 주소를 IP 주소로 바꾸는 RARP Protocol이 있는데, 이제는 잘 사용하지 않는다고 한다.)
Network Layer와 Data-Link Layer 사이에서 작동하며, 목적지의 IP 주소를 알고 MAC 주소를 모를 때 패킷의 목적지 MAC Address 부분을 0으로 채워놓고, 패킷의 목적지를 Broadcast Address로 하여 네트워크 내의 모든 시스템에게 전송한다. 네트워크 내에 해당 IP 주소를 가진 시스템이 있다면 0으로 비워져 있던 목적지 MAC 주소를 자신의 MAC 주소로 채워서 돌려보낸다.
이 프로토콜은 2가지 방식으로 작동한다.
1. 같은 네트워크에 있을 때
같은 네트워크에 있는 시스템들의 MAC 주소는 해당 네트워크의 중계 장치(허브, 스위치 등)에 저장되어 있다. 그러니 내부에서 통신할 경우에는 시스템들이 MAC 주소를 가지고 통신할 수 있다.
① 네트워크 대역에 MAC 주소를 알려달라는 ARP 요청을 Broadcast 방식으로 전송한다. 목적지 IP 주소를 보내주고 해당 시스템의 MAC 주소를 알려달라는 요청이다. 전송 시 목적지 MAC 주소는 기본 게이트웨이(FF:FF:FF:FF:FF:FF)로 기록한다.
② 네트워크 중계기는 송신자의 MAC 주소를 자신의 MAC 주소 테이블에 저장.
③ 중계기가 ARP 요청을 받았을 때, 목적지 IP 주소에 해당하는 MAC 주소가 MAC 주소 테이블에 저장되어 있다면 송신자에게 목적지 MAC 주소를 전송한다.
④ 중계기가 목적지 IP 주소에 해당하는 MAC 주소를 모른다면(MAC 주소 테이블에 저장되어 있지 않다면), 중계기는 네트워크 내의 다른 시스템들에게 ARP 요청을 전달한다. 요청을 전달받은 시스템 중 전달받은 IP 주소를 가진 시스템이 자신의 MAC 주소를 알려주는 응답을 보낸다. 이후 중계기는 몰랐던 MAC 주소를 MAC 주소 테이블에 저장한다.
⑤ 송신자는 전달받은 목적지의 MAC 주소를 확인하고 목적지와의 통신을 시작한다.
2. 다른 네트워크에 있을 때
같은 네트워크에 없다면 IP 주소로 통신하게 될 것이다. ARP 프로토콜을 통해 IP 주소와 MAC 주소의 변환을 거쳐 통신한다.
① 위와 마찬가지로 송신자는 IP 주소를 가지고 중계기에게 물어본다.
② 중계기(라우터)는 해당 IP 주소가 이 네트워크 내에 있지 않다는 것을 인지하고, 송신자에게 라우터 자신의 MAC 주소를 응답해준다.
③ 송신자는 통신을 위해 응답받은 라우터의 MAC 주소를 기반으로 라우터에게 ARP 요청을 보낸다.
④ 라우터는 해당 IP의 네트워크 대역으로 패킷을 보낸다. 보낸 후 해당 네트워크 대역에 Broadcast 방식으로 목적지 IP 주소를 가진 시스템이 있는지 찾는다.
⑤ Broadcast 메시지를 받은 해당 네트워크 대역에 있는 목적지 시스템은 라우터에게 자신의 MAC 주소를 포함한 응답을 보낸다.
⑥ 응답받은 내용을 기반으로, 라우터를 통해 송신자와 목적지가 통신을 시작한다(MAC <-> IP <-> MAC). 이때 방금 통신한 IP 주소와 MAC 주소는 일정 시간 보관된다(ARP Cache)
ARP Packet은 기본적으로 같은 네트워크 내에서 동작하는 프로토콜이다. 그래서 다른 네트워크와 통신하기 위한 IP 헤더가 필요 없다. 다른 네트워크와 통신하는 경우에도 어차피 같은 네트워크 내의 기본 게이트웨이로 목적지를 찾기 때문에 다른 네트워크로 넘어갈 필요가 없는 프로토콜이다.
Destination Hardware Address는 ARP 요청 시에는 기본 게이트웨이 주소로 설정될 것이다.
'IT 지식' 카테고리의 다른 글
Port, MAC Address, Forwarding (0) | 2021.07.22 |
---|---|
IPv6 (0) | 2021.07.22 |
Unicast, Multicast, Broadcast, Anycast (0) | 2021.07.21 |
Router 외 (0) | 2021.07.21 |
Load Balancer (0) | 2021.07.18 |
댓글