[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns-users] TCP Reno (bug?)
I'm doing some experiments with various flavours of TCP and have come
across an oddity (ns 2.1b5). I wonder if anyone could enlighten me or
comment?
With a simple network of one sender, one receiver, 3 links of 2Mb, 1Mb,
2Mb and 5ms delays between them. I set up an FTP over Reno source from
Tx to Rx.
Monitoring the 'cwnd' of Reno, it goes through slow start, into linear
increase... and carries on going. Dumped data follows:
-------------------------------------------------
t: 0.100000 seqno: 0 cwnd: 1.000000
t: 0.146640 seqno: 1 cwnd: 2.000000
t: 0.146640 seqno: 2 cwnd: 2.000000
t: 0.193280 seqno: 3 cwnd: 3.000000
t: 0.193280 seqno: 4 cwnd: 3.000000
t: 0.201280 seqno: 5 cwnd: 4.000000
t: 0.201280 seqno: 6 cwnd: 4.000000
t: 0.239920 seqno: 7 cwnd: 5.000000
t: 0.239920 seqno: 8 cwnd: 5.000000
t: 0.247920 seqno: 9 cwnd: 6.000000
t: 0.247920 seqno: 10 cwnd: 6.000000
t: 0.255920 seqno: 11 cwnd: 7.000000
t: 0.255920 seqno: 12 cwnd: 7.000000
t: 0.263920 seqno: 13 cwnd: 8.000000
t: 0.263920 seqno: 14 cwnd: 8.000000
t: 0.286560 seqno: 15 cwnd: 9.000000
t: 0.286560 seqno: 16 cwnd: 9.000000
t: 0.294560 seqno: 17 cwnd: 10.000000
t: 0.294560 seqno: 18 cwnd: 10.000000
t: 0.302560 seqno: 19 cwnd: 11.000000
t: 0.302560 seqno: 20 cwnd: 11.000000
t: 0.310560 seqno: 21 cwnd: 12.000000
t: 0.310560 seqno: 22 cwnd: 12.000000
t: 0.318560 seqno: 23 cwnd: 13.000000
t: 0.318560 seqno: 24 cwnd: 13.000000
t: 0.326560 seqno: 25 cwnd: 14.000000
t: 0.326560 seqno: 26 cwnd: 14.000000
t: 0.334560 seqno: 27 cwnd: 15.000000
t: 0.334560 seqno: 28 cwnd: 15.000000
t: 0.342560 seqno: 29 cwnd: 16.000000
t: 0.342560 seqno: 30 cwnd: 16.000000
t: 0.350560 seqno: 31 cwnd: 17.000000
t: 0.350560 seqno: 32 cwnd: 17.000000
[...]
t: 24.334560 seqno: 3033 cwnd: 79.946146
t: 24.342560 seqno: 3034 cwnd: 79.958654
t: 24.350560 seqno: 3035 cwnd: 79.971161
t: 24.358560 seqno: 3036 cwnd: 79.983665
t: 24.366560 seqno: 3037 cwnd: 79.996168
t: 24.374560 seqno: 3038 cwnd: 80.008668
t: 24.382560 seqno: 3039 cwnd: 80.021167
t: 24.390560 seqno: 3040 cwnd: 80.033664
t: 24.398560 seqno: 3041 cwnd: 80.046158
[...]
t: 904.934560 seqno: 113108 cwnd: 475.965514
t: 904.942560 seqno: 113109 cwnd: 475.967615
t: 904.950560 seqno: 113110 cwnd: 475.969716
t: 904.958560 seqno: 113111 cwnd: 475.971817
t: 904.966560 seqno: 113112 cwnd: 475.973918
-------------------------------------------------
Having run quite lengthy simulations of this type, the 'cwnd' variable
just keeps increase as there are no losses or timeouts to affect it. Is
anyone able to explain why this is, and why it does not seem to
recognise the "hard limit" of available bandwidth and exhibit a
"sawtooth" profile? (where cwnd increases to the point of loss or
timeout and drops back to 1/2*cwnd)
Running the same experiment with TCP Vegas shows predictable results.
In this case, cwnd fluctuates around a value of 7, which seems correct
for this capacity link.
any information greatly appreciated.
Rik Wade
--
ATM-MM Group
School of Computer Studies
University of Leeds
UK