Bug 1506 - data segment which is piggybacking acknowledgement should not be considered to be a duplicate ack.
data segment which is piggybacking acknowledgement should not be considered t...
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: tcp
ns-3.15
All All
: P5 normal
Assigned To: Brian Swenson
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-18 12:42 UTC by Brian Swenson
Modified: 2012-09-20 10:20 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brian Swenson 2012-09-18 12:42:50 UTC
Reported by Ville Saarinen

I just compared some live network TCP traffic to my simulated traffic and
discovered a weird issue with TCP.
It seems that retransmissions are triggered every time three segments with
same ack values are received, even if the segment contains data.
However, as far as I understood the TCP specifications, data segment which
is piggybacking acknowledgement should not be considered to be a duplicate
ack.
This "feature" causes quite many retransmissions, in case that the data
transfer is bidirectional.

For example, let's say we have endpoints A and B, and B sends approximately
three times more much TCP segments than A. Now, if A sends a data segment
to B, B doesn't send individual ack, but instead it acks the packet by
sending the acknowledgement piggybacked with the data segments. Now, if B
sends 3 data segments with the same ack number, and these segment reach A
not until A sends new segment with new sequence number, A thinks that
there's a lost packet and triggers a retransmission.
Comment 1 Brian Swenson 2012-09-20 10:20:05 UTC
fixed:  changeset 9078:11ac313c0610