Hálózati ütemező - Network scheduler

Csomagok sorba állítása egy FIFO (első be, első ki) adatstruktúrában.

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

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 csomagütemezője a hálózati verem része, a netfilter , az nftables és a Berkeley Packet Filter mellett .

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 ipsegédprogramok lehetővé teszik a rendszergazdák számára, hogy a pufferméreteket txqueuelenés rxqueuelenaz 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 tcsegé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

Megjegyzések

Hivatkozások