Computer Network Chapter 04

Jeong-yun Lee·2025년 4월 12일

Computer Network

목록 보기
3/4

🌐 Chapter 4: The Network Layer — Data Plane


4.1 Overview of the Network Layer

Network Layer Overview

🔹 역할

  • 송신측 host의 segment를 수신측 host로 전달
  • 모든 router와 host에 존재

송수신 처리

  • 송신측: segment → datagram으로 encapsulate
  • 수신측: datagram → segment 추출 후 transport layer로 전달

🔧 주요 기능

기능설명
ForwardingRouter input에 들어온 packet을 적절한 output port로 이동
RoutingSource에서 destination까지 packet 경로 결정 (routing algorithm 사용)

➡️ forwarding table에 따라 header 정보를 기반으로 output port 탐색


🧩 Data Plane vs Control Plane

Plane설명수행 주체
Data Plane개별 router가 input → output port로 forwarding.local, per-router
Control Plane여러 router 간 경로 계산 협의 (routing)distributed or centralized

⚙️ Data Plane

  • local, per-router function, 라우터 하나가 자기 혼자서 수행하는 작업이고, 다른 라우터와 협의 없이도 처리할 수 있는 기능. | local, per-router |

  • forwarding: input datagram → output port로 전달


🧠 Control Plane

  • network-wide logic, 각 라우터가 단독으로 판단하는 게 아니라, 여러 라우터 간의 정보 교환을 통해 경로를 계산하는 논리 기반.
  • 라우터 간 협력 기반 경로 계산 → routing 결정

방식 1: Traditional Routing Algorithms

  • 각 라우터가 알고리즘 구성요소 보유
  • 라우터 간 정보 교환으로 routing 결정

Traditional Routing Algorithms

방식 2: Software-Defined Networking (SDN)

  • 중앙의 controller가 모든 라우터(local agents)와 상호작용
  • remote controller가 global routing 결정

SDN


📡 Network Service Model

Network Layer가 제공할 수 있는 서비스 유형

서비스설명
Guaranteed Delivery패킷이 목적지에 반드시 도달함을 보장
Guaranteed Delivery w/ Bounded Delay특정 시간 이내 도달 보장 (예: 100ms 이내)
In-order Delivery순서 보장 (전송 순서 == 수신 순서)
Guaranteed Minimal Bandwidth최소 대역폭 확보 (예: 1 Mbps 이상 처리 보장)
Security암호화 및 복호화 통한 기밀성 보장

🌍 실제 인터넷 서비스

  • Best-Effort Delivery만 제공
  • 도달 여부, 지연, 순서, 보안 어느 것도 보장하지 않음

💡 ATM (Asynchronous Transfer Mode)

  • QoS 보장형 네트워크
  • in-order delivery, bounded delay, minimal bandwidth 보장

4.2 What’s Inside a Router


Router Architecture


🔌 Input Ports

Router가 외부 링크에서 packet을 받아들일 때 가장 처음 작동하는 부분.

Input Ports

구성 요소

  1. Physical Layer Termination

    • 링크로부터 신호 수신, router 내부로 전달
  2. Link Layer Processing

    • Frame 처리 (decoding, CRC, MAC 검사 등)
  3. Forwarding Table Lookup

    • header 분석 → 목적지 IP 기반으로 forwarding table 조회
    • 적절한 output port 결정

⚠️ 병목 이슈

  • Queuing: forwarding 속도 < 도착 속도
  • Buffer Overflow: 패킷 손실 발생 가능
  • HOL Blocking: 맨 앞 패킷 때문에 뒤에 있는 패킷까지 지연

HOL Blocking

Forwarding 방식

방식설명
Destination-based목적지 IP만 기반 (전통적)
Generalized (SDN)다양한 header field 기반

✅ Longest Prefix Matching

  • 여러 경로가 일치할 때 가장 긴 접두어를 가진 경로 선택

🔁 Switching Fabric

라우터 내부 네트워크: input port → output port 연결

Switching Fabric

종류

  • Memory-based
  • Bus-based
  • Crossbar-based

➡️ switching rate: forwarding 처리 속도 최대치


