콘텐츠로 바로가기

Network Layer & Addressing

서로 다른 네트워크 간의 경로를 선택하고, IP 주소 체계를 사용하여 패킷을 목적지까지 배달하는 네트워크 계층(L3)의 물리학을 다루는 학습 노드입니다.

Article
M

Me

hyunyoun's Blog

network-communicationnetworkcommunicationnetwork-foundationsosi-stacknetwork-layeraddressingrouting10 min read

1. Overview

네트워크 계층과 주소 지정(Network Layer & Addressing)은 우리 집 공유기 안에 갇혀 있던 데이터(L2 MAC)에 이정표를 달아, 수백 개의 중간 라우터(Router)를 거쳐 전 세계 인터넷 바다를 항해하게 만드는 **L3(네트워크 계층)**의 위대한 물류망을 해부합니다.

학습자는 한 번 지어지면 영원히 바뀌지 않는 MAC 주소의 한계를 넘어, "강남구 역삼동"처럼 네트워크 대역과 호스트를 계층적으로 쪼개어 위치를 알려주는 **IP 주소(IPv4/IPv6)**의 서브네팅(Subnetting) 수학을 뜯어봅니다. 나아가 목적지 IP를 향해 수많은 갈림길 중 가장 빠른 경로를 계산하는 라우터의 두뇌, **라우팅 테이블(Routing Table)**의 포워딩 역학을 장악합니다. 마지막으로, 전 세계 IP 주소 고갈 사태를 구원한 공유기의 마법, **NAT(Network Address Translation)**와 이사를 갈 때마다 MAC 주소를 물어보는 **ARP(Address Resolution Protocol)**의 중개 능력을 확보합니다.

2. Scope & Boundaries

In-Scope

  • Network Layer (L3): 패킷(Packet), IPv4/IPv6 헤더 구조, TTL (Time to Live).
  • IP Addressing & Subnetting: CIDR (/24), 서브넷 마스크, 네트워크 ID와 호스트 ID 분리.
  • Routing Basics: 라우팅 테이블, Default Gateway(기본 게이트웨이), Hop-by-hop 포워딩.
  • L2-L3 Bridge: ARP(IP를 MAC으로 변환), NAT(사설 IP를 공인 IP로 변환).

Out-of-Scope

  • BGP / OSPF 등 라우팅 알고리즘 심화: 동적 라우팅 프로토콜이 경로를 학습하는 수학적 원리 \rightarrow 08-03 IP, Routing & Global Interconnect 영역으로 위임.
  • TCP 흐름 제어 및 재전송: L4 전송 계층의 신뢰성 보장 \rightarrow 08-01-03 Transport Layer 영역.

Boundaries

  • L2 (MAC) vs L3 (IP): "왜 주소가 2개나 필요하죠?" 초보자들의 영원한 질문입니다. MAC 주소는 '내 노트북의 시리얼 번호(주민번호)'이고, IP 주소는 '내 노트북이 현재 접속한 스타벅스 와이파이 주소(우편번호)'입니다. 택배를 보낼 때 주민번호(MAC)만 쓰면 택배 기사가 전 세계를 다 뒤져야 하지만, 우편번호(IP)를 쓰면 지역 우체국(라우터)을 거쳐 빠르고 정확하게 도착할 수 있습니다. 인터넷(네트워크 간 통신)이 성립하기 위한 IP 계층적 주소 체계의 필연성을 명확히 경계 짓습니다.

