In message <CAEjQQ5UpuO=knjrb8ysdxldgtimy+atwj5ugvw+jqe_xupj...@mail.gmail.com> Naeem Khademi writes: > Nicolas, > > Good catch although I tend to think that the impact of this would be > more visible on FIFO/DropTail queues; with an AQM presumably set at a > low threshold this impact will probably be less profound (although > depending on too many other factors, such as the load, multiplexing > level, BDP, etc). > > Naeem
In real routers, at least large routers, the queue limit is measured in bytes, not packets. In many interfaces the queue limit is also setable in msec rather than have the user/admin figure out how many bytes that should be at a given speed and have the user/admin set different values on interfaces of different speed. OTOH a lot of big router configs are machine generated by the SP. In small routers and particularly hosts used as routers the queue limit is often expressed in packets but IMHO that is bad since a queue full of TCP ACKs is a lot less than a queue with the same number of full MSS TCP packets. Curtis > On Fri, Feb 21, 2014 at 1:10 PM, Ilpo Järvinen > <[email protected]> wrote: > > On Fri, 21 Feb 2014, Nicolas KUHN wrote: > > > >> We have a question regarding the NS-2 implementations of RED, CoDel, PIE > >> and others AQMs. Especially, we believe that the way buffer-overflows > >> are managed is not the same for each AQM scheme. > >> > >> In "Multimedia-unfriendly TCP Congestion Control and Home Gateway Queue > >> Management" (L. Stewart et al.) details that : > >> "PS: The queue is packet (slot) based, and the maximum queue length is > >> specified as an integer number of packets: > >> if (NumPktsInQ ⥠PktQueueLength) > >> drop incoming packet" > >> > >> However: > >> 1- In droptail.cc: if((q_->length() + 1) >= qlim_) buffer overflow is > >> detected > >> 2- In RED/PIE/CoDel/etc.: if((q_->length() >= qlim_) buffer overflow is > >> detected > >> > >> In the case of RED/PIE, when there are buffer overflows, the incoming > >> packet may not be dropped. As a result, the incoming packet needs to be > >> stored before the other packet is selected for drop: if((q_->length() >= > >> qlim_) should be avoided - and if((q_->length() + 1) >= qlim_) preferred. > >> > >> In the case of CoDel, when there are buffer overflows, the incoming > >> packets are dropped. if((q_->length() >= qlim_) is a good solution. > >> > >> Anyway, the authors of "Multimedia-unfriendly TCP Congestion Control and > >> Home Gateway Queue Management" (L. Stewart et al.) illustrate the impact > >> of this setting that should be carefully discussed. This point is of > >> interest while comparing the performance of various AQM schemes with > >> NS-2. > >> > >> We believe that AQMs that need information about incoming packets before > >> tail-dropping them MUST detect buffer over flow when if((q_->length() + > >> 1) >= qlim_). > >> Any thoughts? > > > > While doing some tests with RED using ns2 in the past, I noticed this same > > difference. I patched ns2 RED to get equal behavior (patch attached but it > > probably breaks some of the ns2 tests which is why I didn't consider > > trying to upstream it). > > > > > > -- > > i.
_______________________________________________ aqm mailing list [email protected] https://www.ietf.org/mailman/listinfo/aqm
