Network layer Data Plane part1

랄라콥스·2024년 12월 7일

comnet

목록 보기
2/5

Network-layer services and protocols

네트워크 레이어가 하는 일

  • 세그먼트를 sending host로 부터 receiving host로 보내줌
    - sender: encapsulate segement into datagram, link layer로 보냄
    - receiver: transport layer로 segment 넘겨줌

라우터가 하는 일

  • IP datagram의 header field 확인해서 넘겨주기 (어디로~가야하나~)
  • input port에서 output port로 datagram 옮겨줌

Two key network-layer functions

network-layer functions:

  1. forwarding
    input link에서 적절한 output link로 packet 이동해주기

  2. routing
    source에서 destination으로 갈 때의 경로 설정해주기
    * routing 알고리즘 사용

Network layer: data plane, control plane

Data plane - forwarding

  • local, per-router function
  • 어디 output port로 보낼지 결정

Control plane - routing

  • router끼리의 협력
  • 어디 라우터로 보내야 할까나...
  • 두가지 방법
    - traditional routing algorithms: router에서 구현
    • software-defined networking(SDN): server에서 구현

Per-router control plane

routing algorithm을 토대로 control plane에서 각 라우터끼리 data 넘김 -> forwarding table 토대로 data plane에서 output 결정 내림

SDN control plane

server에서 control plane 담당 => 서버의 지시를 따라 router에서 경로 설정됨
CA를 통해 서버의 지시를 받음
모든 router는 data plane의 역할을 하게 됨


Router

  1. routing, management control plane(software)
  • routing processor
  1. forwarding data plane(hardware)
  • router input ports
  • router ouput ports
  • high-speed swtiching fabric

Input port functions

구성

  • physical layer
  • link layer
  • decentralized switching(분산 스위칭)
    - header filed 이용
    • input port memeory에 있는 forwarding table 참고해서 어디 output port로 보내줘야할지 검색
    • input port processing 수행
      => 만약 datagram이 forwarding보다 빠르게 오게 되면 delay 발생 가능: queue로 이뤄짐

forwarding 방법

  • destination-based forwarding(traditional): IP주소만
  • generalized forwarding: SDN(오버헤드가 큰 라우팅 따로 분리해서 원격서버에서 관리하기)

근데 만약 forwarding table에 IP주소가 잘 나눠있지 않다면?
: 가장 길게 매칭되는 범위의 link interface를 따라간다 = longest prefix matching

Switching fabrics

입력 포트에서 출력 포트로 보내주는 과정

주요 타입
1. memory
2. bus
3. interconnection network

1. memory

전통적 방식
시스템 메모리에 packet 복사 후 전송됨
속도가 메모리 대역폭의 영향을 받음

2. bus

직접적으로 output port로 연결되어있음 => 버스를 공유함
shared bus라는 하나의 공유된 통로 => 이거의 폭의 영향을 받음

3. interconnection network

nxn 스위치를 연결해 앞선 방식에 비해 매우 빠름!
입력시 datagram을 조각내기 -> 출력시 합치기

input port queuing

switch fabric에서의 속도가 너무 느리면 -> queuing delay & loss 발생 => switch fabric 내에서
HOL(head of the line) blocking: 앞에서 막고 있어서 뒤에 있는 애가 못나감 => input port에서

output port queuing

switching 속도 보다 output line speed가 더 느리면 -> buffering 발생 -> datagream loss 발생
=> 어떤 것을 먼저 보낼지 결정해야함 -> 우선순위를 고려해야함

Buffer management

  1. drop: buffer가 꽉 찼을 때 어떤 packet을 추가할지 버릴지 결정함
    • tail drop: 지금 오는 애 drop
    • priority: 우선순위 보고 잘라
  2. marking: signal congestion(ECN)을 표시하는 packet

Packet Scheduling

  1. FCFS
    First Come, First Served
    가장 먼저 온거 먼저 처리해주기
    printer, cpu
    FIFO랑 비슷

  2. Priority
    헤더 필드보고 분류
    가장 높은 우선순위의 패킷을 보냄(온 것들 중에서)

  3. Round Robin scheduling
    분류 후 각각 하나 씩 보내기

  4. WFQ
    Weighted Fair Queuing
    RR처럼 분류 -> 각 클래스 별로 가중치가 있음

  • 사이즈가 큰 packet은 높은 가중치를 받기 어려움
profile
일단 책을 피자

0개의 댓글