Subject: Fw: [Bug 195617] New: TCP may send small segments limited to initial window size

From: Stephen Hemminger <[email-masked]>
Date: Sat, 29 Apr 2017 23:01:15 -0700

Begin forwarded message:

Date: Sun, 30 Apr 2017 00:50:22 +0000
From: [email-masked]
To: [email-masked]
Subject: [Bug 195617] New: TCP may send small segments limited to initial window size

https://bugzilla.kernel.org/show_bug.cgi?id=195617

            Bug ID: 195617
           Summary: TCP may send small segments limited to initial window
                    size
           Product: Networking
           Version: 2.5
    Kernel Version: 4.9.24
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: IPV4
          Assignee: [email-masked]
          Reporter: [email-masked]
        Regression: No

Created attachment 256141
  --> https://bugzilla.kernel.org/attachment.cgi?id=256141&action=edit  
packet trace

I am seeing what I believe is faulty behavior when a Linux client connects to a
TCP/IPv4 server which advertises a very small initial window. After the client
sends a small segment limited to this small window, the server ACKs the data
and extends the window considerably, but the client proceeds to send very small
segments.

Here is a summary of the packets:
- Client: SYN
- Server: SYN,ACK,Win=1
- Client: ACK
- Client: ACK,Data=1B
- Server: ACK,Win=49984
- Client: ACK,Data=47B
- Client: ACK,Data=48B
- Client: ACK,Data=48B
- Client: ACK,Data=48B
...

This example was with initially advertised window (WIN) equal to 1, but
generally it appears that Linux will limit outgoing segments to no more than
max(48,WIN).

I have tested the server with a Windows 10 client which does not have this
problem, the client starts sending fully sized segments when the window is
extended.

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