Error Reporting and Resynchronization

www.pragsoft.com Chapter 6: The Session Layer 83

6.4. Further Reading

General descriptions of the session layer and related protocols can be found in Tanenbaum 1989, Black 1989, Martin 1990, Stamper 1991, and Stallings 1994. 84 Communication Networks Copyright © 2005 PragSoft

7. The Presentation Layer

Applications use a variety of forms of data, ranging in complexity from very simple e.g., textual to elaborate and complex e.g., nested data structures. Communication between applications involves the exchange of such data. However, all forms of data have inherent programming language and machine dependencies, which means that unless application data is accurately converted to a format acceptable by the peer application, the meaning of the data will be lost during transmission. The role of the presentation layer is to facilitate semantic-preserving data exchange between two peer applications. The presentation layer achieves this in two stages: i by having the two peer applications adopt a common high-level syntax for data definition, and ii by negotiating a transfer syntax for the sole purpose of transmission, which both applications can convert to and from. We will first look at the notion of abstract data syntax, and then describe presentation service primitives and functional units. ASN.1 will be presented as a standard abstract syntax definition notation for the use of applications, together with BER for defining data at the binary level. Use of ASN.1 and BER will be illustrated using some simple examples. Next, we will discuss the presentation protocol, and conclude by listing a number of presentation standards.

7.1. Presentation Services

The notion of syntax is central to understanding the presentation services. This is discussed below first, followed by a description of presentation service primitives and service functional units.

7.1.1. Syntax

Data is structured according to a set of rules, called syntax. Depending on their level of abstraction, syntax rules may be classified into two categories: abstract and concrete. Abstract syntax is a high-level specification of data which makes no assumptions about its machine representation. Abstract syntax describes the essential characteristics of data in general terms. Concrete syntax, on the other hand, is a low-level bit-level specification of data according to some specific machine representation. In general, a concrete syntax is derived from an abstract syntax by applying a set of encoding rules to the latter. It follows that there is a one-to-many