본문 바로가기
Network/Network 이론

ARP 통신의 이해 (같은 네트워크)

by 게킴의 블로그 2025. 3. 31.

 

|   개요

저번 포스팅에서 L2 Layer에서는 MAC 주소로 통신이 이루어지는 것을 설명하였고, 이어서 같은 네트워크에서 실제로 ARP 통신이 어떻게 이루어지는지 실습을 통해 알아보겠다.

 

|   실습 준비

  • Packet Tracer 준비 

[Network/Tool 사용 가이드] - Packet Tracer 설치 (Windows)

 

Packet Tracer 설치 (Windows)

|   학습 소개 |   환경 구성 (Packet Tracer)Packet Tracer (패킷 트레이서) 설치https://skillsforall.com/resources/lab-downloads Resource Hub: Get Packet Tracer, Virtual Machines, and MoreYour one-stop for learning resources used within

katting.tistory.com

 

  • 네트워크 토폴로지 구성

아래 파일을 다운로드 받아 Open 한다. (또는 동일하게 구성)

다운로드

 

|   ARP 통신의 이해 (같은 네트워크)

실습 토폴로지

 

PC0 (10.1.1.11) 에서 PC3 (10.1.1.14) 로 Ping 테스트를 하는 상황을 만들어보고, 해당 과정에서 ARP 가 어떻게 동작하는지 알아보자. (단, 모든 PC 및 스위치의 ARP Cash Table은 비워져있는 상황으로 가정한다.)

arp -a

 

  1. 사용자는 PC0 (10.1.1.11) 에서 PC3 (10.1.1.14) 로 ping 테스트를 시도한다.

 

2. PC0은 자신의 PC3 에 대한 MAC 주소를 모르기 때문에 ARP Request를 전송한다.

ARP Request를 보내기 전에 대상의 주소가 자신과 같은 네트워크인지 확인한다. 대상이 호스트가 자신과 같은 네트워크라면 Broadcast로 ARP Request를 보내고, 아닌 경우 자신의 Gateway로 보내야 하기 때문이다.

 

PC3이 자신과 같은 네트워크이기 때문에 Broadcast로 ARP Request 를 전송한다. 

Q) 사용자는 <ping 10.1.1.14>입력으로 IP만 알려줬는데 PC0은 어떻게 이 IP가 자신과 같은 네트워크인지 알았을까?

A) IP와 서브넷마스크를 AND 비트 연산한 값으로 네트워크 주소를 비교해 알 수 있다.

네트워크 ID를 확인하는 방법 : IP를 2진수로 변환한 값 & 서브넷마스크 (비트 AND 연산)

1) 10.1.1.11 & 255.255.255.0 → 네트워크 ID = 10.1.1.0

   00001010.00000001.00000001.00001011   (10.1.1.11)
&  11111111.11111111.11111111.00000000   (255.255.255.0)
=  00001010.00000001.00000001.00000000   (10.1.1.0)

2) 10.1.1.14 & 255.255.255.0 → 네트워크 ID = 10.1.1.0

   00001010.00000001.00000001.00001110   (10.1.1.11)
&  11111111.11111111.11111111.00000000   (255.255.255.0)
=  00001010.00000001.00000001.00000000   (10.1.1.0)

10.1.1.0 으로 네트워크 ID가 같기 때문에 같은 네트워크로 판단한다. -> ARP Broadcast 전송

 

PC0이 전송한 Ethernet Frame 내부를 살펴보자. 목적지인 PC3에 대한 MAC 주소를 모르기 때문에 DEST ADDR 란에 브로드캐스트 주소 (FFFF.FFFF.FFFF) 를 담고 나머지 필드를 채운 후 전송하였다.

PC0 Outbound Detail

 

Ethernet  
DEST ADDR FFFF.FFFF.FFFF (브로드캐스트)
SRC ADDR 0003.E429.5D87 (자신의 MAC)
TYPE 0x0806 (ARP)

 

3. 이 때 Switch 는 PC0 (0003.E429.5D87) 호스트가 Fa0/1 포트에 연결되어 있음을 알게되고, 자신의 Mac Table에 PC0에 대한 MAC 정보를 기록한다. (MAC Learning)

Switch MAC Table

 

4. Switch가 Frame을 확인해보니 목적지 주소가 브로드캐스트이므로, 자신이 받은 Frame 을 연결된 모든 포트로 전송한다. (단, Fa0/1 은 제외하고 보낸다.)

5. 프레임을 받은 PC들은 Data 필드까지 확인한다.

PC1, PC2는 Target IP가 자신의 IP가 아니기 때문에 받은 프레임을 폐기한다.

PC3은 Target IP가 자신의 IP임을 확인한다. 그리고 자신의 MAC Cash Table에 PC0에 대한 MAC 정보를 업데이트한다.

 

6. PC3은 ARP Reply로 응답 프레임을 작성한 후 PC0으로 전송한다.

PC3 Outbound Detail

Ethernet  
DEST ADDR 0003.E429.5D87 (PC0 MAC)
SRC ADDR 00E0.8FC8.D4B9 (자신의 MAC)
TYPE 0x0806 (ARP)

 

이 때, PC3은 PC0에 대한 MAC 주소를 알고 있으므로 Broadcast가 아닌 Unicast로 동작하는 것이다.

 

7. Switch 는 PC3 (00E0.8FC8.D4B9) 호스트가 Fa0/4 포트에 연결되어 있음을 알게되고, 자신의 Mac Table에 PC3에 대한 MAC 정보를 기록한다. (MAC Learning)

 

8. Switch가 Frame을 확인해보니 목적지 주소가 0003.E429.5D87 이므로, 자신의 MAC Table을 참고하여 Fa0/1 로 해당 프레임을 전송한다. 6번과 마찬가지로 이 과정도 목적지 주소와 1대 1 통신이기 때문에 Unicast 동작 방식이다.

 

9. PC0은 전달받은 ARP Reply를 확인하고 자신의 MAC Table에 PC3에 대한 MAC 정보를 업데이트한다.

 

10. 이제서야 ICMP 패킷에 방금 알게 된 PC3에 대한 IP와 MAC 주소를 담아 전송하고, ping 통신이 이루어진다.

'Network > Network 이론' 카테고리의 다른 글

2계층 (Data Link Layer) 이해하기  (0) 2025.02.27

최근댓글

최근글

skin by © 2024 ttuttak