
[CS/네트워크] 05. 네트워크 계층: 전 세계를 잇는 거대한 내비게이션
⚡ 한 줄 요약: 데이터가 목적지까지 가는 최적의 경로를 찾는 '라우팅' 원리와, 한정된 IP 자원을 효율적이고 안전하게 사용하기 위한 다양한 기술(Subnet, NAT, DHCP)을 파악합니다.
1. 👋 들어가며: 인터넷의 '지도(Map)'를 설계하다
전송 계층이 데이터 조각(패킷)의 품질을 책임졌다면,
네트워크 계층(L3)은 그 패킷이 전 세계 수많은 라우터를 거쳐 어떻게 우리 집 컴퓨터까지 찾아올 수 있는지를 결정합니다.
우리가 웹사이트 주소를 입력했을 때, 전 세계에 흩어진 서버 중 단 하나를 정확히 찾아낼 수 있는 이유는
정교하게 설계된 주소 체계와 최적의 경로를 계산하는 라우터들의 노력 덕분입니다.
-
🧐 Why:
- 물리적으로 멀리 떨어진 장치들이 서로의 위치를 식별하고, 수억 개의 갈림길 속에서 '가장 빠른 길'을 찾기 위한 표준이 필요하기 때문입니다.
-
🎯 Goal:
- IP 주소의 계층적 구조와 서브넷 마스크의 원리를 이해하고,
NAT와 DHCP가 어떻게 IP 고갈 문제를 해결하며 보안과 편의성을 제공하는지 학습합니다.
📂 2. 네트워크 계층: 최적의 경로를 찾는 길잡이
전송 계층이 데이터의 품질을 관리한다면, 네트워크 계층은 복잡한 전 세계 네트워크망 속에서 목적지까지 가는 '최적의 길'을 설계합니다.
📌 2-1. 라우팅과 IP 주소
- 전 세계 라우터 네트워크:
- 지구상에는 수많은 라우터가 존재하며, 각국의 통신사(ISP), 데이터 센터(서울의 네트워크 센터), 기업 및 대학교 캠퍼스(판교 IT 단지 등)에서 이를 관리하고 있습니다.
- 데이터의 여정 (Hop-by-Hop):
- 우리 집 공유기에서 출발한 데이터는 수많은 라우터를 거쳐 목적지에 도달합니다.
- 이때 라우터 한 대를 통과하는 단위를 '한 홉(Hop)'이라고 부릅니다.
- 라우팅:
- 패킷의 목적지 IP 주소를 확인하여 다음 네트워크로 전달하는 과정 그 자체를 의미합니다.
📌 2-2. 라우팅 테이블과 프로토콜
- 라우팅 테이블:
- 라우터가 패킷을 어디로 보낼지 결정할 때 사용하는 지도와 같은 데이터베이스입니다.
- 여기에는 거쳐야 할 IP 대역과 다음 라우터 정보가 담겨 있습니다.
- 라우팅 프로토콜:
- 사람이 수동으로 지도를 그리는 것이 아니라, 알고리즘이 자동으로 최적의 경로를 계산하여 테이블을 최신 상태로 유지합니다.
- 거리, 트래픽 상황, 연결 상태 등을 기준으로 삼습니다.
- 라우터의 3대 핵심 역할:
- 패킷 전달(Routing): 네트워크 간에 데이터를 넘겨주는 기능
- 경로 결정: IP 주소를 기반으로 가야 할 길을 판단
- 최적 경로 선택: 가장 효율적이고 빠른 길을 계산하여 전송
📂 3. 주소 체계의 진화: IPv4 vs IPv6
데이터를 보내려면 정확한 주소가 필요합니다.
하지만 인터넷 장비가 기하급수적으로 늘어나면서 주소가 부족해지는 상황에 직면했습니다.
📌 3-1. IPv4 (현재의 주류이나 부족한 주소)
- 주소 구조:
- 32비트 주소 체계를 사용하며, 약 43억 개의 고유 주소를 가질 수 있습니다.
- 표현 방식:
- 점(
.)으로 구분된 4개의 10진수로 표현합니다.
- 한계점:
- 전 세계 인터넷 장비 수에 비해 43억 개는 턱없이 부족하여, 주소 고갈 문제로 인해 IPv6로의 전환이 진행 중입니다.
📌 3-2. IPv6 (무한한 주소의 시대)
- 주소 구조:
- 128비트 주소 체계를 사용하여 거의 무한대에 가까운 주소를 할당할 수 있습니다.
- 표현 방식:
- 콜론(
:)으로 구분된 8개의 16진수 그룹으로 표현합니다.
- 특징:
- 보안 기능(IPSec)이 기본 지원되며 헤더 구조가 고정형으로 단순화되어 처리 효율이 높습니다.
📌 3-3. IP 헤더의 핵심 정보
- IP 패킷의 머리 부분인 IP 헤더에는 가장 중요한 출발지 IP 주소와 목적지 IP 주소가 반드시 포함되어 있어 라우터가 길을 찾을 수 있게 해줍니다.
📂 4. IP의 계층적 구조와 서브넷 마스크
IP 주소는 전 세계적으로 네트워크 관리를 통해 '어느 동네(네트워크)'의 '어느 집(호스트)'인지 구분할 수 있는 계층적 구조를 가집니다.
📌 4-1. 네트워크 부분 vs 호스트 부분
- 계층적 구분:
- 32비트 체계인 IPv4 주소는 크게 두 덩어리로 나뉩니다.
- 네트워크 부분:
- 해당 IP가 속한 전체 네트워크 그룹을 식별합니다. (예: 20비트 할당)
- 호스트 부분:
- 해당 네트워크 내에 있는 개별 장치를 식별합니다. (예: 12비트 할당)
- 서브넷:
- 동일한 네트워크 부분을 공유하는 장치들의 집합을 의미합니다.
📌 4-2. 서브넷 마스크 표현법
IP 주소에서 어디까지가 네트워크 부분인지 알려주는 '가이드라인' 입니다.
- 십진수 표현:
255.255.240.0과 같이 이진수를 8비트씩 끊어 숫자로 표현합니다.
- 슬래시(CIDR) 표현:
/20, /24처럼 네트워크 부분에 할당된 비트 수를 슬래시 뒤에 적어 간단히 표현합니다.
📂 5. 약속된 특수 IP 주소
호스트 부분의 비트 구성에 따라 특정 용도로 예약된 주소들이 있습니다.
이들은 일반 장치에 할당할 수 없습니다.
📌 5-1. 네트워크 주소와 브로드캐스트 주소
- 네트워크 주소:
- 호스트 부분이 전부 0으로 구성된 주소입니다.
- 네트워크 자체를 대표하는 식별자로 사용됩니다.
- 브로드캐스트 주소:
- 호스트 부분이 전부 1로 구성된 주소입니다.
- 해당 네트워크의 모든 장치에게 동시에 데이터를 보낼 때 사용됩니다.
📌 5-2. 장치에 할당 가능한 IP 범위
- 유효 호스트 주소:
- 위 두 가지 특수 주소를 제외한 나머지 주소들만이 실제 PC나 서버에 할당될 수 있습니다.
- 계산식:
2호스트비트수−2(특수주소2개를뺌)
- 예: 호스트가 12비트라면 총 4,094개의 장치를 연결할 수 있습니다.
📂 6. IP 계층화가 필요한 실무적인 이유
기업이나 조직에서 하나의 큰 네트워크를 여러 부서(서브넷)로 쪼개어 사용하는 이유입니다.

