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:33] – [Links] baumkplinux_router:tc [2024-06-23 Sun wk25 08:14] (current) – [TC - Traffic Control] baumkp
Line 3: Line 3:
 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. 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/|]]+    *[[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]]
-  *[[https://wiki.archlinux.org/index.php/Advanced_traffic_control|Advanced 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 ->