3. Counterexample

  • 서브넷 마스크(Subnet Mask) 붕괴: 개발자가 DB 서버의 IP를 192.168.1.10, 웹 서버를 192.168.2.10으로 세팅하고, 서브넷 마스크를 무심코 255.255.255.0 (/24)으로 설정했습니다. 두 서버는 물리적으로 같은 스위치에 꽂혀 있음에도 핑(Ping)이 안 나갑니다. 서브넷 마스크가 다르면 컴퓨터는 서로를 '다른 동네(Network)'로 인식하고, 무조건 게이트웨이(라우터)를 찾으려 하는 L3 주소 지정의 핵심 원리를 무시한 서브네팅 참사입니다.
  • TTL (Time to Live) 블랙홀: 해커가 IP 헤더의 TTL 값을 조작하여 영원히 죽지 않는 패킷을 만들려 시도합니다. 만약 라우터 A와 라우터 B가 서로를 목적지로 잘못 가리키는 라우팅 루프(Routing Loop)에 빠졌을 때, TTL 값이 없다면 패킷은 두 라우터 사이를 무한히 핑퐁하며 네트워크 대역폭을 10초 만에 100%100\% 고갈시킵니다. 패킷이 공유기를 1개 지날 때마다 TTL을 1씩 깎고, 0이 되면 가차 없이 버려버리는 IP 헤더의 방어 기제를 모르는 무지입니다.

4. Prerequisites

  • 데이터 링크 계층 (Basic): L2 프레임과 MAC 주소의 로컬 한계. (08-01-01 Physical & Data Link)
  • 비트 연산 기초 (Basic): AND, OR 등의 이진수 마스킹 연산. (01-01 Boolean Logic)

5. Learning Map

Sequence Core Cluster Objective & Description Evidence (BoK)
1 IP Addressing & Subnets IP 주소를 이진수로 쪼개고 서브넷 마스크(AND 연산)를 덮어씌워, 동네(Network ID)와 집 번호(Host ID)를 칼같이 분리하는 주소학을 쥡니다. P1
2 The L3 Packet & TTL 편지 봉투(IP 헤더)에 발신자/수신자 IP를 적고, 길을 잃은 패킷이 무한 루프를 돌지 못하게 시한폭탄(TTL)을 장착하는 원리를 해부합니다. P5
3 Routing & Gateway 내 동네를 벗어나는 순간 "무조건 라우터 형님(Default Gateway)한테 던진다"는 Hop-by-hop 이정표 탐색 알고리즘을 뜯어봅니다. Industry
4 NAT & ARP Magicians IP 고갈을 막아낸 공유기의 주소 세탁 기술(NAT)과, IP만 알고 있는 바보에게 목적지의 진짜 MAC 주소를 찾아주는 통역사(ARP)를 장악합니다. Industry

6. Learning Topics

Basic

Core Topic 01: 우편번호의 수학, IP 주소와 서브넷 (IP Addressing & Subnets)

  • Why to Learn: 43억 개의 IP 주소를 무작정 뿌리는 게 아니라, "우리 팀은 256개짜리 IP 대역을 쓴다"고 논리적으로 구역(네트워크)을 썰어내어 통신 범위를 통제하기 위함입니다.
  • What to Learn:
    • Concepts: IPv4 (32bit), Network ID, Host ID, Subnet Mask, CIDR (/24), Broadcast Address.
    • Skills: IP 주소 192.168.1.50/26이 주어졌을 때, 해당 네트워크의 시작 IP와 끝 IP, 브로드캐스트 주소를 비트 연산으로 계산해 내기.
  • How to Learn:
    • 1단계: 마스크(Mask) 씌우기: 컴퓨터는 IP 주소(192.168.1.10)와 서브넷 마스크(255.255.255.0)를 2진수로 쫙 펴고 AND 연산을 때립니다. 1과 만난 부분은 동네 이름(192.168.1)이 되고, 0과 만난 부분은 자기 집 번호(10)가 됩니다.
    • 2단계: 동네 식별: B 컴퓨터(192.168.1.20)로 데이터를 보낼 때, A 컴퓨터는 묻습니다. "B의 동네 이름(192.168.1)이 내 동네 이름이랑 똑같네?" 그러면 다이렉트로 던집니다. 만약 동네 이름이 다르면 무조건 바깥세상(라우터)으로 던지는 서브넷의 본질을 뜯어봅니다.
  • Implement: 서브넷 계산기 스크립트. 파이썬. ip="10.0.0.150", cidr=28. 비트 시프팅(Bit-shifting)을 이용해 해당 대역의 총 가용 IP 개수(232282=142^{32-28} - 2 = 14개), Network Address(10.0.0.144), Broadcast Address(10.0.0.159)를 정확히 뽑아내는 이진수 연산 렌더링.

