Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Aug 2022 06:29:54 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 265588] [TCP] - tcp send a retransmission identical sequence number packet with different payload
Message-ID:  <bug-265588-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D265588

            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: bugs@FreeBSD.org
          Reporter: keyong.sun@smartx.com

Created attachment 235649
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D235649&action=
=3Dedit
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 follow=
ing
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=E2=
=80=A6]

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, w=
ith
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 .... =3D 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 .... =3D 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 clie=
nt
side reassemble the total payload with wrong content.

Is this expect behavior or a bug in the network stack handle the
retransmission?

thx.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-265588-227>