https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265588
Bug ID: 265588
Summary: [TCP] - tcp send a retransmission identical sequence
number packet with different payload
Product: Base System
Version: 13.1-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: [email protected]
Reporter: [email protected]
Created attachment 235649
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=235649&action=edit
packet capture with identical sequence
Recently I test the nas deployed on the freeBSD 13.1-RC6 os as server, use the
client try to read a lager data such as 13k.
The server try to split the 13k data as several segment, such as the following
tcpdump output:
[21 Reassembled TCP Segments (131180 bytes): #2(15928), #23(2896), #27(5792),
#29(7240), #31(2896), #33(7240), #35(5792), #37(5792), #39(10136), #41(7240),
#43(2896), #45(5792), #47(5792), #49(4344), #51(7240), #62(1448), #66(1448),
#55(724]
[Frame: 2, payload: 0-15927 (15928 bytes)]
[Frame: 23, payload: 15928-18823 (2896 bytes)]
[Frame: 27, payload: 18824-24615 (5792 bytes)]
[Frame: 29, payload: 24616-31855 (7240 bytes)]
[Frame: 31, payload: 31856-34751 (2896 bytes)]
[Frame: 33, payload: 34752-41991 (7240 bytes)]
[Frame: 35, payload: 41992-47783 (5792 bytes)]
[Frame: 37, payload: 47784-53575 (5792 bytes)]
[Frame: 39, payload: 53576-63711 (10136 bytes)]
[Frame: 41, payload: 63712-70951 (7240 bytes)]
[Frame: 43, payload: 70952-73847 (2896 bytes)]
[Frame: 45, payload: 73848-79639 (5792 bytes)]
[Frame: 47, payload: 79640-85431 (5792 bytes)]
[Frame: 49, payload: 85432-89775 (4344 bytes)]
[Frame: 51, payload: 89776-97015 (7240 bytes)]
[Frame: 62, payload: 94120-95567 (1448 bytes)]
[Frame: 66, payload: 95568-97015 (1448 bytes)]
[Frame: 55, payload: 97016-104255 (7240 bytes)]
[Frame: 57, payload: 104256-121631 (17376 bytes)]
[Frame: 67, payload: 121632-127423 (5792 bytes)]
[Frame: 68, payload: 127424-131179 (3756 bytes)]
[Segment count: 21]
[Reassembled TCP length: 131180]
[Reassembled TCP Data:
80020068bfece9f500000001000000000000000000000000000000000000000000000000…]
But the very strange thing is in the packet tcpdump, there are two identical
sequence segmentations with different payload, the packet Id #62 and #63, with
the same sequence #2302694791, but the content in the payload beginning is
different, the #63 is a retransmission packet:
#62:
Transmission Control Protocol, Src Port: 2049, Dst Port: 703, Seq: 129369, Ack:
229, Len: 1448
Sequence Number: 129369 (relative sequence number)
Sequence Number (raw): 2302694791
[Next Sequence Number: 130817 (relative sequence number)]
Acknowledgment Number: 229 (relative ack number)
Acknowledgment number (raw): 3290470326
1000 .... = Header Length: 32 bytes (8)
Flags: 0x010 (ACK)
Window: 29128
[Calculated window size: 29128]
TCP payload (1448 bytes)
[Reassembled PDU in frame: 68]
#63:
Transmission Control Protocol, Src Port: 2049, Dst Port: 703, Seq: 129369, Ack:
229, Len: 27512
Sequence Number: 129369 (relative sequence number)
Sequence Number (raw): 2302694791
[Next Sequence Number: 156881 (relative sequence number)]
Acknowledgment Number: 229 (relative ack number)
Acknowledgment number (raw): 3290470326
1000 .... = Header Length: 32 bytes (8)
Flags: 0x010 (ACK)
Window: 29128
Retransmitted TCP segment data (27512 bytes)
Because of the identical sequence segments with different payload, the client
side reassemble the total payload with wrong content.
Is this expect behavior or a bug in the network stack handle the
retransmission?
thx.
--
You are receiving this mail because:
You are the assignee for the bug.