적자 라운드 로빈

Deficit round robin

적자 라운드 로빈(DRR), 또한 적자 가중 라운드 로빈(DWRR)은 네트워크 스케줄러를 위한 스케줄링 알고리즘이다.DRR은 가중 공정 대기열(WFQ)과 마찬가지로 이상적인 GPS(Generalized Processor Sharing) 정책의 패킷 기반 구현이다.그것은 M에 의해 제안되었다.Shreedhar와 G. Varghese는 효율적인 (O(1) 복잡성)과 공정한 알고리즘으로 1995년에 만들어졌다.[1]

세부 사항

DRR에서 N 흐름을[a] 처리하는 스케줄러는 각 흐름에 대해 하나의 퀀텀 로 구성된다.이러한 세계적인 아이디어는 각 라운드에서 i 이(가) 최대 바이트까지 전송할 수 있으며, 나머지는 있는 경우 다음 라운드에 보고된다는 것이다.이런 식으로 숫자 i의 흐름은 + 2+.. + ) 의 최소 장기 데이터 속도를 달성하게 된다. 서 R (는) 링크 속도입니다.

알고리즘.

DRR은 비어 있지 않은 모든 대기열을 순서대로 스캔한다.비어 있지 않은 대기열 (를) 선택하면 적자 카운터가 양자 값으로 증가된다.그러면 적자 카운터의 값은 이 턴에 보낼 수 있는 최대 바이트량이다: 적자 카운터가 큐의 머리(HoQ)에서 패킷의 크기보다 크면 이 패킷을 보낼 수 있고, 패킷 크기에 의해 카운터의 값이 감소한다.그 다음, 다음 패킷의 크기를 카운터 값 등과 비교한다.일단 대기열이 비어 있거나 카운터 값이 부족하면 스케줄러는 다음 대기열로 건너뛰게 된다.대기열이 비어 있으면 적자 카운터의 값이 0으로 재설정된다.

변수와 상수는 큐의 정수 N // Nb를 정수 Q[1..N] // 큐당 양자 정수 DC[1..N] // 대기열당 적자 카운터 대기열[1..N] // 대기열
1의 i에 대해 True인 동안 반복 스케줄링N은 대기열[i.empty()이 아닌 경우 DC[i]:= DC[i] + Q[i], DC[i] 대기열[i]이 아닌 경우 대기열[i]을 사용한다.head(.size() )는 DC[i] := DC[i] - 대기열[i]을 한다.head[.size] send[i].headsweet ) 줄서다[i].dequeue()는 대기열[i.vm)일 경우 종료되고 DC[i] := 0은 종료되는 동안 종료되면 종료됨

성능: 공정성, 복잡성 및 대기 시간

다른 GPS와 같은 스케줄링 알고리즘과 마찬가지로 가중치 선택은 네트워크 관리자에게 맡겨진다.

WFQ와 마찬가지로 DRR은 패킷의 크기가 무엇이든 각 흐름에 대해 최소 속도를 제공한다.가중 라운드 로빈 스케줄링에서 사용되는 대역폭의 비율은 패킷의 크기에 따라 달라진다.

O(log(n)복잡성(n은 활성 흐름/대기열의 수)이 있는 WFQ 스케줄러와 비교했을 때, 양자 {\ 이 흐름의 최대 패킷 크기보다 클 경우 DRR의 복잡성은 O(1)이다.그럼에도 불구하고, 이 효율성은 비용이 든다: 대기 시간, 즉 이상적인 GPS와의 거리는 WFQ보다 DRR에서 더 크다.최악의 경우 지연에 [2]대한 자세한 내용은 여기에서 확인할 수 있다.[3]

구현

적자 라운드 로빈 알고리즘의 구현은 패트릭 맥하디가 리눅스 커널[4] 위해 작성한 것이며 GNU 일반 공중 라이선스 하에 출판되었다.

Cisco와 Juniper 라우터에서는 DRR의 수정 버전이 구현된다. 일부 트래픽 클래스의 경우 DRR의 지연 시간이 더 클 수 있기 때문에, 이러한 수정된 버전은 일부 대기열에 더 높은 우선 순위를 부여하고, 다른 것들은 표준 DRR 알고리즘과 함께 제공된다.[5][6]

참고 항목

메모들

  1. ^ 흐름은 대기열, 클래스 또는 세션이라고도 함

참조

  1. ^ Shreedhar, M.; Varghese,G. (October 1995). "Efficient fair queueing using deficit round robin". ACM SIGCOMM Computer Communication Review. 25 (4): 231. doi:10.1145/217391.217453. ISSN 0146-4833.
  2. ^ Lenzini, L.; Mingozzi, E.; Stea, G. (2002). "Aliquem: A novel DRR implementation to achieve better latency and fairness at O(1) complexity". IEEE 2002 Tenth IEEE International Workshop on Quality of Service (Cat. No.02EX564). p. 77. doi:10.1109/IWQoS.2002.1006576. ISBN 978-0-7803-7426-3. S2CID 62158653.
  3. ^ Tabatabaee, Seyed Mohammadhossein; Le Boudec, Jean-Yves (May 2021). "Deficit Round-Robin: A Second Network Calculus Analysis". 2021 IEEE 27th Real-Time and Embedded Technology and Applications Symposium (RTAS). Nashville, TN, USA: IEEE: 171–183. doi:10.1109/RTAS52030.2021.00022. ISBN 978-1-6654-0386-3.
  4. ^ "DRR Linux kernel network scheduler module". kernel.org. Retrieved 2013-09-07.
  5. ^ Lenzini, Luciano; Mingozzi, Enzo; Stea, Giovanni (2007). "Performance Analysis of Modified Deficit Round Robin Schedulers". IOS Journal of High Speed Networks.
  6. ^ Lenzini, Luciano; Mingozzi, Enzo; Stea, Giovanni (2006). Performance Analysis of Modified Deficit Round Robin Schedulers (Technical report). Dipartimento di Ingegneria della Informazione, University of Pisa.

외부 링크