[comp.protocols.iso] question about transport layer protocol

lizhen@silver.ucs.indiana.edu (Zhen Li) (01/19/91)

Hello,

     In Marshall's Open Book when discussing transport 
protocol classes three network classes (Class A, B, and C)
are defined. 

 Quote:

     Class A:  networks that detect, as an error, any loss 
	       of data.  These networks never duplicate, 
	       re-order, or corrupt data. Furthermore, a 
	       class A  network has a relatively small 
	       probaility of actually losing data. Such a
	       network provides the CONS.

     Class B:  like class A networks, class B networks detect, 
	       as an error, any loss of data. However, such losses 
	       are more common that the transport service would 
	       prefer. Class B networks aren't necessarily unreliable,
               it's just that they are less reliable than class A
	       networks.  The distinction between the two classes is 
	       decided locally. Class B provide CONS.

     End quote.

     Could anybody give me a real example of class A network and class
     B network?

   Thanks in advance!

   Zhen  Li
  
  

harald.alvestrand@elab-runit.sintef.no (01/21/91)

My X.25 network in Norway was a class B network when I started working
in WAN networking 5 years ago - it failed more often than I liked.
Now I would consider it a class A network.

My local UNINETT network had a problem last week - due to a wrong
configuration, it failed about 3 % of my calls. I consider that Class B
behaviour.

Unfortunately, I cannot switch transport protocols dynamically; I am stuck
in class 0, and do recovery in the upper layers.
That is a typical example of having a map that fits the terrain, but the
roads do not follow the terrain, and you must follow the roads......
Nobody seems to CARE about class B behaviour.

                   Harald Tveit Alvestrand
Harald.Alvestrand@elab-runit.sintef.no
C=no;PRMD=uninett;O=sintef;OU=elab-runit;S=alvestrand;G=harald
+47 7 59 70 94

ms6b+@ANDREW.CMU.EDU (Marvin Sirbu) (01/21/91)

An example of a Class A network would be a reliable X.25 network.
(Some people may think that is an oxymoron, but what
constitutes "reliable" depends on your
requirements.)


An example of a Class B network would be an X.25 network that has a lot
of Resets which require re-establishing the network connection.  Early 
experience with some European X.25 networks (Transpac in particular,
I believe) led the standards developers to develop classses within the
transport layer protocol which were more resistant to these resets
(Class 1 and 3) as opposed to simply having a transport class which
presumed the network connection was reliable and stayed up (Classes 0
and 2).

Marvin Sirbu
CMU

howard@cos.com (Howard C. Berkowitz) (01/22/91)

In article <1991Jan18.220611.14357@bronze.ucs.indiana.edu> lizhen@silver.ucs.indiana.edu (Zhen Li) writes:
>     Class A:  networks that detect, as an error, any loss 
>	       of data.  These networks never duplicate, 
>	       re-order, or corrupt data. Furthermore, a 
>	       class A  network has a relatively small 
>	       probaility of actually losing data. Such a
>	       network provides the CONS.


      A Class A network, in practice, is provided by the typical Public
Data Network which uses X.25 interfaces.

      Note that not all X.25-interfaced networks provide the full CONS.
CONS is fully supported only by the 1984 version of CCITT X.25, which,
for DTE-DCE applications, is identical to ISO 8208 for the
packet level.

      In COS stack specifications for X.25-based services, we currently
expect 1984 version X.25.  Transitional 1980 versions are under 
consideration.

      If the network provides X.25-1980 interfaces, than the Subnetwork
Dependent Convergence Protocol must run on top of X.25 to provide the
CONS.  See ISO 8878 and appropriate implementors' agreements.

      An X.25 interface to a LAN could potentially provide a Class A
service.  I don't remember the ISO standard number for this, but think
it's 8880.

>     Class B:  like class A networks, class B networks detect, 
>	       as an error, any loss of data. However, such losses 
>	       are more common that the transport service would 
>	       prefer. Class B networks aren't necessarily unreliable,
>               it's just that they are less reliable than class A
>	       networks.  The distinction between the two classes is 
>	       decided locally. Class B provide CONS.
>


     A typical Class B service is found on European X.21-interfaced
