Handshake
In the context of mainframe and z/OS, a **handshake** refers to a multi-step communication process between two entities (e.g., a client and a server, or two applications) to establish a connection, negotiate parameters, and ensure both parties are ready to exchange data. It's a critical preliminary phase before actual data transfer begins, verifying connectivity and agreement on communication protocols.
Key Characteristics
-
- Multi-Step Exchange: Typically involves a series of messages exchanged in a predefined sequence (e.g., the TCP three-way handshake:
SYN,SYN-ACK,ACK). - Parameter Negotiation: Used to agree upon communication parameters such as port numbers, session identifiers, maximum segment sizes (MSS), window sizes, and security protocols (e.g., SSL/TLS cipher suites).
- Resource Allocation: During a handshake, both communicating parties may allocate necessary resources (e.g., buffers, control blocks) to manage the upcoming data transfer.
- Error Detection and Rejection: If one party cannot meet the requirements or if a protocol mismatch occurs, the handshake can fail, preventing the connection from being established and signaling an error.
- Protocol-Specific: The exact handshake mechanism is dependent on the underlying communication protocol being used (e.g., TCP/IP, VTAM/SNA, SSL/TLS).
- Multi-Step Exchange: Typically involves a series of messages exchanged in a predefined sequence (e.g., the TCP three-way handshake:
Use Cases
-
- TCP/IP Connection Establishment: When a client application (on or off the mainframe) attempts to connect to a server application running on z/OS (e.g., a CICS region, DB2 DDF, or an FTP server), a TCP three-way handshake occurs to establish the connection.
- VTAM Session Initiation: Before two Logical Units (LUs) in an SNA network (e.g., a 3270 terminal and a CICS application) can communicate, VTAM performs a session establishment handshake to set up the session.
- SSL/TLS Secure Communication: When a secure connection (e.g., HTTPS, FTPS, SFTP) is initiated to a z/OS system, an SSL/TLS handshake takes place to authenticate servers/clients, negotiate cryptographic parameters, and establish a secure channel.
- IMS Connect Client Connection: Clients connecting to IMS through IMS Connect also undergo a handshake process to establish the connection and verify communication parameters, often involving proprietary protocols over TCP/IP.
Related Concepts
A handshake is fundamental to network protocols like TCP/IP and SNA/VTAM, serving as the initial phase of connection establishment. It directly precedes data transfer and is often integrated with security protocols such as SSL/TLS to ensure secure communication by negotiating encryption keys and authenticating endpoints. Applications on z/OS, whether using sockets for TCP/IP or VTAM APIs for SNA, rely on the underlying system to perform these