TCP receive window

The z/OS® Communications Server implementation calculates the receive window as two times the receive buffer size, minus any data in the receive buffer. The calculated receive window is then limited to the value of the TCPMAXRCVBUFRSIZE parameter from the TCPCONFIG profile statement, unless Dynamic Right Sizing (DRS) is active for the connection.

DRS is a stack performance optimization that allows the TCP receive buffer size to expand because of network conditions. DRS is enabled for connections that meet the following criteria:

  • The connections have inbound streaming workload.
  • The round trip time (RTT) for network latency is 2 ms or longer.
  • The initial receive buffer size is at least 64 KB.

When DRS is active for a connection, the advertised window follows a different set of rules:

  • The maximum receive buffer size is changed to 2 MB.
  • The receive buffer size is set to the estimated congestion window of the peer.

If CSM high virtual common or fixed storage is constrained and inbound data for a connection is queued in the receive buffer faster than the application can read and process it, DRS is disabled for the connection. You can determine whether DRS is active for a connection by examining the TcpPrf field value for the connection on the Netstat ALL/-A report output.

If a connection fails to meet the criteria for enabling DRS and thus DRS is disabled, the TCP/IP stack periodically reevaluates the connection characteristics and attempts to reactivate DRS. The TCP/IP stack activates DRS for the connection if the connection subsequently meets the criteria for DRS processing.

Guideline: When you tune for TCP data transmission, you must consider the send buffer size and the receive window size. For the z/OS Communications Server implementation, the amount of data on the network is limited by the smaller of the send buffer size and the receive window size.