Hálózati ütemező - Network scheduler
A hálózati ütemező , más néven ütemező , sorkezelõ ( qdisc ) vagy sorban algoritmus , egy döntőbíró egy csomópont a csomagkapcsolt kommunikációs hálózat. Ez kezeli a hálózati csomagok sorrendjét a protokoll verem és a hálózati interfész vezérlő adási és fogadási soraiban . A különböző operációs rendszerekhez számos hálózati ütemező áll rendelkezésre , amelyek a meglévő hálózati ütemezési algoritmusok nagy részét megvalósítják .
A hálózati ütemező logika határozza meg, hogy melyik hálózati csomagot továbbítja tovább. A hálózati ütemező sorban állási rendszerhez van társítva, és ideiglenesen tárolja a hálózati csomagokat, amíg azok el nem kerülnek. A rendszereknek egyetlen vagy több sora lehet, ebben az esetben mindegyik egy folyamat , osztályozás vagy prioritás csomagjait tartalmazhatja .
Bizonyos esetekben előfordulhat, hogy nem lehet ütemezni az összes átvitelt a rendszer korlátain belül. Ezekben az esetekben a hálózati ütemező felelős annak eldöntéséért, hogy melyik forgalmat továbbítja, és mi kerül le .
Terminológia és felelősség
A hálózati ütemező felelősséggel tartozhat bizonyos hálózati forgalomirányítási kezdeményezések végrehajtásáért. A hálózati forgalomirányítás egy átfogó kifejezés minden olyan intézkedésre, amely a torlódások, a késleltetés és a csomagvesztés csökkentését célozza. Pontosabban, az aktív sorkezelés (AQM) a sorban álló hálózati csomagok szelektív eldobása a nagyobb cél elérése érdekében, a túlzott hálózati torlódások megelőzése érdekében. Az ütemezőnek ki kell választania, hogy mely csomagokat kell leadni. A forgalom alakítása simítja a forgalom sávszélesség -igényét azáltal, hogy késlelteti az átviteli csomagokat, amikor azok sorban állnak. Az ütemező határozza meg az átvitt csomagok időzítését. A szolgáltatás minősége (QoS) a forgalom prioritása a szolgáltatásosztály ( differenciált szolgáltatások ) vagy a fenntartott kapcsolat ( integrált szolgáltatások ) alapján.
Algoritmusok
Idővel számos hálózati sorozási tudományág alakult ki. Ezek mindegyike a hálózati csomagok specifikus átrendezését vagy eldobását biztosítja a különböző küldési vagy fogadási pufferekben . A sorba állítási módokat általában különféle hálózati feltételek kompenzálására használják, például a hálózati csomagok bizonyos osztályainak késleltetésének csökkentésére , és általában a QoS intézkedések részeként használják.
Példák a hálózati forgalom kezelésére alkalmas algoritmusokra:
- AVQ ( adaptív virtuális sor )
- CBQ ( osztályalapú sorban állás ) fegyelem
- A CHOKe (CHOose and Keep a reagáló áramlásokhoz, a CHOose and Kill a nem reagáló folyamatokhoz) a RED egyik változata
- CoDel (szabályozott késleltetés) és fair/flow queue CoDel
- CAKE (Common Applications Kept Enhanced), Linux rendszermagban megvalósítva
- Hitel alapú tisztességes sorban állás
- DRR ( deficit round robin ) és DWRR, implementáció pl. Patrick McHardy írta a Linux kernelhez, és közzétette a GNU General Public License alatt .
- GYIK (FavourQueue)
- FQ-PIE (továbbfejlesztett áramlási soros arányos integrált vezérlő)
- GCRA ( általános sejtsebesség -algoritmus )
- HFF ( nagy ütésű szűrő )
- HFSC ( hierarchikus fair-service görbe )
- HTB ( hierarchikus token vödör )
- QFQ ( gyors tisztességes sorban állás )
- FQ ( fair queuing ) és WFQ ( súlyozott fair queuing )
- FIFO ( első be, első ki )
- pkt_sched: fq: fair queue csomag ütemező
- NETEM hálózati emulátor
- PIE ( arányos integrált vezérlő továbbfejlesztve )
- PIROS ( véletlenszerű korai felismerés )
- RR ( körmérkőzés ) és WRR ( súlyozott körmérés )
- SFB ( sztochasztikus világoskék ) és RSFB (rugalmas SFB)
- SFQ (sztochasztikus méltányossági sorban állás)
- TBF ( token bucket filter )
- TEQL ( trivial link equalizer )
A fentiek közül több Linux kernel modulként lett megvalósítva, és szabadon hozzáférhetők .
Bufferbloat
A Bufferbloat olyan jelenség a csomagkapcsolt hálózatokban, amelyben a csomagok túlzott pufferelése nagy késleltetést és csomagkésleltetés-ingadozást okoz . A Bufferbloat -ot egy hálózati ütemező kezelheti, amely stratégiailag elveti a csomagokat, hogy elkerülje a szükségtelenül magas pufferelési lemaradást. Ilyen például a CoDel és a véletlenszerű korai felismerés .
Megvalósítások
Linux kernel
A Linux kernel ütemező szerves része a Linux kernel hálózati verem és kezeli az adási és vételi gyűrű pufferek összes NIC által dolgozik a 2 réteg a OSI modell és kezelési Ethernet keretek , például.
A csomagütemező beállítása az úgynevezett segédprogrammal történik tc
(rövidítve: "forgalomirányítás"). A csomagütemező alapértelmezett sorozási fegyelemként a pfifo_fast nevű FIFO implementációt használja , bár a systemd 217 -es verziója óta az alapértelmezett sorba állítási módot fq_codel -re változtatja .
Az ifconfig
és a ip
segédprogramok lehetővé teszik a rendszergazdák számára, hogy a pufferméreteket txqueuelen
és rxqueuelen
az egyes eszközökre vonatkozóan külön -külön állítsák be az Ethernet -keretek számát, méretüktől függetlenül. A Linux kernel hálózati vereme számos más puffert is tartalmaz, amelyeket a hálózati ütemező nem kezel.
A Berkeley csomagszűrő -szűrők csatlakoztathatók a csomagütemező osztályozójához. A 2015 -ös Linux -kernel 4.1 -es verziója által bevezetett eBPF funkció kiterjeszti a klasszikus BPF programozható osztályozókat az eBPF -re. Ezeket az LLVM eBPF háttérrendszerével lehet lefordítani, és a tc
segédprogram segítségével betölteni egy futó kernelbe .
BSD és OpenBSD
Az ALTQ a hálózati ütemező megvalósítása a BSD -k számára . Az OpenBSD 5.5 verziójától kezdve az ALTQ -t a HFSC ütemező váltotta fel.
Lásd még
- Hálózati torlódás
- Sor (absztrakt adattípus)
- Sorbanállás elmélet
- Statisztikai időosztásos multiplexelés
- Forgalomalakítás
- Forgalmi besorolás
- Szolgáltatás típusa