Scheduler di rete

Packets queuing in a FIFO data structure.

Uno scheduler di rete (in inglese network scheduler o packet scheduler), è un programma che gestisce la sequenza di pacchetti di rete in una coda di trasmissione/ricezione di una scheda di rete. Esistono più scheduler disponibili per differenti kernel e che implementano differenti algoritmi di scheduling.

Funzionamento

Algoritmi di scheduling

Col passare del tempo, sono stati ideati e sviluppati diversi algoritmi di scheduling di rete. Molti di questi sono stati implementati come Loadable Kernel Module[1] e sono disponibili gratuitamente:

  • AVQ (Adaptive Virtual Queue)[2]
  • CBQ (Class-based queueing)
  • CHOKe (CHOose and Keep for responsive flows, CHOose and Kill for unresponsive flows) variante dell'algoritmo RED (vedi sotto)
  • CoDel (Controlled Delay) e Fair Queue CoDel
  • Credit-based fair queueing
  • DRR (Deficit round robin) e DWRR, scritto da Patrick McHardy per il kernel Linux[3] e rilasciato sotto GNU General Public License
  • HFSC (Hierarchical Fair Service Curve)
  • NETEM Network emulator[4]
  • HTB (Hierarchy Token Bucket)[5]
  • QFQ (Quick Fair Queueing)[6]
  • FQ (Fair queueing) and WFQ (Weighted fair queueing)
  • pkt_sched: fq: Fair Queue packet scheduler[7]
  • RED (Random early detection) e le varianti ARED, GRED, RRED (Robust random early detection) WRED (Weighted random early detection)
  • SFB (Stochastic Fair Blue) e la variante Resilient SFB
  • SFQ (Stochastic Fairness Queueing)[8]
  • TBF (Token Bucket Filter)[9]
  • TEQL (Trivial Link Equalizer)
  • RR (Round-robin) e WRR (Weighted round robin)
  • PIE (Proportional integral controller enhanced)[10]
  • HFF (Heavy-hitter filter)[11]

Note

  1. ↑ The Linux kernel network scheduler, su git.kernel.org, kernel.org, 26 dicembre 2012. URL consultato il 7 settembre 2013.
  2. ↑ citeseerx.ist.psu.edu, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.108.4477&rep=rep1&type=pdf.
  3. ↑ DRR Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  4. ↑ Network emulator Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  5. ↑ HTB Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  6. ↑ QFQ Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  7. ↑ Fair Queue packet scheduler committed to Linux kernel 3.12, su git.kernel.org.
  8. ↑ SFQ Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  9. ↑ TBF Linux kernel network scheduler module, su git.kernel.org, kernel.org. URL consultato il 7 settembre 2013.
  10. ↑ Proportional Integral controller Enhanced (PIE), su git.kernel.org, kernel.org.
  11. ↑ Heavy-Hitter Filter qdisc, su git.kernel.org, kernel.org.

Bibliografia

  • James F. Kurose, Keith W. Ross, Internet e reti di calcolatori, 2ª ed., Milano, McGraw-Hill, 2003, pp. 545-552, ISBN 88-386-6109-X.

Voci correlate

Collegamenti esterni