Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Network scheduler

From Wikipedia, the free encyclopedia
Arbiter on a node in a packet switching communication network
This article is about scheduling in networking. For scheduling in computing generally, seeScheduling (computing).
Packets queuing in aFIFO (first in, first out) data structure.

Anetwork scheduler, also calledpacket scheduler,queueing discipline (qdisc) orqueueing algorithm, is anarbiter on anode in apacket switching communication network. It manages the sequence ofnetwork packets in the transmit and receivequeues of theprotocol stack andnetwork interface controller. There are several network schedulers available for the differentoperating systems, that implement many of the existing networkscheduling algorithms.

The network scheduler logic decides which network packet to forward next. The network scheduler is associated with a queuing system, storing the network packets temporarily until they are transmitted. Systems may have a single or multiple queues in which case each may hold the packets of oneflow,classification, or priority.

In some cases, it may not be possible to schedule all transmissions within the constraints of the system. In these cases, the network scheduler is responsible for deciding which traffic to forward and what getsdropped.

Terminology and responsibilities

[edit]

A network scheduler may have responsibility in implementation of specificnetwork traffic control initiatives. Network traffic control is an umbrella term for all measures aimed at reducingnetwork congestion, latency and packet loss. Specifically,active queue management (AQM) is the selective dropping of queued network packets to achieve the larger goal of preventing excessive network congestion. The scheduler must choose which packets to drop.Traffic shaping smooths the bandwidth requirements of traffic flows by delaying transmission packets when they are queued in bursts. The scheduler decides the timing for the transmitted packets.Quality of service (QoS) is the prioritization of traffic based on service class (Differentiated services) or reserved connection (Integrated services).

Algorithms

[edit]

In the course of time, many network queueing disciplines have been developed. Each of these provides specific reordering or dropping of network packets inside various transmit or receivebuffers.[1]Queuing disciplines are commonly used as attempts to compensate for various networking conditions, like reducing thelatency for certain classes of network packets, and are generally used as part of QoS measures.[2][3][4]

Classful queueing disciplines allow the creation of classes, which work like branches on a tree. Rules can then be set to filter packets into each class. Each class can itself have assigned other classful orclassless queueing discipline. Classless queueing disciplines do not allow adding more queueing disciplines to it.[5]

Examples of algorithms suitable for managing network traffic include:

Queueing algorithms
AlgorithmAcronymTypeHW Support
Generic cell rate algorithmGCRA
CHOose and Kill for unresponsive flowsCHOKeClassless
Controlled delayCoDelClassless
Common Applications Kept Enhanced[6]CAKE
Earliest TxTime FirstETFClasslessYes
First in, first outFIFOClassless
Fair queuingFQClassless
Fair Queuing Controlled DelayFQ-CoDelClassless
Flow Queuing with Proportional Integral controller EnhancedFQ-PIEClassless
Generalized Random Early DetectionGREDClassless
Heavy-Hitter Filter[7]HHFClassless
Multiqueue PriorityMQ-PRIOClasslessYes
MultiqueueMULTIQClasslessYes
Network Emulator[8]NETEMClassless
Proportional Integral controller-Enhanced[9]PIEClassless
Random early detectionREDClassless
Stochastic fair BlueSFBClassless
Stochastic Fairness QueueingSFQClassless
Token Bucket FilterTBFClassless
Class-based queueingCBQClassful
Credit-Based ShaperCBSClassfulYes
Deficit round robin[10]DRRClassful
Enhanced Transmission SelectionETSClassful
Hierarchical fair-service curveHFSCClassful
Hierarchical Token Bucket[11]HTBClassful
PriorityPRIOClassful
Quick Fair Queueing[12]QFQClassful
Time Aware Priority ShaperTAPRIOClassfulYes

Several of the above have been implemented asLinux kernel modules[13][14] and arefreely available.

Bufferbloat

[edit]

Bufferbloat is a phenomenon in packet-switched networks in which excessbuffering of packets causes highlatency andpacket delay variation. Bufferbloat can be addressed by a network scheduler that strategically discards packets to avoid an unnecessarily high buffering backlog. Examples includeCoDel,FQ-CoDel andrandom early detection.

Implementations

[edit]
[icon]
This sectionneeds expansion. You can help byadding missing information.(October 2018)

Linux kernel

[edit]
The Linux kernel's packet scheduler is part of the network stack, together withnetfilter,nftables, andBerkeley Packet Filter.

The Linux kernel packet scheduler is an integral part of theLinux kernel's network stack and manages the transmit and receivering buffers of all NICs.

The packet scheduler is configured using the utility calledtc (short fortraffic control). As the default queuing discipline, the packet scheduler uses a FIFO implementation calledpfifo_fast,[15] althoughsystemd since its version 217 changes the default queuing discipline tofq_codel.[16]

Theifconfig andip utilities enable system administrators to configure the buffer sizestxqueuelen andrxqueuelen for each device separately in terms of number of Ethernet frames regardless of their size. The Linux kernel's network stack contains several other buffers, which are not managed by the network scheduler.[a]

