1. 3계층 (네트워크 계층, IP)
1-1. 역할과 특징
- 다른 네트워크 대역, 즉 멀리 떨어진 네트워크(WAN 포함)까지 데이터를 어떻게 전달할지 제어한다.
- 발신지에서 착신지까지의 패킷 경로(라우팅) 를 결정하고 중간 라우터들을 통해 전달한다.
- 대표 장비: 라우터(Router)
- 사용 주소: IP 주소 (예: 192.168.0.1 — 사설 IP의 한 예)
2. IP 주소 체계 (IPv4 / IPv6)
2-1. IPv4 기본 개념
- IPv4 주소는 32비트이며, 8비트씩 4부분으로 나누어 10진수로 표기한다.
- 예:
192.168.0.1 - 각 숫자(옥텟)는 0~255 범위를 가진다.
- 예:
- IPv4 전체 개수는 약 43억 개 수준이라, 전 세계적으로 주소가 부족해지는 문제가 있다.
- 이 부족함을 완화하기 위해 사설 IP + NAT 구조가 널리 사용된다.

2-2. IPv6 개념
- IPv6는 IPv4 주소 부족 문제를 해결하기 위해 설계된 128비트 주소 체계이다.
- IPv6 주소 개수는
340,282,366,920,938,463,463,374,607,431,768,211,456개로, 사실상 무한에 가깝다고 표현된다. - 우리말로는 약 340 간(澗) 정도의 단위로 표현하기도 한다.
3. 서브넷, 게이트웨이, 공인/사설 IP

3-1. 서브넷 마스크와 네트워크 대역
- 서브넷 마스크는 IP 주소에서 어느 부분까지를 네트워크로, 어느 부분을 호스트로 볼지 결정하는 값이다.
- 예:
255.255.255.0/24→ 앞 24비트는 네트워크, 뒤 8비트는 호스트
- 예:
- 서브넷 마스크를 이용해 큰 네트워크를 작은 네트워크로 나누는 것을 서브네팅(Subnetting) 이라고 한다.
- 비트 표기에서는 네트워크 비트는 1, 호스트 비트는 0으로 표시한다.
- 예:
11111111.11111111.11111111.00000000→255.255.255.0/24: 앞 24비트를 네트워크대역, 뒤 8비트를 호스트에 사용 - 예:
11111111.11111111.11111110.00000000→255.255.254.0/23: 앞 23비트를 네트워크대역, 뒤 9비트를 호스트에 사용
- 예:
호스트 수 예시
255.255.255.192/26→ 뒤 6비트를 호스트로 사용 →2^6 - 2 = 62대 사용 가능255.255.255.0/24→ 뒤 8비트를 호스트로 사용 →2^8 - 2 = 254대 사용 가능255.255.254.0/23→ 뒤 9비트를 호스트로 사용 →2^9 - 2 = 510대 사용 가능- 2를 빼는 이유는 네트워크 주소와 브로드캐스트 주소 제외하기 위함
3-2. 기본 게이트웨이
- 기본 게이트웨이(Default Gateway)는 외부 네트워크로 나갈 때 사용하는 출입구 역할의 라우터 IP이다.
- 예:
192.168.0.1(공유기 주소로 많이 사용)
- 예:
3-3. 공인 IP와 사설 IP, NAT
- 공인 IP(Public IP)
- 실제 인터넷 상에서 사용되는 전 세계적으로 고유한 IP 주소.
- 이 주소를 통해서만 인터넷과 직접 통신할 수 있다.
- 사설 IP(Private IP)
- 내부 네트워크(LAN) 내에서만 사용하는 IP 주소.
- 직접 인터넷에 나갈 수 없으며, 공인 IP로 변환이 필요하다.
- 사설 IP 대역 (공인 IP로는 사용 불가)
10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255
- NAT(Network Address Translation)
- 사설 IP를 공인 IP로, 혹은 공인 IP를 사설 IP로 바꿔주는 기술이다.
- 여러 대의 사설 IP 장비가 하나의 공인 IP로 인터넷을 사용하게 해준다.
공인 IP가 필요한 이유: 외부 접속의 한계

