Rechnernetze: Aufgaben, Fragen und Antworten

Geschwurbel von Daniel Schwamm (15.08.1994 bis 23.09.1994)

Inhalt

1. Das ISO/OSI-Referenzmodell

Welchen Teil von Rechnernetzen (RN) will die ISO (International Organization for Standardization) mit dem ISO/OSI-Referenzmodell standardisieren?

Nur die Interaktion (Interconnections) zwischen offenen Systemen, nicht jedoch ganze Anwendungen. Die Interaktion umfasst die Informations-Übertragung und die diversen Mittel zur Kooperation zwischen verteilten Systemen.

Warum gibt es Schichten im ISO/OSI-Referenzmodell?

Jede Schicht erfüllt eine fest umrissene Aufgabe, die man Dienst nennt, der jeweils für eine darüberliegende Schicht geleistet wird, die ihn ihrerseits durch eigene Dienstleistungen ergänzen kann. Jede Schicht wird durch eine Instanz (Entity) repräsentiert, die mehrfach aufgerufen werden kann und dadurch mehrere Vorkommnisse (Instances) im Computerspeicher bildet. Einzige Ausnahme: Die Schicht 1 des ISO/OSI-Referenzmodell für LANs (Local Area Network) bildet nur maximal ein Vorkommnis, weil pro Daten-Endeinrichtung (DEE) nur eine Daten-Übertragungseinrichtung (DÜE) vorliegt.

Stellen Sie grafisch den Zusammenhang zwischen PDU (Protocol Data Unit) und SDU (Service Data Unit) dar!

                                USER DATA
                             <--(N+1)-PDU-->
                        ICI        
------------------------------------------------------------------------
                             <--(N)-SDU---->

                PCI             USER DATA          ---------> (N)-Connection
                     <------------(N)-PDU---->
        ICI
------------------------------------------------------------------------
                     <------------(N-1)-SDU-->

ICI = Interface Control Information (z.B. SDU-Länge)
PDU = Protocol Data Unit (z.B. Quelladresse)
SDU = Service Data Unit
PCI = Protocol Control Information

Zu merken: Dienstprimitive setzen sich zusammen aus ICIs (Interface Control Information) und PDUs. PDUs bestehen aus SDUs und PCIs (Protocol Control Information), die SDUs enthalten dagegen nie die ICIs, denn diese werden beim SAP (service Access Point) ausgefiltert.

Was sind Service Access Points?

Service Access Points (SAP) sind Dienstzugangspunkte. Jeder (N)-SAP ist genau einem (N+1)-Vorkommnis und einem (N)-Vorkommnis zugewiesen. Ausnahme: Mehrere (N+1)-Vorkommnissen können sich über einen Multiplexer auch einen einzelnen (N)-SAP teilen. Nur die Network-SAPs benötigen eine netzweit eindeutige SAP-ID.

Wie lassen sich (N)-SAP-Adressen durch Suffixe aus Adressen niedrigerer Schichten bilden? Stellen Sie dies durch ein grafisches Beispiel dar!

Die Adressierung muss hierarchisch aufgebaut sein, damit ein (N)-SAP sich aus Adressen von niedrigeren Schichten aufbauen lässt. Es gilt, dass nur die Adresse der dritten Schicht netzweit eindeutig sein muss. Der darüberliegende Baum von SAP-Adressen höherer Adressen wird durch Präfixe gekennzeichnet. Beispiel:

(3)-SAP   = 333.22.1 
==> 
(4)-SAP 1 = 1.333.22.1 oder 
(4)-SAP 2 = 2.333.22.1. 

Folgende Beziehungen zwischen Instances sind u.a. denkbar:

(N+1)-Vorkommnis 1                (N+1)-Vorkommnis 2

(N)-SAP 1                         (N)-SAP 2

(N)-Vorkommnis 1                  (N)-Vorkommnis 2

Was versteht man unter dem Handshake-Verfahren?

Jeden Austausch von Aufforderungen (Request, Indication) und Zustimmungen (Response, Confirm) der folgenden Form:

Schicht N       Schicht N-1          Schicht N-1        Schicht N

(N)-CON_req
                                                        (N)-CON_ind
                                                        (N)-CON_resp
(N)-CON_conf

Welche Vorteile bringt das Multiplexing von mehreren Vorkommnissen auf einem SAP?

Ohne Multiplexing müssten von Schicht 1 genauso viele physikalische Leitungen zur Partnerinstanz führen, wie maximal Verbindungen aufgebaut werden können. Durch das Multiplexing können über ein Medium viele Verbindungen aufrecht erhalten werden. In höheren Schichten besitzt Multiplexing den Vorteil, dass sich mehrere Vorkommnisse die Betriebsmittel für ein Schicht-Protokoll teilen können, dass also nicht für jedes (N)-Vorkommnis ein eigenes (N-1)-Vorkommnis erzeugt werden muss.

(N+1)-SAP                         (N+1)-SAP

(N+1)-Vorkommnis 1                (N+1)-Vorkommnis 2

                      (N+1)-MUX

                      (N)-SAP

Welche Unterschiede sind zwischen dem CCITT-Modell und dem ISO/OSI-Referenzmodell für WANs zu bemängeln?

Die ISO/OSI-Referenzmodell hat das CCITT-Modell X.25 übernommen, welches aus den Protokollen für X.25-Paketen (3 Schicht), HDCL (2 Schicht) und X.21 (1 Schicht) besteht. Im Gegensatz zum ISO/OSI-Referenzmodell betrachtet X.25 aber nicht End-to-End-Protokolle zwischen symmetrischen Partnerinstanzen, sondern Protokolle zwischen den asymmetrischen Einrichtungen DEE und DÜE. DEE und DÜE sind deswegen unsymmetrisch, da sich die DÜE zwar wie eine entfernte DEE verhält, aber z.B. nicht wie die DEE auch einen CONNECTION-request beherrscht. X.25 kennt keine Dienste, nennt (3)-PDUs Pakete und (2)-PDUs Rahmen. Die Übernahme von X.25 in das ISO/OSI-Referenzmodell bringt es auch mit sich, dass von Schicht 1 nur ein Vorkommnis existiert, da eine DEE nur über eine DÜE auf das Medium zugreifen kann und üblicherweise nur eine DÜE pro DEE Verwendung findet.

2. Die Bitübertragungsschicht

Was bedeutet Basisband-Modulation?

Die Basisband-Modulation ist eigentlich gar keine Modulation, denn die digitalen Signale werden hier nicht mit einer Trägerfrequenz moduliert, sondern direkt durch Strom (an/aus) übertragen; man spricht daher auch besser von Basisband-Übertragung. Manchester Encoding kann z.B. über Basisband- und Träger-Modulation realisiert werden. Die Vorteile, z.B. Selbsttaktung und Unterscheidung von Nicht- und Null-Sendungen, bleiben erhalten. FDM (Frequency Division Multiplexing) ist hier nicht möglich, dafür aber TDM (Time Division Multiplexing).

Welche Modulationsarten kennen Sie?

Phasen-, Frequenz- und Amplitudenmodulation. In jedem Fall werden anders als bei der Basisband-Übertragung verschiedene Binärsignale in Form von Schwingungsunterschieden repräsentiert. Achtung: Puls Code Modulation (PCM) nennt sich zwar Modulation, ist aber keine; dieses Verfahren dient nur zur Umwandlung von analogen Informationen in digitale Signale.

Wie wirkt sich die Bandbreite auf die Signalübertragung aus?

Die Bandbreite beeinflusst bei konstanter Datenrate die Güte der Signal-Übertragung. Es gilt: Je grösser die Bandbreite, desto schärfer ist die Rechteck-Form der Signale. Harry Nyquist zeigte, dass zwischen Datenrate und Bandbreite folgende Beziehung besteht:

Datenrate = 2 * Bandbreite * log2(Amplitudenstufen)

Bei einer Bandbreite von 4000 kHz und 2 Amplitudenstufen (zur Übertragung von 1-Bit-Blöcken) liegt die maximale Datenrate bei 8.000 bps. Bei 8 Amplitudenstufen (zur Übertragung von 3-Bit-Blöcken) liegt sie schon bei 24.000 bps. Und bei 256 Amplitudenstufen für 8-Bit-Blöcke liegt sie bei 64.000 bps. Zu beachten ist, dass dabei die Baudrate kontinuierlich bei 8.000 Schritte/s stehen bleibt. Zu beachten ist weiterhin, dass nach einem Gesetz von Claude Elwood Shannon die Stufen der Amplituden nicht beliebig ausbaubar sind, sondern abhängig von der Störleistung des Mediums.

In welchem Zusammenhang wird die Einheit Dezibel beim Physical Layer gebraucht?

Dezibel ist die Einheit für den Quotienten zweier gleicher, logarithmischer Einheiten. Für den Physical Layer wichtig ist die Dämpfung, für die folgende Formeln gelten:

Dämpfung = 20 * lg(Spannung am Leitungsanfang / Spannung am Leitungsende)
Dämpfung = 10 * lg(Leistung am Leitungsanfang / Leistung am Leitungsende)

Die Tiefpasseigenschaft - was ist das und was für einen Effekt kann sie bewirken?

Die Tiefpasseigenschaft ist eine Folge der Verwendung von Wechselspannung als Modulationsträger: Je höher die Frequenz ist, desto stärker wirkt das Kabel als Widerstand - das Signal wird gedämpft. Durch die Wechselspannung wird auch ein Magnetfeld geschaffen, welches zum sogenannten Skin-Effekt führen kann, d.h., die Signale werden hier nur noch am äussersten Kabelrand weitergeleitet. Bei Koaxial-Kabel wirkt man dem Skin-Effekt mit verschiedenen Schichtungen um den Kabelkern entgegen.

Welche Multiplex-Arten kennen Sie?

Time Division Multiplexing (TDM; synchron und asynchron) und Frequency Division Multiplexing (FDM). Bei TDM steht jedem Kanal kurzzeitig die gesamte Bandbreite zur Verfügung, während beim FDM die Bandbreite auf die Kanäle aufgeteilt wird, aber dauerhaft bestehen kann.

Welche Vorteile besitzen Regeneratoren gegenüber Verstärkern?

Verstärker werden in analogen Medien eingesetzt. Sie verstärken jedes Signal, welches bei ihnen ankommt, also auch die Verzerrungen und Impulsstörungen. Regeneratoren jedoch interpretieren den digitalen Wert, der bei ihnen ankommt, und senden nur den erkannten Wert weiter (der ja nur Null oder Eins sein kann).

Welches Verhältnis besteht bei LANs zwischen Last und Durchsatz?

Das Ziel aller LAN-Protokolle ist ein Durchsatz von 100%, d.h., jedes abgesendete Paket erreicht sein Ziel im korrekten Zustand, und eine Last von 100%, d.h., die zur Verfügung stehende Bandbreite wird vollständig für den Datenverkehr genutzt. Beide Grössen lassen sich i.d.R. nicht zu 100% erreichen. Der Durchsatz wird eingeschränkt durch Kollisionen und Netzfehler. Die Last wird reduziert durch Steuerpakete. Bei den Random Access Protokollen bringt eine höhere Last i.d.R. einen niedrigeren Durchsatz mit sich. Die Token-Protokolle dagegen verschwenden Bandbreite, wann immer eine Station gerade nicht senden will.

Welche Datenrate benötigt man für analoge (a) PCM-Daten und (b) Delta-Modulation-Daten bei gegebenen 3.000 Hz und 256 Quantisierungsstufen?

Wir wissen von Nyquist: Datenrate = 2 * Bandbreite * log2(Quantisierungsstufen).

Bei (a) wird also eine Datenrate von 2*3000*8=48 kbps benötigt. Da statt 8-Bit-Blöcken bei der Delta-Modulation nur 1-Bit-Blöcke nötig sind (1=+1, 0=-1 Änderung), wird bei (b) nur eine Datenrate benötigt von 2*3000*1 = 6 kbps.

Wie hoch ist die maximal erreichbare Datenrate, wenn ein digitales Signal über einen 3-kHz-Kanal mit 20 dB Rauschabstand übertragen wird?

Wir wissen von Shannon: Datenrate = Bandbreite * log2(1 + Rauschabstand).

Daher gilt: DR=3000*log2(1+20 dB)=3000*log2(1+1*10^2)=3000*log2(101) => maximale DR=3000*log2(2^6)=3000*6=18 kbps <= 3000*log2(101) <= 300*log2(2^7).

3. Die Sicherungsschicht

Zeigen Sie an einem Beispiel, wie HDCL Bitstuffing betreibt! Beschreiben Sie dabei auch das HDCL-Rahmenformat!

HDLC steht für High-Level Data Link Control.

Zu übertragene Daten: 01111100 01111110

=> folgendes wird übertragen:

01111110 Adresse Steuerinformation Daten Frame-Checking-Sequence 01111110 Rahmen-Flag

heute nur noch Richtung (DEE->DÜE oder DÜE->DEE)

Rahmenformate: Information, Unnumbered, Supervisory.

Die Dateninformation kann beliebig lange sein, muss sich nach der Umkehr des Bitstopfens jedoch durch 8 teilen lassen. In unserem Fall führt diese Feld den Inhalt: 011111000 011111010.

Zu was dienen Unnumbered Frames?

Die Unnumbered Frames des HDCL-Protokolls sind deswegen unnummeriert, da sie nur für den Verbindungsaufbau und Verbindungsabbau zuständig sind, sie also nur einfach übertragen werden, wodurch keine Reihenfolgen-Änderungen eintreten können.

Warum funktioniert eine Parallelübertragung bei dem einfachen BSC-Protokoll, nicht aber bei dem komplexen HDCL-Protokoll? Warum ist HDCL dennoch besser?

Das BSC-Protokoll (Binary Synchronous Communication) arbeitet zeichenorientiert, kann dadurch jeweils 8 bit parallel übertragen. Das Transparenzproblem löst es durch Zeichenstopfen, wobei das gestopfte Zeichen auch parallel übertragen werden kann. HDCL ist bitorientiert und würde bei einer Parallelübertragung durcheinander kommen, falls Bits gestopft wurden. HDCL ist aber dennoch effektiver als BSC, da es durch seinen Fenstermechanismus eine Vollduplex-Übertragung gestattet, während BSC nur halbduplex arbeitet. Ausserdem eignet sich die HDCL-Bitorientierung anders als die BSC-Zeichenorientierung zur Übertragung jeglicher Art von Daten.

Was versteht man unter Durchsatz?

Die Anzahl der KORREKT übertragenen BYTES (nicht Bits!) pro Sekunde. Im Rahmen der auszuhandelnden Quality-of-Service-Parameter (QOS) ist für den Durchsatz ein Maximalwert und ein Durchschnittswert anzugeben. Die Sicherungsschicht wählt daraus den Mittelwert aus und prüft, ob sich dieser geforderte Wert für die Verbindung realisieren lässt. Falls nicht, bricht sie die Verbindung ab.

Warum ist die Ringgrösse eines Token-Rings keine unabhängige Grösse?

Der Ring muss mindestens so lange gewählt sein, dass das Frei-Token vollständig darauf abgelegt werden kann. Grund: Die Stationen können pausieren, während das Token auf dem Ring als Ganzes kreisen können muss, bis eine der Stationen sendewillig ist und das Frei-Token zum Belegt-Token macht und eine (begrenzt lange) Nachricht anhängt. U.U. müssen die Stationen Register führen, die den Ring künstlich verlängern. Aber jede Station verlängert den Ring ohnehin um mindestens 1 bit, wodurch das Delay auch pro Station anwächst.

Beschreiben Sie den Ablauf einer Sendung in einem Token-Ring!

Station A ist sendewillig und wartet auf das Frei-Token. Das Frei-Token kommt an und wird in ein Belegt-Token geändert. Der Frame mit der Zielinformation Station C wird im Header eingefügt. Station B erkennt nun, dass der Frame nicht für sie ist und lässt ihn passieren. Station C erkennt sich dagegen als Ziel und kopiert den Frame, prüft ihn auf Korrektheit mittels des CRC-Wertes (Cyclic Redundancy Check) und hängt ein ACK- bzw. NAK-Bit hinten dran, bevor der Frame wieder in den Ring gespeist wird. Station A erkennt kurz darauf seinen eigene Frame und nimmt ihn vom Ring runter, wobei sie am ACK-Bit feststellt, ob die Übertragung erfolgreich war.

Welche Aufgaben hat die Monitorstation im Token-Ring?

Sie muss (1) Token-Verluste feststellen, (2) endlos kreisende Belegt-Token erkennen, (3) doppelte Frei-Token verhindern und (4) prüfen, ob die Reservemonitore noch aktiviert sind. (1) erreicht sie durch Timer, die ablaufen, wenn ein Token länger fehlt als die Zeit für einen Frame-Umlauf plus der maximalen Frame-Grösse. (2) wird durch einen Stempel realisiert, den die Monitorstation einem vorbeilaufenden Belegt-Token aufprägt. Kommt das Token mit dem Stempel wieder, dann entfernt sie es vom Ring und initialisiert diesen neu. Doppelte Token erhalten den gleichen Stempel, wodurch die Station einen Fehlerfall (2) erkennt, dessen Beseitigung auch Fehler (3) behebt. Für (4) senden die Reservemonitore regelmässig ein Signal, an dem die Monitorstation erkennt, dass sie noch aktiviert sind.

Was bedeutet das Early Token Release im Zusammenhang mit Ring-Netzen?

Einfache Ring-Protokolle sehen vor, dass stets nur ein Frame auf dem Ring laufen kann, wodurch aber Bandbreite verschenkt wird, wenn Station A direkt nach Station B senden will, weil das von B generierte Frei-Token fast den ganzen Ring umlaufen muss, um zu A zu gelangen. Beim Early Token Release-Prinzip kann der Empfänger eines Frames nach dem Empfang ein Frei-Token generieren und an den Frame anhängen, wodurch in unserem Falle Station A seinen Frame direkt an das Ende des B-Frames hängen kann. V.a. bei grossen Netzen, wie FDDI, können auf diese Weise viele Frames im Ring platziert werden.

Was zeichnet die 4B/5B-Signalcodierung aus?

Diese bei FDDI eingesetzte Codierung benutzt das Non-Return to Zero Level-Encoding, d.h., ein gesetztes Bit wird durch eine Eins, ein gelöschtes Bit durch eine Null repräsentiert. Jeweils 5 Bit stehen für 4 Bit Informationen, wodurch sich eine Auslastung der Bandbreite von 80% ergibt (gegenüber 50% beim Manchester Encoding) und 16 "illegale" Bit-Kombinationen für Steuersignale zur Verfügung stehen, z.B. "00000" für Ring=tot und "11111" für Ring=idle. Dadurch, dass bei regulären Zeichen nie mehr als zwei Nullen hintereinander vorkommen dürfen, kann der 4B/5B-Codierung zudem eine Selbsttaktung zugeschrieben werden.

