4.2 What’s inside a router

no-glass-otacku·2025년 4월 4일
0

Computer Network

목록 보기
3/4

4.2 What’s inside a router


Router architecture overview

라우터의 전체 구조를 한눈에 보여주는 도입 슬라이드.
앞서 나온 data/control plane 개념이 하드웨어 구조에 어떻게 대응되는지 설명하기 위해 등장.

  • Data plane은 나노초 단위로 작동하는 하드웨어 기반 포워딩 처리
  • Control plane은 밀리초 단위의 소프트웨어 기반 라우팅 처리
  • 구성 요소: 입력 포트, 출력 포트, switching fabric, routing processor

🐣 택배 분류 공장으로 치면,
포장 상자를 자동 분류기에 태우는 작업이 data plane,
배송 경로를 컴퓨터로 계산하는 관리자가 control plane이야


Input port functions

라우터의 입력 포트에서 어떤 일이 벌어지는지 설명.
Decentralized switching 개념이 핵심.

  • header 값을 보고 forwarding table에서 출력 포트를 lookup
  • 이 작업은 input port에서 직접 수행함 (“match plus action”)
  • 목표는 line speed로 처리 완료
  • 처리 속도보다 패킷 유입 속도가 빠르면 queuing 발생

여기서 두 가지 forwarding 방식이 구분되어 소개됨:

  • Destination-based forwarding
    → 전통적 방식, 목적지 IP 주소만을 기반으로 출력 포트 결정

  • Generalized forwarding
    → 다양한 헤더 필드 조합(IP, 포트 등)을 기반으로 출력 포트 결정
    → SDN 등에서 활용됨

🐣 주소지만 보고 택배를 보내는 게 destination-based라면,
택배 종류, 무게, 시간대 등을 다 고려해서 보내는 게 generalized forwarding이야


Destination-based forwarding

Decentralized switching 방식의 구체 예시.
IP 주소 범위에 따라 출력 포트를 정하는 방식이다.

  • 특정 IP 주소 범위에 따라 포트가 할당되어 있음
  • 주소가 잘 나뉘지 않는 경우를 처리하기 위해 다음 슬라이드에서 prefix matching 사용

Longest prefix matching

전통적인 destination-based forwarding 방식의 문제를 해결하기 위해 사용.
주소가 여러 범위와 매치될 수 있을 때, 가장 긴 prefix로 매칭한다.

  • 이 방식은 정확도를 높이기 위해 필요
  • 주로 TCAM (Ternary Content Addressable Memory) 사용해 구현
    → 매우 빠르게 동작 (1 클럭 사이클)

🐣 “서울시 마포구 상암동”과 “서울시 마포구”가 동시에 후보일 때,
더 구체적인 상암동 주소를 선택하는 것처럼 작동해


Switching fabrics

입력 포트에서 출력 포트로 패킷을 실제로 이동시키는 하드웨어 구성
스위칭 속도에 따라 전체 성능이 좌우됨

  • N개의 입력이 있으면 N배 속도 desirable
  • 세 가지 주요 방식 소개됨:
    • memory
    • bus
    • crossbar

Switching via memory

가장 오래된 방식.
CPU가 직접 메모리에 패킷을 복사하여 처리하는 구조.

  • 병목: 메모리 대역폭
  • 일반 PC와 같은 구조
  • 느리지만 간단함

Switching via a bus

공유 버스를 통해 포트 간 이동
하나의 버스를 공유하므로 병목 발생 가능

  • 버스 속도가 성능 한계
  • Cisco 5600 예시: 32Gbps

Switching via interconnection network

crossbar, banyan network 등 고속 연결 네트워크 사용
버스 대역폭 한계를 해결하려는 고급 설계

  • 패킷을 작은 셀로 나눠서 처리 가능 (e.g. Cisco 12000: 60Gbps)

🐣 백화점 물류창고에서 컨베이어 벨트를 여러 줄로 나눠 더 많은 상자를 동시에 처리하는 구조와 비슷해


Input port queuing

스위칭 패브릭이 입력 속도를 따라가지 못할 경우 큐잉 발생
여기서 중요한 문제: Head-of-Line (HOL) blocking

  • 맨 앞 패킷이 막히면 뒤에 있는 것도 전달 불가
  • 큐가 가득 차면 패킷 손실 가능

🐣 출입문에서 앞사람이 멈춰서 있으면 뒷사람도 못 나가는 상황과 같아


Output ports

출력 포트도 버퍼링이 필요함.
스위칭 패브릭에서 나오는 속도가 링크 송신 속도보다 빠를 경우 큐잉 발생

  • 버퍼 오버플로우 시 패킷 손실
  • 어떤 패킷을 먼저 보낼지 정하는 스케줄링 메커니즘 중요

Output port queuing

실제 큐 동작 예시를 보여주는 슬라이드.
입력 → 출력으로 넘어가면서 발생하는 큐잉과 패킷 손실을 시각적으로 설명


How much buffering?

버퍼는 얼마나 필요할까에 대한 기준 제시

  • RFC 3439: 평균 RTT × 링크 용량
  • 예: 10Gbps 링크 → 2.5Gbit 버퍼 필요
  • 최신 연구에선 N개의 flow가 있다면 RTT×C / sqrt(N) 사용 제안

Scheduling mechanisms

출력 포트에서 어떤 패킷을 먼저 보낼지 결정하는 정책들 소개

  • FIFO: 순서대로
  • Tail drop: 큐가 차면 마지막 패킷 버림
  • Priority, Random drop 등도 존재

Scheduling policies: priority

우선순위를 기반으로 한 스케줄링

  • 여러 클래스가 있고 각 클래스에 우선순위 부여
  • IP 헤더 정보로 구분 가능

🐣 응급환자가 병원 대기열에서 먼저 진료 받는 것과 비슷해


Scheduling policies: still more

여러 스케줄링 방식의 추가 설명

  • Round Robin (RR): 클래스별로 하나씩 번갈아 처리
  • Weighted Fair Queuing (WFQ): 클래스별로 가중치 부여하여 공정성 유지
profile
Move forward

0개의 댓글