ARP는 두 노드가 통신할 때 상대의 IP주소를 바탕으로 통신 상대의 MAC주소를 알아내는 주소 해석 프로토콜이다.
ARP의 동작은 두 노드가 같은 네트워크에 있을 때와 서로 다른 네트워크에 있을 때로 나눌 수 있다.
같은 네트워크의 노드끼리 통신할 때
2.10.10.4(A)가 2.10.10.6(B)와 통신하려 할 때, A는 자신이 속한 네트워크에 대해 2.10.10.6 IP주소를 가진 노드가 있는지
2.10.10.16 IP주소를 가진 노드의 MAC 주소를 알아내기 위해 ARP 요청을 브로드캐스트 주소로 전송한다.
B는 브로드캐스트된 ARP요청의 IP주소와 자신의 IP주소를 비교한 뒤, 자신을 대상으로 하는 ARP 요청임을 확인하고
자신의 MAC주소를 응답으로 A에게 보낸다.
B의 MAC주소(bb:bb:bb:bb:bb:bb)를 획득한 A는 B와 통신을 시작한다.
다른 네트워크의 노드와 통신할 때
2.10.10.4(A)가 3.1.1.2(B)와 통신하려 할 때, 목적지의 네트워크 주소가 자신과 다른 네트워크이므로 A는 자신이 속한 네트워크에 대해 3.1.1.2 IP주소를 가진 노드가 있는지 ARP 요청을 브로드캐스트하고 기본 게이트웨이 주소로 ARP 요청을 보낸다.
A의 네트워크 대역에서 응답이 없으므로 패킷은 기본 게이트웨이 MAC주소로 전송되어 라우터에 도달한다.
A의 ARP 요청을 전송받은 라우터는 목적지(B)의 IP주소가 A와 같은 네트워크 대역에 없으므로 A의 네트워크 대역에 속한
라우터 인터페이스의 MAC주소를 A에게 보내준다.
라우터의 MAC를 획득한 A는 목적지 MAC주소를 라우터의 인터페이스 주소로 설정하여 ARP 요청을 전송한다.
라우터의 MAC를 획득한 A는 목적지 MAC주소를 라우터의 인터페이스 주소로 설정하여 패킷을 전송한다.
패킷을 전달받은 라우터는 목적지 IP를 해석해 B가 속한 네트워크 대역의 인터페이스로 목적지 IP를 가진 노드의 MAC주소를 알아내기 위해 ARP 요청을 브로드캐스트 주소로 전송한다.
라우터의 ARP 요청을 받은 B는 응답으로 자신의 MAC주소를 라우터에게 전송한다.
B의 MAC주소를 획득한 라우터는 A가 전송한 패킷을 B에게 전송한다.
B의 MAC를 획득한 라우터는 A에게 B의 MAC주소를 ARP 전송한다.
B의 MAC주소를 획득한 A는 한동안 B의 MAC주소를 저장하여 사용한다.
B의 MAC주소에 대한 정보는 한동안 라우터에 저장되어 통신에 사용된다.
'Network > old' 카테고리의 다른 글
FSM으로 표현한 rdt (0) | 2023.03.23 |
---|---|
TCP의 기능 (0) | 2023.03.21 |
서킷 스위칭과 패킷 스위칭 (0) | 2023.01.05 |
NAT (Network Address Translation) (0) | 2023.01.05 |
네트워크 분할법 2 - VLSM (Variable Length Subnet Masks) (0) | 2023.01.03 |