Circuit Switched Data Networks (CSDN), on which the provision of
error correction (e.g., using LAP-B) is a user responsibility.

     A "raw" B-channel on ISDN would be a Class B service.  I suspect
a D channel would be considered a Class A service when passing packet
data, although I don't have a formal definition of this.

    
-- 
howard@cos.com OR  {uunet,  decuac, sun!sundc, hadron, hqda-ai}!cos!howard
(703) 883-2812 [W] (703) 998-5017 [H]
DISCLAIMER:  Opinions expressed are not necessarily those of the Corporation
for Open Systems, its members, or any standards body.

enag@ifi.uio.no (Erik Naggum) (01/22/91)

I would like to interject that European X.21 networks are an order of
magnitude more reliable than European X.25 networks, and have actually
progressed beyond X.25 in relative reliability as the X.25 networks
were upgraded.  X.21 folks in Germany and Scandinavia are waging a
"war" against the X.25 folks, inside the Telcos, to provide 99.99%
reliability when the X.25 want to provide 99.9% reliability.  X.25 in
Norway (Oslo, in particular) has a 97.95% reliability, and is a royal
pain in the butt to use for week-long connections.  (Yes, we have
those, and have _never_ experienced a clear on the X.21 network!)
I don't have exact numbers for the X.21 network as seen in Oslo, but
our experience indicates between 99.95% and 99.97%, counting an
occational call cleared immediately after connection by the service
provider.

--
[Erik Naggum]	Snail: Naggum Software / BOX 1570 VIKA / 0118 OSLO / NORWAY
		Mail: <erik@naggum.uu.no>, <enag@ifi.uio.no>
My opinions.	Wail: +47-2-836-863	Another int'l standards dude.

BILLW@MATHOM.CISCO.COM (William "Chops" Westfield) (01/23/91)

Aren't X.21 and X.25 vastly different technologies?  circuit switched
vs packet switched?

BillW
-------

harald.alvestrand@elab-runit.sintef.no (01/23/91)

This message has been on the net now for at least 1 day, and I have had no
counters..... 

In article <42617@cos.com>, howard@cos.com (Howard C. Berkowitz) writes:

|> 
|> >     Class B:  like class A networks, class B networks detect, 
|> >	       as an error, any loss of data. However, such losses 
|> >	       are more common that the transport service would 
|> >	       prefer. Class B networks aren't necessarily unreliable,
|> >               it's just that they are less reliable than class A
|> >	       networks.  The distinction between the two classes is 
|> >	       decided locally. Class B provide CONS.
|> >
|> 
|> 
|>      A typical Class B service is found on European X.21-interfaced
|> Circuit Switched Data Networks (CSDN), on which the provision of
|> error correction (e.g., using LAP-B) is a user responsibility.
|> 
|>      A "raw" B-channel on ISDN would be a Class B service.  I suspect
|> a D channel would be considered a Class A service when passing packet
|> data, although I don't have a formal definition of this.
|>
 
No, I do not think so.
The definition you quoted, first above, is right.
A Class B network will detect any loss OR CORRUPTION of data. Otherwise
transport classes 1 and 3 would not work, since they contain no
checksums at all.

This means that an ISDN B-channel or X.21 channel is NOT Class B.
You might consider the same channel with HDLC added as Class B.

(BTW: I have encountered at least one bug where the X.25 network failed to
meet the Class B criteria...)


                   Harald Tveit Alvestrand
Harald.Alvestrand@elab-runit.sintef.no
C=no;PRMD=uninett;O=sintef;OU=elab-runit;S=alvestrand;G=harald
+47 7 59 70 94

howard@cos.com (Howard C. Berkowitz) (01/24/91)