Warum ist das Frei-Token eines Token-Busses grösser als das eines Token-Ringes?

Im Token-Bus findet nur ein logischer Ring Verwendung, d.h. jede Station muss ihre Nachfolgerin kennen und ihr explizit die "kreisenden" Frames zusenden, also auch das Frei-Token, wobei im Gegensatz zum physikalischen Token-Ring die Zieladresse im Frame-Header jeweils zu vermerken ist, ergo das Paket grösser wird.

Was bewirkt der Einsatz des HDLC-Protokolls in LANs?

Eigentlich soll das HDLC-Protokoll (High-Level Data Link Control) unsichere Netzverbindungen durch seine Fehlerkontrolle verbessern, was bei WAN-Übertragungen auch nötig ist. Bei den sehr sicheren LANs dagegen bewirkt der HDLC-Einsatz, dass die oberen Schichten sehr dünn ausfallen können. HDCL stellt für LANs das dar, was das Transportprotokoll der Klasse 4 für WANs darstellt.

Berechnen Sie den CRC-Wert für Frame=111011 mit Generatorpolynom=x^4+x^2+1!

1110110000 : 10101 = 0
10101
-----
010001
 10101
 -----
 0010000
   10101
   -----
   0010100
     10101
     -----
     00001   <== CRC-Wert, der an Frame anzuhängen ist!

Durch welche Methoden lässt sich die Ringsicherheit erhöhen?

Man kann (1) Ringe als Sterne konzipieren, d.h., in der Mitte sitzt ein zentraler Vermittler, der im Falle des Ausfalls einer Station eine interne Bypass-Schaltung vornehmen kann. Man kann (2) Ringe auch physikalisch verdoppelt konzipieren, wobei beide Ringe getrennt voneinander unidirektional gegenläufig verwendet werden. Im Falle des Ausfalls einer Station können die zwei der Bruchstelle nächsten Stationen eine Bypass-Schaltung zwischen beiden Ringen vornehmen, wodurch man quasi einen verlängerten Einzelring erhält. Bei zwei Bruchstellen versagt diese Methode im Gegensatz zu (1) jedoch.

Zu was dient das CLAIM-Token?

Das CLAIM-Token dient dazu, herauszufinden, wer die Monitorstation werden soll.

  1. Beim Token Ring: Beim Aufbau des Rings oder einem Monitorausfall sendet ein Reserve-Monitor das CLAIM-Token mit seiner eigenen Adresse raus. Jeder weitere potenzielle Monitor prüft, ob er die Token-Adresse numerisch überbieten kann. Ist dies der Fall, so ersetzt er die Token-Adresse durch seine eigene. Neuer Monitor ist dann diejenige Station, die das CLAIM-Token mit ihrer eigenen Adresse zurückerhält, also die numerisch höchste Station.
  2. Beim Token Bus: Der CLAIM-Frame wird so gross konzipiert, wie die beiden Most Significant-Adressbits der jeweiligen Station beanspruchen. Jede Station, die zwei höhere Bits besitzt, verlängert den Rahmen. Ist sie kleiner, dann ist die Station aus dem Rennen. Ist sie gleichgross, bleibt alles beim Alten. In der nächsten Runde wird der CLAIM-Frame so gross wie das dritte und vierte Most Significant-Adressbit. Der Prozess wiederholt sich. Die Station, die den letzten Frame aussendet bzw. verändert (das ist die Station mit der höchsten Adresse), gewinnt die Monitorbewerbung.

Bei FDDI wird das CLAIM-Token auch dazu benutzt, dass jede Station den gewünschten Anteil der zur Verfügung stehenden Bandbreite (i.d.R. 100 Mbps) als synchrone Allocation zugewiesen bekommt.

Erklären Sie kurz den PURGE-, den STANDBY MONITOR PRESENT- und den BEACON-Frame des Token-Ringes!

Der PURGE-Frame wird zur der Ring-Initialisierung eingesetzt. Das STANDBY MONITOR PRESENT-Frame wird periodisch von den Reserve Monitors ausgesendet, wodurch die Neighbor Notification erledigt wird, d.h., jede Station lernt die Adresse ihres aktuellen Nachbarn stromaufwärts kennen. Dies ist wichtig für die BEACON-Frames, die bei Netzfehlern zum Einsatz kommen.

Wie gross muss ein Paket in einem CSMA-Netz mindestens sein? Gibt es Unterschiede in der Kollisionserkennungszeit zwischen CSMA und CSMA/CD?

CSMA/CD steht für Carrier Sense Multiple Access/Collision Detection.

Szenario: Eine Kollision zwischen zwei Nachrichten findet am äussersten rechten Bus-Rand statt. Der eine Sender befindet sich am äussersten linken Rand. Um die Kollision feststellen zu können, muss er zum Zeitpunkt ...

t = 2 * (Zeit eines Signals für die gesamte Busstrecke) [Sekunden]

... am Medium lauschen. Bei einem Zeitpunkt t1 < t würde die Station annehmen, dass keine Kollision stattgefunden hat. Bei einem Zeitpunkt t2 > t hätte die Station (t2-t) Sekunden Bandbreite verschwendet. Ein CSMA-Paket muss daher mindesten so viele Bits lang sein, wie in t Sekunden gesendet werden können. Ist das Paket länger, dann wird im reinen CSMA-Verfahren so lange Bandbreite verschwendet, bis die Paketsendung abgeschlossen ist - im Worst Case: t3=2*t+(Sendezeit für das grösstmögliche Paket). Das CSMA/CD-Verfahren dagegen erkennt in jedem Fall zum Zeitpunkt t, dass eine Kollision stattgefunden hat, da es bereits während der Sendung das Medium auf Kollisionen prüft.

Gibt es ein Protokoll, bei dem Durchsatz=Last=100% erreichbar ist?

Beim 1-persistent CSMA lassen sich diese Werte erreichen, sofern nur eine Station ständig sendewillig ist. Die Station sendet ein Paket, wobei es zu keiner Kollision kommen kann, was den Durchsatz mildern würde. Da sie nach Sendung des Pakets durch die 1-persistent-Strategie bei freiem Medium sofort weiter senden kann, wird keinerlei Bandbreite verschenkt, die Auslastung des Netzes ist 100%. In der Realität treten aber bisweilen Netzfehler auf, was Duplikat-Sendungen erfordert (Durchsatz verringert sich). Ausserdem benötigen die Nutzdaten einen Overhead, um u.a. ihr jeweiliges Ziel finden zu können (Last verringert sich).

Welchen wesentlichen Vorteil bietet das Token Passing gegenüber CSMA?

Das Token Passing gestattet die Realisierung von Echtzeit-Betrieben, da durch Begrenzung der maximalen Paketlänge jeder Station ein bestimmtes Mass an Bandbreite garantiert werden kann (synchrone Allokation), unabhängig von der Last; dies gilt natürlich nur, sofern der Token Ring bzw. Token Bus in Ordnung ist.

Wie ist das IEEE 802-Adressformat aufgebaut?

802-Adressen sind entweder 2 (16 bit) oder 6 Bytes (48 bit) lang. Die ersten beiden Most Significant Bits bestimmen den Adressierungscharakter. Es gilt:

(1)  0x...x = Individualadresse
(2) 10x...x = Globaler Multicast 
(3) 11x...x = Lokaler Multicast
(4) 111...1 = Broadcast

Wie berechnet sich bei FDDI die Token Target Rotation Time (TTRT)?

Bei FDDI erhält jede Station eine garantierte synchrone Bandbreite, genannt die synchrone Allocation, das ist die Sendezeit t1. Die Paketlänge sei begrenzt durch die Sendezeit von t2. Der vollständige Umlauf eines Tokens beanspruche die Zeit t3. Es gilt dann:

TTRT = Summe(t1) + t2 + t3.

Nach dem Ringaufbau ist die TTRT definiert und fix in jeder Station gespeichert. Jede Station weiss dadurch jederzeit, wie lange sie maximal warten muss, um wieder Senden zu können.

Was versteht man bei FDDI unter asynchroner Sendezeit?

In FDDI erhält jede Station eine synchrone Sendezeit zugewiesen. Nutzt sie diese nicht aus, bemerkt das die nachfolgende Station, da das Frei-Token vor Ablauf der TTRT bei ihr ankommt. Die nicht genutzte synchronen Sendezeit der Vorgänger-Station(en) ist die asynchrone Sendezeit des aktuellen Frei-Token-Besitzers. Durch einen Strafpunkte-Mechanismus wird dafür gesorgt, dass die asynchrone Sendezeit gerecht verteilt wird. Jedes zu früh ankommende Frei-Token vermindert das Strafkonto um Eins, jede Nutzung der asynchrone Sendezeit erhöht das Strafkonto um Eins, genutzt werden kann die asynchrone Sendezeit nur, wenn das Strafkonto<=0 ist.

FDDI II soll neben synchrone Sendezeit auch isochrone Sendezeit anbieten. Was ist darunter zu verstehen und welche Vorteile sind damit verbunden?

