Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
linux_router:tc [2020-11-28 Sat wk48 12:17] – [TC - Traffic Control] baumkplinux_router:tc [2024-06-23 Sun wk25 08:14] (current) – [TC - Traffic Control] baumkp
Line 1: Line 1:
 {{tag>linux router TC Traffic Control}} {{tag>linux router TC Traffic Control}}
 ======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. +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.:
 +<code>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 </code>
  
 ====Links==== ====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://tldp.org/HOWTO/Traffic-Control-HOWTO/index.html|Traffic Control HOWTO]]
   *[[https://lartc.org/|Linux Advanced Routing & Traffic Control]]   *[[https://lartc.org/|Linux Advanced Routing & Traffic Control]]
     *[[https://lartc.org/manpages/|Man Pages]]     *[[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]]   *[[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 -> <-  linux_router:dns_dhcp|Prev page ^ linux_router:start|Start page ^ linux_router:misc|Next page ->