In article <1991Jan22.214654.5942@ugle.unit.no> harald.alvestrand@elab-runit.sintef.no writes:
>In article <42617@cos.com>, howard@cos.com (Howard C. Berkowitz) writes:
>|> >     Class B:  like class A networks, class B networks detect, 
>|> >	       as an error, any loss of data. However, such losses 
>|> >	       are more common that the transport service would 
>|> >	       prefer. Class B networks aren't necessarily unreliable,
>|> >               it's just that they are less reliable than class A
>|> >	       networks.  The distinction between the two classes is 
>|> >	       decided locally. Class B provide CONS.
>|> error correction (e.g., using LAP-B) is a user responsibility.
>|>      A "raw" B-channel on ISDN would be a Class B service.  I suspect
>|> a D channel would be considered a Class A service when passing packet
>|> data, although I don't have a formal definition of this.
>No, I do not think so.
>The definition you quoted, first above, is right.
>A Class B network will detect any loss OR CORRUPTION of data. Otherwise
>transport classes 1 and 3 would not work, since they contain no
>checksums at all.

   No.  See below.

>This means that an ISDN B-channel or X.21 channel is NOT Class B.

>You might consider the same channel with HDLC added as Class B.

  A B-channel with HDLC is a Class A service, because HDLC will
do data error correction while the D channel will provide notification
of disconnections.


>(BTW: I have encountered at least one bug where the X.25 network failed to
>meet the Class B criteria...)


I'm afraid I disagree.  It is not a basic OSI assumption that the
network service will be error-free.

There are two kinds of errors which go into the definition of a 
Class A, B, or C network.  The first kind is indeed data corruption,
while the second is undetected disconnection.   Class A protects against
both types, Class B protects against disconnections only, and 
Class C against neither.

Why would you want a service with potential errors?  There are at
least two reasons for this.  First, some service above Transport
may provide error correction.  For example, MHS(1984) contains the
Reliable Transfer Service, which allows it to correct some errors
not caught by Transport Class 0 or X.25 (e.g., duplication or loss
of packets caused by an X.25 Reset).

Second, the error level may be acceptable, when viewed against
the cost of correction.  Consider something like a weather sensor
network, where it simply is not critical if an occasional hourly
wind speed measurement, from one sensor, is lost.  Alternatively,
consider a facsimile application where the human recipient's
pattern recognition ability will sort out the error.

In these applications, the network designer may live with the
computed prediction of undetected errors using a low-level transport
over a Class C or B network.  

COS specifications for protocols include both the COS Platform, which
lists all the protocols one might use, and Stack Specifications
(based on International Standard Profiles) which constrain testable
and "reliable" COMBINATIONS of protocols.  The second edition of
the Platform allows, for examples, "unreliable" combinations such
as FTAM over Transport Class 0.  Such a combination could be appropriate
for specialized applications.

COS Stack Specifications, which are used to describe products we
certify after testing, are more conservative.  The FTAM stack
specifications, for example, expects Class 4 Transport over LANs,
where the Platform would allow lower classes.
-- 
howard@cos.com OR  {uunet,  decuac, sun!sundc, hadron, hqda-ai}!cos!howard
(703) 883-2812 [W] (703) 998-5017 [H]
DISCLAIMER:  Opinions expressed are not necessarily those of the Corporation
for Open Systems, its members, or any standards body.

hta@isolde.Berkeley.EDU (Harald Tveit Alvestrand) (01/24/91)

This turned out LONG, I summarize:
- The acceptable rate of undetected network errors is application dependent.
- Class A and B networks should have LOW rates of corrupted packets
  that are delivered to the user (instead of causing a reset).
- Class B networks (for a given application) disconnect/reset more often
  than Class A networks. That is the ONLY difference.
- The RTS service does not guard against data corruption.

Now for the longwinded answer:

In article <42726@cos.com>, howard@cos.com (Howard C. Berkowitz) writes:


|> I'm afraid I disagree.  It is not a basic OSI assumption that the
|> network service will be error-free.
|> 
|> There are two kinds of errors which go into the definition of a 
|> Class A, B, or C network.  The first kind is indeed data corruption,
|> while the second is undetected disconnection.   Class A protects against
|> both types, Class B protects against disconnections only, and 
|> Class C against neither.
|> 
When in doubt, quote.
ISO standard 8073-1986(E), page 7, section 5.4.3, "Choice of network
connection"

a) Type A: Network connection with acceptable residual error rate (for
example not signalled by disconnect or reset) and acceptable rate of
signalled errors.

b) Type B: Network connections with acceptable residual error rate (for
example not signalled by disconnect or reset) but unacceptable rate of
signalled errors

