Modernization Hub

Flow Control - Regulating transmission

Enhanced Definition

In the context of IBM mainframe and z/OS, flow control refers to the mechanisms used in data communication to manage the rate of data transmission between two communicating entities. Its primary purpose is to prevent a faster sending entity from overwhelming a slower receiving entity's processing capabilities or buffer capacity, thereby ensuring reliable data delivery and preventing data loss.

Key Characteristics

    • Pacing (SNA/VTAM): A fundamental flow control mechanism in Systems Network Architecture (SNA) where the sender transmits a predefined number of data units (a pacing window) and then waits for an acknowledgment from the receiver before sending the next window. This is crucial for managing traffic between Logical Units (LUs).
    • Windowing (TCP/IP): In TCP/IP on z/OS, the receiver advertises its available buffer space (the receive window) to the sender. The sender is then limited to sending no more than the advertised window size of unacknowledged data, preventing buffer overruns at the receiver.
    • Buffer Management: Flow control mechanisms inherently rely on and interact with buffer management. The availability of buffer space at the receiver dictates when and how much data can be accepted, directly influencing the flow.
    • Layered Implementation: Flow control can be implemented at various layers of the network stack, from the data link layer (e.g., XON/XOFF, RTS/CTS for serial links) to the transport layer (TCP windowing) and even at the application layer.
    • Adaptive Nature: Many modern flow control mechanisms, especially in TCP, are adaptive, dynamically adjusting the transmission rate based on network conditions, acknowledgments, and receiver capacity.

Use Cases

    • VTAM (SNA) Communication: Pacing is essential for managing data flow between z/OS applications (e.g., CICS, IMS) and remote terminals, controllers, or other mainframes connected via SNA networks, preventing buffer overruns in network control units or application regions.
    • TCP/IP on z/OS: The TCP sliding window mechanism is critical for reliable and efficient data transfer for applications using the z/OS Communications Server, such as DB2 Connect, CICS Transaction Gateway, FTP, and web servers, ensuring data integrity across diverse network conditions.
    • Inter-Application Data Exchange: While often handled by underlying network protocols, applications exchanging large volumes of data (e.g., using cross-memory services or message queues) might implement explicit or implicit flow control to manage message rates and prevent resource exhaustion.
    • Printer and Spooling Systems: Managing the flow of print data from a z/OS spooling system (like JES2/JES3) to slower physical printers or network print servers, preventing the printer's buffer from overflowing.

Related Concepts

Flow control is intrinsically linked to network performance tuning and reliability. In VTAM, pacing parameters (VPACING, PPACING) are critical configuration elements that directly impact the efficiency and stability of SNA sessions. For TCP/IP on z/OS, it's a core component of the TCP protocol's reliability, working in conjunction with congestion control (which manages network capacity) and error recovery (retransmission of lost segments). It relies heavily on efficient buffer management within the z/OS Communications Server and application regions to function effectively.

Best Practices:
  • Tune VTAM Pacing: Carefully configure VPACING and PPACING values in VTAM definitions (PATH, ISTPU) to match the capabilities of the communicating LUs and the network path, balancing throughput with buffer availability.
  • Monitor TCP Window Sizes: Utilize z/OS network monitoring tools (e.g., NETSTAT commands, SMF records) to observe TCP window sizes and identify potential bottlenecks where the receive window is consistently small, indicating a receiver capacity issue.
  • Optimize Buffer Pools: Ensure that VTAM, TCP/IP, and application buffer pools are adequately sized to handle expected data volumes and bursts, reducing the likelihood of aggressive flow control mechanisms throttling throughput.
  • Understand Application Requirements: Design applications with an awareness of flow control. For high-volume data streams, consider implementing application-level acknowledgments or rate limiting if standard transport-layer flow control isn't sufficient or appropriate.
  • Consider Network Latency: Be aware that high network latency can impact the effectiveness of window-based flow control, as it increases the time taken for acknowledgments to return, potentially leading to underutilization of bandwidth.

Related Vendors

IBM

646 products

Broadcom

235 products

Trax Softworks

3 products

Related Categories

Printing and Output

158 products

Automation

222 products

Operating System

154 products

Browse and Edit

64 products