Die isochrone Sendezeit garantiert die Versendung von Daten in exakt x Zeiteinheiten. Dazu wird alle 125 Mikrosekunden ein Slot auf dem FDDI-Ring geschaffen, der 8 bit aufnehmen kann. Auf diese Weise kann eine Station in einer Sekunde 8.000 Mal den 8-bit-Slot mit Daten füllen (unabhängig vom Frei-Token), wodurch sie eine verzögerungsfreie und konstante (eben isochrone) Datenrate von 8.000*8=64 kbps erhält, die sich z.B. zur Übertragung von Sprache eignet. Werden höhere Datenraten benötigt, z.B. für Bilder, so können einfach mehrere isochrone Kanäle geschaltet werden.

Auf einem Token-Ring von 20 km Länge ist eine Datenrate von 16 Mbps möglich, sowie eine maximale Paketgrösse von 1024 Byte, wobei 10 Byte Steuerinformationen enthalten sind. Wie hoch ist die effiziente Datenrate im Ring? Die Ausbreitungsgeschwindigkeit beträgt 2*10^8 m/s.

Es gilt: Die tatsächliche Kapazität c des Rings sind die übertragenen Datenbits p innerhalb einer bestimmten Zeit t: c=p/t. Die übertragenen Datenbits können maximal die Paketgrösse p0 Bytes umfassen, von denen die Steuerinformationen si abgezogen werden müssen: p=p0-si bit. Die Zeit, die nötig ist, um diese Daten zu übertragen, setzt sich folgendermassen zusammen: t=Zeit für Ringumrundung + Zeit für das Paket=t1+t2. t1 ergibt sich aus der Ringlänge s und der Ausbreitungsgeschwindigkeit v: t1=s/v. t2 ergibt sich aus der Paketlänge p0 und der Datenrate c0: t2=p0/c0. Für die effiziente Datenrate des Rings gilt dann:

c =  (p0   - si)    / ( (s     /v    ) + (p0    /c0     ) )
  = ((1024 - 10)*8) / ( (20000/2*10^8) + (1024*8/16*10^6) )

Ein System B besteht aus drei Token-Ringen mit jeweils 100 Stationen, die über drei Bridges miteinander verbunden sind. Ausfallwahrscheinlichkeit des Ringanschlusses Pr, eines Links Pl und einer Bridge Pb ist jeweils 10^-2. Berechnen Sie die Wahrscheinlichkeit für den totalen Ausfall von B, den Ausfall einer beliebigen Station und den Ausfall der Kommunikation zwischen zwei Stationen!

Die Wahrscheinlichkeit (W) für den Totalausfall einer Station hängt ab von der W des Ausfalls eines Ringes. Nur wenn alle drei Ringe ausgefallen sind, ist das System B total ausgefallen. Es gilt:

W(Alle Stationen eines Ringes okay) =(1-Pr)^100 = 0.366
W(Alle Links eines Ringes okay) =(1-Pl)^100 = 0.366
W(Ring okay) = W(Alle Stationen okay)*W(Alle Links okay) = 0.134
W(Ausfall ein Ring) = 1-W(Ring okay) = 1-0.134 = 0.866
W(Ausfall aller drei Ringe) = W(Ausfall ein Ring)^3 = 0.65

Eine beliebige Station in B ist ausgefallen, wenn ihr Ring ausgefallen ist, also W(Ausfall beliebige Station) = W(Ausfall ein Ring) = 0.866. Der Ausfall der Kommunikation zwischen zwei Stationen hängt davon ab, ob sich die Stationen im gleichen Ring befinden oder ob sie über eine Bridge verbunden sind. Es gilt:

W(Kommunikation in einem Ring) = 1/Anzahl Ringe=1/3 = 0.33
W(Kommunikation über Bridge) = 1-W(Kommunikation in einem Ring) = 0.66
W(Ausfall eines Ringes) = 0.866
W(Zwei Ringe okay) = (0.134)^2 = 0.018
W(eine Bridge okay)= 1-W(Bridgeausfall) = 1-10^-2 = 0.99
W(Bridge-Kommunikation okay) = 0.018*0.99 = 0.018
W(Bridge-Kommunikation unmöglich) = 1-0.018 = 0.98
W(Kommunikation unmöglich) = 0.866*0.33+0.98*0.66 = 0.94

Wann spricht man von asymmetrischen Netzen?

Asymmetrische Netze sind Netze, in denen es eine Masterstation gibt, die das Netz i.d.R. zentral verwaltet. Dies ist bei den meisten Terminal-Netzen gegeben, so z.B. bei SNA (Systems Network Architecture) von IBM mit einem zentralen Mainframe. Der Trend geht jedoch über zu symmetrische Netze wie OSI- oder (bedingt) Client/Server-Networking. Auch IBM hat dies erkannt und bietet für SNA die Software LU 6.2 (Logical Unit type 6.2) und APPN (Advanced Peer-to-Peer Networking) an, über die auch Terminals ohne Mainframe miteinander kommunizieren können.

4. Vermittlungsschicht

Welche Gefahr birgt das Hot Potato-Routing in sich?

Beim Hot Potato-Routing wird ein ankommendes Paket vom IMP (Interface Message Processor, Paketvermittlungsknoten) an den Ausgang gelegt, der die kürzeste Wartezeit verspricht. Dies kann dazu führen, dass ein Ping-Pong-Effekt eintritt, das Paket also zwischen mehreren IMPs hin und her wandert, ohne seinem Ziel näher zu kommen. Abhilfe: (1) Blockierung von Ausgängen oder (2) Ausgänge, die in der richtigen Richtung liegen, mit einer höheren Priorität versorgen.

Welche Vorteile bringen virtuelle Verbindungen mit sich?

Ausser beim ersten Verbindungsaufbau müssen die Pakete hier nicht die ganze Adresse zum Ziel mit sich führen, sondern es genügt die wesentlich kürzere virtuelle Kanalnummer für die IMPs, die so das Paket ohne Verzögerung durch das Netz schleusen können. Auch die interne IMP-Schaltung funktioniert wesentlich schneller als bei Datagramm-Vermittlung, da die Tabellen für die aktuellen virtuellen Kanäle viel kleiner sind als die Tabellen über sämtliche Adressen im Netz.

Welchen besonderen Vorteil bringt das isarithmetische Routing mit sich?

Dieses Routing-Verfahren verlangt von den Paketen, welche von den IMPs weitervermittelt werden wollen, dass sie eine Permit (Erlaubnis) besitzen. Die Anzahl der im Netz kreisenden Permits ist begrenzt, wodurch verhindert wird, dass das Netz mit Paketen überschwemmt wird und es so zu Deadlocks kommt, die den gesamten Datenverkehr lahmlegen. Das isarithmetische Routing sorgt also zusätzlich für eine Überlastkontrolle. Nachteile: Teilstrecken im Netz können auch weiterhin mit Paketen überschwemmt werden, und Pakete müssen z.T. unzulässig lange auf die Permits warten.

Warum wird Quality of Service z.B. in Schicht 2 und Schicht 3 angeboten?

Zunächst wird die in Schicht 3 angegebene QOS von Schicht 4 bezogen. Ein Teil der Schicht 3-QOS wird in Schicht 2 weiterverwendet. Die Schicht 2-QOS betrifft nur die Verbindung zwischen Schicht 3 und Schicht 2, die u.U. sehr beständig bestehen bleibt. Anders die QOS der Schicht 3. Sie betrifft drei Partner, das rufende T-Vorkommnis, das gerufene T-Vorkommnis und den N-Manager, der die relativ kurzfristige N-Verbindung aufbauen soll. Die Schicht 3-QOS umfassen daher anders als die Schicht 2-QOS auch den Auf- und Abbau von Verbindungen sowie die maximal akzeptierten Kosten.

Wie ist ein X.25-Paket in einen HDCL-Rahmen eingefügt?

X.25-Paket   : logischer Kanal   Pakettyp   Paketinformation

I-HDCL-Rahmen: Flag Adresse Control X.25-Paket Frame-Checking-Sequence Flag

Lässt sich die Vermittlungsschicht intern noch unterteilen?

Je nachdem, wo das Vermittlungsprotokoll eingesetzt wird, kann es mehrschichtig aufgebaut sein. Das SNAcP (Subnet Access Protocol) wird in jeder Vermittlungsschicht benötigt. Es beinhaltet v.a. die Routing-Verfahren, mit denen ein Ziel im Subnet gefunden werden kann. Werden mehrere Subnets über Gateways u.ä. verbunden, müssen für jedes Subnet spezifische Änderungen bzw. Erweiterungen am SNAcP vorgenommen werden, was durch das zusätzliche SNDCP (Subnet Dependent Convergence Protocol) erreicht werden kann. Bei stark heterogenen Subnets, wie sie z.B. beim Internetworking gegeben sind, reicht das SNDCP nicht mehr aus; es muss zusätzlich das SNICP (Subnet Independent Convergence Protocol) herangezogen werden, welches wie eine eigene Schicht im ISO/OSI-Referenzmodell arbeitet und daher auch eine eigene CPC (Control Protocol Information) in das X.25-Paket einfügt.

Welche Adresse(n) ist/sind relevant für Schicht 3?

Schicht 3 soll Pakete auch über mehrere Subnets vermitteln können. Aus diesem Grund ist es wichtig, dass es eine weltweit eindeutige Adresse für jedes Vermittlungsschicht-Vorkommnis gibt. Diese globale Adresse wird durch die N-SAPid gestellt, die nicht nur eindeutig ist, sondern darüber hinaus auch noch ortsunabhängig sein sollte (was sie i.d.R. aber nicht ist, da ihr Domain Specific Part üblicherweise hierarchisch aufgebaut wird). Die N-SAPid wird im SNICP geführt, während innerhalb des aktuellen Subnets zusätzlich auch noch eine netzbedingte Adresse für SNAcP vermerkt wird. Bei jedem Übergang in ein neues Subnet wird die N-SAPid zuerst in die netzspezifische Adresse des Trägerrechners umgerechnet. Dorthin werden dann die Pakete geroutet.

