[comp.protocols.iso.x400] Ports in Abstract Protocol specs

JPALME@qz.qz.se (Jacob Palme QZ) (12/10/90)

I am a little confused on the usage of ports in abstract protocol
specifications.

Why is the communication between two agents split into different
ports? What is the advantage? Is this purely an abstract notation,
or does it mean that if a UA wants to connect to more than one
port on a Service Agent, then multiple connections have to
be opened. If the latter, why is this an advantage?

One advantage with ports might be do make access control easier,
if only some UA-s can access some ports which provide some kind
of privileged access. But if this is the reason for organizaing
the protocol into ports, then why has X.500 different ports
for search and retrieval?

Can the same operation occur via more than one port?

ala@lucid.COM ("Alyson L. Abramowitz") (12/11/90)

 Date: Mon, 10 Dec 1990 16:20:52 +0100
 From: Jacob Palme QZ <JPALME@qz.qz.se>
 Subject: Ports in Abstract Protocol specs
 To: ISO/CCITT Group Communication <ISO-GC@qz.qz.se>, mhsnews@uninett.no,
	 eu-mhsnews@uninett.no
 Mmdf-Warning:  Parse error in original version of preceding line at ICS.UCI.EDU
 Autoforwarded: true

 I am a little confused on the usage of ports in abstract protocol
 specifications.

 Why is the communication between two agents split into different
 ports? What is the advantage? Is this purely an abstract notation,
 or does it mean that if a UA wants to connect to more than one
 port on a Service Agent, then multiple connections have to
 be opened. If the latter, why is this an advantage?

A port is totally an abstract notation which can be a useful mechanism both for
modeling and for conformance. In general,  however,  it has really not been
used for much in X.400 and (particularly) X.500.  At the end of the last Study
Period there was a suggestion to get rid of the ports from X.500 (I can't
remember if we wanted to make it all one port or just get rid of them
entirely).  It came down to not being worth the fight for a purely
documentation issue.  So that is why there is a statement in X.500 about ports
not being related to conformance.

 One advantage with ports might be do make access control easier,
 if only some UA-s can access some ports which provide some kind
 of privileged access. But if this is the reason for organizaing
 the protocol into ports, then why has X.500 different ports
 for search and retrieval?

Yes,  that has been a suggestion.  Group some operations together and put them
as one level of access and others (say administrative operations) as another
level of access.  Another philosophy suggests that this is really an
interface issue and all you need to do is provide a different user interface
where priviledged copmmands/operations are not available and that ports aren't
necessary to accomplish this.

X.500's ports were done before conformance was considered.  They were grouped
by similar function rather than anything else as I remember.  At this point the
ports are purely historical and should not be taken as having any inner
meaning.

 Can the same operation occur via more than one port?

Sure.

Hope this helps explain one of the more obscure parts of OSI.

Best,
Alyson

eskovgaa@uvcw.uvic.ca (Erik Skovgaard) (12/11/90)

The different ports in the Directory actually has a historical
background.  They originally envisioned that DUAs would come
in different flavours, some capable of Read operations only, some
(more sophisticated) could do Search operations and others could
do Modify operations.

The ports were envisioned to be implemented as different Application
Contexts, but they subsequently decided that an X.500 product must
implement all three ports, thus, we only have one flavour of DAP.

I am not sure, why X.400 is divided the same way, but it helps
the understanding of the object-oriented description technique.

You may also note another difference between the service
descriptions of X.400 and X.500.  In X.400, the service of the UA
to the User is describer (in very abstract terms), in X.500 the
DUA service to the end-user is not described.

                                          ....Erik.

------------------------------
Erik Skovgaard
PSC (Pacific) Inc.

vcerf@NRI.Reston.VA.US (12/24/90)

Jacob,

I can try to answer your question about the purpose of
ports in abstract protocols on the basis of the design
work done on TCP and UDP (the connection and connectionless
service protocols of the TCP/IP protocol suite).

Our initial model was that communication was between
cooperating processes in distinct machines. We assumed
that there would be more than one process in each
machine so that a communication service operated in
common at the operating system level would want to
be able to distinguish among "associations" by their port
identifiers. Actually, we said that a particular
communication was identified by a
pair of socket identifiers (a socket was a host
address and a port number). It was possible for
a process to have several TCP connections going
at once with other processes, each connection
uniquely identified by the PAIR of sockets on either end.

A single socket identifier could be used on one
side to associate with distinct sockets on many
different machines (so one process could be talking
to many others). By extension, a single process
on machine A could be communicating with many
processes on the same machine. Everything was
symmetric so it was even possible (and is common)
for a process to talk to other processes on the
same machine (ie all processes are housed on the
same computer).

By keeping the "associations" distinct, one can
apply flow control on each separately, so that
the behavior of one process on the system need
not interfere with the behavior of another, in
terms of TCP flow control, for example.

Vint Cerf