Berkeley Packet Filter filters can be attached to the packet scheduler's classifiers. TheeBPF functionality brought by version 4.1 of the Linux kernel in 2015 extends the classic BPF programmable classifiers to eBPF.[17] These can be compiled using theLLVM eBPF backend and loaded into a running kernel using thetc utility.[18]

BSD and OpenBSD

[edit]

ALTQ is the implementation of a network scheduler forBSDs. As of OpenBSD version 5.5 ALTQ was replaced by the HFSC scheduler.

Cell-Free Network Scheduling

[edit]

Schedulers in communication networks manage resource allocation, including packet prioritization, timing, and resource distribution. Advanced implementations increasingly leverage artificial intelligence to address the complexities of modern network configurations. For instance, a supervised neural network (NN)-based scheduler has been introduced in cell-free networks to efficiently handle interactions between multiple radio units (RUs) and user equipment (UEs). This approach reduces computational complexity while optimizing latency, throughput, and resource allocation, making it a promising solution for beyond-5G networks.[19]

See also

[edit]

Notes

[edit]
  1. ^The overall size of all buffers has been the point of critique by theBufferbloat project, which provided a partial solution with CoDel that has been primarily tested inOpenWrt.

References

[edit]
  1. ^"Traffic Control HOWTO: Classless Queuing Disciplines (qdiscs)".tldp.org.Archived from the original on February 22, 2014. RetrievedNovember 24, 2013.
  2. ^"Traffic Control HOWTO: Components of Linux Traffic Control".tldp.org.Archived from the original on February 18, 2014. RetrievedNovember 24, 2013.
  3. ^"Traffic Control HOWTO: Traditional Elements of Traffic Control".tldp.org.Archived from the original on May 27, 2013. RetrievedNovember 24, 2013.
  4. ^"Queuing Disciplines: Order of Packet Transmission and Dropping"(PDF).tau.ac.il. October 25, 2006.Archived(PDF) from the original on March 4, 2016. RetrievedMarch 18, 2014.
  5. ^"Advanced traffic control - ArchWiki".wiki.archlinux.org.Archived from the original on 2023-09-22. Retrieved2023-09-11.
  6. ^"Let them run CAKE".LWN.net.Archived from the original on 2024-11-12. Retrieved2019-09-03.
  7. ^"Heavy-Hitter Filter qdisc".kernel.org.Archived from the original on 2017-02-22. Retrieved2016-07-25.
  8. ^"Network emulator Linux kernel network scheduler module".kernel.org.Archived from the original on 2017-02-22. Retrieved2013-09-07.
  9. ^"Proportional Integral controller Enhanced (PIE)".kernel.org.Archived from the original on 2017-02-22. Retrieved2016-07-25.
  10. ^"DRR Linux kernel network scheduler module".kernel.org.Archived from the original on 2017-02-23. Retrieved2013-09-07.
  11. ^"HTB Linux kernel network scheduler module".kernel.org. Retrieved2013-09-07.
  12. ^"QFQ Linux kernel network scheduler module".kernel.org.Archived from the original on 2017-02-23. Retrieved2013-09-07.
  13. ^"The Linux kernel network scheduler".kernel.org. 2012-12-26. Retrieved2013-09-07.
  14. ^"tc(8) - Linux manual page".man7.org.Archived from the original on 2023-09-07. Retrieved2023-09-11.
  15. ^"Linux Advanced Routing and Traffic Control HOWTO, Section 9.2.1. pfifo_fast".lartc.org. 2012-05-19.Archived from the original on 2014-09-21. Retrieved2014-09-19.
  16. ^"systemd System and Service Manager: NEWS file".freedesktop.org. 2015-05-22.Archived from the original on 2014-12-22. Retrieved2015-06-09.
  17. ^"Linux kernel 4.1, Section 11. Networking".kernelnewbies.org. 2015-06-21.Archived from the original on 2015-10-16. Retrieved2016-04-19.
  18. ^"BPF and XDP Reference Guide".Cilium documentation web site.Archived from the original on 2018-04-24. Retrieved2018-08-21.
  19. ^Huleihel, Yara; Maman, Gil; Hadad, Zion; Shasha, Eli; Permuter, Haim H. (2025). "Data-driven cell-free scheduler".Ad Hoc Networks.169 103738. Elsevier.doi:10.1016/j.adhoc.2025.103738.
Note: This template roughly follows the 2012ACM Computing Classification System.
Hardware
Computer systems organization
Networks
Software organization
Software notations andtools
Software development
Theory of computation
Algorithms
Mathematics ofcomputing
Information systems
Security
Human-centered computing
Concurrency
Artificial intelligence
Machine learning
Graphics
Applied computing
Specialized PlatformDevelopment
Retrieved from "https://en.wikipedia.org/w/index.php?title=Network_scheduler&oldid=1338447977"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp