I am interested in the reduction of cwnd that occurs during recovery phase. I have been looking at tcp_cwnd_down which is called by tcp_fastretrans_alert which is in turn called by tcp_ack. This method seems to decrement snd_cwnd on each second ack. I have seen larger decreases than this provides for, and I was wondering how that could happen?