라우터 내부에 무엇이 있을까?

Dmori_2562·2022년 12월 6일
0

라우터의 구조

  • 입력 포트

  • Switch fabric

  • 출력 포트



입력 포트의 기능

1. line termination

  • 물리적 계층(Physical layer)에 해당

  • 비트 레벨 수신

  • 데이터 링크 계층(Data link layer)에 해당

  • ex) Ethernet

3. Decentralized Switching

  1. Lookup: Datagram의 목적지 주소로 입력포트 메모리에 있는 Forwarding table을 이용하여 출력 포트를 검색한다.

목적: '라인 속도'로 입력 포트 processing 완료

Longest prefix matching

지정된 destination 주소에 대한 forwarding table 항목을 찾을 때, destination 주소와 일치하는 가장 긴 address prefix 사용

  1. Forwarding

  • destination-based forwarding: 목적지의 IP 주소만을 활용하여 forward
  • generalized forwarding: 헤더 필드 값을 통해서 forward
  1. Queuing: datagram이 forwarding 속도보다 빠를경우 진행


Switch fabric의 기능

라우터의 핵심이라고 볼 수 있다.

패킷이 실제로 이 fabric을 통해 입력 포트에서 출력 포트로 전환된다.

Switching의 종류

대기열 지연(queueing delay)과 손실(loss) -> 입력 버퍼의 overflow로 발생!

Head-of-the-Line (HOL) blocking

대기열 앞에 대기 중인 데이터그램은 대기열에 있는 다른 사람들이 앞으로 이동하지 못하게 한다.



출력 포트의 기능

  • Buffering: datagram이 전송 속도(transmission rate)보다 빠르게 도착할 때 필요!

Datagram (packets)은 혼잡과 버퍼 용량 부족으로 인해 손실될 수 있다.


스케쥴링 규칙

스케쥴링: 링크로 보낼 다음 패킷을 선택한다.

1. FIFO(First In First Out)

  • 큐에 도착한 순서대로 전송

  • FCFS(First Come First Served)라고도 불린다.

2. Priority

  • 다른 우선순위를 가진 여러 개의 클래스(대기열)

  • 클래스는 marking 또는 기타 헤더 정보(예: source/destination의 IP, 포트 번호 등)에 따라 달라진다.

  • 우선순위가 가장 높은 대기열 패킷을 전송

3. Round Robin(RR)

  • 여러 개의 대기열

  • 주기적으로 클래스 대기열 검색, 각 클래스에서 하나의 전체 패킷 전송(사용 가능한 경우)

    너 한번, 나 한번!

4. Weighted Fair Queuing(WFQ)

  • Round Robin의 일반화 버전

  • 각 클래스는 각 사이클에서 가중된 서비스 양을 얻는다.

profile
어제보다 더 나은 오늘의 나를 위해 달려나가는 중입니다!

0개의 댓글