I was looking at some traces and couldn't figure out why I was seeing duplicate ACKs when I knew that packets were not getting re-ordered or lost. Tcptrace reported these as duplicate ACKs, but there were no retransmissions reported, even though there were several instances of 3 duplicate ACKs.
Explanation Below is a partial output of the tcpdump.
Notice that there are 2 ACKs for segments 27361 and 33121. When these are observed, the sender is sending packets faster than the receiver is processing them. A buffer is building up at the receiver. When the application grabs packets, space in the buffer is freed, and the receiver advertises a larger window to the sender.