jisung-02notes
← Archive

Network Layer: interconnected network and address

인터넷(Internet) = 여러 네트워크의 집합 (internetwork). LAN과 WAN을 결합해 네트워크와 네트워크를 잇는다(인터-네트워크).

jisung-02

AI 네트워킹 중간범위 — 노션 강의 노트를 옵시디언용으로 정리한 노트.

인터넷과 인터네트워킹 (Internetworking)

  • 인터넷(Internet) = 여러 네트워크의 집합 (internetwork). LAN과 WAN을 결합해 네트워크와 네트워크를 잇는다(인터-네트워크).
  • 개념적으로는 수백만 대 컴퓨터를 연결하는 하나의 블랙박스 네트워크로 볼 수 있지만, 실제로는 연결 장치로 이어진 다수의 네트워크/링크로 구성된다.
  • Internetworking= 여러 네트워크를 연결하여 통신 가능하게 하는 것.

계층별 역할

  • 물리 계층 + 데이터 링크(Data Link) 계층: 지역적(local)으로 동작하며 한 노드 → 다음 노드(node-to-node) 전달만 책임진다. 한 링크만 전달 가능.
  • 네트워크 계층(Network Layer): 여러 네트워크 전체에서 동작하며 출발지 → 목적지까지 end-to-end 전달을 담당.
  • 프레임(frame)에는 라우팅 정보가 없고 A와 R1의 MAC 주소만 들어 있다. 따라서 라우터 R1이 들어온 인터페이스(f1)에서 어느 인터페이스(f3)로 내보낼지 결정하는 라우팅(routing)은 네트워크 계층이 담당한다.
  • 네트워크 계층의 두 가지 핵심 역할: ① Host-to-Host 전달(출발지→목적지 전체 전달), ② Routing(경로 결정).

위치별 네트워크 계층의 역할

위치역할
출발지(Source)① 패킷 생성(상위 계층 데이터 → IP 패킷) ② 주소 부여(Source/Destination IP) ③ 라우팅 결정(라우팅 테이블 조회) ④ 단편화(Fragmentation): MTU(Maximum Transmission Unit)보다 크면 분할
라우터/스위치① 패킷 수신(데이터 링크 계층에서) ② 라우팅 결정(테이블 조회 → 다음 인터페이스 선택) ③ 헤더 일부 필드 수정 ④ 다시 데이터 링크 계층으로 전달
목적지(Destination)① 주소 검증(Destination IP가 내 주소인지 확인) ② 수신 판단 ③ 단편 재조립(Fragment → 원래 패킷 복원) ④ 상위 계층(Transport Layer)으로 전달

패킷 교환 방식 (Packet Switching)

  • 인터넷은 네트워크 계층에서 Packet-Switched Network이며, 그중 데이터그램(Datagram) 방식을 채택했다.
  • Connectionless Packet Switching = 데이터그램 방식 = IP 방식: 연결 없이 독립적인 패킷이 헤더 정보를 기반으로 라우팅된다. 패킷 사이에는 아무 관계가 없다.
  • 이때 사용되는 스위치를 **라우터(Router)**라고 부른다 (L3 스위치 = 라우터).
  • 라우팅을 위해 네트워크 계층에서 정의된 범용 주소(IP 주소)를 사용한다.

Connection-oriented vs Connectionless 서비스

구분Connection-orientedConnectionless
연결 설정패킷 전송 전 목적지와 연결 설정별도 연결 설정 없음
경로동일 경로로 순차 전송(가상 회선)패킷마다 경로 다를 수 있음
패킷 관계같은 메시지 패킷 간 가상 연결 존재각 패킷 독립 처리, 관계 없음
종료전송 완료 후 연결 종료없음
  • 연결형 통신 3단계: 연결 설정 → 데이터 전송 → 연결 종료. 데이터그램 방식은 Connectionless 서비스에 해당.

