dh_0e

[Network Layer] Delivery and Forwarding of IP Packets 본문

Network Programming/Network Layer

[Network Layer] Delivery and Forwarding of IP Packets

dh_0e 2025. 4. 22. 01:42

Delivery

  • Network Layer의 주기능
  • 하나의 subnet안에서 일어나는 direct delivery와 indirect delivery가 있음

Direct Delivery

  • 직접 전달 (Direct Delivery)은 패킷이 같은 물리적 네트워크 상에 있는 목적지 호스트로 전송되는 경우.
  • 두 가지 경우가 해당됨:
    1. 송신자와 수신자가 같은 네트워크 상에 있을 때
    2. 마지막 라우터 → 최종 호스트로 전달하는 상황

예시

  • A라는 호스트에서 B라는 호스트로 보낼 때, 둘 다 동일한 LAN 상에 있음 → 직접 전달
  • 라우터에서 나가서 마지막 수신 호스트까지 가는 것도 직접 전달에 포함

Indirect Delivery

  • 간접 전달 (Indirect Delivery)는 목적지까지 도달하기 위해 여러 라우터를 경유해야 하는 경우
  • 보낸 쪽은 목적지 IP 주소를 사용하여 라우팅 테이블에서 다음 라우터(next hop)의 주소를 결정

예시

  • Host A → Router 1 → Router 2 → Host B
    • → Host A는 직접 Host B에 보낼 수 없음 → Router 2가 Host B와 같은 네트워크에 있으므로 최종 전달 담당
    • Host A → router1은 indirect, router2 → B는direct인 이유: "Direct Delivery"라는 말은 "최종 목적지"가 같은 네트워크에 있을 때만 씀

Forwarding Based on Destination Address

  • Forwarding은 패킷을 목적지로 향하게 하기 위해 다음 홉으로 넘기는 행위
  • 라우터 혹은 호스트가 라우팅 테이블을 사용해 수행
  • ➤ 목적지로 가는 경로 중 하나일 수 있음 (끝일 수도, 중간일 수도 있음)
  • 인터넷 네트워크에서는 라우팅 테이블에 필요한 항목의 수가 많아져 테이블 조회가 비효율적임

 

Next-Hop Method

  • 경로 전체가 아닌 다음 라우터의 주소만 저장
  • 라우팅 테이블이 간결해지고 속도 향상

Network-Specific Method

  • 호스트가 아닌 네트워크 단위로 경로 설정
  • 모든 호스트를 나열하는 대신 → 네트워크 하나당 한 줄

장점

  • 라우팅 테이블 크기 감소
  • 탐색 속도 향상

Host-Specific Method

  • 특정 호스트에 대한 개별 경로 지정
  • 효율은 떨어지지만 세밀한 제어 가능

Host-specific, Network-specific routing table for host S

 

 

Default Method

  • 라우팅 테이블에 기본(default) 경로 한 줄만 적어도 됨
  • 모든 미지정 목적지는 이 경로로 전달됨

Address Aggregation (Forwarding Based on Destinaition Address)

문제점

  • CIDR 사용 시 → 라우팅 테이블 항목 폭발적으로 증가

해결책: 주소 집계(Aggregation)

  • 여러 조직의 주소 → 하나로 묶어 관리
  • R1이 관리하는 주소들
    • 140.24.7.0/26
    • 140.24.7.64/26
    • 140.24.7.128/26
    • 140.24.7.192/26
  • 합치면 전체 범위: 140.24.7.0 ~ 140.24.7.255 → 즉, 140.24.7.0/24

Address Aggregation

주소 집계 조건 정리

  1. 주소들이 연속적이어야 함
    예: 140.24.7.0, 140.24.7.64처럼 64단위로 끊기는 건 OK
  2. 서브넷 마스크가 같아야 함
    예: 모두 /26
  3. 정렬된 상태여야 함
    → 라우터가 블록을 순차적으로 묶을 수 있어야 함

