IBM Support

PI65912: POTENTIAL FOR AN INCORRECT TCP WINDOW SIZE TO BE SENT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • .
    When the TCP Receive Buffer size being used for a connection
    (either selected by the application via a setsockopt() call
    setting SO_RCVBUF or by the configured TCPRCVBUFRSIZE) is larger
    than half of the configured TCPMAXRCVBUFRSIZE value, the
    advertised TCP Window size in window updates can be
    significantly larger than they should be.  This can cause the
    remote system to send data beyond the correct window size.  In
    the worst case, this can cause disruptions when this system is
    receiving high rates of inbound data and the associated
    application is not reading the data as fast as it is arriving.
    
    Other symptoms:
    
     - In a packet trace, the unsolicited window updates sent by
       this system when the application reads a significant amount
       of data will have a large jump in the window size.  But the
       next ACK in response to data arrival will have a window size
       reduction that is larger than the amount of data that has
       arrived.
    
     - If the sender exceeds the actual window size (due to
       receiving the incorrectly large window), those packets will
       be discarded.  A NETSTAT STATS PROTOCOL TCP command will show
       increasing 'Segments Completely After Window' values (and
       possibly 'Segments Partially After Window' values as well).
       A packet trace with DISCARD option enabled will show these
       with a 8195 discard code (TCP_OUTSIDE_WINDOW).
    Addional symptoms:
    CSM storage growth in 32K HVCOMMON storage. All CSM 32K
    HVCOMM storage was related to only one connection of the
    application.
    

Local fix

  • .
    Set the TCPMAXRCVBUFRSIZE to be at least twice what the affected
    application is using for the receive buffer size.  A NETSTAT ALL
    command filtered to list only this one socket will show this
    size as the ReceiveBufferSize if the x'40' bit of the TcpPrf
    value is OFF.  For FTP, the receive buffer size is 180K.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * All users of the IBM Communication Server for z/OS Version 2 *
    * Releases 1 and 2 IP                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * Incorrect TCP window size is advertized causing inbound data *
    * to be discarded, impacting throughput on the connection.     *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Apply PTF                                                    *
    ****************************************************************
    The TCP window size calculated when an application reads data
    from the connection recieve queue may not take into account
    unread data remaining on the recieve queue.  The incorrectly
    calculated window is advertized in a window update ACK.  The
    remote peer sends data to fill the advertized window.  When the
    first data packet arrives a new window size is calculated
    correctly, taking into account unread data on the recieve queue.
    The newly calculated window will no longer accept the incoming
    data that was sent by the peer, cuasing packets to be dropped
    due to being outside the window.  The dropped packets require
    the peer to retransmit when the window allows, which negatively
    impacts the throughput on the connection.
    

Problem conclusion

  • EZBTCFRD has been amended to take into account unread data on
    the receive queue when calculating the window size.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI65912

  • Reported component name

    TCP/IP V3 MVS

  • Reported component ID

    5655HAL00

  • Reported release

    220

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-07-15

  • Closed date

    2016-09-22

  • Last modified date

    2017-01-24

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI40995 UI40996

Modules/Macros

  • EZBTCFRD
    

Fix information

  • Fixed component name

    TCP/IP V3 MVS

  • Fixed component ID

    5655HAL00

Applicable component levels

  • R220 PSY UI40996

       UP16/10/25 P F610

  • R210 PSY UI40995

       UP16/10/25 P F610

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Line of Business":{"code":"LOB35","label":"Mainframe SW"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSSN3L","label":"z\/OS Communications Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"220"}]

Document Information

Modified date:
10 September 2020