🔃 Output Ports

Switching Fabric으로부터 받은 패킷을 저장하고, 출력 링크를 통해 전송
필요한 링크 계층 및 물리 계층 작업 수행

Output ports

역할

  • 패킷을 전송 직전까지 저장
  • 링크 계층, 물리 계층 처리
  • 버퍼링 필요 (fabric → output link 간 속도 차이)

Output Queuing


📤 Scheduling (전송 순서 결정)

방식설명
FIFO선입선출
Priority우선순위 높은 패킷 먼저
Round Robin각 queue를 순차적으로 탐색
WFQ가중치 기반 공정 큐잉

FIFO

FIFO

Priority

Priority

Round Robin

Round Robin

WFQ (Weighted Fair Queuing)

  • RR + Priority 개념 혼합
  • 흐름별 공정하고 효율적

WFQ


4.3 IP: Internet Protocol


📦 Datagram Format

IPv4 Datagram Format

(32bit = 4byte)
TCP Header: 32bit × 5 = 20byte
IP Header: 32bit × 5 = 20byte
총 40byte + Application Layer Overhead


✂️ Fragmentation

Fragmentation

  • MTU(Max Transfer Unit)에 따라 link-level frame의 최대 크기 제한
  • datagram을 여러 조각으로 fragmentation
  • 수신지에서 재조립 reassembly
  • IP header bit를 활용해 fragmented datagram 사이의 순서 식별 가능.

Fragmentation Example

  • datagram header 크기(20byte) 고려 필요.
  • 4000byte datagram = 20byte header + 3980byte data
  • Offset: 조각 순서
  • ID: 같은 datagram 조각 묶음 식별

🧭 IPv4 Addressing

  • IPv4: 32bit (약 42억 개)
  • interface에 할당됨 (host/router의 링크 단위)

interface: host/router 간 연결의 physical link. 각 interface마다 ip 주소 할당됨.

router: network layer
switch: link layer

구조

  • Subnet part (상위 비트): 네트워크 식별
  • Host part (하위 비트): 네트워크 내 장비 식별

IPv4 Bit
8bit 단위로 끊어서 표현.

Subnet

  • 물리적으로 서로 직접 접근 가능한 네트워크
  • subnet mask 사용 → 네트워크/호스트 영역 분리
    • 예: 255.255.255.0 (/24)

Subnet


📏 CIDR (Classless Inter-Domain Routing)

  • a.b.c.d/x 형식, x = subnet 길이
  • Subnet 길이를 자유롭게 설정 가능

CIDR


📡 IP 주소 할당 방식

  1. 수동 (관리자 설정)
  2. 자동: DHCP 사용

🔄 DHCP (Dynamic Host Configuration Protocol)

  • Plug-and-play 방식. server로부터 IP 주소를 동적으로 할당받음.
  • IP 주소 재사용 가능 (IP 주소 임대 기반)

절차

  1. DHCP Discover (Broadcast) - optional
  2. DHCP Offer - optional
  3. DHCP Request
  4. DHCP ACK

DHCP scenario 1
DHCP scenario 2

서로의 IP 주소를 모르기 때문에 통신은 모두 broadcast로 진행.
DHCP 서버 자신의 IP 주소는 클라이언트가 어느 서버로부터 IP를 할당받을지를 결정하고,그 선택을 Request 메시지에서 명시하기 위한 서버 식별자 역할을 수행함

DHCP는 다음 정보를 함께 제공:

  • Subnet Mask
  • Default Gateway (client를 위한 first-hop router의 주소)
  • DNS Server

🏛 Subnet Address 할당

  • ISP로부터 subnet block 할당 받음

Subnet IP

Hierarchical Addressing
총 8개의 조직이 연결되어야 하기때문에 subnet mask가 20에서 23으로 증가

➡️ Long Prefix Match 사용


🔁 NAT (Network Address Translation)

NAT

  • 내부 사설 IP → 외부 공인 IP로 변환
  • port 번호로 local network 내부 host 구분

