2.1.1 Protocol Session

A protocol session is a TCP or an SPX connection used to send UserMessage Packets ([MS-MQMQ] section 2.2.20), which contain application-defined messages and internal packets between a local and remote queue manager. The protocol session begins with an EstablishConnection Packet (section 2.2.3) and ConnectionParameters Packet (section 2.2.2) exchange to initialize the session. From that point, UserMessage Packets can be sent in either direction and are acknowledged by SessionAck Packets (section 2.2.6), OrderAck Packets (section 2.2.4), and FinalAck Packets (section 2.2.5) as required.

The packets supported within a protocol session are the ConnectionParameters Packet, the EstablishConnection Packet, the UserMessage Packet, the SessionAck Packet, the OrderAck Packet, and the FinalAck Packet. Each of these packets MUST begin with a BaseHeader ([MS-MQMQ] section 2.2.19.1), which contains information such as packet type, signature, and packet size. The header is followed by one or more headers, depending on the packet type.

The protocol MUST use direct TCP or SPX for a protocol session.<4> The protocol initiator MUST establish a connection to TCP port 1801 or SPX port 876 on the acceptor. The TCP or SPX source port used by the initiator MAY<5> be any TCP or SPX port value. The protocol acceptor MUST listen for connections on TCP port 1801 or SPX port 876.<6>