본문 바로가기
카테고리 없음

[네트워크 기초] ARP 패킷의 흐름과 브로드캐스트 도메인 완벽 이해하기 (feat. 게이트웨이와 소켓)

by Lsung 2026. 8. 18.

1. 기본 환경 세팅: Host OS vs Guest OS

가상화 환경에서 네트워크를 실습할 때 가장 먼저 머릿속에 그려야 할 그림입니다.

  • Host OS (호스트): VM웨어(VMware) 프로그램이 설치되어 있는 실제 내 윈도우 컴퓨터입니다.
  • Guest OS (게스트): VM웨어 가상머신 안에서 돌아가는 리눅스(Linux) 등의 가상 운영체제입니다.
  • 게이트웨이(Gateway): 우리 네트워크망에서 외부로 나가는 '관문' 역할을 하는 라우터의 우리 쪽 포트 주소입니다.

 


2. 데이터가 전기적 신호가 되기까지 (캡슐화 과정)

우리가 카카오톡이나 웹 브라우저 같은 **애플리케이션(App)**에 메시지를 쓰고 보낼 때, 데이터는 아래 그림처럼 단계별로 옷(헤더)을 입으며 포장되어 네트워크로 날아갑니다.

Code
[ Application ] ---> 메시지 작성
[ TCP Layer ] ---> [TCP 헤더 (출발지/목적지 포트번호)] + [데이터] = 세그먼트 (Segment)
[ IP Layer ] ---> [IP 헤더 (출발지/목적지 IP주소)] + [세그먼트] = 데이터그램 (Datagram)
[Ethernet Layer] ---> [이더넷 헤더 (출발지/목적지 MAC주소)] + [데이터그램] = 프레임 (Frame)
[ 물리 계열 ] ---> 케이블을 통해 '전기적 신호'로 송신
코드 접기 9줄
  • 포트 번호(Port Number): "어떤 프로그램(App)으로 보내야 하는가?"를 결정합니다.
  • IP 주소: 목적지 서버를 찾아가기 위해 사용하며, 우리는 이미 알고 있는 상태입니다.
  • MAC 주소: 최종적으로 물리적인 장치(랜카드) 간에 데이터를 주고받기 위해 반드시 필요합니다.

 


3. ARP(Address Resolution Protocol)의 진짜 정의

네트워크 공부를 할 때 가장 많이 하는 실수가 있습니다. ❌ "IP 주소로 MAC 주소를 알아내는 것" -> 이렇게만 알고 있으면 오답 처리되기 쉽습니다.

보다 정확하고 명확한 정의는 다음과 같습니다.

"상대방의 IP 주소를 가지고, 그 IP에 해당하는 상대방의 물리적 주소(MAC Address)를 알아내는 프로토콜"

💡 RARP(Reverse ARP)는 무엇인가요?

  • 정의: 내 MAC 주소는 아는데, 내가 사용할 IP 주소를 모를 때 이를 알아내기 위해 사용하는 프로토콜입니다.
  • 용도: 하드디스크가 없는 단말기(Diskless PC) 등이 부팅될 때 자신의 IP를 서버에 물어볼 때 사용합니다. (현재는 거의 쓰이지 않으며, 대신 DHCP 기능을 주로 사용합니다.)
  • 특징: ARP와 RARP는 패킷 구조가 완전히 동일합니다.

 


4. ARP의 작동 원리: 브로드캐스트와 유니캐스트

상대의 MAC 주소를 모를 때, 네트워크에서는 "물어볼 때는 다 들리게(브로드캐스트), 답할 때는 귓속말로(유니캐스트)" 규칙을 사용합니다.

Code
[ A 컴퓨터 ] ────────────────── (네트워크 망) ────────────────── [ B 컴퓨터 ]
 
1. ARP 요청 (Request) 📢 "IP가 1.1.1.2인 사람? MAC 주소 좀 알려줘!"
- 방식: 브로드캐스트 (Broadcast, 목적지 MAC: FF:FF:FF:FF:FF:FF)
- 특징: 같은 네트워크 안의 모든 컴퓨터가 이 메시지를 받음.
 
2. ARP 응답 (Reply) 💬 "그거 나야! 내 MAC 주소는 BB:BB:... 야."
- 방식: 유니캐스트 (Unicast, A에게만 다이렉트로 전송)
 

 