Wie baut sich das OSI-Adressen-Format auf?

Das OSI-Adressen-Format bestimmt die N-SAPid. Das Format muss eine weltweit eindeutige Nummer garantieren, die ortsunabhängig sein soll, d.h., sie sollte sich nicht ändern, auch wenn der Trägerrechner an einem neuen Ort betrieben werden sollte. Die OSI-Adresse besteht aus dem Initial Domain Part, der von der OSI genormt wird und i.d.R. eine Länderkennung beinhaltet, und dem Domain Specific Part, der von den Subnet-Betreibern beliebig gestaltet werden kann, sich i.d.R. aber aus den Knotenadressen zusammensetzt, über die der Zielrechner erreicht werden kann (wodurch die von OSI geforderte Ortstransparenz jedoch verloren geht). Die OSI-Adresse muss also keineswegs hierarchisch aufgebaut sein. Wohin sie konkret führt, ist im Prinzip nur über die Tabellen zu ermitteln, die die IMPs führen.

Die IP-Adresse: Enthält sie die Portnummer? Ist die Host-ID wichtig zum Routen? Wie unterscheidet sich ein UDP-PDU von einer IP-PDU?

Die IP-Adresse (Internet Protocol) baut sich aus der Host-ID und der Netz-ID auf, enthält also nicht die Portnummer; diese ist Teil des Transportschicht-Headers, bei IP i.d.R. ein TCP- bzw. UDP-Paket. Die Gateways spalten die Netz-ID ab, denn nur diese ist für das Routing relevant. Wurde das richtige Netz gefunden, so ist dies meist ein Broadcast-Medium - für diesen Fall enthält der Schicht-2-Vorspann die Ethernet-Adresse, um den richtigen Host zu finden. Zum Unterschied von IP und UDP (User Datagram Protocol): Beide Protokolle sind Datagramm-Dienste, jedoch sitzt UDP i.d.R. auf IP auf und ist ein End-to-end-Dienst. Daher enthält UDP auch die 16-bit-Portnummer und eine eigene Prüfsumme, da IP unzuverlässig ist trotz der IP-Header-Prüfsumme.

Sie haben die Wahl zwischen zwei Netzwerken: (1) Virtual Channel mit 3-Byte-Header und pro IMP 8 Byte Speicher, (2) Datagramm mit 15-Byte-Header. Pro Verbindung werden 4 IMPs 1.000 s lang mit 200 Paketen beansprucht. IMP-Speicher kostet pro Byte 1 Pfennig, und die Übertragung von 10^6 Bytes zwischen zwei Knoten kostet 1 Pfennig. Welches Netzwerk ist auf Dauer billiger?

Die Kosten hängen ab von den übertragenen Bytes (bei Datagrammen wegen ihrer Headern grösser) und dem IMP-Speicher (beim Virtual Channel grösser). Die Kosten sind eine Funktion der Zeit. Für den Vergleich wichtig ist nur die Anzahl der Header-Bytes der Pakete, nicht die Anzahl der Datenbytes (die ist in beiden Fällen identisch). Pro Sitzung fallen 1.000 s lang Übertragungskosten an. Es gilt:

IMPKosten_VC=IMP-Anzahl pro Sitzung*Anzahl Bytes*1 Pfennig=4*8*1=32 Pf
IMPKosten_DG=0 Pf
Header-Bytes pro Sec_VC= 3 Header-Bytes * 200 Pakete/1.000 s=0.6 Bytes/s
Header-Bytes pro Sec_DG=15 Header-Bytes * 200 Pakete/1.000 s=3   Bytes/s
DÜ_Kosten_VC(t)=Knotenanzahl*(HB pro Sec_VC/Kostensatz)*t=t*3*0.6/10^6
DÜ_Kosten_DG(t)=t*3*3/10^6
Kosten_VC(t)=IMP_Kosten_VC+DÜ_Kosten_VC=t*1.8/10^6 Pf+32 Pf
Kosten_DG(t)=IMP_Kosten_DG+DÜ_Kosten_DG=t*  9/10^6 Pf+ 0 Pf
===> Kosten_VC(t)=Kosten(DG) => t=51 Tagen, dann lohnt sich VC!

Was ist der Hauptunterschied zwischen IP-Adressen und OSI-Netzadressen?

IP-Adressen haben eine fixe Länge von 32 bit, während OSI-Adressen variabel lang sein können.

5. Die Transportschicht

Welche Besonderheit zeichnet die T-Flussregelung gegenüber der DL- und N-Flussregelung aus?

Die T-Flussregelung ist eine echte End-to-End-Flussregelung. Zudem sieht das ISO/OSI-Referenzmodell vor, der Transportschicht einen Credit-Fenstermechanismus zuzuweisen, d.h. die Flusssteuerung erfolgt nicht einfach durch Verwerfen von Paketen oder NAK-Sendungen, sondern der Empfänger teilt dem Sender mit, wie viele Pakete (Credits) er bereit ist, zu empfangen. Die praktische Konsequenz ist, dass die Transportschicht anders als die niedrigeren Schichten über ein variabel grosses Fenster verfügt, das sich den jeweils möglichen Bedingungen (automatisch) anpassen kann.

Welche Netzqualitätsstufen können einer T-Verbindung angeboten werden?

Eine Typ A-N-Schicht bietet der T-Schicht eine sichere Übertragungsstrecke. Die Restfehlerrate ist niedrig und Netzzusammenbrüche sind selten. Für eine solche Übertragungsstrecke genügt das Schicht-4-Protokoll der Klasse 0 bzw. Klasse 2, falls Multiplexing erwünscht wird. Eine Netzschicht vom Typ B garantiert zwar eine niedrige Restfehlerrate, kann aber Netzzusammenbrüche nicht ausschliessen. Für diesen Netztyp eignet sich das Schicht-4-Protokoll der Klasse 1 bzw. 3 (Multiplexing). Bei sehr unsicheren Netzverbindungen (Typ C) bleibt die ganze Fehlerbehandlungsarbeit am Protokoll der Schicht 4 hängen. Typ C-Netzverbindungen müssen mit dem T-Protokoll der Klasse 4 beantwortet werden.

Beschreiben Sie, wie ein Client mittels TCP/IP eine Transportverbindung zu einem Server aufbaut!

Wir gehen davon aus, dass der Server eine bekannte Portnummer belegt, z.B. Port 21 (für FTP). Auf einem anderen Rechner möchte nun ein Client FTP für sich nutzen können. Aus diesem Grund fordert er von seinem TCP-Modul eine freie Portnummer an, die i.d.R. über 1.023 liegt (die unteren sind fest belegt). Nun sendet er den Verbindungswunsch zum Server, indem er als Portnummer 21 angibt. Der Server bemerkt die ankommende Nachricht und hat nun zwei Alternativen: Er beantwortet die Anfrage selbst (iterativer Server) oder er entwickelt über "fork()" einen Child-Prozess, der die Anfrage beantwortet, während der Serverprozess wieder in Lauschzustand übergeht, um sofort neue Anfragen entgegennehmen zu können (paralleler Server). Zu beachten ist, dass der Server und seine Children stets die gleiche Portnummer beibehalten: Die Zuweisung der ankommenden Datenströme an die richtigen Children erfolgt über die Quelle-Adresse!

Warum können Client-Abstürze unangenehme Folgen für andere Clients mit sich bringen?

Ein Client, der Anfragen an Server stellt, lässt sich eine Portnummer zuweisen, an die der Server seine Antworten zu senden hat. Stürzt nun ein Client ab, so wird diese Portnummer wieder frei und kann einem anderen Client zugewiesen werden. Dies kann zur Folge haben, dass dieser Client dann Daten von einem Server gesendet bekommt, die eigentlich für den abgestürzten Client gedacht waren. Die kann zu unvorhergesehenen Komplikationen führen.

Inwieweit unterscheiden sich die Transportschichten bei SNA und TCP?

SNA kann auf eine zuverlässige Schicht 3 setzen, wodurch Schicht 4 entsprechend einfach gehalten werden kann. TCP jedoch basiert jedoch auf den unzuverlässigen IP-Dienst, muss also viel Fehlerkontrolle selbst übernehmen, u.a. führt es deshalb auch eigene Prüfsummen. SNA entspricht damit dem OSI-Transportprotokoll der Klasse 0, während hingegen TCP dem OSI-Transportprotokoll der Klasse 4 entspricht.

Können sich mehrere T-Verbindungen eine N-Verbindung zunutze machen? Können über eine T-Verbindung mehrere S-Verbindungen übertragen werden?

Beide Fragen lassen sich mit "Ja" beantworten. Über eine N-Verbindung können gleichzeitig viele T-Verbindungen übertragen werden, sofern ein T-Protokoll gewählt wurde, welches Multiplexing beherrscht (Klassen 2, 3 und 4). Sitzungsverbindungen können jedoch nicht gemultiplext werden, d.h. es können nie mehrere S-Verbindungen gleichzeitig über eine T-Verbindung übertragen werden; jedoch können sie sequenziell die gleiche T-Verbindung nutzen.

TCP bietet eigene Prüfsummen - ist dies sinnvoll?

