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

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
반응형

'전공 > 네트워크' 카테고리의 다른 글

[네트워크] #18 라우팅 프로토콜, Link status algorithm vs. Distance vector algorithm  (0) 2023.12.06
[네트워크] #17 IP (개념, Datagram 형식, IPv4, IPv6, 주소 접근, NAT)  (2) 2023.12.05
[네트워크] #15 네트워크 계층 (Data plane, Control plane)  (1) 2023.12.05
[네트워크] #14 혼잡 제어 공식, TCP 혼잡 제어  (2) 2023.10.23
[네트워크] #13 TCP (개념, 기술 전략)  (1) 2023.10.20
'전공/네트워크' 카테고리의 다른 글
  • [네트워크] #18 라우팅 프로토콜, Link status algorithm vs. Distance vector algorithm
  • [네트워크] #17 IP (개념, Datagram 형식, IPv4, IPv6, 주소 접근, NAT)
  • [네트워크] #15 네트워크 계층 (Data plane, Control plane)
  • [네트워크] #14 혼잡 제어 공식, TCP 혼잡 제어
dev_ares
dev_ares
대학에서 컴퓨터공학을 전공하고 있는 학생입니다.
    반응형
    250x250
  • dev_ares
    노트
    dev_ares
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • IT 트랜드 (2)
      • 백엔드 (18)
        • Java + Spring (8)
        • Kotlin + Spring (5)
        • 백엔드 (5)
      • 프론트엔드 (1)
        • React (1)
      • 대외활동 (17)
        • 42서울 (17)
      • 백준 (6)
        • Java (2)
        • C++ (3)
      • 전공 (121)
        • 객체지향프로그래밍 (17)
        • 자료구조 (23)
        • 리눅스시스템관리 (16)
        • 컴퓨터구조 (25)
        • 네트워크 (25)
        • 데이터베이스 (15)
        • 기타 전공 (0)
      • 프로그래밍 언어 (18)
        • Java (5)
        • Swift (4)
        • C++ (1)
        • Kotlin (8)
      • 기타 (4)
      • 공군 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    컴퓨터 구조 및 설계
    백준
    티스토리챌린지
    42서울
    자료구조
    자바
    추가 문제
    명령어
    리눅스
    상속
    단일 사이클
    컴공 포트폴리오
    반복자
    사설 문제
    컴퓨터구조
    C++
    코틀린
    데이터패스
    오블완
    메모리 계층 구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
dev_ares
[네트워크] #16 라우터 (구조, 기능, 포워딩, 스케줄링 정책)
상단으로

티스토리툴바