From: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
To: Oumer Teyeb <oumer@kom.aau.dk>
Cc: netdev@vger.kernel.org
Subject: Re: Weird TCP SACK problem. in Linux...
Date: Wed, 19 Jul 2006 19:49:34 +0400 [thread overview]
Message-ID: <20060719154934.GA29877@ms2.inr.ac.ru> (raw)
In-Reply-To: <44BE498F.9070001@kom.aau.dk>
HellO!
> IsLost (SeqNum):
> This routine returns whether the given sequence number is
> considered to be lost. The routine returns true when either
> DupThresh discontiguous SACKed sequences have arrived above
> 'SeqNum' or (DupThresh * SMSS) bytes with sequence numbers greater
> than 'SeqNum' have been SACKed. Otherwise, the routine returns
> false.
It is not used. The metric is just distance between snd.una and
the most forward sack.
It can be changed, but, to be honest, counting "discontiguous SACked sequences"
looks really weird and totally unjustified.
You can look for function tcp_time_to_recover() and replace
tcp_fackets_out(tp) > tp->reordering with something like
tp->sacked_out+1 > tp->reordering. It is not so weird as rfc
recommends, but it should make some difference.
> so you are saying, it doesnt matter whether I disable FACK or not, it is
> basically set by default?
Condition triggering start of fast retransmit is the same.
The behaviour while retransmit is different. FACKless code
behaves more like NewReno.
> and it is disabled only when reordering is detected (and this is done
> either through timestamps or DSACK, right?)...
> so if neither DSACK and timestamps are enabled we are unable to detect
> disorder, so basically there should be no difference between SACK and
> FACK, cause it is always FACK used... and that seems to make sense from
> the results I have
Yes. But FACKless tcp still retransmits less aggressively.
> the # of retransmissions increases as shown in the second figure? isnt
> that odd? shouldnt it be the other way around?
The most odd is that I see no correlation between #of retransmits
and download time in you graphs. Actually, the correlation is negative. :-)
> Also why does the # retransmissions in the timestamp case increases when
> we use SACK/FACK as compared with no SACK case?
Excessive retransmissions still happen. Undoing just restores cwnd
and tries to increase reordering metric to avoid false retransmits.
> This one , I dont think I understood you. Could you please make it a bit
> more clearer?
1. Suppose, some segments, but not all, were delayed.
2. Senders sees dupack with a SACK. It is the first, SACK allows to open
window for one segment, you send one segment with snd.nxt.
3. Receivers receives it before delayed segments arrived.
4. When senders sees this SACK, it assumes that all the delayed
segments are lost.
> OK ...but if timestamps are enabled, then I just couldnt figure out the
> use of DSACK, can it tell us something more than we can find using
> timestamps??
It depends. Normally, no. If the network is fast, timestamps are just
too coarse to detect redundant retransmissions.
Plus, the heuristcs based on timestamps essentially relies on a bug
in our timestamps processing code. Another side could have it fixed. :-)
Alexey
next prev parent reply other threads:[~2006-07-19 15:49 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-18 19:38 Weird TCP SACK problem. in Linux Oumer Teyeb
2006-07-19 9:38 ` Xiaoliang (David) Wei
2006-07-19 10:00 ` Oumer Teyeb
2006-07-19 13:27 ` Alexey Kuznetsov
2006-07-19 15:02 ` Oumer Teyeb
2006-07-19 15:49 ` Alexey Kuznetsov [this message]
2006-07-19 16:32 ` Oumer Teyeb
2006-07-19 17:32 ` Oumer Teyeb
2006-07-20 15:41 ` Oumer Teyeb
2006-07-20 23:23 ` Alexey Kuznetsov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060719154934.GA29877@ms2.inr.ac.ru \
--to=kuznet@ms2.inr.ac.ru \
--cc=netdev@vger.kernel.org \
--cc=oumer@kom.aau.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).