* [Bloat] I feel an urge to update this @ 2014-09-19 23:33 Dave Taht 2014-09-20 9:03 ` Steinar H. Gunderson 2014-09-23 5:48 ` Mikael Abrahamsson 0 siblings, 2 replies; 20+ messages in thread From: Dave Taht @ 2014-09-19 23:33 UTC (permalink / raw) To: bloat http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 I just got some iw10 results on a t1 line... ugh. anyone want a stab at it? -- Dave Täht https://www.bufferbloat.net/projects/make-wifi-fast ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-19 23:33 [Bloat] I feel an urge to update this Dave Taht @ 2014-09-20 9:03 ` Steinar H. Gunderson 2014-09-20 15:55 ` Jonathan Morton 2014-09-23 5:48 ` Mikael Abrahamsson 1 sibling, 1 reply; 20+ messages in thread From: Steinar H. Gunderson @ 2014-09-20 9:03 UTC (permalink / raw) To: Dave Taht; +Cc: bloat On Sat, Sep 20, 2014 at 02:33:06AM +0300, Dave Taht wrote: > http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 The pedant in me wants to point out that 4 -> 10 is not “2.5 times worse”, but “2.5 times as bad” or “1.5 times worse” (just as 4 -> 5 is “20% worse”, “0.2 times worse” or “1.2 times as bad”). :-) /* Steinar */ -- Homepage: http://www.sesse.net/ ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-20 9:03 ` Steinar H. Gunderson @ 2014-09-20 15:55 ` Jonathan Morton 2014-09-20 16:47 ` Michael Welzl 0 siblings, 1 reply; 20+ messages in thread From: Jonathan Morton @ 2014-09-20 15:55 UTC (permalink / raw) To: Steinar H. Gunderson; +Cc: bloat On 20 Sep, 2014, at 12:03 pm, Steinar H. Gunderson wrote: > On Sat, Sep 20, 2014 at 02:33:06AM +0300, Dave Taht wrote: >> http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 > > The pedant in me wants to point out that 4 -> 10 is not “2.5 times worse”, > but “2.5 times as bad” or “1.5 times worse” (just as 4 -> 5 is “20% worse”, > “0.2 times worse” or “1.2 times as bad”). ISTR seeing some concrete test data showing that IW10 doesn't even work as designed, unless TCP pacing of some type is used to spread out the burst. That's *despite* bloated buffers. Really puts the nail in the coffin, if you ask me. The recent work on SQM could be added to the list of mitigation measures. Also, by keeping inter-flow latency low, it greatly reduces the original motivation for IW10 in the first place. - Jonathan Morton ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-20 15:55 ` Jonathan Morton @ 2014-09-20 16:47 ` Michael Welzl 0 siblings, 0 replies; 20+ messages in thread From: Michael Welzl @ 2014-09-20 16:47 UTC (permalink / raw) To: Jonathan Morton; +Cc: bloat fwiw: http://tools.ietf.org/id/draft-sallantin-iccrg-initial-spreading-01.txt Sent from my iPhone > On 20. sep. 2014, at 17:55, Jonathan Morton <chromatix99@gmail.com> wrote: > > >> On 20 Sep, 2014, at 12:03 pm, Steinar H. Gunderson wrote: >> >>> On Sat, Sep 20, 2014 at 02:33:06AM +0300, Dave Taht wrote: >>> http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 >> >> The pedant in me wants to point out that 4 -> 10 is not “2.5 times worse”, >> but “2.5 times as bad” or “1.5 times worse” (just as 4 -> 5 is “20% worse”, >> “0.2 times worse” or “1.2 times as bad”). > > ISTR seeing some concrete test data showing that IW10 doesn't even work as designed, unless TCP pacing of some type is used to spread out the burst. That's *despite* bloated buffers. Really puts the nail in the coffin, if you ask me. > > The recent work on SQM could be added to the list of mitigation measures. Also, by keeping inter-flow latency low, it greatly reduces the original motivation for IW10 in the first place. > > - Jonathan Morton > _______________________________________________ > Bloat mailing list > Bloat@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/bloat ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-19 23:33 [Bloat] I feel an urge to update this Dave Taht 2014-09-20 9:03 ` Steinar H. Gunderson @ 2014-09-23 5:48 ` Mikael Abrahamsson 2014-09-23 8:31 ` Jonathan Morton 2014-09-25 4:16 ` David Lang 1 sibling, 2 replies; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-23 5:48 UTC (permalink / raw) To: Dave Taht; +Cc: bloat On Sat, 20 Sep 2014, Dave Taht wrote: > http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 > > I just got some iw10 results on a t1 line... ugh. anyone want a stab at it? Is it at all possible to create a solution that works well for all cases? I pitched a proposal at IETF75 and then again a year ago in TCP/TCPM WGs that it might be good if the connection manager could hint the TCP stack, or the TCP stack could determine itself by heuristics, that its network connection were of a few different degrees of a few criteria which might be speed, loss, jitter etc. I perhaps even could tell my connection manager that when connected to my home wired or wifi network, "everything" is reachable via 50 + megabit/s connectivity. If I then speak to a 10GE connected server, there should be no problem for it to do IW10. Basically, my thinking is to have something similar to "MSS" but when it comes to connectivity. There was no interest anywhere in this, everybody wanted for each connection to be living in its own universe with little prior knowledge about what's been going on before it. I just don't see how we can make things work well when we try to create TCP to handle everything from 1500ms to 0.1ms of RTT, and everything from 19200bps to 100GE in speed. -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-23 5:48 ` Mikael Abrahamsson @ 2014-09-23 8:31 ` Jonathan Morton 2014-09-25 4:16 ` David Lang 1 sibling, 0 replies; 20+ messages in thread From: Jonathan Morton @ 2014-09-23 8:31 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On 23 Sep, 2014, at 8:48 am, Mikael Abrahamsson wrote: > I just don't see how we can make things work well when we try to create TCP to handle everything from 1500ms to 0.1ms of RTT, and everything from 19200bps to 100GE in speed. Move that lower bound down to 2400bps. People are still using Iridium! http://www.revk.uk/2014/09/back-to-future-i-mean-past.html - Jonathan Morton ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-23 5:48 ` Mikael Abrahamsson 2014-09-23 8:31 ` Jonathan Morton @ 2014-09-25 4:16 ` David Lang 2014-09-25 5:32 ` Mikael Abrahamsson 1 sibling, 1 reply; 20+ messages in thread From: David Lang @ 2014-09-25 4:16 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On Tue, 23 Sep 2014, Mikael Abrahamsson wrote: > On Sat, 20 Sep 2014, Dave Taht wrote: > >> http://tools.ietf.org/html/draft-gettys-iw10-considered-harmful-00 >> >> I just got some iw10 results on a t1 line... ugh. anyone want a stab at it? > > Is it at all possible to create a solution that works well for all cases? > > I pitched a proposal at IETF75 and then again a year ago in TCP/TCPM WGs that > it might be good if the connection manager could hint the TCP stack, or the > TCP stack could determine itself by heuristics, that its network connection > were of a few different degrees of a few criteria which might be speed, loss, > jitter etc. I perhaps even could tell my connection manager that when > connected to my home wired or wifi network, "everything" is reachable via 50 > + megabit/s connectivity. If I then speak to a 10GE connected server, there > should be no problem for it to do IW10. Basically, my thinking is to have > something similar to "MSS" but when it comes to connectivity. > > There was no interest anywhere in this, everybody wanted for each connection > to be living in its own universe with little prior knowledge about what's > been going on before it. The problem is that you don't know what the connectivity is going to be. (unless you are connecting to the same IP as an existing connection). Your first few hops are fairly predictable, but after that you have no idea if you are going to be connecting to a server on a low bandwidth link, one behind a very congested router, or one with better connectivity than you have. > I just don't see how we can make things work well when we try to create TCP > to handle everything from 1500ms to 0.1ms of RTT, and everything from > 19200bps to 100GE in speed. Actually, at this point, we know exactly what would need to be done to make TCP work across this entire range (as long as the connection speed doesn't vary too rapidly), the problem is getting the hardware manufacturers on board to actually deploy it. using fq_codel on every bottleneck link will make TCP work pretty well across that entire range of connectivity David Lang ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 4:16 ` David Lang @ 2014-09-25 5:32 ` Mikael Abrahamsson 2014-09-25 7:35 ` David Lang 2014-09-25 16:09 ` Rick Jones 0 siblings, 2 replies; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-25 5:32 UTC (permalink / raw) To: David Lang; +Cc: bloat On Wed, 24 Sep 2014, David Lang wrote: > The problem is that you don't know what the connectivity is going to be. > (unless you are connecting to the same IP as an existing connection). > Your first few hops are fairly predictable, but after that you have no > idea if you are going to be connecting to a server on a low bandwidth > link, one behind a very congested router, or one with better > connectivity than you have. I am not saying that we *know*, but we might have a pretty good idea. Better than to do the same thing regardless of circumstances. If I know my home connection is 250/50 megabit/s, then there is no reason to treat it like a 0.1 megabit/s connection or a 10GE connection. > using fq_codel on every bottleneck link will make TCP work pretty well > across that entire range of connectivity Well, that'll fix one thing, but for instance the IW4 and IW10 debate. I'm sure IW10 works *great* on a 100/100 megabit/s connection when the server is 10GE connected, but it's less than optimal for a 0.1 megabit/s connection. So why can't the client hint the server that, hmm, I seem to be on a fairly slow connection here, don't send me too much at once? Or it can hint that hey, it seems most times I get pretty large TCP window sizes, so it's ok to start with IW10? -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 5:32 ` Mikael Abrahamsson @ 2014-09-25 7:35 ` David Lang 2014-09-25 8:08 ` Mikael Abrahamsson 2014-09-25 16:09 ` Rick Jones 1 sibling, 1 reply; 20+ messages in thread From: David Lang @ 2014-09-25 7:35 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On Thu, 25 Sep 2014, Mikael Abrahamsson wrote: > On Wed, 24 Sep 2014, David Lang wrote: > >> The problem is that you don't know what the connectivity is going to be. >> (unless you are connecting to the same IP as an existing connection). Your >> first few hops are fairly predictable, but after that you have no idea if >> you are going to be connecting to a server on a low bandwidth link, one >> behind a very congested router, or one with better connectivity than you >> have. > > I am not saying that we *know*, but we might have a pretty good idea. Better > than to do the same thing regardless of circumstances. If I know my home > connection is 250/50 megabit/s, then there is no reason to treat it like a > 0.1 megabit/s connection or a 10GE connection. well, even if you have a 10GE connection, you don't know how heavily it's going to be used. >> using fq_codel on every bottleneck link will make TCP work pretty well >> across that entire range of connectivity > > Well, that'll fix one thing, but for instance the IW4 and IW10 debate. I'm > sure IW10 works *great* on a 100/100 megabit/s connection when the server is > 10GE connected, but it's less than optimal for a 0.1 megabit/s connection. > > So why can't the client hint the server that, hmm, I seem to be on a fairly > slow connection here, don't send me too much at once? Or it can hint that > hey, it seems most times I get pretty large TCP window sizes, so it's ok to > start with IW10? what happens if the wrong hint is given? (either accidently or maliciously) The approach of starting slow and ramping up works well, except in the case where you have lots of very short connections. So I don't see a benefit of trying to hint slowness. There may be some value in hinting for faster ramp-ups, but what will that do to fairness with existing systems? My knee-jerk reaction is that this adds a lot of new failure modes without a significant benefit. But we have a number of companies who want to have things downloaded and used as quickly as possible, so if this sort of thing really does help, then I would expect that they would be experimenting with tweaking the TCP stack to ramp up faster (although, you would also be expecting outcrys about "how dare $bigcompany ignore the TCP defaults and be more agressive, that doesn't compete fairly with $normaltraffic) David Lang ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 7:35 ` David Lang @ 2014-09-25 8:08 ` Mikael Abrahamsson 2014-09-25 11:00 ` David Lang 0 siblings, 1 reply; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-25 8:08 UTC (permalink / raw) To: David Lang; +Cc: bloat On Thu, 25 Sep 2014, David Lang wrote: > well, even if you have a 10GE connection, you don't know how heavily > it's going to be used. No, but I will have a hunch. I don't need to *know*, I need to have a decent probability of being right. > what happens if the wrong hint is given? (either accidently or maliciously) Then you get IW10 instead of IW4. Right now if I am correct, Google does IW10 all across the board. > The approach of starting slow and ramping up works well, except in the > case where you have lots of very short connections. So I don't see a > benefit of trying to hint slowness. There may be some value in hinting > for faster ramp-ups, but what will that do to fairness with existing > systems? In my world, core network congestion isn't something that is permanent and continous, but an anomaly. So since the only port that should be congesting is my access port, I don't care about fairness. Also, we're not talking about starting off with a 1M TCP window to blast a huge chunk of data down the wire, we're talking about perhaps being a bit more agressive in increasing the window from a slightly higher initial level, let's say IW10 and instead of doubling, tripling window size, if the client hints they have a fast connection, and if the client says they have a slow connection, IW4 and increase 1.5x instead? Use same mechanisms as today, but tweak them to be a bit more or less agressive depending on what the client has hinted. I mean, why do we send MSS in TCP? Couldn't we just have a generic probing mechanism to test what MTU works? Well, that would be inefficient, so MSS helps. Same here. > But we have a number of companies who want to have things downloaded and > used as quickly as possible, so if this sort of thing really does help, > then I would expect that they would be experimenting with tweaking the > TCP stack to ramp up faster (although, you would also be expecting > outcrys about "how dare $bigcompany ignore the TCP defaults and be more > agressive, that doesn't compete fairly with $normaltraffic) Errr, google and IW10? So, already done!? -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 8:08 ` Mikael Abrahamsson @ 2014-09-25 11:00 ` David Lang 2014-09-25 13:00 ` Mikael Abrahamsson 0 siblings, 1 reply; 20+ messages in thread From: David Lang @ 2014-09-25 11:00 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On Thu, 25 Sep 2014, Mikael Abrahamsson wrote: > On Thu, 25 Sep 2014, David Lang wrote: > >> well, even if you have a 10GE connection, you don't know how heavily it's >> going to be used. > > No, but I will have a hunch. I don't need to *know*, I need to have a decent > probability of being right. > >> what happens if the wrong hint is given? (either accidently or maliciously) > > Then you get IW10 instead of IW4. Right now if I am correct, Google does IW10 > all across the board. What is the problem with making this assumption? Why should we try to change every device on the Internet to provide this information instead of just using this as the default? >> The approach of starting slow and ramping up works well, except in the case >> where you have lots of very short connections. So I don't see a benefit of >> trying to hint slowness. There may be some value in hinting for faster >> ramp-ups, but what will that do to fairness with existing systems? > > In my world, core network congestion isn't something that is permanent and > continous, but an anomaly. So since the only port that should be congesting > is my access port, I don't care about fairness. Well, you are asking for the entire Internet to be changed, so your proposal needs to account for the rest of the Internet outside of your world. And there we do have to worry about fairness. David Lang ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 11:00 ` David Lang @ 2014-09-25 13:00 ` Mikael Abrahamsson 2014-09-25 13:25 ` Dave Taht 0 siblings, 1 reply; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-25 13:00 UTC (permalink / raw) To: David Lang; +Cc: bloat On Thu, 25 Sep 2014, David Lang wrote: > What is the problem with making this assumption? Why should we try to > change every device on the Internet to provide this information instead > of just using this as the default? Read the email that started this thread. -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 13:00 ` Mikael Abrahamsson @ 2014-09-25 13:25 ` Dave Taht 2014-09-25 14:35 ` Mikael Abrahamsson 0 siblings, 1 reply; 20+ messages in thread From: Dave Taht @ 2014-09-25 13:25 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On Thu, Sep 25, 2014 at 6:00 AM, Mikael Abrahamsson <swmike@swm.pp.se> wrote: > On Thu, 25 Sep 2014, David Lang wrote: > >> What is the problem with making this assumption? Why should we try to >> change every device on the Internet to provide this information instead of >> just using this as the default? > > Read the email that started this thread. One saving grace of the IW10 deployment so far is that it is (mostly) limited to Linux, and that methods, such as pacing/initial spreading/fq, to cope with it better, are developing concurrently. It's not all bad - on GigE ethernet networks, it's ok, IW10 may well be useful in wifi packet aggregation, etc, but it does do potentially a great deal of damage to networks running at very low rates. My concern has largely been the collateral damage it causes network uploads from the edge, where vastly lower rates are common. It could be mitigated further in a desktop deployment by (for example) sticking with IW4 for everything going out a default gateway, and steps taken to make sure applications like bittorrent/transmission used a lower default. I have no idea what the IW is for android, but that should perhaps be lower also. I think ledbat shouldn't have an IW at all.... I would not mind if IW information was carried as a payload in dhcp/hnetd/etc... I have no problem with people suggesting changes here that require "changing the entire internet". We seem to have done that a couple times, already. :) It would be nice if we could calculate the damage it causes along whatever portion of the internet is running at below 10Mbit.... A simple question - how many T1 lines are left in the world? > -- > Mikael Abrahamsson email: swmike@swm.pp.se -- Dave Täht https://www.bufferbloat.net/projects/make-wifi-fast ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 13:25 ` Dave Taht @ 2014-09-25 14:35 ` Mikael Abrahamsson 0 siblings, 0 replies; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-25 14:35 UTC (permalink / raw) To: Dave Taht; +Cc: bloat On Thu, 25 Sep 2014, Dave Taht wrote: > A simple question - how many T1 lines are left in the world? If you change the question to "how many people are behind links that are or will be at 1.5 megabit/s or slower" I'd say billions. Some are behind GSM/EDGE networks, some are on very slow ADSL lines etc. -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 5:32 ` Mikael Abrahamsson 2014-09-25 7:35 ` David Lang @ 2014-09-25 16:09 ` Rick Jones 2014-09-25 17:26 ` Mikael Abrahamsson 1 sibling, 1 reply; 20+ messages in thread From: Rick Jones @ 2014-09-25 16:09 UTC (permalink / raw) To: Mikael Abrahamsson, David Lang; +Cc: bloat >> using fq_codel on every bottleneck link will make TCP work pretty well >> across that entire range of connectivity > > Well, that'll fix one thing, but for instance the IW4 and IW10 debate. > I'm sure IW10 works *great* on a 100/100 megabit/s connection when the > server is 10GE connected, but it's less than optimal for a 0.1 megabit/s > connection. > > So why can't the client hint the server that, hmm, I seem to be on a > fairly slow connection here, don't send me too much at once? Or it can > hint that hey, it seems most times I get pretty large TCP window sizes, > so it's ok to start with IW10? Well, there has been such a thing present in TCP from "The Beginning" though not named as such. Such a client could always advertise a smaller (initial) receive window... One which would allow only IW3 or whatever value was appropriate. rick jones ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 16:09 ` Rick Jones @ 2014-09-25 17:26 ` Mikael Abrahamsson 2014-09-25 17:49 ` Rick Jones 0 siblings, 1 reply; 20+ messages in thread From: Mikael Abrahamsson @ 2014-09-25 17:26 UTC (permalink / raw) To: Rick Jones; +Cc: bloat On Thu, 25 Sep 2014, Rick Jones wrote: > Well, there has been such a thing present in TCP from "The Beginning" > though not named as such. Such a client could always advertise a > smaller (initial) receive window... One which would allow only IW3 or > whatever value was appropriate. I'm sure there are ways to solve this, but my take from the "TCP people" was that there was not seen to be any need to do anything else than what is done today, ie all TCP connections are self contained and learns nothing from each other. -- Mikael Abrahamsson email: swmike@swm.pp.se ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 17:26 ` Mikael Abrahamsson @ 2014-09-25 17:49 ` Rick Jones 2014-09-27 8:59 ` Manolis Sifalakis 0 siblings, 1 reply; 20+ messages in thread From: Rick Jones @ 2014-09-25 17:49 UTC (permalink / raw) To: Mikael Abrahamsson; +Cc: bloat On 09/25/2014 10:26 AM, Mikael Abrahamsson wrote: > On Thu, 25 Sep 2014, Rick Jones wrote: > >> Well, there has been such a thing present in TCP from "The Beginning" >> though not named as such. Such a client could always advertise a >> smaller (initial) receive window... One which would allow only IW3 or >> whatever value was appropriate. > > I'm sure there are ways to solve this, but my take from the "TCP people" > was that there was not seen to be any need to do anything else than what > is done today, ie all TCP connections are self contained and learns > nothing from each other. Well, I cannot speak for "TCP people" but I would think that what a given TCP connection decides to advertise as its receive window, and whether that decision would need/must depend on what other TCP connections have seen are separate, but related. The main point I wished to make was if one did indeed wish to have a receiver behind a slow pipe wish to be able to keep a sender up on a fast pipe from actually doing IW10, there was no need for any new signal flowing from one end to the other, just setting the receive window appropriately. The TCP stack on the slow-connection device could (and perhaps should) be configured for things like (initial) receive windows with that in mind. rick jones ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-25 17:49 ` Rick Jones @ 2014-09-27 8:59 ` Manolis Sifalakis 2014-09-29 17:28 ` Rick Jones 0 siblings, 1 reply; 20+ messages in thread From: Manolis Sifalakis @ 2014-09-27 8:59 UTC (permalink / raw) To: bloat A couple of remarks to try and contribute to this discussion, one philosophical and one engineering. The philosophical first. There is a presentation taking place in a room and it is possibly at q&a phase. You have several ppl entering the room at several time points. What if every person entering the room, immediately throws aggressively questions without even having spent time to listen and understand the context of presentation and discussion. Imagine this happening again and again. Consider what are the chances that a meaningful communication and discussion will take place... or simply how would you like that as a person in the audience? The more technical next. Doubling and tripling IW for short lived sessions (each of which will attain --only-- exponential growth in its anyway short lifetime) means that a large number of high-freq transient components will be added to and removed from the signal that the AQM sees (and tries to adapt to). Is that something desired ? Will it improve or worsen the way an AQM adapts? Increasing IW is not only a matter of initial value, it also affects the starting growth rate (since the relation is not linear). Manos On 25/09/14 19:49, Rick Jones wrote: > On 09/25/2014 10:26 AM, Mikael Abrahamsson wrote: >> On Thu, 25 Sep 2014, Rick Jones wrote: >> >>> Well, there has been such a thing present in TCP from "The Beginning" >>> though not named as such. Such a client could always advertise a >>> smaller (initial) receive window... One which would allow only IW3 or >>> whatever value was appropriate. >> >> I'm sure there are ways to solve this, but my take from the "TCP people" >> was that there was not seen to be any need to do anything else than what >> is done today, ie all TCP connections are self contained and learns >> nothing from each other. > > Well, I cannot speak for "TCP people" but I would think that what a > given TCP connection decides to advertise as its receive window, and > whether that decision would need/must depend on what other TCP > connections have seen are separate, but related. > > The main point I wished to make was if one did indeed wish to have a > receiver behind a slow pipe wish to be able to keep a sender up on a > fast pipe from actually doing IW10, there was no need for any new signal > flowing from one end to the other, just setting the receive window > appropriately. The TCP stack on the slow-connection device could (and > perhaps should) be configured for things like (initial) receive windows > with that in mind. > > rick jones > _______________________________________________ > Bloat mailing list > Bloat@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/bloat ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-27 8:59 ` Manolis Sifalakis @ 2014-09-29 17:28 ` Rick Jones 2014-10-04 19:56 ` Manolis Sifalakis 0 siblings, 1 reply; 20+ messages in thread From: Rick Jones @ 2014-09-29 17:28 UTC (permalink / raw) To: bloat On 09/27/2014 01:59 AM, Manolis Sifalakis wrote: > A couple of remarks to try and contribute to this discussion, one > philosophical and one engineering. > > The philosophical first. There is a presentation taking place in a room > and it is possibly at q&a phase. You have several ppl entering the room > at several time points. What if every person entering the room, > immediately throws aggressively questions without even having spent time > to listen and understand the context of presentation and discussion. > Imagine this happening again and again. Consider what are the chances > that a meaningful communication and discussion will take place... or > simply how would you like that as a person in the audience? I believe I see where you are going, but the analogy is missing one key piece. That is that before entering the room, each person must make a request to enter (send a TCP SYN), which must be acknowledged by the presenter (SYN|ACK). When the presenter gives each person permission to enter, she also tells them how many questions they may ask, in the form of the value for the (initial) TCP receive window in the SYN|ACK. When the presenter knows she has a number of questions already outstanding, and/or she knows that the questions will be arriving through a small pipe, she can tell each person entering the room they may ask only a small number of questions. > The more technical next. Doubling and tripling IW for short lived > sessions (each of which will attain --only-- exponential growth in its > anyway short lifetime) means that a large number of high-freq transient > components will be added to and removed from the signal that the AQM > sees (and tries to adapt to). Is that something desired ? Will it > improve or worsen the way an AQM adapts? Increasing IW is not only a > matter of initial value, it also affects the starting growth rate (since > the relation is not linear). I have a sneaking suspicion "we" (the collective group of folks working on "the internet" as it were) went through a similar debate over IW3 versus IW1. And ten years from now we will probably have a similar debate over IW30 versus IW10 :) My understanding was the concern put forth was that a slow receiver might be overwhelmed by communicating with a well-connected sender using IW10. And someone suggested there should be a signal the slow receiver could send to the well-connected sender that said "Don't do IW10." All I am saying is that if we do indeed have a slow receiver, it already has such a "signal" - the TCP receive window. Even if the well-connected sender was using IW1000, it must still love, honor and respect the classic TCP receive window. How well an AQM will like or adapt to a bunch of loud-mouth mice versus a soft-spoken elephant I do not pretend to know. But while I have a soft spot for some quixotic things - for example, the (IMO) mis-use of impact and impacted :) and will complain about other things unlikely ever to change (for example, the Linux TCP stack's seeming willingness to go "Grow the receive window huge and let congestion control sort it out." I really, really doubt the IW10 genie is ever going back into the bottle. I'm also not really all that upset with IW10 in the first place, but then I was one who thought that counting the ACK of the SYN or SYN|ACK when growing the congestion window was fine. rick jones > > Manos > > > On 25/09/14 19:49, Rick Jones wrote: >> On 09/25/2014 10:26 AM, Mikael Abrahamsson wrote: >>> On Thu, 25 Sep 2014, Rick Jones wrote: >>> >>>> Well, there has been such a thing present in TCP from "The Beginning" >>>> though not named as such. Such a client could always advertise a >>>> smaller (initial) receive window... One which would allow only IW3 or >>>> whatever value was appropriate. >>> >>> I'm sure there are ways to solve this, but my take from the "TCP people" >>> was that there was not seen to be any need to do anything else than what >>> is done today, ie all TCP connections are self contained and learns >>> nothing from each other. >> >> Well, I cannot speak for "TCP people" but I would think that what a >> given TCP connection decides to advertise as its receive window, and >> whether that decision would need/must depend on what other TCP >> connections have seen are separate, but related. >> >> The main point I wished to make was if one did indeed wish to have a >> receiver behind a slow pipe wish to be able to keep a sender up on a >> fast pipe from actually doing IW10, there was no need for any new signal >> flowing from one end to the other, just setting the receive window >> appropriately. The TCP stack on the slow-connection device could (and >> perhaps should) be configured for things like (initial) receive windows >> with that in mind. >> >> rick jones >> _______________________________________________ >> Bloat mailing list >> Bloat@lists.bufferbloat.net >> https://lists.bufferbloat.net/listinfo/bloat > _______________________________________________ > Bloat mailing list > Bloat@lists.bufferbloat.net > https://lists.bufferbloat.net/listinfo/bloat ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [Bloat] I feel an urge to update this 2014-09-29 17:28 ` Rick Jones @ 2014-10-04 19:56 ` Manolis Sifalakis 0 siblings, 0 replies; 20+ messages in thread From: Manolis Sifalakis @ 2014-10-04 19:56 UTC (permalink / raw) To: bloat Hi Rick, On 29/09/14 19:28, Rick Jones wrote: > On 09/27/2014 01:59 AM, Manolis Sifalakis wrote: >> A couple of remarks to try and contribute to this discussion, one >> philosophical and one engineering. >> >> The philosophical first. There is a presentation taking place in a room >> and it is possibly at q&a phase. You have several ppl entering the room >> at several time points. What if every person entering the room, >> immediately throws aggressively questions without even having spent time >> to listen and understand the context of presentation and discussion. >> Imagine this happening again and again. Consider what are the chances >> that a meaningful communication and discussion will take place... or >> simply how would you like that as a person in the audience? > > I believe I see where you are going, but the analogy is missing one key > piece. That is that before entering the room, each person must make a > request to enter (send a TCP SYN), which must be acknowledged by the > presenter (SYN|ACK). When the presenter gives each person permission to > enter, she also tells them how many questions they may ask, in the form > of the value for the (initial) TCP receive window in the SYN|ACK. > > When the presenter knows she has a number of questions already > outstanding, and/or she knows that the questions will be arriving > through a small pipe, she can tell each person entering the room they > may ask only a small number of questions. > Fair enough. Particularly when it comes to the control the receiver side can exert. On second thought however..., the recv window is intended to set an upper bound (cap) to an otherwise nominally well behaving sender, and not to regulate the aggressiveness of the sender (init wnd and rate of growth). The two are similar but not the same. I m not sure about the effects of managing them in tandem, since setting the cap will not necessarily resolve the effects of aggressive behaviour. >> The more technical next. Doubling and tripling IW for short lived >> sessions (each of which will attain --only-- exponential growth in its >> anyway short lifetime) means that a large number of high-freq transient >> components will be added to and removed from the signal that the AQM >> sees (and tries to adapt to). Is that something desired ? Will it >> improve or worsen the way an AQM adapts? Increasing IW is not only a >> matter of initial value, it also affects the starting growth rate (since >> the relation is not linear). > > I have a sneaking suspicion "we" (the collective group of folks working > on "the internet" as it were) went through a similar debate over IW3 > versus IW1. And ten years from now we will probably have a similar > debate over IW30 versus IW10 :) > possibly! .. and it is habitual for the older to be more conservative ;) > My understanding was the concern put forth was that a slow receiver > might be overwhelmed by communicating with a well-connected sender using > IW10. And someone suggested there should be a signal the slow receiver > could send to the well-connected sender that said "Don't do IW10." All > I am saying is that if we do indeed have a slow receiver, it already has > such a "signal" - the TCP receive window. Even if the well-connected > sender was using IW1000, it must still love, honor and respect the > classic TCP receive window. > I see your point.. and the effect you advocate. I m just not convinced of the philosophy "Let em be aggressive, we can always call police *after* should there be need". This can have side-effects that "police" may not be effectively addressing (for en-path queueing par example). > How well an AQM will like or adapt to a bunch of loud-mouth mice versus > a soft-spoken elephant I do not pretend to know. But while I have a > soft spot for some quixotic things - for example, the (IMO) mis-use of > impact and impacted :) and will complain about other things unlikely > ever to change (for example, the Linux TCP stack's seeming willingness > to go "Grow the receive window huge and let congestion control sort it > out." I really, really doubt the IW10 genie is ever going back into the > bottle. I'm also not really all that upset with IW10 in the first > place, but then I was one who thought that counting the ACK of the SYN > or SYN|ACK when growing the congestion window was fine. > > rick jones > M. ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2014-10-04 19:57 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-09-19 23:33 [Bloat] I feel an urge to update this Dave Taht 2014-09-20 9:03 ` Steinar H. Gunderson 2014-09-20 15:55 ` Jonathan Morton 2014-09-20 16:47 ` Michael Welzl 2014-09-23 5:48 ` Mikael Abrahamsson 2014-09-23 8:31 ` Jonathan Morton 2014-09-25 4:16 ` David Lang 2014-09-25 5:32 ` Mikael Abrahamsson 2014-09-25 7:35 ` David Lang 2014-09-25 8:08 ` Mikael Abrahamsson 2014-09-25 11:00 ` David Lang 2014-09-25 13:00 ` Mikael Abrahamsson 2014-09-25 13:25 ` Dave Taht 2014-09-25 14:35 ` Mikael Abrahamsson 2014-09-25 16:09 ` Rick Jones 2014-09-25 17:26 ` Mikael Abrahamsson 2014-09-25 17:49 ` Rick Jones 2014-09-27 8:59 ` Manolis Sifalakis 2014-09-29 17:28 ` Rick Jones 2014-10-04 19:56 ` Manolis Sifalakis
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox