Blog on Iterating

네트워크 계층

네트워크 계층의 주요 역할

  • 출발지 호스트에서 목적지 호스트까지 패킷 전달

  • 경로 선택(라우팅)

  • 다양한 네트워크 간 연결 및 호환성 제공 (인터네트워킹)

네트워크 계층 설계 요소

Store-and-Forward Packet Switching

  • 각 라우터는 들어온 패킷을 저장하고 검사한 뒤, 다음 홉으로 전달

  • 라우터 내부에 포워딩 테이블 존재 (목적지 기반)

  • 지연은 발생할 수 있지만 신뢰성 있는 데이터 전송과 유연성 제공

Services Provided to the Transport Layer

네트워크 계층은 기본적으로 비연결인 데이터그램(connectionless) 서비스(IP) 를 제공한다. 일부 기술(예: MPLS, ATM)에서는 네트워크 계층 수준에서 가상회선(connection-oriented)을 구현할 수 있다. TCP의 연결지향성은 전송 계층에서 제공하는 기능이다.

1. Connectionless Service

  • 각 패킷은 독립적으로 전송되며, 목적지 주소를 포함

  • 라우터는 각 패킷을 개별적으로 포워딩 테이블에 따라 전달

  • IP, UDP - 데이터그램 방식

2. Connection-Oriented Service

  • 송신자가 먼저 연결을 설정하고, 경로가 확립된 후 데이터 전송

  • 각 패킷은 Virtual Circuit ID를 통해 동일 경로로 전달됨

  • MPLS - 가상회선 방식

라우팅

패킷을 목적지까지 최적 경로로 전달하기 위한 경로 선택 기능

  • 최적 경로 선택

  • 빠른 수렴성과 안정성

  • 혼잡 회피를 위한 트래픽 분산

  • 장애 등의 네트워크 변화에 유연하게 대응

1. 비적응형(nonadaptive) 라우팅

  • 경로가 고정되어 있으며, 네트워크 상태에 따라 변경되지 않음

2. 적응형(adaptive) 라우팅

  • 네트워크 상태에 따라 경로를 동적으로 변경

  • 경로 계산을 위한 알고리즘 필요

The Optimality Principle

Sink Tree

  • 시작점에서 목적지까지의 최적 경로만 남겨둔 트리 구조

  • 시작점 또는 목적지가 변경된다면 트리에 변형이 생긴다.

  • 같은 네트워크로 이루어진 다른 Sink Tree더라도, 같은 구간을 갖는다면 같은 경로를 공유한다.

    • 이런 이유로 Path Convergence이 발생한다.

    • 트래픽 최적화를 위해 ECMP (Equal Cost Multi-Path) 같은 기술이 필요하다.

    • 이 수렴 경로를 이용하는 방법을 고려해볼 수 있다.

    • 리버스 그래프 분석

최단거리 알고리즘

  • Dijkstra 알고리즘 (링크 상태 기반)

  • Bellman-Ford 알고리즘 (거리 벡터 기반)

Flooding

  • 패킷을 모든 경로로 전송하는 방식

  • 브로드캐스트, 경로 발견 등에 사용

  • 순환 방지를 위해 hop limit, sequence number 필요

Distance Vector Routing

  • 각 라우터가 목적지별 거리 및 다음 홉 정보를 유지

  • 인접 라우터와 주기적으로 정보 교환(거리 정보를 교환하여 테이블 업데이트)

  • Bellman-Ford 기반

  • 경로가 끊겼을 때 잘못된 정보가 천천히 퍼짐

  • Count-to-Infinity Problem을 가지고 있음

  • 각 라우터가 인접 이웃과 링크 상태 정보를 수집하여 네트워크 전체에 flooding

  • 수집된 정보를 이용하여 전체 네트워크 토폴로지 후 다익스트라 알고리즘 실행

Hierarchical Routing

  • 대규모 네트워크에서 영역(Region) 단위로 분할

  • 상위 영역에는 요약 경로 정보만 유지하여 라우팅 테이블 크기 감소

Broadcast Routing

한 노드가 모든 노드에 패킷을 보냄

  • Flooding

  • Multidestination routing

  • Reverse path forwarding

Multicast Routing

