테마
식별자 체계
네트워크 식별자의 필요성
네트워크에서 데이터가 올바른 목적지에 도달하려면, 각 구성 요소를 유일하게 식별할 수 있는 식별자가 필요하다. 마치 주민등록번호가 개인을, 학번이 학생을 식별하듯, 네트워크에도 계층별로 고유한 식별자가 존재한다.
MAC Address (48bit) -- L2 식별자
MAC(Media Access Control) Address는 **NIC(네트워크 인터페이스 카드)**에 부여되는 하드웨어 주소이다. Physical Address라고도 한다.
주요 특성
- 48비트 주소 체계를 사용한다
- 16진수로 표기하며, 콜론(:)이나 하이픈(-)으로 구분한다
- NIC 하나당 하나의 MAC 주소가 부여된다
- NIC이 5개면 MAC 주소도 5개이다
앞의 24비트는 제조사를 식별하는 OUI(Organizationally Unique Identifier)이고, 뒤의 24비트는 해당 제조사가 부여하는 고유번호이다.
브로드캐스트 MAC Address
MAC 주소가 모두 1로 채워지면(FF:FF:FF:FF:FF:FF) 이것은 브로드캐스트 주소이다. 목적지 MAC이 브로드캐스트이면 네트워크의 모든 호스트가 해당 프레임을 수신한다.
bash
# Windows에서 MAC 주소 확인
ipconfig /all
# 출력에서 "물리적 주소" 항목을 확인
# Linux/macOS에서 MAC 주소 확인
ifconfigIP Address (32bit) -- L3 식별자
IP 주소는 **인터넷에 연결된 호스트(컴퓨터)**를 식별하는 주소이다. IPv4는 32비트 주소 체계를 사용한다.
주요 특성
- 32비트를 8비트씩 4개로 나누어 점(.)으로 구분한다
- 각 옥텟(8bit)의 범위는 0 ~ 255이다
- IP 주소는 Network ID와 Host ID로 나뉜다
택배 시스템에 비유하면, Network ID는 "역삼동"까지 택배를 모아 보내는 기준이 되고, Host ID는 역삼동 내에서 구체적인 집을 찾는 기준이 된다.
특수 IP 주소
| 주소 | 용도 |
|---|---|
| x.x.x.0 | 네트워크 주소 (호스트에 할당 불가) |
| x.x.x.255 | 브로드캐스트 주소 (호스트에 할당 불가) |
| 127.0.0.1 | 루프백(Loopback) 주소 -- 자기 자신 |
루프백 주소(127.0.0.1)는 나 자신을 가리키는 주소이다. 한 컴퓨터 안에서 두 프로세스가 서로 통신(IPC, Inter-Process Communication)할 때 사용된다. 이 경우 패킷은 실제로 네트워크 밖으로 나가지 않는다.
Port Number (16bit) -- L4 식별자
포트 번호는 16비트로 0 ~ 65535의 범위를 가진다. 전송 계층에서 포트는 같은 호스트 안에서 어떤 애플리케이션 엔드포인트로 전달할지 구분하는 식별자다. 스위치의 물리 포트를 부를 때도 "포트"라는 말을 쓰지만, 이것은 이름만 같을 뿐 다른 개념이다.
| 관점 | 포트 번호가 보통 가리키는 것 | 예시 |
|---|---|---|
| 서비스 관점 | 네트워크 서비스의 접점 | HTTP=80, HTTPS=443, SSH=22 |
| 소켓 관점 | 호스트 내부 통신 엔드포인트 | 192.168.0.10:8080/tcp |
| 개발 관점 | 프로세스가 바인딩한 수신 창구 | 웹 서버 프로세스의 listen 포트 |
전송 계층에서 실제 식별은 보통 IP 주소 + 포트 번호 + 전송 프로토콜(TCP/UDP) 조합으로 이해하면 된다.
Well-Known Port (잘 알려진 포트)
| 범위 | 의미 |
|---|---|
| 0 ~ 1023 | Well-known ports |
| 1024 ~ 49151 | Registered ports |
| 49152 ~ 65535 | Dynamic / Ephemeral ports |
| 포트 번호 | 서비스 | 프로토콜 |
|---|---|---|
| 20, 21 | FTP | TCP |
| 22 | SSH | TCP |
| 23 | Telnet | TCP |
| 53 | DNS | TCP/UDP |
| 80 | HTTP | TCP |
| 443 | HTTPS | TCP |
식별자의 관계: 택배 비유
네트워크 통신을 택배 시스템에 비유하면 세 식별자의 관계가 명확해진다.
사용자 A가 사용자 B에게 택배를 보내는 상황을 생각해 보자.
- 택배 송장(IP 헤더): 출발지 IP(보내는 집), 목적지 IP(받는 집)
- 받는 사람 이름(Port): 같은 집 안에서도 누구에게 전달할지 구분
- 택배 트럭(MAC/Frame): 유통 과정에서 트럭은 수시로 바뀜 -- 물류센터 A에서 B로, B에서 C로
패킷의 IP 주소는 출발지에서 목적지까지 유지되지만, 프레임의 MAC 주소는 경유하는 네트워크 구간마다 바뀐다는 점이 핵심이다.
핵심 정리
| 식별자 | 계층 | 크기 | 식별 대상 |
|---|---|---|---|
| MAC Address | L2 | 48bit | NIC (랜카드) |
| IP Address | L3 | 32bit (IPv4) | 호스트 (인터넷에 연결된 컴퓨터) |
| Port Number | L4 | 16bit | 서비스 / 소켓 엔드포인트 |
bash
# MAC 주소 확인
ipconfig /all # Windows
ifconfig # Linux/macOS
# IP 주소 확인
ipconfig # Windows
ip addr # Linux
# ARP 캐시 확인 (IP-MAC 매핑)
arp -a # Windows/Linux/macOS