NAT 장점

  1. ISP로부터 많은 IP 주소를 받을 필요 없음. IP 주소 절약
  2. 로컬 네트워크 내부의 주소 변경이 외부에 영향을 주지 않음. 내부 주소 변경 자유
  3. ISP를 바꿔도 로컬 네트워크 설정은 그대로 유지. 유지보수 용이성 향상, ISP 독립성
  4. 외부에서 내부 장치가 직접 접근되지 않음. 방화벽과 유사한 효과 제공, 보안 강화

⚙️ NAT 구현

  1. 외부로 전달되는 datagram의 출발지 IP, port number를 수정 후 전달
  2. 수정 전 정보 출발지 정보와 NAT 정보를 쌍으로 저장.
  3. 외부에서 유입되는 datagram의 목적지 IP와 port를 확인하고 NAT table 활용해 목적지 IP, port를 local network에 맞게 변경 후 전달.

NAT Procedure

  • 포트 번호 16bit → 최대 60,000 연결 관리 가능

NAT 단점 / 논란

  • Network Layer 원칙 위배. router는 원래 network layer까지만 처리해야 하지만, NAT router는 port number, IP, MAC 모두 처리.

  • End-to-End 설계 위반. 네트워크는 간단하게, 복잡한 기능은 host에서 처리한다는 설계 원칙

  • App 구현 복잡성 증가

  • IPv6가 NAT 대안. IP 주소 부족 문제는 IPv6로 해결하는 것이 건강함.


🧪 IPv6 Addressing

신규 할당 가능한 IPv4 주소 부족해짐.
새로운 header format은 처리/포워딩 속도 증가. QoS 향상.

IPv6 Format

  • 128bit 주소
  • 고정 길이 40byte header
  • checksum 제거, fragmentation 제거
  • next header + 확장 헤더
  • ICMPv6 사용

🕳 IPv6 전환 방식: Tunneling

  • IPv6 → IPv4 datagram 내부에 encapsulate 후 전송

Tunneling
Tunneling View


4.4 Generalized Forwarding & SDN


🧠 개요 (Overview)

  • 각 라우터는 논리적으로 중앙화된 컨트롤러가 계산한 flow table을 가지고 있음
  • 기존 라우터(router)보다 패킷 스위치(packet switch)라는 표현이 SDN에서 더 적절함

Generalized Forwarding


📘 OpenFlow

OpenFlow는 SDN(Software-Defined Networking)의 대표적 실현 기술이고, SDN의 개념을 처음으로 널리 구현한 프로토콜

  • OpenFlow는 패킷 헤더 필드 조합 (flow) 단위로 동작함
  • 전통적인 목적지 기반 포워딩(destination-based) 대신 일반화된 헤더 기반 매칭 사용

🔹 Flow 구성 요소 (Flow Table Components)

구성 요소영어설명
패턴Pattern (Match)어떤 조건의 패킷인지 정의 (IP, 포트 등)
동작Action조건에 맞는 패킷에 수행할 행동
우선순위Priority여러 규칙이 겹칠 때 선택 기준
카운터Counter해당 흐름에서 처리된 바이트/패킷 수

⚙️ Action 종류 (Types of Action)

동작영어설명
전송Forward특정 포트로 전송
폐기Drop패킷 제거
수정Modify헤더 수정 (예: MAC/IP/Port 변경)
컨트롤러 전송Send to controllerSDN 컨트롤러로 패킷 전달

OpenFlow Table Entry

🔍 OpenFlow Entry 구성 (Flow Table Entry)

구성 요소영어설명
규칙Rule헤더 기반 매칭 조건
동작Action매칭된 패킷에 수행할 작업
통계Stats해당 규칙으로 처리된 패킷 수 및 바이트 수

📑 Match-Action 모델 비교 (Per Device)

장비영어Match 기준Action
라우터Router목적지 IP 주소 (Longest Prefix Match)해당 목적지로 포워딩
스위치Switch목적지 MAC 주소특정 포트로 전송 or 브로드캐스트
방화벽FirewallIP/Port 등허용(permit) 또는 차단(deny)
NATNAT내부 IP + Port공인 IP/Port로 변환 후 전송

OpenFlow Example


profile
push hard 🥕

0개의 댓글