c) Type C: Network connections with unacceptable residual error rate."

Same page, section 5.4.1, "General":
"NOTES:
..
2  Classes 0 to 3 do not specify mechanisms to detect unsignalled
network transmission failures"

The terms "error" and "transmission failure" are not defined in the
standard as far as I can see, but should include packet loss, packet
modification and packet duplication.

You are right that there is no assumption of the channels being
error-free here, or that they never disconnect or reset.
The difference between Type A and Type B is that Type B signals reset or
disconnect "too often".
The user should know the residual error rate of the connection, and
accept the *fact* that the ISO protocols of the layers above do not
provide any guard against the errors.
You are right that a channel with no error correction still may provide
Type A service if the demands of the service user are low enough.

However, I doubt that any *practical* user service (except broadcasting)
could live with undetected data corruption above the 10^-7 level at all.
(s/7/your favourite integer/)
I would start distrusting my mail service if I got "strange" spelling
errors every 1000 letters, and ASN.1 decoding errors every 1000 letters
for a heavily loaded mail node would be a total disaster.

|> may provide error correction.  For example, MHS(1984) contains the
|> Reliable Transfer Service, which allows it to correct some errors
|> not caught by Transport Class 0 or X.25 (e.g., duplication or loss
|> of packets caused by an X.25 Reset).

Yes, the Reliable Transfer Service is able to recover somewhat from loss
of packets, by using syncpoints, so that you do not have to start over
from the beginning. Class 0 takes care of possible duplication by simply
dropping the connection on reset. Class 1 to 3 guard against duplication.
However, the RTS does *nothing* to guard against packet corruption, so
that if this is considered a "network failure", then the "acceptable residual
error rate" for the network is VERY low indeed, leading to the
conclusion that error correction inside the network layer is absolutely
required for MHS(1984) use of Transport class 0.



                   Harald Tveit Alvestrand
Harald.Alvestrand@elab-runit.sintef.no
C=no;PRMD=uninett;O=sintef;OU=elab-runit;S=alvestrand;G=harald
+47 7 59 70 94

jchen@flash.bellcore.com (Jason Chen) (01/25/91)

Let me just be brief.

Example of Class A Network: X.25

Example of Class B Network: Frame Relaying

Jason Chen

howard@cos.com (Howard C. Berkowitz) (01/28/91)

In article <12656004461.12.BILLW@mathom.cisco.com> BILLW@MATHOM.CISCO.COM (William "Chops" Westfield) writes:
>Aren't X.21 and X.25 vastly different technologies?  circuit switched
>vs packet switched?



It's really a worthwhile point, which I think is practical rather
than pedantic, to remember that X.21 and X.25, respectively,
are interfaces to networks rather than network specifications.

X.21 specifies a circuit-switching interface to a network, which
really could be packet-switching internally.  X.25 specifies a
packet-switching interface to a network which could be an X.25-like
virtual call connection-oriented network, or DECnet, or SNA, or
a LAN...

To confuse things further, X.25 cites X.21 as is physical interface
specification.  Really, what is meant by this is the Level 1 (physical)
part of X.21, which specifies a 15-pin connector and pin assignments.

At the next level of confusion, very few people, certainly in North
America, use the X.21 connector specification (the CONNECTOR, but
not the logical pin definitions, IS used for T1 and other applications).
Instead, people use X.21 _bis_, which is more or less RS-232C.
[Actually, X.21 bis points to the physical connector specification in
V.24].  RS-232C, V.24, and X.21 bis will interoperate in practice if
one is careful, and sensitive to issues such as the screw thread
on the locking connector (as opposed to the compatible pins).  The
EIA standard specifies an English 4-40 screw thread, while the 
international specs specify a metric screw thread.  At COS, we
finessed this in our testing and stack specifications by referring
to X.21 bis, but asking the implementor to state whether he was
using English or metric threads.
-- 
howard@cos.com OR  {uunet,  decuac, sun!sundc, hadron, hqda-ai}!cos!howard
(703) 883-2812 [W] (703) 998-5017 [H]
DISCLAIMER:  Opinions expressed are not necessarily those of the Corporation
for Open Systems, its members, or any standards body.