12. Scheduling and Traffic Shaping

나는컴공생·2024년 6월 13일

Computer Network

목록 보기
4/4

Scheduling

: 라우터의 packet의 처리 순서 정하기

FIFO queue

  • basic
  • (src->des)flow가 구별되지 않는다.
  • congestion control 없다.
  • queue가 다 차면, last packet이 drop된다(tail drop)
  • 지연시간에 대해서는 fair하다
  • bandwidth가 고려되지 않는다.
    [문제]
  • 어떤 flow가 많이 보내면, 독식한다.
  • Qos의 다양한 타입들을 packet이 필요할 수 있는데, FIFO 큐에선 못함
    ex) 우선, 긴급 traffic 먼저 못보냄

Priority queue

  • 우선순위에 의해 패킷 processing

    [문제] 우선순위가 낮은 패킷들은 무한정 지연될 수 있다.(starvation)

Round Robin

  • flow별로 queue에 삽입(src, des 확인 후, new flow구나!)
  • 각 queue마다(flow마다) 하나의 packet을 처리한다.
  • 패킷을 더 많이 보낸다고, service를 더 많이 갖지 않는다.(FIFO 큐와 반대)
  • 그러나, 큰 패킷을 보내는 flow는 더 많은 service를 갖는다.

Fair Queuing

  • packet size에 따라 service 다르게 하여 fair service!
  • 각 flow마다 각 큐
  • Si = flow i가 보낸 데이터의 양
  • 가장 작은 Si 가진 flow가 보낼 패킷이 있다면, 처리한다.
  • Si = Si + p(packet length)
    [문제] S가 작은게, 우선순위에서 뒤로 밀려서 그런게 아니라, 원래부터 해당 flow가 긴시간동안 보내지 않아서, 그동안 다른 flow가 많이 보내서 Si가 컸다면,,,
    갑자기 점수가 매우 작았던 flow만 한동안 service 받을 수 있다.
    [해결] "use it or lose it"
  • 일정 시간 지나면, 다른 큐들중 가장 막내 점수(최소점수)를 부여한다.
  • 너는 밀린게 아니라, 너가 안보낸거니까

Weighted Fair Queing

  • flow(큐) 별로 점수 weight 가중치가 있다!
  • Si = Si + P/wi
  • weight가 높을 수록 Si가 낮아져서 우선순위가 높아진다!
  • 장점:
    • avoid starvation( weight가 낮아도 언젠가는 기회가 온다)
    • flow 우선순위에 따른 fair scheduling
      ex)

Traffic Shaping


: 라우터로 들어오는 data pattern이 bursty할 때 일정하게 바꿔주기
(왜냐하면, bursty 한 경우에 받는 쪽에서 buffer overflow 발생 가능)

Token bucket filter

  • sender)traffic 보낼때마다 token을 쓴다.
  • 남은 토큰이 없으면 보낼 수 없다. 찰 때까지 기다린다.
  • bucket이 다차면, token은 더이상 쌓일 수 없다.
  • bucket은 일정한 속도로 찬다.
  • bucket size는 정해져 있음
  • Token rate : r(bps) 토큰이 차는 속도, 1초에 r token씩 찬다.
  • Bucket depth : B(bit) 버캣의 크기, token의 개수는 최대 B
  • 1 토큰은 1byte 보내는데 필요
  • 초기 bucket: token이 다 찬 상태

예제: minimum bucket size 구하기 SH

예제: delay가 생기지 않는 min bucket size 구하기

1. input traffic 같은 구간별로 계산
2. (쓰는 token속도 - 차는 token 속도) * 걸리는시간 구하기
3. 시간순서대로 더하는데, 항상 양수값 유지! 음수가 되더라도 0이라 생각하고 계산
4. 더하는 과정 속 maximum data가 곧, min bucket의 size

0개의 댓글