Re: [tcpm] Tuning TCP parameters for the 21st century

Michael Welzl <> Thu, 16 July 2009 08:39 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 38C163A6A17 for <>; Thu, 16 Jul 2009 01:39:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id CkyYgJkw3IQ1 for <>; Thu, 16 Jul 2009 01:39:24 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 6DF4C28C150 for <>; Thu, 16 Jul 2009 01:39:06 -0700 (PDT)
Received: from ([]) by with esmtp (Exim 4.69) (envelope-from <>) id 1MRMV7-0006G6-Kt for; Thu, 16 Jul 2009 10:39:37 +0200
Received: from ([]) by with esmtp (Exim 4.69) (envelope-from <>) id 1MRMV7-0000PD-AG for; Thu, 16 Jul 2009 10:39:37 +0200
From: Michael Welzl <>
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <> <>
Content-Type: text/plain
Date: Thu, 16 Jul 2009 10:39:49 +0200
Message-Id: <1247733589.4184.56.camel@localhost.localdomain>
Mime-Version: 1.0
X-Mailer: Evolution 2.10.3 (2.10.3-10.fc7)
Content-Transfer-Encoding: 7bit
X-UiO-Ratelimit-Test: rcpts/h 1 msgs/h 1 sum rcpts/h 1 sum msgs/h 1 total rcpts 1922 max rcpts/h 33 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=0.0, required=5.0, autolearn=disabled, none, uiobl=NO, uiouri=_URIID_)
X-UiO-Scanned: D2667986F0AD802F0AC51879019E3ED1B500ED21
X-UiO-SPAM-Test: remote_host: spam_score: 0 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 470 max/h 15 blacklist 0 greylist 0 ratelimit 0
Subject: Re: [tcpm] Tuning TCP parameters for the 21st century
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 16 Jul 2009 08:39:25 -0000

> > - but what about retransmitting SYN/ACKs faster?
> > Since the other side already sent a SYN, it probably
> > isn't overloaded
> That presumes the other side already sent a SYN and it's been received,
> and that the SYN/ACK is what's getting lost/delayed/retransmitted.  If
> not, that won't help.

Right -

> First find where things are going wrong empirically ;-)

We've done that. See, for example, fig. 2 (a) of
(page 7 of the pdf)

Since our goal in this paper was to document general failures
of connection setup, we did not strictly split our results
into the case of lost SYNs or lost SYN/ACKs in it.
Section 3 (end of page 3 / beginning of page 4) explains
how lost SYN/ACKs were incorporated in our measurements.

This paper is based on data produced by a student. The
data are more thoroughly documented in his (alas, German)
bachelor thesis. This document is here:
and the most relevant information is table 2 on page 47.
(Table 1 is similar, just for SYNs, not SYN/ACKs).

If you look at it, with or without German knowledge
you will be able to see the connection to table 1 in
the paper, where we exchanged columns with lines and
omitted some details - apparently just the crucial
ones  :-(    Anyway, the listed measurements are just
the same, and hence you can read the details in the
paper if you're interested in how we obtained our

Table 2 on page 47 of the bachelor thesis has several
details about duplicate SYN/ACKs that we've seen,
e.g. classified by eventually successful and unsuccessful
connections. As a quick summary, in 3432744 connection
attempts, we have seen 56586 duplicate SYN/ACKs in total
(this is a cumulative number, i.e. 4 SYN/ACKs are counted
as 3). Counting only the occurrence of duplicate SYN/ACKs,
we saw them for 0,55% of the 3432744 connection attempts.
In general, the difference between duplicate SYN/ACK
occurrences and duplicate SYN occurrences is negligible
in our measurements.

As I just looked at the data again, I noticed a mistake:
in the paper, we wrote that the problem only happens for
around 0.5% of the connections, but this is really only
from the SYN table, not the SYN/ACK table in the bachelor
thesis. The SYN/ACK table covers the same measurement sets.
Hence, in total, it seems that we also saw > 1% lost SYNs
*or* SYN/ACKs, which exactly matches what Jerry Chu said.
BTW I maintain a small website about the whole thing: