Computer NetWork-04.Network Layer: Data Plane(Router, Queueing)

CHO WanGi·2023년 12월 7일
0

Network

목록 보기
4/11

Overview

  1. data Plane vs Control Plane
  2. inside a router : 입력 포트, 스위칭, 출력 포트, 버퍼관리, 스케쥴링
  3. IP : Internet Protocol : 데이터그램 형식, addressing, 네트워크 주소 번역 과정, IPv6
  4. 일반화된 Forwarding, SDN : Match+action in action
  5. middleboxes

Network layer outline

네트워크 계층은 세그먼트를 송신 호스트에서 수신호스트로 전달하는 역할을 담당.

  • Sender: 세그먼트를 데이터그램으로 캡슐화하여 링크 계층으로 전달
  • Receiver : 세그먼트를 트랜스포트 계층으로 전달

네트워크 레이어 프로토콜(호스트, 라우터)은 모든 인터넷 장치에 존재,
특히 라우터는 IP datagram의 모든 헤더필드를 확인 후 적절한 곳으로 전달.

네트워크 계층의 두가지 핵심기능

  1. Forwarding : 패킷을 라우터의 입력 링크에서 올바른 출력링크로 보내는 것
  2. Routing : 출발지로 부터 도착지까지 패킷이 갈 경로를 결정하는 것
    (Routing은 부산에서 서울까지 가는 경로고, Forwarding은 외대(buffer) 정문에서 후문까지 가는 것이라고 이해하면 쉬울 듯 하다)

Data Plane vs Control Plane

  • Data Plane
    라우터 단위의 동작(local),데이터 그램이 라우터의 입력포트로 도착하면, 그 패킷이 어디로 나갈지를 결정하는 것

  • Control Plane
    네트워크 단위 동작(network-wide), 데이터그램의 전체 경로를 결정
    SDN : Software defined Networking -> 중앙의 리모트 컨트롤러가 경로를 계산하여 라우터의 CA(Control Agent)로 내려주고, 라우터는 내려받은 내용을 포워딩 테이블에 기록

=> 전통적인 라우터는 Data, Control Plane 모두 다 갖고 있으나,
새로운 라우터는 Data Plane만 가질 수 있음(Control은 원격지의 컴퓨터가 담당)

Network service model

  1. best-effort : 도착 성공, 도착 순서, 대역폭 보장 불가
  2. Intserv Guarantedd : 대역폭, 도착 성공, 도착 순서 보장
  3. Diffserv : 트래픽별 차별화 된 서비스

Router

크게 입력포트 - fabric(데이터 날아다니는 라우터 내부공간) - 출력포트 와 라우팅 프로세서로 구분가능

input Port

  • line termination (Physical layer): 들어온 아날로그 신호를 디지털화
  • link layer : 보통 이더넷
  • buffer
    • Queueing : 스위칭 속도보다 들어오는 속도가 빠르면 버퍼링해서 좀 늦게 받음
    • decentralized Forwarding
      • destiantion-based Forwarding : IP주소만 보고 출력 포트를 결정
      • generalized forwarding : 헤더 필드값 다 까보고 출력 포트 결정

Switching Fabrics

입력 포트로 들어온 패킷을 실제로 출력 포트로 보내는 동작을 수행

  • Switching Rate : 성능 지표, (Input/Output 포트 라인 개수) * (fabric 으로 들어오는 속도)
    • ex> 인풋포트 N, 아웃풋포트 N, 패브릭으로 들어오는 속도 R bps => 이상적이라면 ER

Fabrics 종류

  1. memory: 그냥 전통적 컴퓨터 기능, 입력 포트로 들어온 패킷 내용을 메모리에 복사, 내보낼때는 메모리에 안에 있는 내용 빼서 출력 포트로 보냄
  2. bus : 입/출력 포트가 하나의 버스를 공유, 자연스럽게 버스의 대역폭만큼 스위칭 속도가 제한
  3. interconnection Network : 이게 제일 기깔난다.
  • multiple Switch : 입력포트에서 분할해서 출력포트서 재조립

Queuing

Input Port Queuing

패브릭 처리 속도 << 입력포트 속도 면 발생

  • HOL Blocking(Head-Of-Line) : Queue의 맨 앞 데이터 그램이 뒤에 오는 데이터그램의 처리 지연시키는 것

Output Port Queuing

패브릭 처리 속도 >>> 출력포트가 내보내는 속도 면 발생
어떤 패킷을 먼저 보낼 것인가 결정하는 것은 망 중립성과 관련됨

  • 버퍼 크기 결정
    버퍼크기를 겁나게 키워놓으면, 너무 많은 버퍼링 발생 -> 지연증가
    • 크기 결정 방식
    • RFC 3439 방식 : 전형적 RTT(=250msec) * link Capacity
    • 최근에는 RTTCN\frac {RTT*C} {\sqrt N} 방식을 사용( C: link Capacity, N: number of flows)
  • 버퍼 관리
  1. drop : 버퍼가 꽉 찼음에도 페킷이 더해질 경우, 어떤 패킷을 버릴지 결정
  • tail drop : 마지막에 온거 버림
  • priority : 우선순위에 따라 버림
  1. marking: 혼잡 신호(ECN,RED) 주기 위해 특정 패킷에 마킹

Packet Scheduling

FCFS : first come first serve(선착순)

Priority

high pq, low pq 두개의 큐를 만들어서 높은 우선순위는 high로, 낮은 우선순위는 Low로 보냄
그 각각의 큐 안에선 또 FCFS 처럼 별도의 스케쥴링 가능

RR(Round Robin)

패킷의 종류를 나누어 종류만큼 큐를 만듬, 종류별로 맞는 큐로 집어넣고, 각 큐별로 돌아가면서 골고루 보냄

WFQ(Weighted fair Queueing)

큐를 여러개 만들되, 각각 가중치를 부여, 가중치에 따라서 보낼 양을 결정

profile
제 Velog에 오신 모든 분들이 작더라도 인사이트를 얻어가셨으면 좋겠습니다 :)

0개의 댓글