End-to-End-Prüfsummen sind sinnvoll, wenn das zugrunde liegende N-Protokoll unzuverlässig ist, wie es bei IP gegeben ist. Aber auch zuverlässige Netze können Fehler machen, die die Netz-Prüfsumme übersehen können, nämlich dann, wenn diese Fehler in den Netzkarten-Puffern, den IMP-Puffern oder den I/O-Kanälen auftreten. Eine End-to-End-Kontrolle ist demnach eine sinnvolle Sache.

6. Die Sitzungsschicht

Nennen Sie ein Beispiel, bei dem eine Kommunikationssteuerung notwendig ist!

Zwei Personen spielen über ein Rechnernetz Schach. Hierbei wird eine Dialogsteuerung (Halbduplex-Simulation) benötigt, die verhindert, dass beide Spieler gleichzeitig einen Zug vornehmen. Um unerlaubte Züge rückgängig machen zu können, kann die Technik der Resynchronisation benutzt werden, d.h. die Sitzung wird einfach auf den Zustand vor dem falschen Zug zurückgesetzt.

Nennen Sie ein Beispiel, in der eine Aktivität sinnvoll verwendet werden kann!

Eine Aktivität setzt sich aus mehreren Hauptsynchronisationspunkten (Major Sync Points) zusammen. Zwischen den Major Sync Points können Minor Sync Points eingefügt werden. Eine Aktivität kann z.B. für Sammelbuchungen im Reisebüro eingesetzt werden. Jede Einzelbuchung beginnt mit einem Major Sync Point. Sie besteht aus den zwei Teilschritten "Flugrichtung wählen" und "Flugzeit wählen", die jeweils durch einen Minor Sync Point getrennt werden. Wurde eine gewählte Flugzeit abgelehnt, kann resynchronisiert werden, um eine neue Zeit einzugeben. Lässt sich keine geeignete Flugzeit finden, so kann auf "Flugrichtung wählen" resynchronisiert werden, um eine alternative Richtung einzugeben. Misslingt auch dieser Versuch, kann die ganze Einzelbuchung rückgängig gemacht werden, ohne die gesamte Sammelbuchung abbrechen zu müssen.

Welche Token finden in der Session-Schicht Verwendung? Was ist bei ihrem Gebrauch zu beachten?

Die Session-Schicht arbeitet mit den folgenden, hierarchisch angeordneten Token: Data-Token > Sync-Minor-Token > Major/Activity-Sync-Token > Release-Token. Nur wer im Besitz des hierarchisch höheren Tokens ist, kann auch die niedrigeren Token einsetzen, d.h. ein Anwender kann zwar jederzeit Daten senden, wenn er das Data-Token besitzt, aber keine Verbindung abbrechen, wenn er nicht alle Token besitzt.

7. Die Darstellungsschicht

Welche Eigenschaft besitzt die Darstellungsschicht als einzige Schicht?

Sie ist die einzige Schicht, in der die übertragenen Daten geändert werden können, allerdings nur syntaktisch, nicht semantisch. Nur dadurch lässt sich eine Transfersyntax schaffen, die von beiden Partnern verstanden werden kann.

Was erhält eine IBM 3040, wenn sie direkt eine "5" von der VAX 780 gesendet bekommt?

Die VAX ist ein Little-Endian-Rechner, d.h., das niedrigste Bit steht links, das höchste rechts - bei der IBM als Big-Endian-Rechner verhält es sich genau umgedreht. Bei einer Integer-Länge von 4 Byte würde die VAX also die "5" in folgender Form senden: $05 00 00 00. Diese Zahl würde von der IBM als Zahl von über 83 Millionen interpretiert werden.

Wie kompiliert ein Compiler mit und ohne Vertauschungsstrategie "struct int i1; char ch; int i2;};"?

=> ohne Vertauschung: | 4-Byte-Integer | 1-Byte-Char    | 4-Byte-Integer |
=> mit Vertauschung : | 4-Byte-Integer | 4-Byte-Integer | 1-Byte-Char    |

Zur Kommunikation zwischen zwei Stationen A und B können Basic Encoding Rules (BER) und Local Encoding Rules (LER) eingesetzt werden. Zeigen sie für beide Fälle schematisch auf, wie Station A eine Datei nach Station A sendet!

BER-Nutzung:
Station A: Datei -> ASN.1-Repräsentation -> BER -> Transfersyntax ->
Station B: -> BER -> ASN.1-Repräsentation -> Datei

LER-Nutzung:
Station A: Datei -> Compiler -> Programm -> LER-A-Encoder -> Transfersyntax ->
Station B: -> LER A in LER B wandeln -> LER-B-Decoder -> Programm

Übersetzen Sie folgendes Pascal-Programm in eine ASN.1-Repräsentation!

type Name=record
  Vorname:  string[10];
  Initiale: char;
  Nachname: string[20];
end;

ASN.1-Repräsentation:

Name::=[APPLICATION 0] SEQUENCE {
  Vorname;  ISO64STRING,
  Initiale; ISO64STRING,
  Nachname; ISO64STRING
};

Nehmen Sie an, sie müssten den folgenden Datensatz einer DB-Datei des obigen Typs an eine andere Station übersenden: "John", "P", "Smith". Stellen Sie die ASN.1- und die Transfersyntax-Repräsentation dar!

ASN.1-Repräsentation: {Vorname "John", Initiale "P", Nachname "Smith"};

Transfersyntax-Repräsentation nach BER-Anwendung:

C0     10     16     04     "John"    16   01   "P"   16   05  "Smith"

                            Inhalt
                     Länge 4
              UNIVERSAL 22 (=ISO64STRING)
       Länge 16
Application 0

Welche Datentypen (Tag-Klassen) gibt es nach ASN.1?

Es gibt UNIVERSAL-Datentypen, die international genormt sind (z.B. INTEGER, BOOLEAN, ISO64STRING, SET, SEQUENCE, SEQUENC_EOF und CHOICE), APPLICATION-Datentypen, die innerhalb einer Übertragung benutzerdefiniert sind und normalerweise mit SEQUENCE{...} definiert werden, PRIVATE-Datentypen, die innerhalb einer Organisation genormt sind, und kontextspezifische Datentypen, die nur innerhalb eines konstruierten Datentyps Geltung haben.

Beschreiben Sie das Tag-Format nach den BER! Welchen Sinn machen Tags?

Bit8       Bit7       Bit6         Bit5-1  Bedeutung
---------------------------------------------------------
0          0          0/1          Nr.     UNIVERSAL
0          1          0/1          Nr.     APPLICATION
1          0          0/1          Nr.     PRIVATE
1          1          0/1          Nr.     kontextspezifisch

Bit 6 gibt an, ob der nach dem Tag folgende Datentyp primitiv (Bit6=0) oder konstruiert (Bit6=1) ist. Die Nummern der letzten 5 Bits sind nur bei UNIVERSAL-Datentypen von vorneherein definiert, ansonsten müssen sie vom Anwender definiert werden. Der Vorteil bei Tags, die vor jedem Datentyp explizit gesendet werden, falls gewünscht (nicht IMPLICIT), ist, dass durch ihr Weglassen signalisiert werden kann, dass der zugehörige Datensatz leer ist.

Beschreiben Sie das Längen-Format nach den BER!

Ein Datentyp kann eine bekannte und eine unbekannte Länge haben. Der Aufbau geschieht folgendermassen:

- Länge bekannt:
    kurz (1 Längenbyte)     => | 8-Bit=0 | 7-1-Bit Länge |
    lang (n Längenbytes)    => | 8-Bit=1 | 7-1-Bit n | + n Bytes
- Länge unbekannt (1 Byte): => | 8-Bit=1 | 7-1-Bit=0 |

Bauen Sie in ASN.1. auf: Einen Konstruktortyp "Name" mit Nachname, Vorname, optionales Feld für weitere Rufnamen, Feld für Firma und Ort oder stattdessen eine Freischaffend-Markierungsfeld!

Name ::= SEQUENCE {
  Nachname     ISO64STRING,
  Vorname      ISO64STRING,
     Weitere_Vornamen ::= SET OF ISO64STRING OPTIONAL,
     Firma ::= CHOICE {
          Firma ::= {Name ISO64STRING, Ort ISO64STRING},
          Freischaffend     NULL
     };
};

Was versteht man unter einem Presentation Context?