- 식별 불가능: 사용자가
naver.com에 접속하려 할 때, 서버가 사설 IP만 가지고 있다면 인터넷 망에서 해당 서버를 식별하거나 길을 찾을 수 없습니다. - 라우팅 불가: 사설 IP는 내부 네트워크 전용이므로, 전 세계적인 Internet환경에서는 라우팅(경로 배정)이 되지 않는 주소입니다.
- Inbound(Inbound = 외부에서 내부로 들어오는 통신) 차단: 공유기의 NAT Table(NAT Table = 주소 변환 관리 표)에 미리 정의된 매핑 정보가 없다면, 외부에서 들어온 패킷은 목적지를 찾지 못하고 공유기 단계에서 폐기됩니다.
- 결론: 따라서 네이버와 같이 누구나 외부에서 접속해야 하는 대규모 서버는 전 세계에서 유일하고 접근 가능한 공인 IP를 반드시 사용해야 합니다.
4. Classful IP와 Classless (CIDR)
4-1. Classful IP (초기 방식)
- 초기에 IP 주소는 클래스 A/B/C로 나누어 사용했다.
- A 클래스:
0.0.0.0 ~ 127.255.255.255 - B 클래스:
128.0.0.0 ~ 191.255.255.255 - C 클래스:
192.0.0.0 ~ 223.255.255.255
- A 클래스:
- 대략적인 비트 개념
- A: 네트워크 8비트 / 호스트 24비트
- B: 네트워크 16비트 / 호스트 16비트
- C: 네트워크 24비트 / 호스트 8비트
- 호스트 개수가 너무 많이 배정되는 등 주소 낭비가 심해 현재는 거의 사용하지 않는 개념이다.
- 현재는 “역사적 개념” 정도로 알고 있으면 되고, 실제 네트워크 설계는 Classless 방식(CIDR)을 사용한다.
4-2. Classless 방식과 서브넷 마스크
- Classless 방식에서는 IP를 A/B/C로 나누지 않고, 서브넷 마스크(/24, /25 같은 프리픽스 길이)로 네트워크 범위를 정의한다.
- 예:
192.168.0.0/2410.0.0.0/16
- 이 방식 덕분에 네트워크 크기를 훨씬 유연하게 조정할 수 있고, IP 낭비를 크게 줄일 수 있다.
5. 특수 IP 주소
- 0.0.0.0
- “나머지 모든 IP” 또는 “아직 특정되지 않은 주소” 의미로 사용.
- 일반 PC의 실제 호스트 주소로는 사용하지 않는다.
- 127.0.0.1
- 자기 자신을 가리키는 루프백(Loopback) 주소, 로컬호스트 테스트에 사용.
- 게이트웨이 예시: 192.168.0.1
- 보통 공유기의 IP로 사용되며, 같은 네트워크 대역에서 가장 작은 주소나 가장 큰 주소를 게이트웨이로 잡는 경우가 많다.
6. ARP 프로토콜
6-1. ARP의 역할
- ARP(Address Resolution Protocol)는 같은 네트워크 대역에서 통신을 할 때,
IP 주소를 이용해 상대방의 MAC 주소를 알아내는 프로토콜이다. - 실제 데이터 전송 시에는 3계층의 IP뿐 아니라 2계층의 MAC 주소도 필요하다.
- IP는 알고 MAC을 모르는 상황에서 ARP를 사용하여 MAC 주소를 알아낸다.
6-2. ARP 동작 과정
- 송신자는 목적지의 MAC 주소를 모르므로, 목적지 IP만 넣고 브로드캐스트로 ARP 요청을 보낸다.
- 같은 네트워크의 모든 장비가 이 요청을 수신하고, 자신의 IP와 비교한다.
- 요청에 있는 IP가 자신의 IP와 같으면, 자신의 MAC 주소를 적어 유니캐스트 응답으로 보낸다.
- 송신자는 응답으로 받은 MAC 주소를 확인하고, 이후에는 해당 MAC으로 직접 통신한다.
- 한 번 통신한 IP–MAC 매핑 정보는 ARP 테이블에 일정 시간 저장되며, 이 테이블은 휘발성이다.
7. IP 프로토콜 (IPv4 헤더 개념)
7-1. IP 프로토콜의 성격
- IP는 네트워크 상에서 데이터를 주고받기 위한 비연결형, 비신뢰성 프로토콜이다.
- 데이터가 정확히 전달되는지, 순서가 보장되는지, 중복 전송되었는지는 IP가 보장하지 않는다.
- 데이터의 정확한 전달과 순서 보장은 상위 계층의 TCP가 담당한다.
7-2. 주요 필드 (핵심 위주)
- 버전(Version): 4비트, IPv4인지 IPv6인지를 나타냄.
- 출발지 IP: 32비트(4바이트).
- 목적지 IP: 32비트(4바이트).
단편화 관련 필드
IP 패킷이 전송될 때, 네트워크의 MTU(Maximum Transmission Unit)보다 크면 패킷을 여러 조각으로 나누어 전송한다. 이 과정을 단편화(Fragmentation)라고 한다.
- Identification
- 원래 하나의 패킷이었던 조각들을 다시 재조립하기 위해 묶어주는 ID 값.
- Flags (IP Flags)
- DF(Don’t Fragment): 단편화를 허용할지 여부.
- MF(More Fragments): 뒤에 더 조각이 있는지 나타내는 비트. 1이면 뒤에 더 있음, 0이면 마지막 조각.
- Fragment Offset
- 이 조각이 원래 데이터에서 어느 위치에 해당하는지 나타내는 값.
- 첫 번째 조각은 0, 이후 조각들은 이전까지의 데이터 길이만큼 offset을 가진다.
이 세 필드를 세트로 사용해서, 수신 측에서 여러 조각을 원래 하나의 IP 패킷으로 재조립할 수 있다.
TTL (Time To Live)
- TTL은 패킷이 네트워크 상에서 얼마나 오래 살아남을 수 있는지를 제한하는 값이다.
- 라우터를 한 홉(hop) 지날 때마다 TTL 값이 1씩 감소한다.
- TTL이 0이 되면 패킷은 더 이상 전달되지 않고 폐기되며, 이로 인해 라우팅 루프 등으로 패킷이 무한히 떠다니는 것을 방지한다.
8. ICMP
- ICMP(Internet Control Message Protocol)는 IP와 함께 동작하며, 네트워크 상태를 알리기 위한 제어/오류 메시지 전송에 사용된다.
- 예:
ping명령은 ICMP Echo Request/Reply를 사용하는 대표적인 예시이다. - 계층: 3계층(IP와 같은 네트워크 계층에서 동작)
- 역할:
- 오류 보고 (패킷 전달 실패, TTL 초과 등)
- 네트워크 진단 (연결 상태, 경로 확인)
- 키워드:
ping= Echo Request / Replytraceroute= TTL + Time Exceeded- IP는 “데이터 운반”, ICMP는 “상태·오류 알림”
'네트워크' 카테고리의 다른 글
| [DevOps] 컨테이너 기술 (0) | 2026.02.08 |
|---|---|
| [네트워크] SOAP과 REST의 차이 (0) | 2025.12.30 |
| [OSI] 4계층 - 전송 계층 (Transport Layer) (0) | 2025.12.23 |
| [OSI] 2계층 - 데이터 링크 계층(Data Link Layer) (0) | 2025.12.22 |
| [네트워크] Session과 Cookie (0) | 2025.12.11 |