TCP/IP 이론 — ARP 캐시 테이블

Seung Joo Choi (Bookstore3)
POCS
Published in
5 min readMay 28, 2019

지난번 포스팅에서 각각 IP 주소에 대한 내용과 맥 주소에 대한 내용을 다루었다. IP 주소는 32비트 크기의 가변적 네트워크 ID와 호스트 ID로 이루어져 있고, MAC 주소는 48비트 크기의 고정적인 OUT와 일련번호로 이루어져 있다는 사실을 배웠다. 이번 장에서는 IP 주소와 맥 주소 사이를 연결해주는 ARP 테이블에 대해 알아볼 것이다.

ARP(Address Resolution Protocol) 테이블은 IP와 맥 주소를 연결해 주는 테이블로 LAN 영역을 이해하는데 있어 중요한 역할을 한다.

먼저 커맨드창을 켜서 arp -d 라고 입력후 ping 8.8.8.8이라고 입력해보자. 정상적으로 입력했다면 아래와 같은 화면이 나올 것이다.

8.8.8.8번 목적지 IP 주소까지 연결 상태 확인

여기서 ping 명령어는 출발지 호스트와 목적지 호스트 사이에서 회선의 연결 상태나 목적지의 운영체제가 동작을 하고 있는지 점검하기 위한 도구라고 이해하면 좋을 것이다.

위 화면의 의미는 필자의 IP 주소이자 출발지 주소인 192.168.0.4에서 8.8.8.8번인 목적지 IP 주소까지 임의의 데이터를 전송했고, 목적지에서 이를 정상적으로 잘 받아 다시 회신해 주었다는 것을 나타낸다.

이제 명령창에 arp -a라고 입력해보자. 그럼 아래와 같은 화면이 출력이 된다.

arp -a 출력 화면

위 그림에서 보는 것과 같이 필자의 라우터의 IP 주소인 192.168.0.1과 라우터의 물리적 주소인 90–9f-33–4f-9b-89가 짝을 이루고 있다. 이처럼 IP 주소와 맥 주소의 대응 관계를 저장한 테이블을 ARP 캐시 테이블이라고 한다.

이런 관계는 마치 도메인 네임(www.naver.com)과 IP 주소(125.209.222.141)의 대응 관계를 관리하는 DNS 서비스 기능과 유사하다고 볼 수 있다.

자 그럼 이제 우리가 배운 내용을 바탕으로 필자의 컴퓨터에서 IP 주소 8.8.8.8이라는 곳에 ping 으로 데이터를 전송하려고 하는 상황에 대해 알아보자.

먼저 운영체제는 출발지를 필자의 컴퓨터 주소인 192.168.0.4로 설정하고 목적지 IP를 8.8.8.8로 설정할 것이다.

그 다음 서브넷 마스크 255.255.255.0을 참조해 출발지와 목적지 IP의 네트워크 ID를 비교할 것이다. 출발지 IP 주소의 네트워크 IP는 192.168.0이고 목적지의 IP 주소는 8.8.8이다. 즉, 네트워크 ID가 다르기 때문에 이는 다른 LAN 영역에 접속을 하려는 것을 운영체제가 알게 된다.

다른 영역의 LAN에 접속을 하기 위해서는 라우터를 통해서 가야하기 때문에 운영체제는 목적지 IP를 라우터의 IP 주소인 192.168.0.1로 설정한다.

그리고 같은 LAN 영역에서는 스위칭을 통해 통신을 해야하고 이는 맥 주소(물리적 주소)를 이용해야 하기 때문에 ARP 캐시 테이블을 찾아가 목적지에 해당하는 맥 주소가 등록이 되어있는지 확인을 한다.

만약 맥 주소가 ARP 캐시 테이블에 등록이 되어 있다면 목적지(라우터)에 해당하는 맥 주소로 스위칭 통신을 통해 데이터를 전송하면 된다.

그러나 맥 주소가 ARP 캐시 테이블에 등록이 되어 있지 않다면, 출발지 호스트는 자신과 같은 영역의 LAN에 연결되어 있는 모든 호스트들에게 ARP 질의를 브로드캐스트(broadcast) 방식으로 전송한다. 브로드캐스트 방식이란 자신과 동일한 네트워크 ID를 사용하는 모든 호스트에게 데이터를 전송한다는 뜻이다.

이렇게 같은 LAN 영역에 있는 호스트들은 이러한 질의를 받고 해당 IP에 해당하는 호스트(지금 경우에는 192.168.0.1)가 본인의 맥 주소를 요청한다는 것을 인지하고 유니캐스트(unicast) 방식으로 전송해준다. 유니캐스트 방식이란 브로드캐스트 방식과는 반대로 특정한 호스트에게 데이터를 전송한다는 뜻이다.

목적지 호스트로부터 응답을 받은 출발지 호스트는 자신의 ARP 캐시 테이블에 이러한 내용을 반영한다.

이런 과정을 통해 ARP 캐시 테이블에 맥 주소가 올라오면 운영체제가 테이블을 참조해 유니캐스트 방식으로 데이터를 게이트웨이까지 전송한다.

이후에는 게이트웨이가 IP 주소를 이용해 라우팅 통신 기법으로 원래 목적지인 8.8.8.8로 연결을 진행한다.

ARP 캐시 테이블은 위와 같은 상황에서 사용이 된다. 그리고 위와 같이 브로드캐스트와 유니캐스트를 사용한 ARP 요청과 응답이 일어나는 공간을 ARP 영역이라고 한다.

이번 포스팅에서 다룬 ARP 영역을 기반으로 LAN 영역을 정의하면 아래와 표와 같다.

ARP 영역을 기반으로 LAN 영역을 정의

마지막으로 이번 ARP를 주제로한 포스팅에 나온 내용을 정리하고 글을 마치겠다. 다음번에는 DNS 캐시 테이블에 대해 알아볼 것이다.

이번 포스팅에 나온 내용 정리

--

--