{"id":395,"date":"2010-02-27T14:11:08","date_gmt":"2010-02-27T13:11:08","guid":{"rendered":"http:\/\/ccievoice.ksiazek.be\/?p=395"},"modified":"2025-01-11T18:28:05","modified_gmt":"2025-01-11T17:28:05","slug":"weighted-fair-queuing-wfq","status":"publish","type":"post","link":"https:\/\/collaboration.ksiazek.be\/?p=395","title":{"rendered":"Weighted Fair Queuing &#8211; WFQ"},"content":{"rendered":"<p>WFQ is enabled by default on slow-speed interfaces (&lt; 2,048 Mbps).<br \/>\nWFQ allocates a queue for each flow, for as many as 256 flows by default.<br \/>\nWFQ uses IP Precedence values to provide a weighting to Fair Queuing(FQ).<\/p>\n<p><em><span style=\"text-decoration: underline;\">How FQ is different from WFQ ?<\/span><\/em><\/p>\n<p><!--more--><\/p>\n<p>When emptying the queues , FQ does byte-by-byte scheduling. Specifically , FQ looks 1 byte deep into each queue to determine whether an entire packet can be sent out an interface an do it again for the next byte. This has as result that smaller traffic flows and smaller sizes have priority over bandwidth-hungry flows with large packets.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/alnpcruz.preview.infomaniak.com\/wp-content\/uploads\/2010\/02\/Fair-Queue.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-397 aligncenter\" title=\"Fair Queue\" src=\"http:\/\/alnpcruz.preview.infomaniak.com\/wp-content\/uploads\/2010\/02\/Fair-Queue.png\" alt=\"Fair Queuing scheduling\" width=\"831\" height=\"336\" srcset=\"https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Fair-Queue.png 831w, https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Fair-Queue-300x121.png 300w, https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Fair-Queue-768x311.png 768w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p>With WFQ , a packet&#8217;s IP Precedence influences the order in which that packet is emptied from a queue . The order of packet servicing with WFQ is based on sequence numbers , where packets with the lowest sequence numbers are transmitted first !<\/p>\n<p>The sequence number is the weight of packet multiplied by the number of byte-t-byte rounds that must be completed to service the packet.<\/p>\n<p>Prior to IOS 12.0.5T , the formula for weight was as follows :<\/p>\n<blockquote><p>Weight = 4096 \/ ( IP Precedence + 1 )<\/p><\/blockquote>\n<p>In more recent IOS,the formula for weight is as follows :<\/p>\n<blockquote><p>Weight = 32384 \/ ( IP Precedence + 1 )<\/p><\/blockquote>\n<p>So let&#8217;s take back our previous example :<\/p>\n<blockquote><p>A1 = (32384 \/ ( 5+1)) *128 = 690 859<\/p>\n<p>A2 = (32384 \/ ( 5+1)) *128 + A1 = 1 381 717<\/p>\n<p>A3 = (32384 \/ ( 5+1)) *128 + A2 = 2 072 576<\/p>\n<p>B1 = (32384 \/ ( 0+1)) * 96 = 3 108 864<\/p>\n<p>C1 = (32384 \/ ( 0+1)) * 70 = 2 226 880<\/p><\/blockquote>\n<p>So now with WFQ applied , the queues are emptied in the following order.<\/p>\n<p><a href=\"http:\/\/alnpcruz.preview.infomaniak.com\/wp-content\/uploads\/2010\/02\/Weighted-Fair-Queue.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-398\" title=\"Weighted Fair Queue\" src=\"http:\/\/alnpcruz.preview.infomaniak.com\/wp-content\/uploads\/2010\/02\/Weighted-Fair-Queue.png\" alt=\"Weighted Fair Queuing scheduling\" width=\"831\" height=\"336\" srcset=\"https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Weighted-Fair-Queue.png 831w, https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Weighted-Fair-Queue-300x121.png 300w, https:\/\/collaboration.ksiazek.be\/wp-content\/uploads\/2010\/02\/Weighted-Fair-Queue-768x311.png 768w\" sizes=\"(max-width: 831px) 100vw, 831px\" \/><\/a><\/p>\n<p>Although WFQ is easy to configure ( it is enabled by default on interces below 2,048 Mbps), although WFQ is supported on all IOS versions , it has its limitations !<\/p>\n<p>Specifically, WFQ canot guarantee a specific amount of bandwidth for an application.And also if more than 256 flows exist, by default, more than one flow one flow can be forced to share the same queue.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WFQ is enabled by default on slow-speed interfaces (&lt; 2,048 Mbps). WFQ allocates a queue for each flow, for as many as 256 flows by default. WFQ uses IP Precedence values to provide a weighting to Fair Queuing(FQ). How FQ is different from WFQ ?<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[30,1,80,33],"tags":[59,131,81,132],"class_list":["post-395","post","type-post","status-publish","format-standard","hentry","category-ios","category-non-classe","category-qos","category-written-theory","tag-ccie-voice-written","tag-fq","tag-qos","tag-wfq"],"_links":{"self":[{"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/posts\/395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=395"}],"version-history":[{"count":1,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions"}],"predecessor-version":[{"id":4460,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=\/wp\/v2\/posts\/395\/revisions\/4460"}],"wp:attachment":[{"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/collaboration.ksiazek.be\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}