1. 기본 환경 세팅: Host OS vs Guest OS
가상화 환경에서 네트워크를 실습할 때 가장 먼저 머릿속에 그려야 할 그림입니다.
- Host OS (호스트): VM웨어(VMware) 프로그램이 설치되어 있는 실제 내 윈도우 컴퓨터입니다.
- Guest OS (게스트): VM웨어 가상머신 안에서 돌아가는 리눅스(Linux) 등의 가상 운영체제입니다.
- 게이트웨이(Gateway): 우리 네트워크망에서 외부로 나가는 '관문' 역할을 하는 라우터의 우리 쪽 포트 주소입니다.
2. 데이터가 전기적 신호가 되기까지 (캡슐화 과정)
우리가 카카오톡이나 웹 브라우저 같은 **애플리케이션(App)**에 메시지를 쓰고 보낼 때, 데이터는 아래 그림처럼 단계별로 옷(헤더)을 입으며 포장되어 네트워크로 날아갑니다.
- 포트 번호(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 주소를 모를 때, 네트워크에서는 "물어볼 때는 다 들리게(브로드캐스트), 답할 때는 귓속말로(유니캐스트)" 규칙을 사용합니다.
5. 라우터와 브로드캐스트 도메인 (Bridge vs Router)
네트워크 장비인 브릿지와 라우터는 통신 범위를 제한하는 아주 중요한 기준이 됩니다.
- 브릿지(Bridge): 같은 종류의 네트워크망을 연결합니다. 플러딩(Flooding) 과정을 통해 어느 포트로 데이터가 오가는지 기억하여 통신을 돕습니다. 단, 브로드캐스트 패킷은 통과시킵니다.
- 라우터(Router): 서로 다른 네트워크망(예: 사내망과 외부 인터넷)을 연결합니다. 라우터는 브로드캐스트 패킷을 차단합니다(통과시키지 못함).
💡 브로드캐스트 도메인(Broadcast Domain)이란?
- 브로드캐스트 신호가 도달할 수 있는 영역(하나의 통신망 범위)을 의미합니다.
- **라우터가 바로 이 브로드캐스트 도메인을 나누는 기준(경계선)**이 됩니다. 도로망으로 비유하자면 라우터는 다른 도시로 넘어가는 톨게이트와 같습니다.
6. [심화] 게이트웨이를 넘어갈 때의 ARP 흐름 (중요!)
나와 다른 네트워크 대역(예: 게이트웨이 너머 외부 서버)에 있는 컴퓨터와 통신할 때는 ARP가 어떻게 작동할까요? 내가 보낸 브로드캐스트는 라우터를 넘어가지 못하므로, 이때는 게이트웨이(라우터)의 MAC 주소를 알아내야 합니다.
데이터 이동 경로 예시 (컴퓨터 C -> 외부 서버 S)
- 출발지(C)에서 게이트웨이(R1)로 송신:
- 컴퓨터 C는 목적지 IP(서버 S)가 외부망에 있음을 감지합니다.
- 외부로 나가기 위해 우선 게이트웨이(R1)의 MAC 주소를 알아내는 ARP를 보냅니다.
- From C to R1 (목적지 MAC을 R1의 주소로 지정하여 패킷 송신)
- 라우터 내부 이동:
- 라우터가 패킷을 받아 내부에서 R2 포트로 전달합니다.
- 게이트웨이(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(브로드캐스트 요청 ➡️ 유니캐스트 응답) 과정이 필수적으로 일어난다! 라우터는 이 브로드캐스트가 넘어가지 못하게 막아주는 기준선(도메인 구분) 역할을 한다.