5. 라우터와 브로드캐스트 도메인 (Bridge vs Router)

네트워크 장비인 브릿지와 라우터는 통신 범위를 제한하는 아주 중요한 기준이 됩니다.

  • 브릿지(Bridge): 같은 종류의 네트워크망을 연결합니다. 플러딩(Flooding) 과정을 통해 어느 포트로 데이터가 오가는지 기억하여 통신을 돕습니다. 단, 브로드캐스트 패킷은 통과시킵니다.
  • 라우터(Router): 서로 다른 네트워크망(예: 사내망과 외부 인터넷)을 연결합니다. 라우터는 브로드캐스트 패킷을 차단합니다(통과시키지 못함).

💡 브로드캐스트 도메인(Broadcast Domain)이란?

  • 브로드캐스트 신호가 도달할 수 있는 영역(하나의 통신망 범위)을 의미합니다.
  • **라우터가 바로 이 브로드캐스트 도메인을 나누는 기준(경계선)**이 됩니다. 도로망으로 비유하자면 라우터는 다른 도시로 넘어가는 톨게이트와 같습니다.

 


6. [심화] 게이트웨이를 넘어갈 때의 ARP 흐름 (중요!)

나와 다른 네트워크 대역(예: 게이트웨이 너머 외부 서버)에 있는 컴퓨터와 통신할 때는 ARP가 어떻게 작동할까요? 내가 보낸 브로드캐스트는 라우터를 넘어가지 못하므로, 이때는 게이트웨이(라우터)의 MAC 주소를 알아내야 합니다.

데이터 이동 경로 예시 (컴퓨터 C -> 외부 서버 S)

Code
[컴퓨터 C] ─── (네트워크 1) ─── [라우터 포트 R1] ─── [라우터 포트 R2] ─── (네트워크 2) ─── [서버 S]
  1. 출발지(C)에서 게이트웨이(R1)로 송신:
    • 컴퓨터 C는 목적지 IP(서버 S)가 외부망에 있음을 감지합니다.
    • 외부로 나가기 위해 우선 게이트웨이(R1)의 MAC 주소를 알아내는 ARP를 보냅니다.
    • From C to R1 (목적지 MAC을 R1의 주소로 지정하여 패킷 송신)
  2. 라우터 내부 이동:
    • 라우터가 패킷을 받아 내부에서 R2 포트로 전달합니다.
  3. 게이트웨이(R2)에서 목적지(S)로 송신:
    • 라우터 R2 포트에서 서버 S의 MAC 주소를 알아내기 위해 브로드캐스트를 쏩니다. (From R2 to FF:FF:...)
    • 서버 S는 "어? IP 주소가 나네! 게이트웨이(R2)가 내 MAC 주소를 찾는구나!" 하고 파악합니다.
    • 서버 S가 라우터에게 유니캐스트로 답장합니다. (From S to R2)

 


7. 놓치기 쉬운 연결 고리: 소켓(Socket)이란?

필기 메모 중에 등장한 **소켓(Socket)**은 네트워크 통신에서 아주 중요한 소프트웨어적 도구입니다.

  • 개념: 프로그램이 네트워크를 통해 데이터를 보내거나 받기 위한 "문(Gateway)" 또는 "콘센트" 역할을 합니다.
  • 역할: OS 단계에서 애플리케이션(App)과 하부 프로토콜(TCP/IP)을 연결해 주는 인터페이스입니다. 소켓을 열고 IP와 포트 번호를 결합(Bind)해야만 비로소 패킷을 주고받을 수 있는 통로가 완성됩니다.

 


✍️ 오늘 공부 한 줄 요약

네트워크 통신은 App(소켓) ➡️ TCP(포트) ➡️ IP(IP주소) ➡️ 이더넷(MAC주소) 단계를 거쳐 포장되며, 이 과정에서 상대방의 MAC 주소를 알아내기 위해 ARP(브로드캐스트 요청 ➡️ 유니캐스트 응답) 과정이 필수적으로 일어난다! 라우터는 이 브로드캐스트가 넘어가지 못하게 막아주는 기준선(도메인 구분) 역할을 한다.