전공/네트워크

[네트워크] #16 라우터 (구조, 기능, 포워딩, 스케줄링 정책)

Campus Coder 2023. 12. 5. 14:13
728x90
반응형

목차

  1. 라우터 구조
    1. Input port
    2. Switch fabric
    3. Output port
  2. 스케줄링 메커니즘
    1. First-in-First-out (FIFO)
    2. Priority
    3. Round Robin (RR)
    4. Weighted Fair Queueing

1. 라우터 구조

Routing control plane - Routing processor

라우팅 알고리즘이 돌아가 포워딩 테이블을 생성

-> 소프트웨어 구현

 

Forwarding data plane - input port, switch fabric, output port

-> 하드웨어 구현

 

Switch fabric

input 포트와 outport의 연결이 얽힌 구조


1-1. Input port

input port는 크게 3가지로 이루어져 있음

  • line termination
  • link layer protocol(receive)
  • lookup, forwarding / queueing

 

아날로그 신호가 오면 line termination에서 디지털 신호로 바뀜

link layer에서 디지털 신호를 해석함

이후 데이터는 lookup, forwarding, queueing 상황에 놓임

 

decentralized switching

  • lookup: 헤더 필드 값, 입력 포트 메모리의 전달 테이블(”match plus action”)을 사용하여 출력 포트 조회
  • queueing: 데이터그램이 포워딩 후 switch fabric으로 나가는 속도보다 들어오는 속도가 빠름
  • forwarding:
    • destination-based forwarding: 목적지 IP 주소만을 기반으로 포워딩
    • generalized forwarding: 헤더 필드 값의 임의의 집합에 기반하여 포워딩

 

Destination-based forwarding

목적지 IP 주소를 기반으로 어떤 포트로 데이터를 보낼 것인지를 결정하는 포워딩 알고리즘

IP 주소를 확인하여 포워딩 테이블에 정의된 IP 주소 범위에 대응하는 링크 인터페이스로 데이터를 보냄

 

Longest prefix matching

지정된 대상 주소에 대한 전달 테이블 항목을 찾을 때 대상 주소와 일치하는 가장 긴 주소 접두사를 사용

포워딩 테이블에서 범위가 11000 ~ 11011이라면 110**으로 처리

 

Input port queueing

입력 포트 결합보다 느린 switch fabric → 입력 큐에서 대기열이 발생 가능

→ 입력 버퍼 오버플로우로 인한 대기열 지연 및 손실

HOL(Head-of-the-Line) 차단: 대기열 맨 앞에 대기열에 있는 데이터그램으로 인해 대기열에 있는 다른 데이터그램이 앞으로 나아갈 수 없음


1-2. Switch fabric

패킷이 실제로 이 구조를 통해 입력 포트에서 출력 포트로 전환되기 때문에 스위칭 구조는 라우터의 가장 핵심

스위칭은 여러가지 방법으로 이루어짐

memory - input을 메모리에 저장했다가 output 포트로 보냄

bus - 패킷의 헤더에 경로를 달아 output 포트로 보냄, 한번에 하나씩 이동

crossbar - 경로를 지정해 패킷을 보냄, 동시에 여러 개 이동 가능, 요즘 사용하는 방식


1-3. Output port

데이터그램이 패브릭에서 전송 속도보다 빠르게 도착할 때 필요한 버퍼링

  • 데이터그램(패킷)이 정체, 버퍼 부족 등으로 인해 손실될 수 있음

 

전송을 위해 대기열에 있는 데이터그램 중에서 선택하는 스케줄

  • 우선순위 스케줄링 - 최고의 성능과 네트워크 중립성을 제공

 


2. 스케줄링 매커니즘

스케줄링: 링크에서 보낼 다음 패킷 선택


2-1. First-in-First-out (FIFO)

대기열에 도착한 순서대로 전송


2-2. Priority

서로 다른 우선순위를 가진 여러 클래스에 큐를 쌓아 우선순위가 높은 클래스의 데이터 먼저 처리

우선순위가 높은 데이터가 계속 도착한다면 우선순위가 낮은 데이터가 무한으로 대기하는 문제 발생 가능


2-3. Round Robin (RR)

여러 클래스들 존재

클래스 대기열을 주기적으로 검색하여 각 클래스에서 번갈아 데이터를 보냄


2-4. Weight Fair Queueing

일반화된 Round Robin

각 클래스에서 일정 비율로 데이터를 보냄

728x90
반응형