General list for discussing Bufferbloat
 help / color / mirror / Atom feed
* [Bloat] a flood of Bufferbloat-related papers
@ 2011-10-11 10:27 David Täht
  2011-10-11 11:58 ` Steinar H. Gunderson
  2011-10-12  7:49 ` Lawrence Stewart
  0 siblings, 2 replies; 16+ messages in thread
From: David Täht @ 2011-10-11 10:27 UTC (permalink / raw)
  To: bloat

[-- Attachment #1: Type: text/plain, Size: 2114 bytes --]

I sat down on my vacation last week thinking I would write up a review
of progress since the bufferbloat effort began back in January, 2011. In
particular, I was interested in discovering to what extent we'd made the
cross-over not just into other OSes besides Linux (e.g - BSD, windows)
but into academia.

I figured I'd just write up a *short* wiki page on the interesting
bufferbloat related papers referenced via google and google scholar.

I was astounded (and delighted) to discover that google scholar had 30+
references, and digging into the later results (google page 2 and
beyond) was fascinating.

http://scholar.google.fr/scholar?start=10&q=bufferbloat&hl=fr&as_sdt=0,5&as_vis=1


I confess that I have not had time to read most of these yet! I've got
"FIFO Service with Differentiated Queueing" loaded on my kindle as I
write, as well as "on the impact of congestion control for concurrent
multipath transfer".

In the future I would certainly appreciate the authors of bufferbloat
related/referencing papers to mention them on this mailing list *as*
they are published!

Also a heads-up on work in progress would be helpful, both to avoid
unnecessary duplication of work and to find potential collaborators.

Rather than writing up that list of interesting papers, which google
scholar is doing so well for us already, I'm going to instead start
creating a list of papers and research I'd like to see. I'd appreciate
suggestions...

On my list already would be "an analysis of the effects of broken sack
processing on linux 2.4.24-3.1", of which I *think* I've captured
multiple examples of in the raw traces I've been collecting for
months... (so if anyone is interested in the raw data, I can provide)

I also note that TCP-fit, which was discussed on this mailing list a few
months ago, has a new paper due out this month (if it isn't out already)
in Infocom, Shanghai, October, 2011. I would love to have more
information on this algorithm because I simply cannot believe the
results, as much as I would like to believe them.
http://media.cs.tsinghua.edu.cn/~multimedia/tcp-fit/


-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 204 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 10:27 [Bloat] a flood of Bufferbloat-related papers David Täht
@ 2011-10-11 11:58 ` Steinar H. Gunderson
  2011-10-11 12:13   ` Eric Dumazet
  2011-10-11 12:17   ` David Täht
  2011-10-12  7:49 ` Lawrence Stewart
  1 sibling, 2 replies; 16+ messages in thread
From: Steinar H. Gunderson @ 2011-10-11 11:58 UTC (permalink / raw)
  To: bloat

On Tue, Oct 11, 2011 at 12:27:17PM +0200, David Täht wrote:
> On my list already would be "an analysis of the effects of broken sack
> processing on linux 2.4.24-3.1", of which I *think* I've captured
> multiple examples of in the raw traces I've been collecting for
> months... (so if anyone is interested in the raw data, I can provide)

Do you have any more information? The only thing I could find online was that
there were SACK issues that were supposed to be fixed by 2.6.16; nothing
about a fix in 3.1 or post-3.1.

/* Steinar */
-- 
Homepage: http://www.sesse.net/

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 11:58 ` Steinar H. Gunderson
@ 2011-10-11 12:13   ` Eric Dumazet
  2011-10-11 12:18     ` Eric Dumazet
  2011-10-11 12:40     ` [Bloat] a flood of Bufferbloat-related papers David Täht
  2011-10-11 12:17   ` David Täht
  1 sibling, 2 replies; 16+ messages in thread
From: Eric Dumazet @ 2011-10-11 12:13 UTC (permalink / raw)
  To: Steinar H. Gunderson; +Cc: bloat

Le mardi 11 octobre 2011 à 13:58 +0200, Steinar H. Gunderson a écrit :
> On Tue, Oct 11, 2011 at 12:27:17PM +0200, David Täht wrote:
> > On my list already would be "an analysis of the effects of broken sack
> > processing on linux 2.4.24-3.1", of which I *think* I've captured
> > multiple examples of in the raw traces I've been collecting for
> > months... (so if anyone is interested in the raw data, I can provide)
> 
> Do you have any more information? The only thing I could find online was that
> there were SACK issues that were supposed to be fixed by 2.6.16; nothing
> about a fix in 3.1 or post-3.1.
> 

Of course, instead of discussing all linux stuff privately, it would be
good to discuss with linux network maintainers.

Or is the goal is to provide nice papers only ?

commit f779b2d60ab95c17f1e025778ed0df3ec2f05d75
Author: Zheng Yan <zheng.z.yan@intel.com>
Date:   Sun Sep 18 22:37:34 2011 -0400

    tcp: fix validation of D-SACK
    
    D-SACK is allowed to reside below snd_una. But the corresponding check
    in tcp_is_sackblock_valid() is the exact opposite. It looks like a typo.
    
    Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index ea0d218..21fab3e 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1124,7 +1124,7 @@ static int tcp_is_sackblock_valid(struct tcp_sock *tp, int is_dsack,
 		return 0;
 
 	/* ...Then it's D-SACK, and must reside below snd_una completely */
-	if (!after(end_seq, tp->snd_una))
+	if (after(end_seq, tp->snd_una))
 		return 0;
 
 	if (!before(start_seq, tp->undo_marker))



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 11:58 ` Steinar H. Gunderson
  2011-10-11 12:13   ` Eric Dumazet
@ 2011-10-11 12:17   ` David Täht
  1 sibling, 0 replies; 16+ messages in thread
From: David Täht @ 2011-10-11 12:17 UTC (permalink / raw)
  To: bloat, sgunderson


[-- Attachment #1.1: Type: text/plain, Size: 1295 bytes --]

On Tue, Oct 11, 2011 at 12:27:17PM +0200, David Täht wrote:

> > On my list already would be "an analysis of the effects of broken sack
> > processing on linux 2.4.24-3.1", of which I *think* I've captured
> > multiple examples of in the raw traces I've been collecting for
> > months... (so if anyone is interested in the raw data, I can provide)
Do you have any more information? The only thing I could find online was that
there were SACK issues that were supposed to be fixed by 2.6.16; nothing
about a fix in 3.1 or post-3.1.


This was a typo on my part - 2.6.24-3.1, not 2.4


The specific commit that concerned me was this one. I had seen multiple
cases of odd behavior (basically tcp sacking like crazy until the cwr
collapses or a tcp reset) that I *think* this fix explains.



commit f779b2d60ab95c17f1e025778ed0df3ec2f05d75
Author: Zheng Yan <zheng.z.yan@intel.com>
Date:   Sun Sep 18 22:37:34 2011 -0400

    tcp: fix validation of D-SACK
   
    D-SACK is allowed to reside below snd_una. But the corresponding check
    in tcp_is_sackblock_valid() is the exact opposite. It looks like a typo.
   
    Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>



-- 
Dave Täht


[-- Attachment #1.2: Type: text/html, Size: 2502 bytes --]

[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 12:13   ` Eric Dumazet
@ 2011-10-11 12:18     ` Eric Dumazet
  2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
  2011-10-11 12:40     ` [Bloat] a flood of Bufferbloat-related papers David Täht
  1 sibling, 1 reply; 16+ messages in thread
From: Eric Dumazet @ 2011-10-11 12:18 UTC (permalink / raw)
  To: Steinar H. Gunderson; +Cc: bloat

Le mardi 11 octobre 2011 à 14:13 +0200, Eric Dumazet a écrit :
> Le mardi 11 octobre 2011 à 13:58 +0200, Steinar H. Gunderson a écrit :
> > On Tue, Oct 11, 2011 at 12:27:17PM +0200, David Täht wrote:
> > > On my list already would be "an analysis of the effects of broken sack
> > > processing on linux 2.4.24-3.1", of which I *think* I've captured
> > > multiple examples of in the raw traces I've been collecting for
> > > months... (so if anyone is interested in the raw data, I can provide)
> > 
> > Do you have any more information? The only thing I could find online was that
> > there were SACK issues that were supposed to be fixed by 2.6.16; nothing
> > about a fix in 3.1 or post-3.1.
> > 
> 
> Of course, instead of discussing all linux stuff privately, it would be
> good to discuss with linux network maintainers.
> 
> Or is the goal is to provide nice papers only ?
> 
> commit f779b2d60ab95c17f1e025778ed0df3ec2f05d75
> Author: Zheng Yan <zheng.z.yan@intel.com>
> Date:   Sun Sep 18 22:37:34 2011 -0400

Another fix (scheduled for linux-3.2 available in net-next tree :)

[ And some work is currently in progress to support RFC 5562 ]

commit 7a269ffad72f3604b8982fa09c387670e0d2ee14
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Thu Sep 22 20:02:19 2011 +0000

    tcp: ECN blackhole should not force quickack mode
    
    While playing with a new ADSL box at home, I discovered that ECN
    blackhole can trigger suboptimal quickack mode on linux : We send one
    ACK for each incoming data frame, without any delay and eventual
    piggyback.
    
    This is because TCP_ECN_check_ce() considers that if no ECT is seen on a
    segment, this is because this segment was a retransmit.
    
    Refine this heuristic and apply it only if we seen ECT in a previous
    segment, to detect ECN blackhole at IP level.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    CC: Jamal Hadi Salim <jhs@mojatatu.com>
    CC: Jerry Chu <hkchu@google.com>
    CC: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    CC: Jim Gettys <jg@freedesktop.org>
    CC: Dave Taht <dave.taht@gmail.com>
    Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/include/net/tcp.h b/include/net/tcp.h
index f357bef..702aefc 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -356,6 +356,7 @@ static inline void tcp_dec_quickack_mode(struct sock *sk,
 #define	TCP_ECN_OK		1
 #define	TCP_ECN_QUEUE_CWR	2
 #define	TCP_ECN_DEMAND_CWR	4
+#define	TCP_ECN_SEEN		8
 
 static __inline__ void
 TCP_ECN_create_request(struct request_sock *req, struct tcphdr *th)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index a5d01b1..5a4408c 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -217,16 +217,25 @@ static inline void TCP_ECN_withdraw_cwr(struct tcp_sock *tp)
 	tp->ecn_flags &= ~TCP_ECN_DEMAND_CWR;
 }
 
-static inline void TCP_ECN_check_ce(struct tcp_sock *tp, struct sk_buff *skb)
+static inline void TCP_ECN_check_ce(struct tcp_sock *tp, const struct sk_buff *skb)
 {
-	if (tp->ecn_flags & TCP_ECN_OK) {
-		if (INET_ECN_is_ce(TCP_SKB_CB(skb)->flags))
-			tp->ecn_flags |= TCP_ECN_DEMAND_CWR;
+	if (!(tp->ecn_flags & TCP_ECN_OK))
+		return;
+
+	switch (TCP_SKB_CB(skb)->flags & INET_ECN_MASK) {
+	case INET_ECN_NOT_ECT:
 		/* Funny extension: if ECT is not set on a segment,
-		 * it is surely retransmit. It is not in ECN RFC,
-		 * but Linux follows this rule. */
-		else if (INET_ECN_is_not_ect((TCP_SKB_CB(skb)->flags)))
+		 * and we already seen ECT on a previous segment,
+		 * it is probably a retransmit.
+		 */
+		if (tp->ecn_flags & TCP_ECN_SEEN)
 			tcp_enter_quickack_mode((struct sock *)tp);
+		break;
+	case INET_ECN_CE:
+		tp->ecn_flags |= TCP_ECN_DEMAND_CWR;
+		/* fallinto */
+	default:
+		tp->ecn_flags |= TCP_ECN_SEEN;
 	}
 }
 



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 12:13   ` Eric Dumazet
  2011-10-11 12:18     ` Eric Dumazet
@ 2011-10-11 12:40     ` David Täht
  1 sibling, 0 replies; 16+ messages in thread
From: David Täht @ 2011-10-11 12:40 UTC (permalink / raw)
  To: bloat, eric.dumazet

[-- Attachment #1: Type: text/plain, Size: 4023 bytes --]

On 10/11/2011 02:13 PM, Eric Dumazet wrote:
> Le mardi 11 octobre 2011 à 13:58 +0200, Steinar H. Gunderson a écrit :
>> On Tue, Oct 11, 2011 at 12:27:17PM +0200, David Täht wrote:
>>> On my list already would be "an analysis of the effects of broken sack
>>> processing on linux 2.4.24-3.1", of which I *think* I've captured
>>> multiple examples of in the raw traces I've been collecting for
>>> months... (so if anyone is interested in the raw data, I can provide)
>> Do you have any more information? The only thing I could find online was that
>> there were SACK issues that were supposed to be fixed by 2.6.16; nothing
>> about a fix in 3.1 or post-3.1.
>>
> Of course, instead of discussing all linux stuff privately, it would be
> good to discuss with linux network maintainers.
>
> Or is the goal is to provide nice papers only ?

hmm?

0) I know there are enough linux network maintainers on the bloat list
for me to not consider anything typed here private! If you would prefer
that the previous message had been sent more broadly (netdev?) please
feel free to forward.

1) Lord, no, I'm far more interested in Linux working well, and having a
short diagnose, fix, test cycle, than having nice papers. Staying within
2 kernel release cycles is fastly superior to dozens.

Having nice papers helps, however, particularly on problems that have
existed a long time, and can be analyzed - in particular - as to the
effect on what other datasets that occurred during this period. On my
bad days I think we're going to have to re-run the last decade's worth
of experiments on ECN, congestion control, AQMs, and wireless across
every protocol that has ever been experimented with until the
bufferbloat problem is thoroughly licked.

on my good days... well, I don't have a lot of good days

2) My problem with publishing data collected from various tcp traces
I've been collecting is that of preserving privacy and anonymity to the
end user from where I collected the traces. For example, I got a very
interesting trace today showing very interesting ipv6 sack-related
behavior from a friend of mine's home over free.fr - but I'd be very
reluctant to make that widely available without permission.

Now, I don't have that restriction on data collected from more public
places, or in my own tests of cerowrt - but I have to say that I have
mostly only seen lots of sacks over the LFN, where my data sets are more
limited, at present.

If you are interested in collecting your own data set,
jupiter.lab.bufferbloat.net is a cerowrt router located in bloatlab 1 at
ISC.org in san francisco.

http://www.bufferbloat.net/projects/cerowrt/wiki/BloatLab_1

and is running linux 3.04, with netperf 2.5 enabled for both IPv6 and
ipv4, with all the cerowrt related configuration changes to date. High
on my list is measuring lfn performance with the vastly decreased amount
of buffering presently in that system both for single and multiple
streams - and then move on to analyzing the newer AQMs now in Linux.

io.lab.bufferbloat.net is an x86 netsonar box, running 2.6.16 - netperf
2.5 as well - configured as per the shipping linux defaults.

I hope fairly soon, to update another router (europa) to the latest and
greatest tcp/sack code now that the kernel.org problems are settling
down. It is my hope that this is the last tcp-related issue that can
skew the results - and for all I know, without analysis, may not skew
the results...

We are still playing with nuttcp and iperf, and there are several
bufferbloat related changes in the next version of netperf's svn tree
that need to settle down some.

If there is more I can do in providing test facilities and valuable
feedback to the networking maintainers, please let me know.

4) I personally find sack very interesting in the case of wireless as it
could be used very effectively (or so I think) in reducing the amount of
needed packet aggregation in wireless-n - and thus retries and
buffering, and I'm glad to see people working on improving it.

-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [Bloat] the observed sack oddity
  2011-10-11 12:18     ` Eric Dumazet
@ 2011-10-11 13:09       ` David Täht
  2011-10-11 13:11         ` David Täht
                           ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: David Täht @ 2011-10-11 13:09 UTC (permalink / raw)
  To: bloat, eric.dumazet

[-- Attachment #1: Type: text/plain, Size: 759 bytes --]

I have put up screenshots of tcptrace -G and xplot.org's analysis of my
most recent capture of an ipv6 connection over freebox (wired) from a
debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
kernel (the aformentioned netsonar box) in redwood city, ca, both
running tcp cubic, over ipv6.

at first glance, it looked a lot like a classic bufferbloat trace, with
complete with periodic collapses and cubic increasing the window.

Then I noticed the sacks.

I also have a trace taken between the debloat-testing box and a cerowrt
box (running linux 3.04), both running westwood, which shows
considerably less undesirable behavior, and I will repeat that test with
cubic this evening and post additional data tomorrow morning.

-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
@ 2011-10-11 13:11         ` David Täht
  2011-10-11 13:33           ` Eric Dumazet
  2011-10-11 15:25         ` Justin McCann
                           ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: David Täht @ 2011-10-11 13:11 UTC (permalink / raw)
  To: bloat, eric.dumazet

[-- Attachment #1: Type: text/plain, Size: 937 bytes --]

Of course, it would help if I posted a link to the screenshots!

http://www.teklibre.com/~d/sackoddity/

On 10/11/2011 03:09 PM, David Täht wrote:
> I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> most recent capture of an ipv6 connection over freebox (wired) from a
> debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> kernel (the aformentioned netsonar box) in redwood city, ca, both
> running tcp cubic, over ipv6.
>
> at first glance, it looked a lot like a classic bufferbloat trace, with
> complete with periodic collapses and cubic increasing the window.
>
> Then I noticed the sacks.
>
> I also have a trace taken between the debloat-testing box and a cerowrt
> box (running linux 3.04), both running westwood, which shows
> considerably less undesirable behavior, and I will repeat that test with
> cubic this evening and post additional data tomorrow morning.
>


-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:11         ` David Täht
@ 2011-10-11 13:33           ` Eric Dumazet
  2011-10-11 13:51             ` David Täht
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Dumazet @ 2011-10-11 13:33 UTC (permalink / raw)
  To: David Täht; +Cc: bloat

Le mardi 11 octobre 2011 à 15:11 +0200, David Täht a écrit :
> Of course, it would help if I posted a link to the screenshots!
> 
> http://www.teklibre.com/~d/sackoddity/
> 
> On 10/11/2011 03:09 PM, David Täht wrote:
> > I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> > most recent capture of an ipv6 connection over freebox (wired) from a
> > debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> > kernel (the aformentioned netsonar box) in redwood city, ca, both
> > running tcp cubic, over ipv6.
> >
> > at first glance, it looked a lot like a classic bufferbloat trace, with
> > complete with periodic collapses and cubic increasing the window.
> >
> > Then I noticed the sacks.
> >
> > I also have a trace taken between the debloat-testing box and a cerowrt
> > box (running linux 3.04), both running westwood, which shows
> > considerably less undesirable behavior, and I will repeat that test with
> > cubic this evening and post additional data tomorrow morning.


Who is the sender ?

Is some WIFI involved ?

"netstat -s" on the receiver would help

This might be a truesize mismatch.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:33           ` Eric Dumazet
@ 2011-10-11 13:51             ` David Täht
  0 siblings, 0 replies; 16+ messages in thread
From: David Täht @ 2011-10-11 13:51 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: bloat

[-- Attachment #1: Type: text/plain, Size: 2049 bytes --]

On 10/11/2011 03:33 PM, Eric Dumazet wrote:
> Le mardi 11 octobre 2011 à 15:11 +0200, David Täht a écrit :
>> Of course, it would help if I posted a link to the screenshots!
>>
>> http://www.teklibre.com/~d/sackoddity/
>>
>> On 10/11/2011 03:09 PM, David Täht wrote:
>>> I have put up screenshots of tcptrace -G and xplot.org's analysis of my
>>> most recent capture of an ipv6 connection over freebox (wired) from a
>>> debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
>>> kernel (the aformentioned netsonar box) in redwood city, ca, both
>>> running tcp cubic, over ipv6.
>>>
>>> at first glance, it looked a lot like a classic bufferbloat trace, with
>>> complete with periodic collapses and cubic increasing the window.
>>>
>>> Then I noticed the sacks.
>>>
>>> I also have a trace taken between the debloat-testing box and a cerowrt
>>> box (running linux 3.04), both running westwood, which shows
>>> considerably less undesirable behavior, and I will repeat that test with
>>> cubic this evening and post additional data tomorrow morning.
>
> Who is the sender ?

The laptop was the netperf initiator, running 3.1.0-rc4-dbt23 #1 SMP
PREEMPT. This is basically 3.1-rc4 + the very few debloat-testing
patches which are all specific to wifi. I can easily test against
2.6.38, and with a little work, against linux git head, on the laptop.

sysctl on the laptop side is:

net.ipv4.tcp_ecn=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_dsack=1

net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.ipv4.tcp_rmem = 4096 87380 2097152
net.ipv4.tcp_wmem = 4096 65536 2097152

on the netsonar side remotely (2.6.16), it is whatever the defaults are.

Updating a server in bloatlab #1 in California is a little harder, as
you might imagine, but I should be able to get that done by next week.


> Is some WIFI involved ?

No.

> "netstat -s" on the receiver would help
>
I will rerun the tests.

> This might be a truesize mismatch.
>
>
I saw those patches being discussed but do not understand the implications.



-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
  2011-10-11 13:11         ` David Täht
@ 2011-10-11 15:25         ` Justin McCann
  2011-10-11 15:37         ` Justin McCann
  2011-10-13 18:23         ` Jan Ceuleers
  3 siblings, 0 replies; 16+ messages in thread
From: Justin McCann @ 2011-10-11 15:25 UTC (permalink / raw)
  To: David Täht; +Cc: bloat

On Tue, Oct 11, 2011 at 9:09 AM, David Täht <dave.taht@gmail.com> wrote:
> I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> most recent capture of an ipv6 connection over freebox (wired) from a
> debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> kernel (the aformentioned netsonar box) in redwood city, ca, both
> running tcp cubic, over ipv6.
>
> at first glance, it looked a lot like a classic bufferbloat trace, with
> complete with periodic collapses and cubic increasing the window.
>
> Then I noticed the sacks.

It took me a bit to figure out what was odd about the SACKs. I see:

- At the beginning, the sender is ramping up faster than the rate the
ACKs are coming in (white vs. green). I'd expect them both to have
near the same slope (and change in slope) if slow start wasn't going
overboard. Is this difference in slope pretty common in bufferbloat
traces?

- Sender marks the first CWR shortly after the first SACKs come in.
That looks like some sort of AQM kicked in and dropped packets at the
head (or middle) instead of drop-tail, so you get the SACKs. Since the
RTT is so large (France <-> CA), the retransmissions take a while to
get to the receiver (and the ACKs returned), so the green line stays
flat. But since packets are getting through (as seen by the SACKs),
the window keeps advancing.

Now I see the problem: Why doesn't the receiver cover the whole
missing range in each SACK, while the green line isn't advancing
(green == next seqno)? It does in the right hand side of
http://www.teklibre.com/~d/sackoddity/freeboxipv6zoomtosackwindow.png
but not at the beginning. If it was a dropped ACK, any one of the
later SACKs would have advanced the acknowledged window, but they
didn't--- the receiver isn't properly tracking the entire SACK
window(s).

Does that catch it?

     Justin

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
  2011-10-11 13:11         ` David Täht
  2011-10-11 15:25         ` Justin McCann
@ 2011-10-11 15:37         ` Justin McCann
  2011-10-13 18:23         ` Jan Ceuleers
  3 siblings, 0 replies; 16+ messages in thread
From: Justin McCann @ 2011-10-11 15:37 UTC (permalink / raw)
  To: David Täht; +Cc: bloat

On Tue, Oct 11, 2011 at 9:09 AM, David Täht <dave.taht@gmail.com> wrote:
> I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> most recent capture of an ipv6 connection over freebox (wired) from a
> debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> kernel (the aformentioned netsonar box) in redwood city, ca, both
> running tcp cubic, over ipv6.
>
> at first glance, it looked a lot like a classic bufferbloat trace, with
> complete with periodic collapses and cubic increasing the window.

A side question on the outstanding data graph:
  http://www.teklibre.com/~d/sackoddity/freeboxoutstandingdata.png
compared with the sequence number graph:
  http://www.teklibre.com/~d/sackoddity/freeboxipv6seq.png

Looking at
  http://www.tcptrace.org/manual/node15_tf.html
the red line is supposed to approximate the sender's congestion window.

If you line up the segment timeline and the outstanding data timeline,
it seems like the (red) instantaneous outstanding data line doesn't
take SACKed segments into account, and just uses the normal
acknowledgment number. So, once the early missing segment gets
acknowledged, you see a sharp dropoff in the red line---that last ACK
covers all of the already-received and SACKed segments as well.

I guess the red line includes packets in the network, plus held up in
the receiver's buffer. Would it be useful to have a line that
estimates what is currently in the network that doesn't include the
SACKed packets (i.e. the ones in the receive buffer that can't make it
to the application)?

     Justin

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-11 10:27 [Bloat] a flood of Bufferbloat-related papers David Täht
  2011-10-11 11:58 ` Steinar H. Gunderson
@ 2011-10-12  7:49 ` Lawrence Stewart
  2011-10-12  8:03   ` David Täht
  1 sibling, 1 reply; 16+ messages in thread
From: Lawrence Stewart @ 2011-10-12  7:49 UTC (permalink / raw)
  To: David Täht; +Cc: bloat

Hi David,

On 10/11/11 21:27, David Täht wrote:
> I sat down on my vacation last week thinking I would write up a review
> of progress since the bufferbloat effort began back in January, 2011. In

I think we should exercise a bit of caution in relation to saying things 
like "the bufferbloat effort started in Jan 2011" - the pre-2011 
literature alone (although not using the term "bufferbloat" 
specifically) extensively covers the issues, symptoms and a myriad of 
solutions for the problem.

> particular, I was interested in discovering to what extent we'd made the
> cross-over not just into other OSes besides Linux (e.g - BSD, windows)
> but into academia.

FWIW, I'm a FreeBSD kernel developer and a PhD student working on 
transport layer congestion control. I've been involved in doing a lot of 
experimental work related to bufferbloat (we refer to it as "collateral 
damage" in our papers) using FreeBSD and Linux.

> In the future I would certainly appreciate the authors of bufferbloat
> related/referencing papers to mention them on this mailing list *as*
> they are published!

Here are a few pointers to relevant papers done by people at the 
research centre where I'm studying:

"A rough comparison of NewReno, CUBIC, Vegas and ‘CAIA Delay Gradient’ 
TCP (v0.1)": http://caia.swin.edu.au/reports/110729A/CAIA-TR-110729A.pdf

"Revisiting TCP Congestion Control using Delay Gradients": 
http://www.springerlink.com/content/mq50134631115076/

"Multimedia-unfriendly TCP Congestion Control and Home Gateway Queue 
Management": http://dx.doi.org/10.1145/1943552.1943558

"Improved coexistence and loss tolerance for delay based TCP congestion 
control": http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5735714&tag=1

"Collateral Damage: The Impact of Optimised TCP Variants on Real-Time 
Traffic Latency in Consumer Broadband Environments": 
http://dx.doi.org/10.1007/978-3-642-01399-7_31


Off the top of my head, you should also check out the work done by Nick 
McKeown's group (although their focus has been on core routers): 
http://yuba.stanford.edu/buffersizing/

There's plenty of other relevant work that I can't think of specifically 
right now, but it's out there.

Cheers,
Lawrence

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] a flood of Bufferbloat-related papers
  2011-10-12  7:49 ` Lawrence Stewart
@ 2011-10-12  8:03   ` David Täht
  0 siblings, 0 replies; 16+ messages in thread
From: David Täht @ 2011-10-12  8:03 UTC (permalink / raw)
  To: Lawrence Stewart; +Cc: bloat

[-- Attachment #1: Type: text/plain, Size: 3169 bytes --]

On 10/12/2011 09:49 AM, Lawrence Stewart wrote:
> Hi David,
>
> On 10/11/11 21:27, David Täht wrote:
>> I sat down on my vacation last week thinking I would write up a review
>> of progress since the bufferbloat effort began back in January, 2011. In
>
> I think we should exercise a bit of caution in relation to saying
> things like "the bufferbloat effort started in Jan 2011" - the
> pre-2011 literature alone (although not using the term "bufferbloat"
> specifically) extensively covers the issues, symptoms and a myriad of
> solutions for the problem.
>

You are correct, I should have said 'bufferbloat.net effort', which got
off the ground in late january, 2011.

We had started on a collection of older papers on the wiki, starting
with rfc970 and working forward. Filling in the blanks between that (and
yes, we can go back further) and the present day is going to take some work!

>> particular, I was interested in discovering to what extent we'd made the
>> cross-over not just into other OSes besides Linux (e.g - BSD, windows)
>> but into academia.
>
> FWIW, I'm a FreeBSD kernel developer and a PhD student working on
> transport layer congestion control. I've been involved in doing a lot
> of experimental work related to bufferbloat (we refer to it as
> "collateral damage" in our papers) using FreeBSD and Linux.
>

More keywords to google for...

>> In the future I would certainly appreciate the authors of bufferbloat
>> related/referencing papers to mention them on this mailing list *as*
>> they are published!
>
> Here are a few pointers to relevant papers done by people at the
> research centre where I'm studying:
>
> "A rough comparison of NewReno, CUBIC, Vegas and ‘CAIA Delay Gradient’
> TCP (v0.1)": http://caia.swin.edu.au/reports/110729A/CAIA-TR-110729A.pdf
>
> "Revisiting TCP Congestion Control using Delay Gradients":
> http://www.springerlink.com/content/mq50134631115076/
>
> "Multimedia-unfriendly TCP Congestion Control and Home Gateway Queue
> Management": http://dx.doi.org/10.1145/1943552.1943558
>
> "Improved coexistence and loss tolerance for delay based TCP
> congestion control":
> http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5735714&tag=1
>
> "Collateral Damage: The Impact of Optimised TCP Variants on Real-Time
> Traffic Latency in Consumer Broadband Environments":
> http://dx.doi.org/10.1007/978-3-642-01399-7_31
>
>

I was aware of 2 of these, but not the others. I would very much like to
read the last in particular, but it doesn't appear to be publicly
available from a quick google.

(And thx for putting the refs into the wiki format!)

> Off the top of my head, you should also check out the work done by
> Nick McKeown's group (although their focus has been on core routers):
> http://yuba.stanford.edu/buffersizing/
>

I've read much of their work, and much of it does apply, but home
routers are different in significant ways that I hope to be talking
about at lincs in paris, oct 19...


> There's plenty of other relevant work that I can't think of
> specifically right now, but it's out there.
>

Thanks for the pointers... (all, keep 'em coming)

> Cheers,
> Lawrence


-- 
Dave Täht


[-- Attachment #2: dave_taht.vcf --]
[-- Type: text/x-vcard, Size: 214 bytes --]

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:dave.taht@gmail.com
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
                           ` (2 preceding siblings ...)
  2011-10-11 15:37         ` Justin McCann
@ 2011-10-13 18:23         ` Jan Ceuleers
  2011-10-13 18:27           ` Eric Dumazet
  3 siblings, 1 reply; 16+ messages in thread
From: Jan Ceuleers @ 2011-10-13 18:23 UTC (permalink / raw)
  To: bloat

On 10/11/2011 03:09 PM, David Täht wrote:
> I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> most recent capture of an ipv6 connection over freebox (wired) from a
> debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> kernel (the aformentioned netsonar box) in redwood city, ca, both
> running tcp cubic, over ipv6.
>
David, Eric,

Since the both of you are in France, would it be an idea to get together?

Cheers, Jan

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [Bloat] the observed sack oddity
  2011-10-13 18:23         ` Jan Ceuleers
@ 2011-10-13 18:27           ` Eric Dumazet
  0 siblings, 0 replies; 16+ messages in thread
From: Eric Dumazet @ 2011-10-13 18:27 UTC (permalink / raw)
  To: Jan Ceuleers; +Cc: bloat

Le jeudi 13 octobre 2011 à 20:23 +0200, Jan Ceuleers a écrit :
> On 10/11/2011 03:09 PM, David Täht wrote:
> > I have put up screenshots of tcptrace -G and xplot.org's analysis of my
> > most recent capture of an ipv6 connection over freebox (wired) from a
> > debloat-testing kernel here in france (pre 3.1 by a lot) to a 2.6.16
> > kernel (the aformentioned netsonar box) in redwood city, ca, both
> > running tcp cubic, over ipv6.
> >
> David, Eric,
> 
> Since the both of you are in France, would it be an idea to get together?
> 

Hello Jan

I actually met David two days ago in Paris, since I went there for a
business trip. It was a great time !

By the way, I suggest continuing this discussion privately ;)

See you
Eric



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-10-13 18:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-11 10:27 [Bloat] a flood of Bufferbloat-related papers David Täht
2011-10-11 11:58 ` Steinar H. Gunderson
2011-10-11 12:13   ` Eric Dumazet
2011-10-11 12:18     ` Eric Dumazet
2011-10-11 13:09       ` [Bloat] the observed sack oddity David Täht
2011-10-11 13:11         ` David Täht
2011-10-11 13:33           ` Eric Dumazet
2011-10-11 13:51             ` David Täht
2011-10-11 15:25         ` Justin McCann
2011-10-11 15:37         ` Justin McCann
2011-10-13 18:23         ` Jan Ceuleers
2011-10-13 18:27           ` Eric Dumazet
2011-10-11 12:40     ` [Bloat] a flood of Bufferbloat-related papers David Täht
2011-10-11 12:17   ` David Täht
2011-10-12  7:49 ` Lawrence Stewart
2011-10-12  8:03   ` David Täht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox