[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ns] when dupACK keeps arriving, TCP Reno doesn't send packetseven though there are no outstanding packets. Why?



Hi,

> At time 922.40464, cwnd 18 --> 9, 18 outstanding pkts,
> At time 922.75664, dupAck 10, 8 outstanding pkts, so TCp could send one
> pkt, which did after recv dupACK 10.

At this point TCP is in fast recovery, and is using an inflated window
(each dupack increases the window by 1). For "regular" purposes, all
packets are still outstanding, you have to wait for a normal ack to go
back to the usual behavior.

> So, every dupACK recved, one packet is sent out. cwnd doesn't change
> until a real ACK at time 923.17264. 8 outstanding pkts < cwnd==9. 
> But TCP didn't send any pkts even dupACK 1, 2 and 3 arrives. 

So at this point you still have 17842 - 17819 = 23 packets outstanding
while the window was deflated back to 9. The few dupacks that are received
from now on won't be enough to inflate the window past that number.
Therefore, TCP has to wait for the ack of 17842 before it can send
anything. At that time, the window is 4 and the outstanding packets are 0
since they were all acknowledged which explains the 4 packet burst. Note
that 2 packets seem to have been lost, 17817 and 17819.

I hope that was helpful,

Wael

> At time 923.52464, cwnd 9 --> 4, ssthresh 9 -->4, 
> 
> When dupack 6 arrives at time 923.68464, there are less than 4 outstanding
> pkt, TCP should be able to send at least one pkt out.
>  
> But TCP wait until time 924.08464, at the time, 0 outstanding pkts,
> it sends a burst of 4 pkts.
> 
> The reaction to dupacks between 922.40464 and 923.52464 is different
> from the reactions to dupACKs between 923.52464 and 924.08464.  
> 
> That is my question. When outstanding pkts are less than pkts or equal to
> 0, TCP should be able to send pkts. It does in the first period, it
> doesn't in the second period. The only difference I can see is that
> ssthesh decreases in the second period.
> 
> thanks,
> 
> 
> yingfei
> 
> 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> The following is part of the  trace
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> 922.10064 0  1  1  1  cwnd_ 18.701
> 922.10064 0  1  1  1  maxseq_ 17832
> 922.14864 0  1  1  1  ack_ 17815
> 922.14864 0  1  1  1  cwnd_ 18.755
> 922.14864 0  1  1  1  maxseq_ 17833
> 922.19664 0  1  1  1  ack_ 17816
> 922.19664 0  1  1  1  cwnd_ 18.808
> 922.19664 0  1  1  1  maxseq_ 17834
> 922.22864 0  1  1  1  ack_ 17817
> 922.22864 0  1  1  1  cwnd_ 18.861
> 922.22864 0  1  1  1  maxseq_ 17835
> 922.29264 0  1  1  1  dupacks_ 1
> 922.35664 0  1  1  1  dupacks_ 2
> 922.40464 0  1  1  1  dupacks_ 3
> 922.40464 0  1  1  1  cwnd_ 9.000 
> 922.45264 0  1  1  1  dupacks_ 4
> 922.50064 0  1  1  1  dupacks_ 5
> 922.56464 0  1  1  1  dupacks_ 6
> 922.61264 0  1  1  1  dupacks_ 7
> 922.66064 0  1  1  1  dupacks_ 8
> 922.72464 0  1  1  1  dupacks_ 9
> 922.75664 0  1  1  1  dupacks_ 10
> 922.75664 0  1  1  1  maxseq_ 17836
> 922.78864 0  1  1  1  dupacks_ 11
> 922.78864 0  1  1  1  maxseq_ 17837
> 922.83664 0  1  1  1  dupacks_ 12
> 922.83664 0  1  1  1  maxseq_ 17838
> 922.88464 0  1  1  1  dupacks_ 13
> 922.88464 0  1  1  1  maxseq_ 17839
> 922.94864 0  1  1  1  dupacks_ 14
> 922.94864 0  1  1  1  maxseq_ 17840
> 922.99664 0  1  1  1  dupacks_ 15
> 922.99664 0  1  1  1  maxseq_ 17841
> 923.02864 0  1  1  1  dupacks_ 16
> 923.02864 0  1  1  1  maxseq_ 17842
> 923.17264 0  1  1  1  dupacks_ 0
> 923.17264 0  1  1  1  ack_ 17819
> 923.17264 0  1  1  1  cwnd_ 9.111 
> 923.42864 0  1  1  1  dupacks_ 1
> 923.47664 0  1  1  1  dupacks_ 2
> 923.52464 0  1  1  1  dupacks_ 3
> 923.52464 0  1  1  1  ssthresh_ 4
> 923.52464 0  1  1  1  cwnd_ 4.000 
> 923.57264 0  1  1  1  dupacks_ 4
> 923.63664 0  1  1  1  dupacks_ 5
> 923.68464 0  1  1  1  dupacks_ 6
> 923.71664 0  1  1  1  dupacks_ 7
> 924.08464 0  1  1  1  dupacks_ 0
> 924.08464 0  1  1  1  ack_ 17842
> 924.08464 0  1  1  1  cwnd_ 4.250 
> 924.08464 0  1  1  1  maxseq_ 17843
> 924.08464 0  1  1  1  maxseq_ 17844
> 924.08464 0  1  1  1  maxseq_ 17845
> 924.08464 0  1  1  1  maxseq_ 17846
> 924.48464 0  1  1  1  ack_ 17843
> 924.48464 0  1  1  1  rtt_ 0.400 
> 924.48464 0  1  1  1  srtt_ 0.600 
> 924.48464 0  1  1  1  cwnd_ 4.485 
> 924.48464 0  1  1  1  maxseq_ 17847
> 924.50064 0  1  1  1  ack_ 17844
> 924.50064 0  1  1  1  cwnd_ 4.708 
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++