Wireshark-dev: Re: [Wireshark-dev] why is the ack number of several ack frame in tcp transmissi
From: John Sullivan <jsethdev@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 7 Apr 2014 21:48:13 +0100
On Monday, April 7, 2014, 2:33:08 PM, "ÎÒÏë²»ÎÞÁÄ" wrote:
> why is the ack number of several ack frame in tcp transmission the same?Is that the ack of several tcp segments?if so,how to calculate the bytes of data that been received every time?

Two possible reasons:

1) The data segments got duplicated in transit, or retransmitted due
to the sender not receiving an ACK in what it considered a reasonable
time. The receiver may ack each duplicate if they all do eventually
arrive.

2) The data segments got re-ordered in transit, so the receiver got a
segment later than the one it was expecting next. These days it can
reply using Selective Acknowledgement, where the ACK field itself
contains the latest *contiguously* received sequence number (so will
appear to stay the same), but the SACK field (shown under the TCP
Options section in Wireshark) show what other non-contiguous data it
has received. Then if the sender later decides it does need to
retransmit it only has to "fill in the gaps" rather than send the
entire window from the ACK point on. (I believe Wireshark displays
this as a "Duplicate ACK" rather than out-of-order or such, or at
least used to, apparently it doesn't notice the SACK options changing
each time.)

John
-- 
Dead stars still burn