IPv4 개요

  • IPv4(인터넷 프로토콜 버전 4)는 TCP/IP에서 사용되는 전달 메커니즘.
  • IPv4의 특징
  1. Best-effort delivery: 최선을 다하지만 보장하지 않음. 오류 제어·흐름 제어 없음(단, 헤더 오류 검출은 함).
  2. Unreliable(비신뢰): 손실·손상·순서 어긋남 가능.
  3. Connectionless(비연결): 각 데이터그램 독립 처리, 순서 보장 없음.
  4. 책임 분리: 위 문제 처리는 상위 계층(TCP)에 위임.
  • IPv4 계층의 패킷은 **데이터그램(Datagram)**이라 부른다.

IPv4 데이터그램 / 헤더

  • 구조: [ IP Header (20~60 bytes) | Data ] — 가변 길이 패킷.
  • 헤더는 라우팅·전달에 필수적인 정보를 담는다.
필드의미
VER (Version)IPv4 버전, 값 = 4
HLEN (Header Length)헤더 전체 길이를 4바이트 단위로 표시
TOS (차등 서비스/Type of Service)패킷 우선순위 비트. 앞 3비트 = precedence, 다음 4비트 = TOS, 마지막 1비트 미사용. 실제로는 거의 사용 안 됨(QoS용)
Protocol상위 계층 프로토콜 정의 (TCP, UDP, ICMP, IGMP) — 다중화(multiplexing) 수행

IPv4 주소 표기법

  • 이진 표기법: IPv4 주소는 32비트. 8비트 묶음(옥텟)을 보통 바이트라 부른다. 예) 10000000 00001011 00000011 00011111
  • 점-십진 표기법(Dotted-decimal): 바이트를 점(.)으로 구분한 십진수. 예) 128.11.3.31
  • 16진수(8자리) 표기도 있으며 네트워크 프로그래밍에서 사용.

Classful Addressing (클래스 기반 주소 지정)

  • 주소 공간을 A, B, C, D, E 다섯 클래스로 나눈 옛 방식 (최근은 CIDR로 대체).
  • 이진 표기는 처음 몇 비트로, 점-십진은 첫 번째 바이트로 클래스 판단.
클래스첫 비트 패턴첫 바이트 범위(십진)용도
A00 ~ 127유니캐스트(대규모 조직)
B10128 ~ 191유니캐스트(중간 규모)
C110192 ~ 223유니캐스트(소규모)
D1110224 ~ 239멀티캐스트(1:N)
E1111240 ~ 255예약(연구·실험용)
  • 유니캐스트 = 1:1 통신, 멀티캐스트 = 1:N(호스트 그룹) 통신.
  • 클래스별 문제: 각 클래스가 고정 개수·고정 크기 블록으로 나뉘어 주소 낭비가 심함. A는 대부분 낭비, B는 대다수 조직에 너무 큼, C는 너무 작음 → 고정 방식에서 가변 방식(CIDR)으로 전환.

Netid와 Hostid

  • A, B, C 클래스 주소는 **NetID(네트워크 정의) + HostID(네트워크 내 호스트 정의)**로 나뉜다.
  • D, E 클래스에는 적용되지 않음.

Mask (마스크)

  • 32비트 이진수. IP 주소를 네트워크 / 호스트로 나누는 기준.
  • 마스크 비트가 1이면 네트워크, 0이면 호스트부분.
  • IP 주소와 마스크를 AND 연산하면 네트워크 주소가 나온다 (마스크 1 → 주소 비트 유지, 0 → 0).
  • 조직 외부 라우터는 네트워크 주소(Default Mask), 조직 내부 라우터는 서브네트워크 주소(Subnet Mask)를 기준으로 라우팅 테이블을 가진다.

Default Mask

  • 클래스별 기본 마스크: A = 255.0.0.0(/8), B = 255.255.0.0(/16), C = 255.255.255.0(/24).
  • Classful 방식에서만 의미가 있음.

Subnetting / Subnet Mask

  • Subnetting: 하나의 네트워크를 여러 작은 네트워크(서브넷)로 나누는 것.
  • Subnet Mask: Default Mask에서 왼쪽 0 일부를 1로 바꿔서 만든다.
  • 추가된 1의 개수가 n이면 → 서브넷 수 = 2^n(반대로 서브넷 N개면 추가 비트 = log₂N).

