Path: utzoo!attcan!uunet!ogicse!ucsd!ucbvax!CS.WISC.EDU!solomon From: solomon@CS.WISC.EDU (Marvin Solomon) Newsgroups: comp.protocols.iso Subject: Re: Question on the OSI 7 layer model? Message-ID: <9010291205.AA05432@gjetost.cs.wisc.edu> Date: 29 Oct 90 11:05:59 GMT References: <28843@boulder.Colorado.EDU> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 56 > Third, the issue you raise is not an application layer question, > but properly a presentation (layer 6) question. The purpose of > the presentation layer (simplified, of course) is to place the > communication into a form (code, language, syntax, whatever) that > will be understood by the application layer. In the analogy of a > letter (keeping the second point in mind), if you speak only German, > the letter would be presented to you in German translation, since > your presentation layer would 'know' that you don't understand > English. I have to take mild exception with this point. This explanation is consistent general descriptions of the 7-layer model, but not with the ISO/CCITT presentation service/protocol as actually defined ("Presentation", for short). All Presentation actually provides is facilities to negotiate a set of "presentation contexts", which are simply OBJECT IDENTIFIERS. To continue the analogy, you have a standard way of writing "Language: German" on the envelope, together with the agreement that you will write "German", not "Deutsch", "Allemand", or whatever. When you receive such a letter, you have the option of reading it, handing to your German/English interpreter, or telling the postman, "Sorry, no one speaks German here". (Caveat: This is a loose analogy: In actuality, X.400 is an application (layer 7) protocol. What I'm calling the "envelope" here is not the P1 envelope of MHS. Also note that X.400 (at least the 1984 version) doesn't use ISO Presentation!). Since the ISO stack is [currently, mostly] connection-oriented, perhaps a better analogy is the phone system. The operator, while placing the call, says "Est-ce que quelque on qui parle Allemand?" Everybody is required to understand at least this much French. When you receive such a call, you have the option of refusing it or accepting it, perhaps handing the phone to an interpreter. The operator might say that the call will contain German, English, French, and Swahili (this feature is called "multiple contexts".) You can say that you understand French and English but not German or Swahili. The caller gets your response and has the option of cancelling the call or restricting the converstation to languages you understand. The Presentation spec is silent on how you're supposed to tell which parts of the conversation are in French and which are in German. However, as a part of the initial negotiation, the languages are assigned integer id's (say French=1, English=17), and if you like, you can start each sentence with an indication of language: 1: La plume de ma tante est sur la table. 17: I say old chap, typically nasty weather. ASN.1 provides the EXTERNAL data type for such purposes. It's up to each application protocol to use it. Now let me ask a question: The same sort of thing goes on "inside" the application layer with ACSE. Can anybody explain to me why we need both Presentation and ACSE? I've always assumed that when the 7-layer model was being defined, the upper layers were only poorly understood. When people got around to acually defining them, they discovered that they needed an eighth layer, but since the number 7 has such mystical significance, they refused to call it a layer. Or perhaps, they discovered that the lower layers were lacking functionality, so they stuck things like association control (a transport issue?), transactions (a session issue!), and application contexts (a presentation issue??) in ACSE as a sort of "patch". Am I being unfair? Would anyone from the standards community care to comment?