Hi,

Alexey Kuznetsov wrote:

Condition triggering start of fast retransmit is the same.
The behaviour while retransmit is different. FACKless code
behaves more like NewReno.
Ok, that is a good point!! Now at least I can convince myself the CDFs for the first retransmissions showing that SACK leads to earlier retransmissions than no SACK are not wrong....and I can even convince myself that this is the real reason behind sack/fack's performance degredation for the case of no timestamps,:-)... ...

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. :-)

yeah, that was what confuses me the most... in
www.kom.auc.dk/~oumer/ret_vs_download.pdf
I have a plot of the summary of runs of two hundrend runs for the four combinations of SACK(ON/OFF), timestamps(ON/OFF) I just collected the retransmission from each run, and averaged the download time for each retransmission count..... I see no clear pattern...so that was why I was focusing more on when retransmissions are triggered rather than how many of them are they...because first, the earlier you are in the fast recovery phase (if you dont revert it ) the more time you spend on congestion avoidance, and it hurts the throughput quite a lot, also, the number of times you enter fast retransmit is more harmful than that of the number of retransmissions because more unncessary retransmissions during a fast recovery costs some bandwidth, but it doesnt damage the "future" of the connection as much as a retransmission that drives tcp into fast recovery....

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.

Hmmm... I dont understand this....so if reording can be detected, (i.e we use timestamps, DSACK), the dupthreshold is increased temporarily? Ok this adds to the explanation of why the retransmissions are less in the timestamp case than in the non timestamp case (in addition to the fact that with timestamps, we get out of fast recovery earlier than non timestamps case, and hence also less retransmissions)...but what I was referring to was if you use timestamps then why the increase in the number of retransmissions when we use FACK, SACK or DSACK as compared to the no SACK case...Is this dupthreshold increase documented somewhere properly? in the linux congestion paper by you and Pasi , you mention it briefly in section 5 "linux fast recovery does not fully follow RFC 2582.. the sender adjusts the threshold for triggering fast retransmit dynamically, based on the observerd reordering in the network..." but it doesnt exactly say how this dynamic adjustment is done ....

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.
Thanks! it is very clear now.! but it is basically the same effect (for the explanation that I am seeking)...as the trace you quoted, right, two duplicate acks leading to retransmission....

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. :-)
Ok, for my studies it shouldnt matter because I am using the buggy code on both the sender and receiver.. :-) (though I dont understand what this bug you are referring to is about :-)....

Alexey


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to