Activities and Dialogue Units

www.pragsoft.com Chapter 6: The Session Layer 81 • Minor Synchronization Points . These can be issued at arbitrary points in time, and are used for coordinating data exchange within dialogue units see Figure 6.68. This service is supported by the S-SYNC-MINOR primitive. The primitive takes one parameter type in addition to the two used by S-SYNC- MAJOR; it determines whether the request is to be confirmed. Figure 6.68 Minor synchronization points. Minor sync Send Record 1 Dialogue unit Major sync Major sync Minor sync Minor sync All synchronization points are serially numbered for ease of reference. The serial numbers are managed by the service provider. For minor synchronization, when the functional unit Symmetric Synchronize is selected instead of Minor Synchronize at connection time, two serial numbers are employed, one for each data flow direction.

6.2.4. Error Reporting and Resynchronization

The error reporting service is based on two primitives. S-U-EXCEPTION is issued by a service user to report an error condition to the other user. Error conditions detected by the service provider are reported to service users using the S-P- EXCEPTION primitive. All data in transit is lost as a consequence. Also, unless the error is handled by the service users, no further activity is permitted. Depending on the nature of the error, it may be handled in a number of ways: issuing an S-U- ABORT, S-ACTIVITY-INTERRUPT, S-ACTIVITY-DISCARD, or resynchronizing. Resynchronization is a service used for recovering from errors as well as for resolving disagreements between service users. It allows the service users to agree on a synchronization point, and start from that point. All data in transit is lost as a result. This service is supported by the S-RESYNCHRONIZE primitive, which may be issued by either user and requires confirmation. It takes four parameters: type explained below, serial number for a synchronization point, tokens for distribution of tokens after resynchronization, and user data an unlimited block. The type parameter may be one of: • Abandon . Aborts the current dialogue by resynchronizing to a new synchronization point with a serial number greater than all previous ones. 82 Communication Networks Copyright © 2005 PragSoft • Restart . Re-attempts a dialogue by retreating to an earlier synchronization point, provided it is no earlier than the last confirmed major synchronization point. • Reset . Aborts the current dialogue and sets the synchronization serial number to a new value subject to negotiation.

6.2.5. SPDUs

Session layer messages are exchanged by the transport layer using Session Protocol Data Units SPDUs. Most primitives are implemented as one or two SPDUs the additional SPDU is used where acknowledgment is required, i.e., in confirmed primitives. Some SPDUs are individually mapped onto TSDUs e.g., Connect and Disconnect SPDUs. Others are always concatenated with Please- Token and Give-Token SPDUs and then mapped onto TSDUs e.g., all Activity SPDUs. The general structure of an SPDU is shown in Figure 6.69. The exact parameters depend on the type of SPDU. As indicated in the figure, parameters may be grouped together. Furthermore, parameter groups may contain subgroups. Figure 6.69 General SPDU structure. Field Description Service ID Specifies the type of this SPDU. Length Indicator Total length of the following parameters. P sample Parameter ID Specifies the type of this parameter. A single Length Indicator Length of the parameter. R par. Parameter Value Specifies the value of the parameter. A ...more parameters M or These can be in any order. E parameter groups... T sample Parameter Group ID Specifies a group of parameters. E par. Length Indicator Total length of parameters in this group. R group Group The group parameters appear one by one here S Parameters and may contain other groups as well. User Data Actual session service user data.

6.3. Session Layer Standards

Session services discussed in Section 6.1 are defined by the ISO 8326 and CCITT X.215 standards. ISO 8327 and CCITT X.225 define the session protocol, and were the basis of the discussions in Section 6.2.