Anpois.641 net.lan utzoo!decvax!duke!harpo!npois!srk Wed Mar 31 14:09:58 1982 Service Specification I am a member of the IEEE project 802 High Level Interface subcommittee (HILI). One of our concerns is a specification of the service provided by the link layer to the network layer. Our model of interface interaction is based on primitives. These are discrete, instantaneous interface events which convey the information required in order to provide a particular service. This is the same as the model that ISO uses in their service specifications. However, we differ from ISO in several important ways, and I would like to solicit comments from the newsgroup about them. The ISO (ISO/TC 97/SC 16 N697) transport service specification uses the "four arrow model" of service primitive interaction. For example, the user layer passes a "CONNECT.request" primitive to the serving layer to request that a connection be set up. The serving layer then passes an "CONNECT.indication" primitive to the remote user layer to indicate the connection attempt. The remote user layer evaluates this and then passes a "CONNECT.response" primitive to the serving layer to accept or deny the connection. The serving then passes a "CONNECT.confirm" primitive to the original user layer to convey the results of the connection attempt. local | serving | remote user layer | layer | user layer | | --------->| | request | | | |------------> | | indication | | | |<------------ | | response <---------| | confirm | | | | The HILI committee uses a "three arrow model". For example, the "CONNECT.request" and "CONNECT.indication" are the same as above. However, after the "CONNECT.indication" is passed to the remote user layer, the serving layer passes a "CONNECT.response" to the original user layer. Thus the purpose of the response primitive is convey to the original user layer whether or not an indication primitive was sent to its peer. (The name "response" is unfortunate since it conflicts with the ISO primitive, but we couldn't think of a better one) local | serving | remote user layer | layer | user layer | | --------->| | request | | | |------------> | | indication <---------| | response | | | | The HILI committee feels that the three arrow model is more appropriate because: 1. It makes the layers more independent, because the serving layer does not have to depend on or wait for the remote user layer to respond to an indication primitive. 2. The "four arrow model" interaction is actually a user layer protocol and should not be the business of the serving layer. In the example the acceptance or rejection of a peer connection is a user layer protocol. If the remote peer wishes to reject the connection it should do so with a user layer PDU and/or disconnect the serving layer connection. The purpose of the serving layer should be to set up a communication pipe between the "bottoms" of the two user layers. It should not say whether the user of the pipe accepted the data or not. If people want to discuss this on the net thats fine, otherwise sent comments to me: Steven Kleiman Bell Labs Neptune, N.J. 07753 (201) 922-7276 ihnss!npois!srk@berkeley