📌 6-1. 효율성과 관리의 편의성
- IP 낭비 방지:
- 대규모 네트워크를 필요한 크기만큼 잘라 사용함으로써 주소 자원을 아낄 수 있습니다.
- 독립적 관리:
- 부서별로 네트워크를 모니터링하거나 특정 장비만 분석하기 용이해집니다.
📌 6-2. 트래픽 분리와 보안 강화
- 트래픽 격리:
- 특정 부서(예: 영업부)에서 발생한 과부하나 충돌이 다른 부서(예: IT부)의 네트워크에 영향을 주지 않습니다.
- 접근 제어:
- 부서 간 접근 권한을 다르게 설정할 수 있습니다.
- 예: 인사(HR) 부서는 사내 시스템만 접근 가능하게 하고, 외부 인터넷은 차단하는 식의 설정이 가능합니다.
📂 7. 인터넷의 '겉 주소'와 '속 주소': 공인 IP vs 사설 IP
우리가 사용하는 모든 장비가 고유한 주소를 갖기에는 IPv4가 너무 부족합니다.
이를 해결하기 위해 주소를 '바깥용'과 '안쪽용'으로 나누어 사용합니다.
📌 7-1. 공인 IP (Public IP)
- 정의:
- 전 세계 인터넷망에서 단 하나뿐인 유일무이한 주소입니다.
- 특징:
- 도로명 주소나 전화번호처럼 외부에서 나를 찾아올 때 사용하는 공식적인 식별자입니다.
📌 7-2. 사설 IP (Private IP)
- 정의:
- 특정 건물이나 집(LAN) 내부에서만 통용되는 내부 주소입니다.
- 특징:
- 아파트 내부의 '101호', '102호'와 같은 개념입니다.
우리끼리는 통하지만 외부인은 이 주소만으로 우리 집을 찾아올 수 없습니다.
- 192.168 대역:
- 우리가 흔히 보는 이 주소는 국제 표준에서 "사설 IP로만 써라"라고 지정해둔 약속된 대역입니다.
- 장점:
- 외부에서 사설 IP로 직접 접근하는 것이 불가능하기 때문에 보안상 더 안전합니다.
📂 8. 주소 변환의 마법사, NAT(Network Address Translation)
사설 IP는 인터넷에 직접 연결할 수 없는데, 우리는 어떻게 유튜브를 보고 웹 서핑을 할 수 있을까요?
바로 라우터의 'NAT' 기능 덕분입니다.
📌 8-1. NAT의 작동 원리 (데이터가 나갈 때)
- 요청 생성:
- 내 컴퓨터(사설 IP: 192.168.1.10)가 웹 사이트에 접속하려고 패킷을 만듭니다.
- 출발지에는 본인의 사설 IP와 포트 번호를 적습니다.
- 라우터의 변환:
- 이 패킷이 라우터를 통과할 때, 라우터는 출발지 정보를 자신의 공인 IP와 새로운 포트 번호로 싹 갈아 끼웁니다.
- NAT 테이블 기록:
- 라우터는 "어떤 사설 IP가 어떤 포트로 나갔는지"를 자신의 NAT 변환 테이블에 꼼꼼히 기록해 둡니다.
📌 8-2. 데이터가 돌아올 때 (응답 처리)
- 응답 도착:
- 목적지 서버는 라우터가 보낸 공인 IP 주소를 보고 응답을 보냅니다.
들어오는 데이터의 헤더에는 라우터의 정보가 적혀 있습니다.
- 역변환:
- 라우터는 들어온 패킷의 정보를 보고 아까 기록해둔 NAT 테이블을 뒤져봅니다.
- 최종 배달:
- "아, 이 응답은 아까 192.168.1.10번 컴퓨터가 요청한 거구나!"라고 판단하여,
도착지 주소를 다시 진짜 컴퓨터의 사설 IP로 갈아 끼워 배달합니다.
💡 정리
- 외부(인터넷)에는 우리 집의 진짜 주소(사설 IP)를 꽁꽁 숨겨서 보안을 지키고,
- 부족한 공인 IP 하나를 가지고 수많은 가족 구성원이 동시에 인터넷을 쓸 수 있게 해주는 핵심 기술입니다.
- 결론:
- "사설 IP는 NAT라는 통역사를 통해 공인 IP라는 가면을 쓰고 인터넷 세상으로 나간다!" 라고 이해하면 완벽합니다.
📂 9. IP 주소의 자동 할당: DHCP
우리가 와이파이를 잡기만 하면 인터넷이 되는 이유는, 뒤에서 DHCP가 우리 기기에 맞는 '임시 주소'를 자동으로 빌려주기 때문입니다.
📌 9-1. DHCP란 무엇인가?
- 정의:
- 장치에 IP 주소를 자동으로 할당하고 관리해 주는 프로토콜입니다.
- 필요성:
- 우리가 집에서 쓰는 와이파이와 카페 와이파이가 다르듯, 네트워크 환경에 맞는 IP를 그때마다 사람이 수동으로 입력하는 번거로움을 해결해 줍니다.
- 역할:
- 가정에서는 우리가 흔히 사용하는 공유기가 이 DHCP 역할을 함께 수행합니다.
📌 9-2. IP를 부여받는 4단계 과정 (DORA 과정)
총 4번의 데이터 교환을 통해 '빌려 쓰기'가 완성됩니다.
-
DHCP Discover (탐색)
- 클라이언트 → 서버:
- "나 IP 주소가 필요한데, 여기 DHCP 서버 있나요?"
- 특징:
- 클라이언트는 아직 자신의 IP가 없으므로 출발지 IP는
0.0.0.0으로 설정됩니다.
- 또한 서버가 어디 있는지 모르므로 모든 장치에게 보내는 브로드캐스트 주소를 사용합니다.
-
DHCP Offer (제안)
- 서버 → 클라이언트:
- "나 여기 있어! 지금 비어 있는
192.168.1.100 주소 한 번 써볼래?"
- 특징:
- DHCP 서버(공유기)가 사용 가능한 IP 주소를 제안합니다.
- 이때도 클라이언트는 주소가 확정되지 않은 상태라 브로드캐스트로 보냅니다.
-
DHCP Request (요청)
- 클라이언트 → 서버:
- 특징:
- 제안받은 주소를 사용하겠다는 의사를 서버에 전달합니다.
-
DHCP ACK (승인)
- 서버 → 클라이언트:
- "그래, 이제부터 그 주소는 네 거야. 잘 써!"
- 특징:
- 서버가 최종 승인하며, 클라이언트는 비로소 IP 주소를 정식으로 할당받아 통신을 시작합니다.
💡 비유로 이해하기: 게스트 하우스의 이름표 시스템
- Discover (나):
- "저 방금 왔는데 제 이름표(IP) 있나요? 누구 없어요?" (거실 전체에 소리침)
- Offer (주인장):
- "어서 오세요! 지금 '7번 이름표'가 비어있는데 이거 쓰실래요?"
- Request (나):
- ACK (주인장):
- "알겠습니다. 여기 7번 이름표입니다. 체크아웃할 때까지 쓰세요."
- 핵심:
- 내가 누구인지(IP) 모르는 상태에서 시작하기 때문에 처음에는 '큰 소리(브로드캐스트)'로 물어봐야 한다는 것이 포인트입니다.
🎁 10. 정리
🔑 요약
-
라우팅과 IP 주소:
- 네트워크 계층의 핵심은 '어디로 보낼지' 결정하는 라우팅과 장치를 식별하는 IP 주소입니다.
- 라우터는 라우팅 프로토콜을 통해 실시간으로 최적의 경로를 계산하여 지도를 업데이트합니다.
-
주소 체계의 진화:
- 32비트의 IPv4 주소 부족 문제를 해결하기 위해 128비트의 IPv6가 등장했으며,
이는 보안성과 효율성이 대폭 향상된 구조를 가집니다.
-
서브넷 마스크:
- IP를 네트워크와 호스트 부분으로 나누어 관리하는 가이드라인입니다.
- 이를 통해 트래픽을 격리하고 보안을 강화하며, 네트워크 주소(전부 0)와 브로드캐스트 주소(전부 1)를 제외한 범위를 장치에 할당합니다.
-
주소 변환(NAT):
- 사설 IP를 사용하는 내부 장치들이 하나의 공인 IP를 공유해 외부와 통신하게 해주는 기술입니다.
- 내부 주소를 숨겨 보안을 높이고 IP 자원을 절약합니다.
-
자동 할당(DHCP):
- Discover → Offer → Request → ACK 라는 4단계를 거쳐 장치에 IP 주소를 자동으로 임대해 주어 사용자의 편의성을 극대화합니다.