SNA Protocols
Protocols are predetermined pairs of actions which are performed by two network elements to effect the exchange of data between them.
micsrm140
For example, when data transmission is initiated across an RS232 (EIA) interface, the sender raises DTR (data terminal ready) and RTS (request to send). When ready, the receiver responds with DSR (data set ready) and CTS (clear to send). RTS (request to send) is then toggled--high to send, low to receive--as messages are exchanged. The relationship between these four conditions and the exchange of data is a portion of the start/stop (asynchronous) data link control protocol.
The term protocol, when used alone, commonly refers to data link control protocols, but SNA networks also use path control network transmission protocols and BIND protocols. Common protocols within each of these groups are listed below.
Data Link Control Protocols
Data link control protocols allow for the actual transmission of data bits across the physical medium. Common SNA DLC protocols include:
- Synchronous Data Link Control Protocol (SDLC)
- CCITT X.25 Protocol
- Binary Synchronous Protocol (Bisync)
- Start/Stop Protocol (Async)
Path Control Network Transmission Protocols
Path control network transmission protocols allow the transmission rate to be maximized consistent with the capabilities of the NAUs being addressed. The three types of transmission protocols are:
- Sequencing
- Blocking
- Segmenting
Sequencing ensures that message units arrive at their destination in the same order they were sent. Order may be lost during transmission when the message units which make up a complete message are transmitted simultaneously on several links of a multi-link transmission group. Transmission group sequence numbers are used to reestablish the original order at the receiving end.
Blocking is used to combine PIUs into a single basic transmission unit (BTU). Blocking makes efficient use of a high-speed data channel. The following Blocked PIUs figure illustrates blocking.
Blocked PIUs
+----+----+---------+----+----+----------+----+----+----+ | TH | RH | RU | TH | RH | RU | TH | RH | RU | +----+----+---------+----+----+----------+----+----+----+ |------- PIU -------|------- PIU --------|----- PIU ----| |--------------- BASIC TRANSMISSION UNIT ---------------|
Segmenting is used to divide a PIU into multiple shorter PIUs when the receiving node is not capable of processing the entire original PIU as a single unit. PIUs and BTUs are discussed in detail in the SNA Data Formats section. The Segmented PIUs figure illustrates the segmenting function.
Segmented PIUs
Original PIU +----+----+---------------------------------------------+ | TH | RH | RU | +----+----+---------------------------------------------+ |\ TH and RH Repeated | | \_________________ ____________________ | | | | | | | | | | | RU Segmented | | | ________|____________________|____| | / | | | \ | / | | | \ +----+----+---------+----+----+----------+----+----+----+ | TH | RH | RU | TH | RH | RU | TH | RH | RU | +----+----+---------+----+----+----------+----+----+----+ |------- BTU -------|------- BTU --------|----- BTU ----|
Bind Protocols
BIND protocols define how logical units transmit data to one another and/or how that data is presented to the end user. Various classes and types of BIND protocols are listed below:
- Response Protocols
- Response protocols indicate how a receiver will acknowledge a sender's request. Three types of response protocols are defined:
- Definite Response
- The sender sets either a DR1I or DR2I in the request header to identify the response protocol. The receiver must then return either a positive or negative response to accept or reject the request. Definite response causes extra link traffic. NPM uses the definite response to measure network response time.
- Exception Response
- The sender sets an ERI in the request header. The receiver then returns a negative response for any unacceptable requests; no positive responses are returned.
- No Response
- The receiver does not return a response regardless of the acceptability of the request.
- Chaining Protocols
- Chaining protocols allow a sender to initiate multiple transmissions in a single direction, which the receiver then treats as a single data transfer. This set of transmissions is called a chain. Chaining protocols may also require a response from the receiver, thus there are three types:
- Definite Response Chain
- The sender sets ERI in the RH of all but the last request in the chain, where it sets DRxI. The receiver must then return either a positive or negative response to accept or reject the entire chain.
- Exception Response Chain
- The sender set an ERI in the request header of all requests in the chain. The receiver then returns a negative response if there was an unacceptable request in the chain; no positive responses are returned.
- No Response Chain
- The receiver does not return a response regardless of the acceptability of the chain.
- Bracket Protocols
- Bracket protocols are used to separate groups of related chains from other groups of related chains. This facility is necessary to allow transaction programs to serially share a session between type 6.2 LUs.
- Sequencing Protocols
- Sequencing protocols are used between session partners to ensure that related requests and responses are received in the same order that they are sent. Senders assign a sequence number of one to the first request sent following session activation. The sequence number is incremented by one for subsequent requests. The receiving LU assigns its responses the same sequence number as the corresponding request. Without sequencing protocols, out-of-sequence conditions could develop if intervening network delays fluctuated.
- Request and Response Mode Protocols
- Request and response mode protocols control the number of requests which can be outstanding for an LU-LU session. Four types of request and response mode protocols exist:
- Immediate Request Mode
- The sending LU must wait for a response before sending additional requests. This applies only to requests specifying definite response. (Thus, an entire chain can be sent.)
- Delayed Request Mode
- The sending LU does not have to wait for a response prior to sending additional requests.
- Immediate Response Mode
- The receiving LU must return responses in the same order that it received the requests.
- Delayed Response Mode
- The receiving LU can return responses in any order.
- Send and Receive Mode Protocols
- Send and receive mode protocols determine when session partners can send requests. Three types are defined:
- Full Duplex
- LUs can send and receive simultaneously.
- Half-Duplex Contention
- Both LUs can send requests to each other, but not simultaneously. Contention (and lost data) occurs if both LUs attempt to send at the same time. The BIND parameters identify a contention winner who is allowed to send its request first in this event (typically the terminal rather than the application is designated contention winner).
- Half-Duplex Flip-Flop
- LUs alternate sending requests. BIND parameters designate one LU as first speaker. It sends the initial requests with a change direction indicator (CDI) in the last request header transmitted. The receiving LU becomes the sender upon receipt of the CDI. The LUs toggle between send and receive states by subsequent exchange of the CDI.
Note:
These are not transmission medium protocols. LUs can operate in full duplex (i.e., sending and receiving) simultaneously even though some or all of the intervening transmission media can transmit data in only one direction at a time.- Data Security Protocols
- Data security protocols are implemented by logical units to prevent unauthorized access to end-user data. Three types of data security protocols currently exist:
- Passwords and User-IDs
- A request carries a password and user-ID in an attach function management header. Verification of the password is implementation-defined.
- Session Cryptography
- LUs can use the data encryption standard (DES) algorithm to encrypt and decrypt data. DES employs a randomly generated key methodology.
- LU-LU Session Passwords
- Both the primary and secondary LUs can verify passwords prior to activating an LU-LU session. Each LU sends the other a random data string. The LUs then use their respective session passwords to encipher this data and return it to the other LU. The LU then enciphers the random data field it transmitted to the other LU using its own password. If the two enciphered fields match, both LUs are using the same password.