Мрежен распоредувач

Мрежен распоредувач, исто така наречен пакетен распоредувач, дисциплина на редови, алгоритам на редење или qdisc, е арбитер на јазол во комуникациска мрежа за префрлање на пакети. Тој управува со низата мрежни пакети во преносот и прима редици на контролорот на мрежниот интерфејс. Постојат неколку мрежни распоредувачи на располагање за различни оперативни системи, кои спроведуваат многу од постојните алгоритми за мрежно закажување .
Логиката на мрежниот распоредувач одлучува кој мрежен пакет да го проследува следниот. Мрежниот распоред е поврзан со системот на чекање, привремено чувајќи ги мрежните пакети додека не се пренесат. Системите можат да имаат единечни или повеќе редици во кои случаи секој може да ги држи пакетите на еден проток, класификација или приоритет.
Во некои случаи, можеби не е можно да се закажат сите преноси во рамките на ограничувањата на системот. Во овие случаи, мрежниот распоред е одговорен да одлучи кој сообраќај да се препрати и што се намалува .
1 Терминологија и одговорности
Мрежа распоредувач може да има одговорност за спроведување на специфични иницијативи за мрежна контрола на сообраќајот . Контрола на мрежниот сообраќај е термин за чадор за сите мерки насочени кон намалување на загубата на застој, латентност и пакет. Поточно, активното управување со редици (AQM) е селективно спуштање на мрежните пакети со редици за да се постигне поголема цел за спречување на прекумерно мрежно метеж. Распоредот мора да избере кои пакети да се спуштат. Формирањето сообраќај ги измазнува барањата за ширина на опсегот на сообраќајот со одложување на преносни пакувања кога ќе се редат во рафали. Распоредот го одредува времето за пренесените пакети. Квалитет на услугата (QoS) е приоретизација на сообраќајот заснован на услугата класа (диференцирани услуги) или резервирана врска (Интегрирани услуги).
2 Алгоритми
Со текот на времето, развиени се многу дисциплини на мрежни задачи. Секое од овие обезбедува специфично преуредување или вадење на мрежни пакети во разни преносни или приемни амортизери. Дисциплините на редици обично се користат како обиди за компензација на различни услови за мрежно поврзување, како што се намалување на латентноста за одредени класи мрежни пакети, и обично се користат како дел од мерките за QoS.
Примери на алгоритми погодни за управување со мрежниот сообраќај вклучуваат:
* AVQ (adaptive virtual queue)* CBQ (class-based queueing) discipline
* CHOKe (CHOose and Keep for responsive flows, CHOose and Kill for unresponsive flows) е варијанта на RED
* CoDel (controlled delay) и fair/flow queue CoDel
* CAKE (Common Applications Kept Enhanced), имплементирано во Linux kernel* Credit-based fair queuing
* DRR (deficit round robin) и DWRR, имплементациски пример напишан од Патрик Мекхарди за Linux kernel и издадено под GNU General Public License.
* FaQ (FavourQueue)* GCRA (generic cell rate algorithm)
* HFF (heavy-hitter filter)* HFSC (hierarchical fair-service curve)
* HTB (Hierarchical token bucket)* QFQ (quick fair queueing)* FQ (fair queuing) и WFQ (weighted fair queuing)
* FIFO
* pkt_sched: fq: fair queue packet scheduler * NETEM network emulator* PIE (proportional integral controller enhanced)* RED (random early detection)
** ARED (random early detection#ARED|advanced random early detection)
** GRED (generalized random early detection)
** RRED (robust random early detection)
** WRED (weighted random early detection)
* RR (Round-robin scheduling) и WRR (weighted round robin)
* SFB (stochastic fair blue) како и RSFB (resilient SFB)
* (stochastic fairness queuing)* TBF (token bucket filter)* TEQL (trivial link equalizer)
Неколку од горенаведените се имплементирани како модули за јадрото на Линукс и се слободно достапни .
3 Непотребна амортизација на мрежата
Непотребна амортизација на мрежата (Bufferbloat) е феномен во пакетно-прекинувачките мрежи во која вишокот на визуелниот на пакети предизвикува висока латентност и пакет одложување варијација . На Bufferbloat-от може да му се обрати мрежен распоредник, кој стратешки ги отфрла пакетите за да избегне непотребно висока заостаната во тампон. Примерите вклучуваат CoDel и Случајно рано откривање.
4 Имплементација
4.1 Кернелот на Linux
Распоредот на пакетите Linux кернелот е составен дел од мрежниот магацин на Linux кернелот и управува со преносот и примањето на прстенестите тампони на сите NIC, работејќи на слојот 2 на моделот OSI и ракувајќи со рамки на Етернет, на пример.
Распоредот на пакетите е конфигуриран со помош на алатката наречена <code>tc</code> (краток за "контрола на сообраќајот"). Како стандардна дисциплина на редици, распоредувачот на пакети користи FIFO имплементација наречена ''pfifo_fast'', иако е систематизиран од својата верзија 217 ја менува стандардната дисциплина на редици на задачи во fq_codel.
Комуналните услуги <code>ifconfig</code> и <code>ip</code> им овозможуваат на администраторите на системот да ги конфигурираат <code>txqueuelen</code> и <code>rxqueuelen</code> за секој уред одделно во однос на бројот на рамки на Етернет, без оглед на нивната големина. Мрежата со јадрото на Linux Linux содржи неколку други амортизери, кои не управуваат со мрежниот распоред.
Филтрите на Berkeley Packet Filter можат да бидат прикачени на класификаторите на распоредот на пакетите. Функционалноста eBPF, донесена со верзијата 4.1 од кернелот Linux во 2015 година, ги проширува класичните класификатори за програмирање на програмата BPF до eBPF. Овие може да се соберат со помош на заднинскиот дел на LLVM eBPF и да се вчитаат во јадрото што работи со помош на <code>tc</code> алатката.
4.2 BSD и OpenBSD
ALTQ е имплементација на мрежен распоред за BSDs . Од верзијата 5.5 на OpenBSD, ALTQ беше заменет со распоредувачот HFSC.
5 Поврзано
* Метеж на мрежата