Die Kombination aus einer Abstrakten Syntax (=Beschreibung der Datenstrukturen, von denen es mehrere als Alternativen geben kann, und einer Transfersyntax (Format des Bitstroms, z.B. auch verschlüsselt oder komprimiert denkbar), von denen es ebenfalls mehrere geben kann. Am üblichsten ist die Kombination ASN.1 und die den Basic Encoding Rules zugewiesene Transfersyntax. Üblicherweise bietet die Anwendungsschicht ihrem Partner eine ganze Reihe von Kontexten an und es wird ausgehandelt, welcher Kontext letztlich Verwendung findet. Dieser Kontext kann allerdings während einer Sitzung jederzeit geändert werden.

Zu was dient das Kontext Management?

Während einer Sitzung können zwei Partner ihre Kontexte ändern, z.B. vom einfachen Default-Kontext auf einen speziellen ASN.1-Kontext. Im Rahmen des Context Managements ist auch eine Context Restauration möglich, d.h. durch Rücksetzen einer Sitzung an einen Synchronisationspunkt wird auch der dort aktuelle Kontext wieder restauriert.

Warum existiert kein P-P-ABORT_request, aber ein P-P-ABORT_indication?

Ein P-P-ABORT ist ein Dienstprimitiv, der einer Darstellungsinstanz signalisiert, dass der Netzprovider zusammengebrochen ist, z.B. weil ein Kabel mechanisch unterbrochen wurde. Einen solchen Unfall kann die Darstellungsschicht natürlich nur wahrnehmen (indication), aber nicht selbst verursachen (request).

Geben Sie den Protokollautomat des verbindungslosen P-Dienstes an!

P-UNITDATA_request     Idle     D-UNITDATA_indication

Für die Transformation mittels der Encoding Rules der lokalen Präsentation in die globale Präsentation gibt es zwei Ansätze - welche?

  • Kompilierender Ansatz: Die Datentypen werden a priori kompiliert.
  • Interpretativer Ansatz: Die Datentypen werden ad hoc kompiliert.

8. Die Anwendungsschicht

Wie baut sich ein Service Application Object (SAO) auf? Wie werden mehrere SAOs diese verwaltet?

Ein SAO besteht aus einer Reihe von Association Application Elements (ASE), sowie einer Single Association Control Function (SACF), die die Steuerung der ASEs übernimmt. Praktisch in jedem Fall ist eine der ASEs das Association Control Service Element (ACSE), welches den Verbindungsaufbau und Verbindungsabbau zum Peer-Entity übernimmt. Benutzt eine Anwendung mehrere SAOs gleichzeitig, z.B. weil sie mehrere Assoziationen aufrecht erhalten will, so wird in der Anwendungsinstanz zusätzlich noch eine Multi Association Control Function (MACF) benötigt, welche die SAFCs der einzelnen SAOs verwaltet.

Nennen Sie einige spezielle und allgemeine ASEs und erklären sie den Grund für diese Klassifizierung!

Als allgemeine ASEs bezeichnet man ASEs, die von anderen ASEs (i.d.R. spezielle ASEs) benötigt werden. Solche allgemeinen ASEs sind z.B. Remote Operations Service Element (ROSE), Association Control Service Element (ACSE), (Commitment-Concurrency-Recovery-Service Element (CCRSE), Reliable Transfer Service Element (RTSE) und Transaction Processing Service Element (TPSE). Spezielle ASEs sind dagegen z.B. File Transfer, Access and Management (FTAM), Message Oriented Text Interchange System (MOTIS), Job Transfer Modell (JTM), Virtual Transaction Processor (VTP) und Remote Database Access (RDA). Übrigens: Jedes ASE kann über einen eigenen Kontext verfügen (den es auch noch während der Sitzung ändern kann)!

Unterschied des Application Layers zu allen anderen Schichten?

Der AL verfügt über keinen A-SAP, sondern muss den User-Applikationen über Application Programming Interfaces (APIs) Zugang zu den Diensten der ASEs oder der niedrigeren OSI-Schichten anbieten.

Der Anwendungskontext stellt was dar?

Zunächst ist der Anwendungskontext nicht mit dem Darstellungskontext identisch, obwohl er diesen wohl enthält. Der Anwendungskontext gibt vielmehr Auskunft darüber, welches ASEs wie kombiniert wurden. Ähnlich wie der Darstellungskontext kann auch der Anwenderkontext zwischen den Partnern ausgehandelt werden. Der Anwendungskontext für ROSE legt z.B. fest, ob dieser Service mit RTSE kombiniert wird oder nicht.

Wozu dienen die ASEs RTSE, CCRSE und TPSE und wie unterscheiden sie sich?

RTSE und CCRSE werden von Applikationen eingesetzt, die Transaktionen gegen Fehler sichern wollen. Es gilt: RTSE ist eine Teilmenge von CCRSE. RTSE kann eingesetzt werden, so lange nur eine Assoziation gleichzeitig besteht. Eine Anwendungsinstanz mit mehreren SAOs benötigt das RTSE, um seine Transaktionen sichern zu können. RTSE benutzt immer das 2-Phase-Commit-Protokoll, während CCRSE mehrere Optionen anbietet. Noch umfassender als das CCRSE ist das TPSE. Es basiert auf Dialogen, die mehrere Transaktionen umfassen können und sich normalerweise innerhalb einer Assoziation abspielen (eine Assoziation kann aus mehreren Dialogen bestehen!), die aber notfalls auch Assoziationsunterbrechungen und -Wiederaufnahmen unbeschadet überbrücken können. TPSE erlaubt ausserdem den direkten Zugriff auf die Dienstprimitive der Session Layers.

Zeigen Sie den Protokollablauf einer Transaktion mittels des RTSE auf!

RT-OPEN_req
        A-ASSOCIATION_req
                        A-ASSOCIATION_ind
                                    RT-OPEN_ind
                                    RT-OPEN_rsp
                        A-ASSOCIATION_rsp
        A-ASSOCIATION_cfm
RT-OPEN_cfm

RT-DATA_req
        P-ACTIVITY-START_req
                        P-AS_ind
        P-DATA_req
                        P-DATA_ind
        P-MINOR-SYNC_req
                        P-MS_ind
                        P-MS_rsp
        P-MS_cnf
        P-DATA_ind
                        ...
        ...
        P-ACTIVITY-END_req    
                        P-AE_ind
                                    RT-TRANS_ind
                        P-AE_rsp
        P-AE_cnf
RT-TRANS_cnf

PS: Die RT-Benutzerdaten dürfen nur maximal 255 Bytes umfassen, die in ASN.1 (oder einer anderen Abstract Syntax Notification) formuliert sind. Jeder Datentyp wird dann als einzelnes Paket mit anschliessendem Minor-Sync-Point versendet.

Stellen Sie den CCRSE-Protokollablauf dar (2-Phase-Commit), wobei C-DONE_req verloren gehen soll!

C-BEGIN_req(Daten)
(Phase 1)                        C-BEGIN_ind(Daten)
                                 Datenverarbeitung (Phase 1)
C-PREPARE_req
                                 C-PREPARE_ind
                                 C-READY_req (oder C-REFUSE)
C-READY_ind                      (Phase 2)
C-COMMIT_req
(Phase 2)                        C-COMMIT_ind
                                 C-DONE_req
Timeout    
C-COMMIT_req
                                 C-COMMIT_ind
                                 C-DONE_req
C-DONE_ind

Das 2-PC-Protokoll kann - anwendungsabhängig - auf drei Arten eingesetzt werden - welche?

  • Zentral: Ein Koordinator regelt das Protokoll.
  • Hierarchisch: Koordinatoren pro Teilhierarchie.
  • Linear: Jeder ist Koordinator für seinen Nachbarn.

Beschreiben Sie die Architektur eines SAO für Remote Procedure Calls (RPCs)!

Für RPCs gibt es ein spezielles ASE, das RPC. Das RPC kann jeweils nur eine Assoziation verwalten. Argumente müssen ihm in ASN.1-Form übergeben werden, wobei Pointer verboten sind. Die Implementierung des RPC-Protokolls bestimmt die Semantik, wobei von der ISO "At-Most-One"- und "Exactly-Once"-Semantiken vorgesehen sind, nicht aber die "At-Least-Once"-Semantik. Das RPC-ASE benötigt die Dienste des allgemeinen Remote Operation Service Elements (ROSE). ROSE bietet verschiedene Verbindungsklassen an, die synchrone RPC oder asynchrone RPC mit oder ohne Quittung ermöglichen. ROSE selbst wiederum sitzt direkt auf ACSE auf oder auf RTSE, welches ebenfalls ACSE benötigt.

Welche negativen Aspekte fallen Ihnen zu RPCs ein?

RPCs verbieten die Benutzung von Pointern als Argumenten. RPCs sind zeitaufwendig (Stub muss Argumente verpacken, es muss ein sinnvoller Zielort gefunden werden, die Daten müssen übertragen werden, ...) RPC können nicht auf globale Variablen zurückgreifen, es sei denn solche sind durch VBS irgendwie realisiert worden. Besonders aufwendig sind RPCs, wenn sie asynchron arbeiten, wobei in diesem Fall u.U. auch auf eine Antwort des Servers verzichtet werden kann. Unschön ist, dass RPCs nach dem Client-Server-Prinzip arbeiten, also im asymmetrischen Request-Reply-Modus, der nicht zu OSI passt. Ebenso ist bes ein grober Designfehler im OSI-Modell, dass Broadcasts nur bis in Schicht 2 möglich sind; ab Schicht drei müssen die Instanzen explizit adressiert werden.

Geben Sie im Zusammenhang mit RPCs einen kurzen Kommentar ab zu den Gebieten Argumentformat, Bindung, TP, Ausnahmen-Handling, Aufrufsemantik, Präsentation , Sicherheit und Leistung!

Die Argumentform ist bei RPCs fast ausschliesslich Call-by-Value und nie Call-by-Reference, da letzteres unüberbrückbare Probleme mit sich bringt. Das Problem der Bindung beschäftigt sich damit, wie der Client den richtigen Server finden kann. Hier gibt es zahlreiche Modelle, wie Server Adressen zentral verwalten oder selbst Anfragen stellen. SUN RPC z.B. benutzt einen Port-Nummern-Server, der auf Broadcasts reagiert. Ausnahmen sind Waisen-Entstehung und Client-Abstürze, die i.d.R. über Timer registriert werden. Die Semantik der Aufrufe fliesst in die Fehlerbehandlung mit ein. Wir unterscheiden idempotente Aufrufe, die eine "mindestens einmal"-Semantik vertreten, und non-idempotente Aufrufe, die eine "höchstens einmal"Semantik vertreten. Um sicherzustellen, dass die Antwort zur richtigen Abfrage gehört, generiert SUN RPC einen Zufallszahl als Identifikator. Eine genormte Datenrepräsentation ist in heterogenen Netzen besonders wichtig, so besteht TCP z.B. das Big-Endian-Format und OSI räumt über ASN.1 beliebige Alternativen ein, die jedoch über Tags vorher angekündigt werden müssen. Zur Sicherheit und Leistung lässt sich nur feststellen, dass hier erhebliche Einbrüche zu bemerken sind; es ist also zu überlegen, das RPCs so selten als möglich stattfinden sollten, dass also lokalen Aufrufen eine Priorität zu geben ist.

Warum benötigt FTAM ein Virtual File Storage Model (VFSM)?

Dateiverwaltungssysteme (DVS) sind komplexe Programme, die sehr differente Ausprägungen aufweisen. Um Dateien von einem System A auf ein anderes System B übertragen bzw. Manipulationen an Dateien des System B vornehmen zu können, bedarf es einer SW, welches dem User eine für beide DVS gültige, einheitliche Oberfläche anbietet. Eine solche Oberfläche wird durch FTAM garantiert, welches seinerseits auf einem VFSM aufsitzt, welches die FTAM-Dienste auf die lokalen DVS-Dienste anpasst.

Was versteht man unter FADUs?

FADUs sind File Access Data Units. Sie bestehen aus Knotennamen und Data Units, wodurch im VFSM von FTAM Dateien beschrieben werden. FTAM kann immer nur auf ganze FADUs zugreifen, wobei die grösste FADU die ganze Datei umfasst und die kleinste FADU i.d.R. einen Datensatz samt Datensatzknoten. Auf ein einzelnes Datensatzfeld kann FTAM also nicht zugreifen, obwohl in der Sitzungsschicht die Grösse häufig Verwendung findet. Die Struktur einer jeden FADUs wird in den der Datei zugewiesenen Attribute beschrieben. Dort wird auch vermerkt, welche Zugriffsmöglichkeiten für wen pro FADU bestehen.

Was versteht man unter Regimes und welche FTAM-Regimes kennen Sie?

Ein Regime ist eine Periode, innerhalb der bestimmte Teile eines Application Context gelten. Und im Gegensatz zu Phasen können Regimes geschachtelt sein. Im Falle von FTAM gibt es folgende Regimes (plus einigen F-Dienstprimitiven):

FTAM             : INITIALIZE, TERMINATE, ABORT
File Selection   : (DE)SELECT, CREATE, DELETE, READ/WRITE ATTRIBUTES
File Open        : OPEN, CLOSE, ERASE, ...
File Transfer    : READ, WRITE, DATA, DATA END, TRANSFER END, ...

Der File Transfer Regime-Dienstprimitive F-CHECK wird z.B. nicht auf ACSE abgebildet, sondern direkt an den Presentation Layer weitergegeben, der ihn unverändert auf den Session Layer durchreicht.

Welche FTAM-Einschränkungsmengen (Standardstruktur-Klassen) kennen Sie?

Es gibt die Einschränkungsmengen unstrukturierte Dateien (nur Wurzel ohne Namen), sequenziell-flache Dateien (Wurzel ohne Dateneinheit und nur eine Ebene tief), geordnet-flache Dateien (wie vorher, aber Dateneinheiten logisch geordnet), geordnet-flache Dateien mit eindeutigen Namen (wie vorher, nur Schlüssel als Wurzelbezeichner), geordnet-hierarchische Dateien (Dateien-FADU-Hierarchie über mehrere Ebenen), und hierarchische Dateien mit eindeutigen Namen (wie vorher, nur mit Schlüsseln als Wurzelbezeichner).

Beschreiben Sie kurz die MOTIS-Architektur!

Das MOTIS wird durch die Message Handling Environment (MHE) repräsentiert. Die MHE besteht aus den Usern und dem Message Handling System (MHS, 2.Teilschicht). Das MHS besteht aus den User Agents (UAs) mit ihren Telex- und Telematik-Diensten und dem Message Transfer System (MTS, 1.Teilschicht). Nachrichten werden an die UAs im Interpersonal Message Format (IMF) übergeben, welches aus dem Umschlag plus dem Kopf und dem Rumpf besteht. UAs können als Server im LAN vorliegen (bei Terminalgebrauch) oder direkt in die Workstations integriert sein. Das MTS setzt sich aus den vernetzten Message Transfer Agents (MTAs) zusammen, die Nachrichten anhand des Umschlags nach dem Store-and-Forward-Prinzip übertragen können. Für die Store-and-Forward-Übertragung müssen MTAs auf das ASE RTSE aufsitzen. MTS können über Administrative Management Domains (ADMDs) oder Private Management Domains (PRMDs) adressiert werden, wobei über Ländergrenzen hinweg stets ADMDs Verwendung finden.

Welche Protokolle finden beim MHS Verwendung?

P1: Kommunikation zwischen Message Transfer Agent (MTA) und MTA.
    Benutzt Transportprotokoll der Klasse 1, ist also unsicher.
P2: Interpersonal Kommunikation zwischen User Agent (UA) und UA.
    Hier sind auch andere Protokolle denkbar, z.B. EDI.
P3: Kommunikation zwischen MTA und Service Data Entity (SDE) im PC.
    Benutzt ROSE und gilt daher als sicher.
P7: Kommunikation zwischen UA und Message Store (im MTA).

MOTIS und Multicasts - was fällt Ihnen dazu ein?

MOTIS erlaubt Multicasts. Dabei wird nach der Strategie gefahren, die Kopien erst im LAN vor Ort zu aktivieren, um so Bandbreite einsparen zu können. Am Zielort wird der Rechner also dazu veranlasst, Kopien zu erzeugen und diese an die Multicast-Ziele zu versenden.

UAs werden auch für andere Anwendung als X.400 benutzt. Nennen Sie ein Beispiel!

UAs werden auch verwendet, um IBM-Rechner an OSI-Netze anschliessen zu können. Aufgabe der UAs ist es, mit der IBM-typischen PROFS-Oberfläche kommunizieren zu können, nach unten hin aber die OSI-Schichten anzubieten. Da IBM i.d.R. Datex-P, also das sichere X.25-Protokoll, benutzt, kann die Transportschicht von niedriger Klasse sein.

Beschreiben Sie die O/R-Adresse bzw. den O/R-Namen!

Applikationen identifizieren sich in eindeutiger Weise über P-SAPs (A-SAPs gibt es bekanntlich nicht). Ein solcher P-SAP setzt sich zusammen aus einem P-Selektor, einem S-Selektor, einem T-Selektor und einer weltweit eindeutigen N-SAPid (=DEE-Adresse). Der O/R-Name beschreibt, wer der Adressat ist, ist also im Prinzip ortsunabhängig, wegen seinen hierarchischen Aufbaus aber i.d.R. ortsabhängig. Die O/R-Adresse entspricht dem P-SAP und beschreibt, wo der Adressat zu finden ist. Verzeichnis-Server übernehmen die Aufgabe, O/R-Namen auf O/R-Adressen abzubilden, wobei sie auf riesige Tabellen zurückgreifen müssen, da die Ortsunabhängigkeit der O/R-Namen eine "Berechnung" der O/R-Adressen verhindert.

Mit welchen Modellen wird der Verzeichnisdienst beschrieben?

Mit dem (1) Informationsmodell (Struktur des VDBS mit den lokalen Replikationen=Caches), dem (2) funktionalen Modell (Protokolle zwischen Directory Service Agents und Directory User Agents), dem (3) Organisationsmodell (Zuständigkeiten für Directory Service Agents und Directory User Agents), und dem (4) Sicherheitsmodell (Zulassungen).

MAP gibt es auch in einer Mini-Ausführung. Beschreiben Sie diese kurz!

MAP Enhanced Performance Architecture (EPA) verzichtet auf die Schichten 3 bis 6 und benutzt statt LLC Typ 1 LLC Typ 3, welches der bestätigte Datagramm-Dienst ist, wobei die Sendung der ACKs ohne Frei-Token des Token-Busses erfolgen kann. EPA erlaubt nicht die Verwendung von Bridges, ermöglicht keine Segmentierung (Schicht 3 und 4 fehlen ja), und es kann auch nicht mit dem "grossen" MAP kommunizieren. Wie MAP benutzt es aber auch die Manufacturing Message Specification (MMS), um damit Maschinen über das Netz steuern zu können (mittels Semaphore- und Ereignis-Verwaltung über einen speziellen MMS-Server).

Über welche SW können SQL-Statements in heterogenen Netzen und DBS eingesetzt werden?

Remote Database Access erlaubt die Versendung von SQL-Statements in offenen Systemen. Die Statements werden in ASN.1 formuliert, daher ist es unwichtig, wie die DBMS physikalisch organisiert sind. Auf diese Weise kann über SQL ein hierarchisches DBS abgefragt werden, sofern die Kommunikation über zwei Instanzen von RDA abgewickelt wird. Beispiel für die ASN.1-SQL-Statement-Definition:

SQL_DBL_Statement::=CHOICE{
    sql_Data_Statement [0] IMPLICIT SQL_Data_Statement,
    sql_Schema_Statement [1] IMPLICIT SQL_Schema_Statement
};
SQL_Data_Statement::=SQL_Schema_Statement::=IA5_String -- spezielle ISO-Definition