Core Topic 02: 시한폭탄 편지 봉투, L3 패킷 (The L3 Packet & TTL)

  • Why to Learn: L2 프레임으로는 절대 라우터를 넘어갈 수 없음을 깨닫고, 대륙을 횡단할 수 있는 강인한 포장지(L3 IP Header)의 속성과 방어 기제를 장악하기 위함입니다.
  • What to Learn:
    • Concepts: L3 Packet Header, Source/Destination IP, TTL (Time to Live), Fragmentation (단편화), IPv4 vs IPv6.
    • Skills: IP 헤더 구조를 분석하여, 네트워크 루프(Loop) 상황에서 패킷이 어떻게 소멸하는지 추적.
  • How to Learn:
    • 1단계: 영원한 목적지: 택배 봉투(Packet)에 Source IP(출발)와 Destination IP(도착)를 적습니다. L2의 MAC 주소는 라우터를 거칠 때마다 계속 바뀌지만, L3의 IP 주소는 출발부터 도착까지 절대(NAT 제외) 바뀌지 않는 불변의 이정표 역할을 해부합니다.
    • 2단계: 죽음의 시계 (TTL): 라우터들의 설정이 꼬여서 패킷이 A \rightarrow B \rightarrow A \rightarrow B를 무한 반복합니다. IP 헤더 안에는 TTL(64)이라는 숫자가 있습니다. 라우터를 1칸 지날 때마다 TTL을 1씩 깎고, 0이 되면 라우터가 패킷을 휴지통에 버리면서 "이놈 죽었음" 하고 ICMP 에러(Time Exceeded)를 보내는 방어망을 뜯어봅니다.
  • Implement: TTL 핑퐁 루프 시뮬레이션. Router_A(target: Router_B), Router_B(target: Router_A). 패킷(TTL=5)을 주입. A \rightarrow B(TTL=4) \rightarrow A(TTL=3) \rightarrow B(TTL=2) \rightarrow A(TTL=1) \rightarrow B(TTL=0, Drop). 터미널에 루핑 과정과 최종 Drop 로그를 출력하여 무한 트래픽 폭풍이 차단되는 원리 렌더링.

Practical

Core Topic 03: 갈림길의 안내자, 기본 게이트웨이 (Routing & Gateway)

  • Why to Learn: 컴퓨터가 "내가 모르는 IP로 갈 때는 도대체 어디로 던져야 하지?"를 결정하는 라우팅의 가장 원시적인 원리(Default Gateway)를 깨닫기 위함입니다.
  • What to Learn:
    • Concepts: Routing Table, Default Gateway (0.0.0.0/0), Hop-by-Hop Forwarding, Longest Prefix Match.
    • Skills: 로컬 PC의 라우팅 테이블(OS의 route print 또는 netstat -rn)을 읽고 패킷의 방출 경로(인터페이스) 추적.
  • How to Learn:
    • 1단계: 바깥세상으로 가는 문 (Default Gateway): 내 PC는 전 세계 43억 개의 IP가 어디 있는지 모릅니다. 단지 "나랑 같은 서브넷이 아니면 무조건 우리 집 공유기(Gateway)로 던져라"라는 단순한 규칙(0.0.0.0/0)만 뇌(라우팅 테이블)에 가지고 있습니다. 모든 미지의 트래픽을 관문으로 몰아넣는 설계를 해부합니다.
    • 2단계: 징검다리 건너기 (Hop-by-hop): 공유기가 패킷을 받았습니다. 공유기도 전 세계를 다 알진 못하고 "통신사(KT) 라우터로 던져"라고만 압니다. 패킷은 최종 목적지가 어딘지 전체 경로를 모른 채, 그저 눈앞의 징검다리(Hop)를 하나씩 물어물어 건너가는 분산 네트워크의 철학을 뜯어봅니다.
  • Implement: 라우팅 테이블 룩업(Longest Prefix Match) 시뮬레이션. 라우팅 테이블:
    1. 10.1.0.0/16 -> Port A
    2. 10.1.1.0/24 -> Port B
    3. 0.0.0.0/0 -> Port C (Default) 패킷 10.1.1.50이 들어왔을 때, 컴퓨터가 1번 규칙(16자리 일치)과 2번 규칙(24자리 일치)을 비교하여 가장 구체적인(Longest Match) Port B로 쏴주는 콘솔 판정 렌더링.