예) 비트 추가

255.255.0.0   (/16) 11111111.11111111.00000000.00000000
→ 255.255.224.0 (/19) 11111111.11111111.11100000.00000000
→ 3비트 추가 → 2^3 = 8개 서브넷

서브넷 계산 공식

  • 서브넷의 주소 개수= 2^(호스트 비트). 호스트 비트 = 32 − prefix. 예) /27 → 32−27 = 5 → 2^5 = 32개.
  • 사용 가능한 호스트 개수= 주소 개수 − 2 (네트워크 주소 + 브로드캐스트 주소 제외). 예) /27 → 32 − 2 = 30개.

네트워크 주소 구하기 (IP AND Mask)

  • 호스트 IP 192.168.1.10, 서브넷 마스크 255.255.255.224
11000000.10101000.00000001.00001010   (IP)
11111111.11111111.11111111.11100000   (Mask)
------------------------------------------------ AND
11000000.10101000.00000001.00000000   ⇒ 192.168.1.0

브로드캐스트 주소 구하기

  • 네트워크 주소에서 호스트 비트 부분을 모두 1로 변경. /27이면 끝 5비트를 1로:
11000000.10101000.00000001.00011111 → 192.168.1.31

Supernetting (슈퍼네팅)

  • 여러 개의 작은 네트워크(클래스 C 블록 등)를 하나의 더 큰 주소 범위로 결합하는 것 (마스크 prefix를 줄임).
  • 클래스 C 최대 256개로 부족할 때 사용. 4개 묶으면 prefix −2비트, 8개 묶으면 −3비트.

예) /24 4개 → /22

X.Y.32.0/24, X.Y.33.0/24, X.Y.34.0/24, X.Y.35.0/24
→ X.Y.32.0/22  (4개 묶어 prefix 2비트 감소)
  • 배경: 인터넷 급성장으로 주소 고갈 → 클래스 기반이 **Classless(CIDR)**방식으로 대체됨.

IP 주소의 계층 구조 (Hierarchy)

  • IP 주소는 전화망처럼 계층 구조를 가진다: [Network] → [Subnet] → [Host].
  • 네트워크 주소: 블록의 첫 번째 주소. 보통 장치에 할당하지 않고 조직을 외부에 대표하는 주소(= 서브넷 대표 주소)로 사용.
  • 2단계 계층(서브네팅 없음): [ Prefix(Network) | Suffix(Host) ]. 왼쪽 n비트(prefix)는 네트워크, 오른쪽 32−n비트는 호스트. prefix는 네트워크 내 공통, suffix는 장치마다 다름.
  • 3단계 계층(서브네팅): [ Network | Subnet | Host ]. 서브넷의 prefix 길이는 서로 달라도 됨(모든 서브넷이 같은 크기일 필요 없음).

NAT (Network Address Translation, 네트워크 주소 변환)

  • 내부에서는 많은 사설 주소를, 외부에서는 하나/소수의 공인 주소를 쓰게 해 주는 기술.
  • 인터넷 기관이 정한 사설(Private) 주소 범위 3개는 허가 없이 사용 가능. 내부에서는 유일하지만 전 세계적으로는 유일하지 않으며, 어떤 라우터도 이를 목적지 주소로 전달하지 않는다.
  • 구현: NAT 라우터는 사설 주소 1개 + 공인 주소 1개를 가진다. 사설 네트워크는 외부에 투명하며, 인터넷은 NAT 라우터의 공인 주소(예 200.24.5.8)만 본다 → 여러 내부 장치가 하나의 공인 IP 공유.

주소 변환 방향

방향변경되는 것
내부 → 외부 (나가는 패킷)Source IP 변경(사설 → 공인 NAT 주소)
외부 → 내부 (들어오는 패킷)Destination IP 변경(공인 → 적절한 사설 주소)
  • Translation Table(변환 테이블): 나가는 패킷의 출발지 주소를 변환할 때 목적지 주소도 함께 기록. 응답이 돌아오면 출발지 주소를 키로 해당 사설 주소를 찾아 복원.