브로드캐스트는 해당 네트워크의 모든 장비들에게 프레임을 보내기 때문에 네트워크가 혼잡해질 가능성이 높다.
ARP는 ARP 테이블을 사용해서 브로드캐스트 요청을 최소화한다. 아래는 ARP 테이블을 포함한 ARP의 동작 방식이다.
브로드캐스트 요청을 보내기 전에 요청할 IP 주소에 대한 정보가 ARP 테이블에 존재하는지 확인한다.
만약 ARP 테이블에 해당 IP 주소에 대한 정보가 존재한다면 브로드캐스트 요청을 보내지 않고 IP 주소에 매핑된 MAC 어드레스를 바로 반환한다.
ARP 테이블에 해당 IP 주소가 존재하지 않다면 브로드캐스트를 통해 원하는 장비의 MAC 어드레스를 얻어오고 얻어온 정보를 ARP 테이블에도 등록한다.
ARP 테이블은 아래의 표와 같이 IP 주소와 그에 매핑되는 MAC 주소, 그리고 해당 정보를 저장하는 유효시간을 담아두고 있다. (일종의 캐싱이라고 봐도 될 것 같다.)
IP address | MAC address | TTL(유효기간) |
---|
컴퓨터 A는 ARP를 통해서 도착지의 MAC 주소를 얻는다.
ARP를 통해 MAC 주소를 얻어왔다면 컴퓨터 A는 해당 프레임을 라우터 A에게 전달한다.
출발지 IP | 도착지 IP | 출발지 MAC | 도착지 MAC |
---|---|---|---|
컴퓨터 A | 컴퓨터 B | 컴퓨터 A | 라우터 A |
프레임을 받은 라우터 A도 자신의 네트워크가 도착지의 네트워크와 다르기 때문에 컴퓨터 A와 유사하게 프록시 ARP를 통해 라우터 B의 MAC 어드레스를 반환받고 해당 프레임을 라우터 B에게 전달한다.
출발지 IP | 도착지 IP | 출발지 MAC | 도착지 MAC |
---|---|---|---|
컴퓨터 A | 컴퓨터 B | 라우터 A | 라우터 B |
프레임을 받은 라우터 B는 도착지의 네트워크와 자신의 네트워크가 같기 때문에 도착지에 대한 ARP 요청을 보내면 드디어 컴퓨터 B의 MAC 어드레스를 응답받게 된다.
이후에는 라우터 B가 컴퓨터 B에게 무사히 프레임을 보내게 된다.
출발지 IP | 도착지 IP | 출발지 MAC | 도착지 MAC |
---|---|---|---|
컴퓨터 A | 컴퓨터 B | 라우터 B | 컴퓨터 B |
이 과정에서 패킷 헤더의 IP 주소는 변하지 않지만 프레임 헤더의 MAC 어드레스는 여러 2계층 장비에 걸쳐서 도착지까지 전달되기 때문에 변한다는 점을 기억하자