Advanced

Core Topic 04: 주소 세탁소와 통역사, NAT & ARP (NAT & ARP Magicians)

  • Why to Learn: 43억 개의 공인 IP가 진작에 바닥났음에도 전 세계 수백억 대의 기기가 인터넷을 멀쩡히 쓰는 공유기(NAT)의 기적과, IP를 L2 MAC으로 연결하는 끈(ARP)을 쥐기 위함입니다.
  • What to Learn:
    • Concepts: NAT (Network Address Translation - 사설IP/공인IP), PAT (Port Address Translation), Private IP (192.168.x.x), ARP (Address Resolution Protocol), ARP Table.
    • Skills: 공유기가 하나의 공인 IP로 10대의 스마트폰 트래픽을 포트 번호를 이용해 매핑(PAT)하여 밖으로 내보내는 과정 추적.
  • How to Learn:
    • 1단계: 공유기의 주소 세탁 (NAT/PAT): 사설 IP(192.168.0.2)를 단 패킷이 구글 서버로 가면, 구글은 사설 IP가 어디 있는지 몰라 답장을 못 합니다. 집 공유기가 이 패킷이 나갈 때 출발지 IP를 자신의 비싼 공인 IP(211.x.x.x)로 포장지를 갈아 끼웁니다(NAT). 구글이 공유기한테 답장을 주면, 공유기가 기억해 뒀다가 다시 사설 IP로 바꿔 노트북으로 던져주는 주소 세탁 마법을 해부합니다.
    • 2단계: IP와 MAC의 통역 (ARP): 노트북이 공유기(Gateway)로 패킷을 던져야 합니다. 공유기의 IP 주소(192.168.0.1)는 아는데, L2 통신을 하려면 공유기의 MAC 주소가 필요합니다. 노트북이 허공에 대고 "192.168.0.1 가진 사람 MAC 주소 좀!"이라고 브로드캐스트를 치면, 공유기가 "내 MAC은 XX"라고 대답해 주는 ARP 통역 과정을 뜯어봅니다.
  • Implement: NAT/PAT 주소 변환 매핑 데모. NAT_Table = {}. 노트북(192.168.0.5:1234)이 Google:80으로 요청. NAT(공인IP 203.0.113.1)가 이를 가로채서 NAT_Table[포트 5555 -> 192.168.0.5:1234]로 매핑하고, 203.0.113.1:5555로 변환(Translation)하여 구글로 보냄. 구글의 응답이 5555 포트로 들어오면, 테이블을 뒤져서 원래 노트북으로 포워딩해 주는 콘솔 변환기.

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Network Layer (L3) L2 계층이 집 안(로컬 망)에서 노는 방구석 여포라면, L3 계층은 IP 주소라는 이정표를 들고 수많은 라우터를 거쳐 전 세계 인터넷 바다를 항해하는 글로벌 물류망입니다. 기본 글로벌 종단 간(End-to-End) 배달 IP Address / Routing Data Link Layer (L2) 패킷이 목적지에 도착할 때까지 IP 주소(L3)는 안 변하지만, MAC 주소(L2)는 라우터를 지날 때마다 갈아 끼워짐 P1:CS2023 core
Subnet Mask (서브넷 마스크) 192.168.1.10이라는 IP 주소에 덧씌워져, 어디까지가 동네 이름(Network ID)이고 어디서부터가 내 집 번호(Host ID)인지 칼같이 쪼개주는 이진수 마스크입니다. 권장 IP 대역 분할 CIDR (/24) / IP Address Default Gateway 255.255.255.0은 앞의 숫자 3개가 동네 이름이라는 뜻이며, 컴퓨터는 이를 통해 패킷을 라우터(밖)로 던질지 결정함 P5:SFIA core
TTL (Time to Live) IP 패킷의 헤더에 붙어있는 시한폭탄 숫자로, 라우터를 1개 지날 때마다 1씩 깎이고 0이 되면 패킷이 즉각 파괴되어 네트워크가 무한 루프 폭풍에 빠지는 것을 막아냅니다. 실무 라우팅 루프 방지 IP Header / Traceroute Hop Count '시간(초)'이 아니라 '거쳐 간 라우터의 개수(Hop)'를 의미하며, 명령어 ping이나 traceroute가 이 원리를 이용함 Industry core
NAT (Network Address Translation) 회사나 집 안에서 쓰는 무료 사설 IP(192.168.X.X)를, 인터넷 바다로 나갈 수 있는 비싼 공인 IP로 몰래 포장지(헤더)를 바꿔치기(세탁)해 주는 공유기의 마법입니다. 심화 IPv4 주소 고갈 방지 PAT / Private IP IPv6 (대안) 1개의 공인 IP로 100대의 기기가 통신할 수 있게 하려면 포트(Port) 번호까지 변환하는 PAT(Port Address Translation)를 함께 씀 Industry core

