http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=40929
User: grahamb
Date: 2012/02/08 03:52 AM
Log:
Fixed bug with calculation of bytes in flight.
A corner case was posted to the Q&A site showing incorrect calculation of bytes in flight (http://ask.wireshark.org/questions/8843/bytes-in-flight-problems-with-retransmissions)
The capture in question has a tcp segment (frame 12) that is a retransmission of unacked earlier data (frames 4, 9, 10) and also contains some new data. Eventually an ACK is received for the earlier segments (frame 16) but the code doesn't remove frame 12 from the linked list of unacked segments because it extends past the received ACK. When more data is received in frame 17, the bytes in flight is calculated from the start of frame 12 rather than from the unacked portion of it, leading to a larger incorrect value.
The change simply updates the starting sequence number in the unacked segment list for any partially acked segment to be the start of unacked data.
The capture in question now shows correct information for bytes in flight, and hopefully the nature of the change won't cause issues elsewhere.
Directory: /trunk/epan/dissectors/
Changes Path Action
+5 -0 packet-tcp.c Modified