브로드캐스트와는 다르게 특정 그룹의 노드에만 패킷을 전송

  • 과제

    • 수신자는 언제든지 그룹에 가입하거나 탈퇴할 수 있다.

    • 수신자들은 서로 다른 네트워크에 있을 수 있다.

    • 동일한 데이터를 중복없이 전송해야 한다.

  • Spanning Tree 기반 방법

    • 전체 네트워크를 포괄하는 스패닝 트리를 먼저 만든 후, 그 중에서 수신자만 포함된 가지(branch)로 멀티캐스트 트리 형성

  • Reverse Path Forwarding (RPF) 방법

    • 송신자 → 수신자 방향이 아니라 수신자 → 송신자 역방향 경로를 사용. 라우터는 패킷이 "최단 경로 상의 포워딩 인터페이스"에서 도착한 경우에만 포워딩함

  • Core-Based Tree (CBT)

    • 그룹별로 중앙 코어 라우터(core router)를 정함. 각 수신자는 코어를 통해 멀티캐스트 트리에 연결됨

Anycast Routing

가장 가까운 노드에 패킷을 전송하는 방식

Routing for Mobile Hosts

모바일 환경에서는 호스트가 계속 변경됨, 그러면서 IP 주소는 그대로 유지하고 싶어함

이를 위해서 Home Agent, Foreign Agent개념이 사용됨

  • Home Agent - 모바일 노드가 원래 속한 위치

  • Foreign Agent - 모바일 노드가 현재 속한 위치

1. 모바일이 네트워크 변경전 FA의 beacon 신호를 감지하여 새로운 네트워크 진입을 인식함.

2. 모바일 노드는 HA에 현재 어떤 FA에 있는지 등록 요청을 보냄

3. 외부에서는 모바일의 원래 IP(HA)로 패킷을 보냄

4. HA는 Care-of-Address로 터널링하여 포워딩함

5. FA는 이를 수신하여 모바일 노드에 패킷 전달

Routing in Ad Hoc Networks

인프라 없이 노드끼리 직접 연결하여 연결되는 네트워크

라우터와 토폴로지가 계속 변한다 -> 노드가 수시로 이동하므로 경로가 자주 끊김

응용 분야

  • 드론

  • 군사/재난 통신

  • 자동차 네트워크

  • IoT 네트워크

혼잡 제어 알고리즘

혼잡

  • 네트워크 내의 패킷 수가 과도하게 많아져서 지연, 손실, 처리 속도 저하가 발생하는 상태

  • 큐 오버플로우, 패킷 드롭, 재전송 등의 문제 유발

혼잡 회피 및 제어 방식

  • Network provisioning

    • 대역폭 / 라우터 증설

  • Traffic-aware routing

    • 링크의 혼잡 상태(지연, 큐 길이 등)에 따라 경로 가중치 동적 조정

    • 주기적으로 트래픽 측정 → 혼잡한 링크 회피

    • 트래픽이 특정 링크로 몰리며 경로 진동(Oscillation) 발생 가능 -> 완화된 업데이트, 멀티패스 라우팅으로 해결

  • Admission Control

    • 새로운 연결 요청 시 현재 네트워크 상태를 평가하여 허용 여부 결정

    • 실시간 서비스(QoS) 보장 등에 사용

    • 트래픽을 평균/버스트 특성 기반으로 모델링

      • 트래픽의 평균 속도뿐만 아니라 버스트 트래픽(짧은 시간에 몰리는 데이터)의 특성도 고려하여 네트워크에 과부하를 일으킬 가능성이 있는지를 평가함

  • Traffic Throttling (속도 조절)

    • 혼잡 직전일 때 다음 방식으로 송신 속도를 줄이도록 유도

      • 라우터가 감속 요청 패킷을 직접 송신자에게 보내거나 (예: ICMP Source Quench – 현재는 거의 사용 안 함)

      • ECN: IP 헤더의 비트를 설정하여 수신자가 혼잡 신호를 인지 → 수신자가 TCP ACK에 반영해 송신자에게 전달 → 송신자 속도 조절

      • 또는 upstream 라우터가 이전 링크에서 전송을 제한하도록 신호 전달 (빠른 국소 반응)

  • Load Shedding (패킷 버림)

    • 너무 늦었을 때 최후의 수단. 버퍼가 가득 차거나 시스템이 과부하된 경우, 일부 트래픽을 강제로 제거.

    • 단순 무작위 Drop이 아니라 중요도나 서비스 클래스별로 drop 우선순위를 다르게 적용함

Quality of Service (QoS)

단순 최적화가 아닌 어플리케이션에 맞는 성능 보장 방법을 적용

QoS의 문제 정의

  • 애플리케이션은 네트워크에서 무엇을 원하는가?

  • 네트워크에 들어오는 트래픽을 어떻게 제한할 것인가?

  • 성능을 보장하기 위해 라우터에서 어떻게 자원을 예약할 것인가?

  • 네트워크는 더 많은 트래픽을 수용할 수 있는가?

어플리케이션 요구 사항

  • 대역폭

  • 손실

  • 지연

  • 지터(지연 편차)

QoS

  • Traffic Shaping

    • 들어오는 트래픽의 속도와 폭 제어

  • Scheduling

    • 라우터의 출력 큐에서 패킷을 흐름별로 정해진 우선순위나 정책에 따라 스케줄링함

  • Admission Control

    • 새 연결 수락 여부 판단

    • 위에서 설명한 Admission Control은 QoS 보장 측면에서도 동일하게 사용됨

  • IntServ

    • RSVP 기반으로, 흐름별로 네트워크 자원을 명시적으로 예약함 → 확장성 낮음, 작은 규모 네트워크에 적합

  • Differentiated Services

    • IP 헤더의 DS 필드에 따라 트래픽을 class 단위로 구분 → 확장성 우수, 코어 라우터는 클래스만 식별하여 빠른 처리 가능

인터네트워킹

서로 다른 네트워크는 통신 방법이나 구조가 다르다. 네트워크 간 통신을 위해서는 이 차이들을 보완하기 위해서 네트워크 계층을 추상화하거나 변환해야한다.

이 역할을 하는 것이 인터넷계층(IP)이다. 인터넷 계층이 데이터그램 기반의 단일 모델을 제공한다.

네트워크간 차이

  • 주소 구조 - 계층형(IP) vs 평면형(MAC)

  • 연결 방식 - 연결(connection-oriented) vs 비연결(connectionless)

  • 패킷 크기 - 고정 vs 가변

  • QoS 지원 유무

  • 브로드캐스트 가능 여부

  • 라우팅 방식 - 거리벡터 vs 링크 상태

두 네트워크를 연결하는 방법

1. 변환기 이용 - 각 네트워크를 위한 포맷으로 상호 변환. 다양함에 복잡함과 어려움이 있음

2. 공통 계층 추가 - TCP/IP구조의 출발점. 이 방식이 현재의 인터넷을 형성함. 인터넷 프로토콜(IP)은 모든 네트워크를 통과할 수 있는 공통 포맷을 제 공

터널링

다른 네트워크를 통과하는 기법. VPN은 터널링의 확장. 실제 트래픽을 암호화한 후 IPSec헤더로 감싸 공개 인터넷으로 터널링

인터네트워크 라우팅

각 네트워크는 서로 다른 라우팅 알고리즘을 사용한다. 경로를 계산하는 비용이 다르고. ISP는 내부 구조를 공개하지도 않는다.

이 문제를 해결하기 위해서 각 네트워크 내부는 알아서 맡기고, 네트워크 간 라우팅 정책을 새롭게 정의하고 동작하도록 설계하게 된다.

이것을 담당하는 것이 Border Gateway Protocol이다.

패킷 단편화

네트워크마다 전송크기(Maximum Transmission Unit)가 다르기 때문에 단편화가 필요하다.

투명 단편화

중간 라우터에서 패킷을 쪼개고 도착하기 전 다시 패킷을 조립하는 방식. 라우터에 부하가 발생하고 라우터 경로가 변경되면 재조립 실패가 발생할 수 있어 실패 가능성이 있다.

비투명 단편화

출발지에서 패킷을 먼저 쪼개고, 목적지에서 재조립. 현재 IP에서 사용되는 방식

이때 단편화를 하지 않고 가장 작은 MTU를 찾아서 전송하면 되지 않나? 라는 질문이 따라오게 되는데, IPv6가 이 방식이고, 이 경로는 Path MTU Discovery를 이용해서 찾을 수 있다. 다만 ICMP 프로토콜에 의존하여 이 경로를 찾는데, 많은 기기가 ICMP를 지원하고 있지 않고 있어 IPv6 은 널리 이용되지 않고 있다.

네트워크 계층 종류

  • IPv4 - 소켓 프로그래밍에서 기본적으로 사용되는 네트워크 계층

  • IP - 내부망에 사용되고 있는 CIDR에 대한 이해가 필요

  • IPv6

  • Internet Control Message Protocol - ping

  • Address Resolution Protocol - MAC 주소 확인

  • Dynamic Host Configuration Protocol - 동적 주소 할당

  • Interior Gateway Protocol - 네트워크 내부에서 사용되는 라우팅 프로토콜

  • Exterior Gateway Protocol(Border Gateway Protocol) - 네트워크 간 사용되는 라우팅 프로토콜

  • Internet Multicasting