8. References

Primary

  • [P1] CS2023 - Networking and Communication (NC) - Routing and Forwarding
  • [P5] SFIA - Network Design (NTDS) - IP Addressing and Routing

Secondary

  • [Computer Networking: A Top-Down Approach] Kurose & Ross - The Network Layer: Data Plane
  • [TCP/IP Illustrated, Volume 1] Kevin R. Fall - IP: Internet Protocol

Industry

  • [Cisco Networking Academy] - IPv4 and IPv6 Addressing, Subnetting
  • [IETF RFC 791] - Internet Protocol (IP) Specification

9. Final Checklist

Primary

  • 서브넷 마스크(Subnet Mask)가 컴퓨터로 하여금 목적지 IP가 자신과 "같은 네트워크(로컬)"인지 "다른 네트워크(외부)"인지 판별하게 하여, 라우터(Gateway)로 보낼지 결정하는 원리를 설명할 수 있는가?
  • IP 헤더 내의 TTL(Time to Live) 필드가 라우터를 거칠 때마다 1씩 감소하여, 설정 오류로 발생한 라우팅 루프(Routing Loop)가 인터넷 전체 대역폭을 마비시키는 것을 방어하는 기제를 증명할 수 있는가?

Secondary

  • 43억 개로 제한된 IPv4 주소 고갈 사태를 방어하기 위해, 가정용 공유기가 사설 IP(Private IP)와 공인 IP(Public IP) 간에 포트 번호(Port)를 활용하여 주소를 변환하는 NAT/PAT 메커니즘을 해부할 수 있는가?
  • 내 컴퓨터가 목적지 IP 주소는 알고 있지만 통신을 위한 목적지의 물리적 MAC 주소를 모를 때, 브로드캐스트를 통해 MAC 주소를 캐묻고(Request) 응답(Reply)을 캐싱하는 ARP(주소 확인 프로토콜)의 동작을 추적할 수 있는가?

Industry

  • 서브넷 계산(Subnetting)을 통해 10.0.0.0/24 네트워크를 4개의 더 작은 서브넷으로 분할(VLSM)할 때, 각 서브넷의 네트워크 ID와 브로드캐스트 주소, 사용 가능한 호스트 개수를 비트 연산으로 도출할 수 있는가?
  • 컴퓨터의 라우팅 테이블(Routing Table)에서, 트래픽의 목적지 IP가 여러 개의 라우팅 규칙과 일치할 경우 가장 구체적인 마스크 값을 가진 경로를 우선 선택하는 '최장 접두사 일치(Longest Prefix Match)' 원리를 논증할 수 있는가?

Network Layer: Addressing & Routing

2 / 7