들어가기 전에
네트워크에서 장치가 통신하려면 IP 주소와 MAC 주소가 필요합니다.
- IP 주소: 네트워크 상에서 논리적 위치를 나타냅니다.
- MAC 주소: 물리적 네트워크 카드의 고유 식별자입니다.
하지만, 새로운 장치가 네트워크에 연결되면 IP 주소를 어떻게 할당받고,
상대방의 MAC 주소를 어떻게 알아낼까요?
이를 해결하는 두 가지 프로토콜이 있습니다.
- DHCP(Dynamic Host Configuration Protocol)
- ARP(Address Resolution Protocol)
또한, 네트워크 상태를 점검하고 오류를 보고하기 위한 프로토콜로
- ICMP(Internet Control Message Protocol)가 사용됩니다.
1. DHCP (Dynamic Host Configuration Protocol)
DHCP란?
- 네트워크에 연결된 장치에게 IP 주소를 자동으로 할당해 주는 프로토콜입니다.
- IP 외에도 서브넷 마스크, 게이트웨이, DNS 서버 정보를 함께 전달합니다.
- 수동 설정 없이, 네트워크에 연결만 하면 IP 주소를 받아 바로 통신이 가능합니다.
DHCP 동작 원리
(1) DHCP Discover (브로드캐스트)
- 클라이언트가 네트워크에 연결되면 IP 주소 요청을 브로드캐스트합니다.
- 대상 IP:
255.255.255.255
(2) DHCP Offer (유니캐스트 또는 브로드캐스트)
- DHCP 서버가 사용 가능한 IP 주소를 찾아 제안(Offer) 합니다.
- 동시에 서브넷 마스크, 게이트웨이 정보도 함께 전달합니다.
(3) DHCP Request (브로드캐스트)
- 클라이언트가 받은 IP 주소 중 하나를 선택하고, 사용 요청을 다시 브로드캐스트합니다.
(4) DHCP Acknowledgment (ACK) (유니캐스트 또는 브로드캐스트)
- DHCP 서버가 요청을 확인하고, IP 주소를 임대합니다.
- 이때 임대 기간(Lease Time)이 함께 설정됩니다.
| 단계 | 설명 | IP 전송 방식 |
|---|
| DHCP Discover | IP 요청 시작 | 브로드캐스트 |
| DHCP Offer | IP 주소 제안 | 유니캐스트 또는 브로드캐스트 |
| DHCP Request | 선택한 IP 요청 | 브로드캐스트 |
| DHCP ACK | 최종 IP 할당 | 유니캐스트 또는 브로드캐스트 |
유니캐스트와 브로드캐스트
| 구분 | 유니캐스트(Unicast) | 브로드캐스트(Broadcast) |
|---|
| 정의 | 하나의 송신자가 하나의 수신자에게만 데이터 전송 | 하나의 송신자가 같은 네트워크의 모든 수신자에게 데이터 전송 |
| 예시 | 웹 브라우저로 특정 웹사이트에 접속할 때 | ARP 요청(내 주변 모든 장치에게 MAC 주소 요청) |
| 주요 사용처 | HTTP 요청, 이메일 송신, 파일 전송 | ARP 요청, DHCP IP 할당, 네트워크 탐색 |
DHCP Lease Time (임대 시간)
- IP 주소는 영구적이지 않으며, 일정 시간(Lease Time) 동안만 유효합니다.
- 시간이 만료되면 Renewal Request를 통해 다시 갱신하거나 반환됩니다.
- 네트워크 자원을 효율적으로 관리하기 위한 방식입니다.
2. ARP (Address Resolution Protocol)
ARP란?
- IP 주소를 기반으로 네트워크 내 MAC 주소를 찾아주는 프로토콜입니다.
- 같은 네트워크(LAN) 내에서만 동작하며, 통신하려는 대상의 MAC 주소를 모를 때 사용합니다.
ARP 동작 원리
(1) ARP Request (브로드캐스트)
- 송신자는 상대방의 IP 주소는 알지만 MAC 주소를 모를 때 브로드캐스트 요청을 보냅니다.
- 예를 들어, "192.168.1.10의 MAC 주소를 알려주세요!"
(2) ARP Reply (유니캐스트)
- 대상 IP 주소를 가진 장치만 응답합니다.
- 응답 메시지에는 자신의 MAC 주소가 포함됩니다.
| 단계 | 설명 | IP 전송 방식 |
|---|
| ARP Request | IP에 해당하는 MAC 주소 요청 | 브로드캐스트 |
| ARP Reply | MAC 주소 응답 | 유니캐스트 |
ARP Cache (캐시)
- 요청할 때마다 브로드캐스트하면 네트워크 부하가 커지므로, 한번 조회한 MAC 주소는 일정 시간 동안 캐시에 저장합니다.
arp -a 명령어로 현재 캐시에 저장된 IP ↔ MAC 정보를 확인할 수 있습니다.
동작 예시
(1) PC1이 PC2에게 데이터를 전송하려고 합니다.
- PC1은 PC2의 IP 주소는 알고 있지만, MAC 주소는 모릅니다.
(2) ARP Request를 네트워크에 브로드캐스트합니다.
- "192.168.1.20의 MAC 주소를 알려주세요!"
(3) PC2가 ARP Reply로 MAC 주소를 응답합니다.
- "192.168.1.20의 MAC 주소는 AA:BB:CC:DD:EE:FF입니다."
(4) PC1은 응답받은 MAC 주소를 ARP Cache에 저장합니다.
- 이후 같은 IP에 대한 요청은 캐시를 참고하므로, 추가 브로드캐스트 없이 통신합니다.
3. ICMP (Internet Control Message Protocol)
ICMP란?
- IP 네트워크에서 오류를 보고하거나, 네트워크 상태를 진단하는 프로토콜입니다.
- ICMP 메시지는 IP 패킷의 일부로 전송됩니다.
ICMP 주요 기능
(1) Ping 테스트
- 네트워크 연결 상태를 테스트합니다.
- ICMP Echo Request → Echo Reply 응답
(2) Traceroute
- 목적지까지의 경로를 추적합니다.
- 각 경유지 라우터에서 TTL(Time to Live)을 감소시키며 ICMP Time Exceeded 메시지를 반환합니다.
(3) 오류 보고
- 호스트에 도달하지 못했을 때 "Destination Unreachable" 메시지를 반환
- TTL이 만료되면 "Time Exceeded" 메시지를 반환
ICMP 메시지 유형
| 메시지 타입 | 설명 |
|---|
| Echo Request | 네트워크 연결 테스트 (Ping) |
| Echo Reply | Ping 요청에 대한 응답 |
| Destination Unreachable | 목적지 도달 불가 |
| Time Exceeded | TTL(Time to Live) 초과 |
| Redirect | 라우팅 최적화 정보 전달 |
면접 대비 요약
| 예상 질문 | 설명 포인트 |
|---|
| DHCP란? | 네트워크에 연결된 장치에 IP 주소를 자동으로 할당하는 프로토콜 |
| DHCP 동작 과정은? | Discover → Offer → Request → ACK 순서로 IP 할당 |
| ARP란? | IP 주소를 MAC 주소로 변환해주는 프로토콜 |
| ARP 동작 과정은? | ARP Request (브로드캐스트) → ARP Reply (유니캐스트) |
| ARP Cache의 역할은? | IP와 MAC 정보를 캐시에 저장하여 중복 요청 방지 |
| ICMP란? | 네트워크 오류 보고 및 상태 진단을 위한 프로토콜 |
| Ping과 Traceroute의 차이? | Ping은 연결 확인, Traceroute는 경유지 경로 추적 |