{{tag>linux router TC Traffic Control}} ======TC - Traffic Control====== The Linux kernel's network stack has network traffic control and shaping features. The iproute2 package installs the tc command to control these via the command line.\\ Queuing controls how data is sent; receiving data is much more reactive with fewer network-oriented controls. However, since TCP/IP packets are sent using a slow start the system starts sending the packets slow and keeps sending them faster and faster until packets start getting rejected - it is therefore possible to control how much traffic is received on a LAN by dropping packets that arrive at a router before they get forwarded. There are more relevant details, but they do not touch directly on queuing logic. *''sudo sysctl -a | grep qdisc'' shows current default settings *''sudo sysctl -a | grep net.'' shows all the net. parameters, additional deeper filters net.core, net.ipv4, net.ipv6, net.mptcp, and net.netfilter. There are a few additionals not shown in deeper filters! *''sudo tc qdisc show dev eno1'' shows current setting of interface ''dev eno1'' it would seem that Linux has default settings for network interfaces, e.g.: qdisc mq 0: root qdisc fq_codel 0: parent :4 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 0: parent :3 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 0: parent :2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 qdisc fq_codel 0: parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 ====Links==== *tc-fq_codel *[[https://www.man7.org/linux/man-pages/man8/tc-fq_codel.8.html|tc-fq_codel(8) — Linux manual page]] *[[https://www.linux.org/docs/man8/tc-fq_codel.html|linux.org - FQ_CoDel(8)]] *[[https://datatracker.ietf.org/doc/html/rfc8290|rfc8290]] *[[https://wiki.nftables.org/wiki-nftables/index.php/Classification_to_tc_structure_example|nftables - Classification to tc structure example]] *[[https://www.b1c1l1.com/blog/2020/03/26/linux-home-router-traffic-shaping-with-fq_codel/|Linux Home Router Traffic Shaping With FQ_CoDel]] *[[https://www.b1c1l1.com/blog/2020/04/19/linux-home-router-download-bufferbloat-analysis/|Linux Home Router Download Bufferbloat Analysis|]] *[[https://www.bufferbloat.net/projects/codel/wiki/Best_practices_for_benchmarking_Codel_and_FQ_Codel/#tuning-these-algorithms|Best Practices for Benchmarking CoDel and FQ CoDel]] *[[https://en.wikipedia.org/wiki/Tc_(Linux)|wikipedia TC]] A bit dated, but base references.... *[[https://tldp.org/HOWTO/Traffic-Control-HOWTO/index.html|Traffic Control HOWTO]] *[[https://lartc.org/|Linux Advanced Routing & Traffic Control]] *[[https://lartc.org/manpages/|Man Pages]] *[[https://lartc.org/howto/|HOWTO]] *[[https://netbeez.net/blog/how-to-use-the-linux-traffic-control/|How to Use the Linux Traffic Control]] *Archwiki [[https://wiki.archlinux.org/index.php/Advanced_traffic_control|Advanced traffic control]] *Funtoo [[https://www.funtoo.org/Traffic_Control|Traffic Control]], good basic description. *[[https://www.man7.org/linux/man-pages/man8/tc.8.html|man7.org - tc(8) — Linux manual page]] *[[https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/linux-traffic-control_configuring-and-managing-networking#linux-traffic-control_configuring-and-managing-networking|Red Hat Documentation - Chapter 31. Linux traffic control]] ---- <- linux_router:dns_dhcp|Prev page ^ linux_router:start|Start page ^ linux_router:misc|Next page ->