Longest Mask Matching (Forwarding Based on Destinaition Address)

  • 가장 긴 마스크부터 검사 → 더 정확한 경로 선택

핵심 개념

목적지 주소와 가장 많이 일치하는 라우팅 테이블 항목을 선택하는 방식

  • CIDR에서는 주소가 /24, /26, /27 등 길이 다른 마스크 존재
  • 이때 가장 정확한 경로를 찾으려면, 가장 긴 prefix(마스크)를 우선적으로 검사해야 함

예시

  • 목적지: 140.24.7.200
  • 마스크: /27 → 140.24.7.192
  • /24 먼저 검사하면 잘못된 경로로 전달됨

Hierarchical Routing (Forwarding Based on Destinaition Address)

  • 라우팅 테이블이 너무 커지는 문제를 해결하려면?
    계층적(hierarchical) 구조를 만들면 됨
  • 예를 들어, 지역 ISP(local ISP)는 하나의 큰 주소 블록을 할당받을 수 있음
  • 그 블록은 특정 prefix 길이(/n)를 가짐

망 사업자(KT)를 예시로 각 local 지점과 계층적 구조를 띄고있음

Geographical Routing  (Forwarding Based on Destinaition Address)

  • 계층적 라우팅을 더 확장해서 → 지리적 위치 기반 라우팅 도입
  • 전 세계를 지역 단위로 나눠 블록 부여 (예: 아시아, 유렵 등 대륙별로 주소 블록)
  • 연구 단위, 특수한 상황에서만 제안되며 현재 거의 사라짐
  • 유럽 외 지역의 라우터들
    → 유럽 목적지에 대해 단 하나의 항목만 유지
  • 미국 외 지역의 라우터들도 마찬가지로
    → 미국 목적지에 대한 한 항목만 유지

✅ 이렇게 하면 라우팅 테이블이 더 작아짐
✅ 글로벌 라우팅의 효율성 향상


Structure of Router (Forwarding Based on Label)

  • 기존에는 IP 패킷의 목적지 주소를 기반으로 라우팅 테이블을 검색해서 경로를 결정했음
  • 라우팅이 아니라 스위칭(Switching)으로 동작 가능
  • 단순히 인덱스(번호)로 테이블을 접근해서 전달

 

Components (라우터의 구성 요소)

Four components

  1. Input ports
  2. Output ports
  3. Routing processor
  4. Switching fabric

Input ports

  • 입력 포트는 라우터의 1~2계층 역할을 담당함
    즉, 물리 계층 + 데이터 링크 계층
  1. 신호(전기적/광학적)로부터 비트 데이터를 조립
  2. 수신된 프레임에서 IP 패킷을 추출(디캡슐레이션)
  3. 프레임 수준에서 발생할 수 있는 오류 검출 및 수정
  4. 스위칭 패브릭으로 넘기기 전
    → 포트에는 버퍼/큐가 있어 패킷들을 잠시 보관함

Output Ports

  • 입력 포트에서 했던 작업을 역순으로 수행
  • 즉, IP 패킷을 프레임으로 캡슐화, 비트를 전송 신호로 변환
  • 최종 목적지 또는 다음 라우터로 전송

Routing Processor

  • 네트워크 계층의 핵심 기능인 라우팅 결정을 담당
  • 목적지 IP 주소를 사용해서
    • 다음 홉(next hop)의 주소 찾고
    • 어느 출력 포트로 보낼지 결정
  • "테이블 룩업"이라고 불림
    → routing table에서 다음 주소를 찾기 때문

Switching Fabrics

  • 예전 라우터는 일반 컴퓨터였음
  • 버스(bus) 또는 메모리(memory)를 통해 입력 → 출력 전송
  • Circuit switching(옛날 거) 통신에만 사용
  • 요즘 라우터는 전용 스위치 구조를 사용

ex) Crossbar Switch

 

  • 입력 포트와 출력 포트를 격자 형태(grid)로 연결
  • 각 교차점(crosspoint)전자 스위치가 있어서 선택적으로 연결 가능