Rechnernetze: Aufgaben, Fragen und Antworten
von Daniel Schwamm (15.08.1994 bis 23.09.1994)
Aus "Heimat des Dilettantismus"
http://www.henrys.de/daniel/index.php?cmd=texte_rechnernetze-fragen.htm
nach Effelsberg (1992, 1994)
Inhalt
1. Das ISO/OSI-Referenzmodell
2. Die Bitübertragungsschicht
3. Die Sicherungsschicht
4. Die Vermittlungsschicht
5. Die Transportschicht
6. Die Sitzungsschicht
7. Die Darstellungsschicht
8. Die Anwendungsschicht
1. Das ISO/OSI-Referenzmodell
Welchen Teil von Rechnernetzen (RN) will die ISO mit dem
ISO/OSI-Referenzmodell (OSIM) standardisieren?
Nur die Interaktion (Interconnections) zwischen offenen
Systemen, nicht jedoch ganze Anwendungen. Die Interaktion umfaßt die
Informations-Übertragung und die diversen Mittel zur Kooperation zwischen
verteilten Systemen.
Warum gibt es Schichten im OSIM?
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 OSIM für LANs
bildet nur maximal ein Vorkommnis, weil pro Daten-Endeinrichtung (DEE) nur eine
Daten-Übertragungs-Einrichtung (DÜE) existiert.
Stellen Sie grafisch den Zusammenhang zwischen PDUs und SDUs
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 und
PDUs. PDUs bestehen aus SDUs und PCIs, die SDUs enthalten dagegen nie die ICIs,
denn diese werden beim SAP ausgefiltert.
Was sind SAPs?
SAPs sind Service Access Pints (Dienstzugangspunkte) [...]
ausgefiltert wird. Jeder (N)-SAP ist genau einem (N+1)- und einem
(N)-Vorkommnis zugewiesen. Ausnahme: Mehrere (N+1)-Vorkommnissen können
sich über einen Multiplexer einen (N)-SAP teilen. Nur die Network-SAPs
benötigen eine NETZWEIT eindeutige SAPid.
Wie lassen sich (N)-SAP-Adressen durch Suffixe aus Adressen
niedrigerer Schichten bilden? Stellen Sie dies durch ein grafisches Beispiel
dar!
Die Adressierung muß hierarchisch aufgebaut sein, damit
ein (N)-SAP sich aus Adressen von niedrigeren Schichten aufbauen können.
Es gilt, daß nur die Adresse der 3 Schicht NETZWEIT eindeutig sein
muß. 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) in folgender Form:
Schicht N Schicht N-1 Schicht N-1 Schicht N
(N)-CONreq
(N)-CONind
(N)-CONresp
(N)-CONconf
Welche Vorteile bringt das Multiplexen von mehreren
Vorkommnissen auf einen SAP?
Ohne Multiplexing müßten von Schicht 1 genausoviele
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 besitz Multiplexing den Vorteil, daß sich mehrere
Vorkommnisse die Betriebsmittel für ein Schicht-Protokoll teilen
können, daß also nicht für jedes (N)-Vorkommnis ein eigenes
(N-)-Vorkommnis erzeugt werden muß.
(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
OSIM für WANs zu bemängeln?
Die OSIM hat das CCITT-Modell X.25 übernommen, welches
aus den Protokollen für X.25-Packeten (3 Schicht), HDCL (2 Schicht) und
X.21 (1 Schicht) besteht. Im Gegensatz zum OSIM 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 Packete
und (2)-PDUs Rahmen. Die Übernahme von X.25 in das OSIM bringt es auch mit
sich, daß 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
- Selbsttaktung und Unterscheidung von Nicht- und Null-Sendungen - bleiben
erhalten. FDM ist hier nicht möglich, dafür aber TDM.
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;
sie dient nur zur Umwandlung von analogen Informationen in digitale
Signale.
Wie wirkt sich die Bandbreite auf die Signalübertragung
aus?
Die Bandbreite beinflußt bei konstanter Datenrate die
Güte der Signal-Übertragung. Es gilt: Je größer die
Bandbreite, desto schärfer ist die Rechteck-Form der Signale. Niquist
zeigte, daß 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 8000
bps. Bei 8 Amplitudenstufen (zur Übertragung von 3-Bit-Blöcken) liegt
sie schon bei 24.000 bps, und bei 256 Amplitudenstufungen für
8-Bit-Blöcke liegt sie bei 64.000 bps. Zu beachten ist, daß dabei
die Baudrate kontinuierlich bei 8000 Schritte/s stehen bleibt. Zu beachten ist
weiterhin, daß nach einem Gesetz von Shannon die Stufung der Amplituden
nicht beliebig ausbaubar, sondern abhängig von der Störleistung des
Mediums ist.
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 PL 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 Tiefpaßeigenschaft - was ist das und was für
einen Effekt kann sie bewirken?
Die Tiefpaßeigenschaft 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 Skineffekt führt, d.h. die Signale werden nur noch am
äußersten Kabelrand weitergeleitet. Bei Koaxial-Kabel wirkt man dem
Skineffekt mit verschiedenen Schichtungen um den Kabelkern entgegen.
Welche Multiplex-Arten kennen Sie?
Time Division Multiplexing (synchron und asynchron) und
Frequence Division Multiplexing. Bei TDM steht jedem kanal kurzzeitig die
gesamte Bandbreite zur Verfügung, während beim FDM die Bandbreite auf
die Kanäle aufgeteilt wird.
Welche Vorteile besitzen Regeneratoren ggü.
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 den erkannten Wert, der ja
nur Null oder Eins sein kann, weiter.
Welches Verhältnis besteht bei LANs zwischen Last und
Durchsatz?
Das Ziel aller LAN-Protokolle ist ein Durchsatz von 100%, d.h.
jedes abgesendete Packet 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ößen lassen sich i.d.R.
nicht zu 100% erreichen. Der Durchsatz wird eingeschränkt durch
Kollisionen und Netzfehler. Die Last wird reduziert durch Steuerpackte. Bei den
Random Access Protokollen bringt eine höhere Last i.d.R. einen niedrigeren
Durchsatz mit sich. Die Token-Protokolle dagegen verschwenden Bandbreite, wenn
eine Station nicht senden will.
Welche Datenrate benötigt man für analoge (a)
PCM-Daten und (b) Delta-Modulations-Daten, bei 3000 Hz und 256
Quantisierungsstufen?
Wir wissen von Nyquist:
Datenrate=2*Bandbreite*log2(Quantisierungsstufen). Bei (a) wird also eine
Datenrate von 2*3000*8=48kbps 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) eine Datenraste benötigt von
2*3000=6kbps.
Wie hoch ist die maximal erreichbare Datenrate, wenn ein
digitales Signal über einen 3-kHz-Kanal mit 20dB Rauschabstand
übertragen wird?
Wir wissen von Shannon:
Datenrate=Bandbreite*log2(1+Rauschabstand). Daher gilt:
DR=3000*log2(1+20dB)=3000*log2(1+1*10^2)=3000*log2(101) => maximale
DR=3000*log2(2^6)=3000*6=18kbps <= 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!
Zu übertragene Daten: 01111100 01111110
=> folgendes wird übertragen:
01111110 Adresse Steuerinfo Dateninfo Frame-Checking-Sequence 01111110
Rahmenflag
heute nur noch Richtung
(DEE->DÜE oder DÜE->DEE)
Rahmenformat (Information, Unnumbered, Supervisory)
Die Dateninformation kann beliebig lange sein, muß 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
unnumeriert, 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 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 durcheinanderkommen, falls Bits gestopft wurden. HDCL
ist aber dennoch besser als BSC, da es durch seinen Fenstermechanismus eine
Vollduplex-Übertragung gestattet, während BSC nur halbduplex
arbeitet. Außerdem 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 übertragenenen BYTES (nicht Bits!)
pro Sekunde. Im Rahmen der auszuhandelnden Quality-of-Service-Parameter ist
für den Durchsatz ein Maximums- 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äßt.
Falls nicht, bricht sie die Verbindung ab.
Warum ist die Ringgröße eines Token-Rings keine
unabhängige Größe?
Der Ring muß mindestens so lange sein, daß das
Freitoken vollständig darauf abgelegt werden kann. Grund: Die Stationen
können pausieren, während das Token auf dem Ring als Ganzes kreisen
können muß, bis eine der Stationen sendewillig ist und das Freitoken
zum Belegttoken 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 =>
Frei-Token kommt an und wird in Belegt-Token geändert, das Frame mit der
Zielinformation im Header wird angehängt => Station B erkennt,
daß der Frame nicht für sie ist und läßt ihn passieren
=> Station C erkennt sich als Ziel und kopiert den Frame, prüft ihn auf
Korrektheit mittels des CRC-Wertes und hängt ein ACK- bzw. NAK-Bit hinten
dran => Station A erkennt ihr eigenes 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 muß (1) Token-Verluste feststellen, (2) endlos
kreisende Belegttoken erkennen, (3) doppelte Freitoken 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 Frameumlauf plus der maximalen Framegröße. (2) wird durch
einen Stempel realisiert, den die Monitorstation einem vorbeilaufendem
Belegttoken aufprägt. Kommt das Token mit dem Stempel wieder, dann
entfernt sie es vom Ring und initialisiert diesen neu. Dopplete Token erhalten
den gleichen Stempel, wodurch die Station einen Fehlerfall (2) erkennt, dessen
Ausräumung auch Fehler (3) behebt. Für (4) senden die Reservemonitore
regelmäßig ein Signal, an dem die Monitorstation erkennt, daß
sie noch aktiviert sind.
Was bedeutet das Early Token Release im Zusammenhang mit
Ring-Netzen?
Einfache Ring-Protokolle sehen vor, daß 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
Freitoken fast den ganzen Ring umlaufen muß, um zu A zu gelangen. Beim
Early Token Release-Prinzip kann der Empfänger eines Frames nach dem
Empfang ein Freitoken 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 großen Netzen, wie FDDI, können auf diese
Weise viele Frames im Ring plaziert werden.
Was zeichnet die 4B/5B-Signalkodierung aus?
Diese bei FDDI eingesetze Kodierung 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 Bits stehen
für 4 Bit Information, wodurch sich eine Auslastung der Bandbreite von 80%
ergibt (ggü. 50% bei Manchester Encoding) und 16 "illegale"
Bitkombinationen zur Verfügung stehen, z.B. "00000" für Ring=tot und
"11111" für Ring=idle. Dadurch, daß bei regulären Zeichen nie
mehr als zwei Nullen hintereinander vorkommen, kann der 4B/5B-Kodierung eine
Selbsttaktung zugeschrieben werden.
Warum ist das Freitoken eines Token-Busses größer
als das eines Ringes?
Im Token-Bus findet nur ein logischer Ring Verwendung, d.h.
jede Station muß ihre Nachfolgerin kennen und ihr explizit die
"kreisenden" Frames zusenden, also auch das Freitoken, wobei im Ggs. zum
physikalischen Token-Ring die Zieladresse im Frameheader vermerkt werden
muß.
Was bewirkt der Einsatz des HDLC-Protokolls in LANs?
Eigentlich soll das HDLC-Protokoll unsichere Netzverbindungen
durch seine Fehlerkontrolle verbessern, was bei WAN-Übertragungen auch
nötig ist. Bei den sehr sicheren LANs dagegen bewirkt der HDLC-Einsatz,
daß die oberen Schichten sehr dünn ausfallen können. HDCL
stellt für LANs das dar, was das Transportürotokoll der Klasse 4
für WANs darstellt.
Berechnen Sie den CRC-Wert (Frame=111011,
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äßt sich die Ringsicherheit
erhöhen?
Man kann (1) Ringe als Sterne konzipieren, d.h. in der Mitte
sitzt ein zentraler Vermittler, der im Falle eines Stationsausfalls eine
interne Bypass-Schaltung vornehmen kann. Man kann (2) Ringe auch physikalisch
verdoppelt konzipieren, wobei beide Ringe getrennt voneinander unidirektional
gegenläufig verwendet werden können. Im Falle eines Stationsausfalles
können die beiden der Bruchstelle nächsten Stationen eine
Bypass-Schaltung zwischen beiden Ringen vornehmen, wodurch man einen einen
verlängerten Einzelring erhält. Bei zwei Bruchstellen versagt diese
Methode im Ggs. 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 potentielle Monitor prüft, ob er die
Tokenadresse numerisch überbieten kann. Ist dies der Fall, so ersetzt er
die Tokenadresse durch seine eigene. Neuer Monitor ist die 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
solange, wie die beiden Most Significant-Adreßbits 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
gleichgroß, bleibt alles beim alten. In der nächsten Runde wird der
CLAIM-Frame solange wie das dritte und vierte Most Significant-Adreßbits.
Der Prozeß wiederholt sich. Die Station, die den letzten Frame aussendet
bzw. verändert (d.i. die Station mit der höchsten Adresse), gewinnt
die Monitorbewerbung. Bei FDDI wird das CLAIM-Token auch dazu benutzt,
daß 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 das PURGE-, das STANDBY MONITOR
PRESENT- und das BEACON-Frame des Token-Ringes!
Das PURGE-Frame wird zur der Ring-Initialisierung eingesetzt.
Das STANDBY MONITOR PRESENT-Frame wird periodisch von den Reserve Monitors
ausgesendet, wodurch die Neigbour 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 groß muß ein Packet in einem CSMA-Netz
mindestens sein? Gibt es Unterschiede in der Kollisionserkennungszeit zwischen
CSMA und CSMA/CD?
Szenario: Eine Kollision zwischen zwei Nachrichten findet am
äußersten rechten Bus-Rand statt. Der eine Sender befgindet sich am
äußersten linken Rand. Um die Kollision feststellen zu können,
muß 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, daß keine Kollision stattgefunden hat. Bei einem
Zeitpunkt t2>t hätte die Station (t2-t) Sekunden Bandbreite
verschwendet. Ein CSMA-Packet muß daher mindesten so viele Bits lang
sein, wie in t Sekunden gesendet werden können. Ist das Packet
länger, dann wird im reinen CSMA-Verfahren solange Bandbreite
verschwendet, bis die Packetsendung abgeschlossen ist - im Worst Case:
t3=2*t+(Sendezeit für das größtmögliche Packet). Das
CSMA/CD-Verfahren dagegen erkennt in jedem Fall zum Zeitpunkt t, daß 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
Packet, wobei es zu keiner Kollision kommen kann, was den Durchsatz mildern
würde. Da sie nach Sendung des Packets durch die 1-persistent-Strategie
bei freiem Medium sofort weitersenden kann, wird keinerlei Bandbreite
verschenkt, die Auslastung des Netzes ist 100%. In der Realität treten
aber bisweilen Netzfehler auf, was Duplikasendungen erfordert (Durchsatz--).
Außerdem benötigen die Nutzdaten einen Overhead, um u.a. ihr
jeweiliges Ziel finden zu können (Last--).
Welchen wesentlichen Vorteil bietet das Token Passing
ggü. CSMA?
Das Token Passing gestattet die Realisierung von
Echtzeit-Betrieben, da durch Begrenzung der maximalen Packetlänge jeder
Station ein bestimmtes Maß 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-Adreßformat aufgebaut?
802-Adressen sind entweder 2 (16 Bit) oder 6 Bytes (48 Bit)
lang. Die ersten beiden Most Significant Bits bestimmen den
Adressierungs-Chrakter. 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, d.i. die Sendezeit t1. Die
Packetlä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 weiß dadurch jederzeit, wie lange sie maximal
warten muß, 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 Freitoken vor Ablauf der TTRT bei ihr ankommt. Die nicht genutzte
synchronen Sendezeit dr Vorgänger-Station(en) ist die asynchrone Sendezeit
des aktuellen Freitoken-Besitzers. Durch einen Strafpunkte-Mechnismus wird
dafür gesorgt, daß die asynchrone Sendezeit gerecht verteilt wird.
Jedes zu früh ankommende Freitoken vermindert das strafkonto um Eins, jede
Nutzung der asynchrone Sendezeit erhöht das Strofkonto 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 8000mal den 8-Bit-Slot mit Daten füllen
(unabhängig vom Freitoken), wodurch sie eine verzögerungsfreie und
konstante (eben isochrone) Datenrate von 8000*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 20km-Token-Ring ist eine Datenrate von 16Mbps
möglich, sowie eine maximale Packetgröße von 1024 Byte, wobei
10 Byte Steuerinformationen enthalten. Wie hoch ist die effiziente Datenrate im
Ring? Die Ausbreitungs-Geschwindigkeit beträgt 2*10^8 m/s.
Es gilt: Die tatsächliche Kapazität sind die
übertragenen Datenbits innerhalb einer bestimmten Zeit => c=p/t. Die
übertragenen Datenbits können maximal Packetgröße Bytes
umfassen, von denen die Steuerinfos si abgezogen werden müssen =>
p=p0-si bit. Die Zeit, die nötig ist, um diese Daten zu übertragen,
setzt sich folgendermaßen zusammen: t=Zeit für Ringumrundung + Zeit
für das Packet=t1+t2. t1 ergibt sich aus der Ringlänge s und der
Ausbreitungsgeschwindigkeit v => t1=s/v. t2 ergibt sich aus der
Packetlänge p0 und der Datenrate c0 => t2=p0/c0.
=> 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 miteiander verbunden sind.
Ausfallwahrscheinlichkeit des Ringanschlusse 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
terminalnetzen gegeben, so z.B. bei SNA mit einem zentralen Mainframe. Der
Trend geht jedoch in symmetrische Netze wie OSI- oder (bedingt) C/S-Networking.
Auch IBM hat dies erkannt und bietet für SNA die SW LU 6.2 und APPN 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 Packet vom IMP an
den Ausgang gelegt, der die kürzeste Wartezeit verspricht. Dies kann dazu
führen, daß ein Ping-Pong-Effekt eintritt, das Packet also zwischen
mehreren IMPs hin und her wandert, ohne seinem Ziel näüher zu kommen.
Abhilfe: Blockierung von Ausgängen oder Ausgänge, die in der
richtigen Richtung liegen, mit einer höheren Priorität versorgen.
Welche Vorteile bringen virtuelle Verbindungen mit sich?
Außer beim Verbindungsaufbau müssen die Packete
nicht die ganze Adresse zum Ziel führen, sondern es genügt die
wesentlich kürzere virtuelle Kanalnummer für die IMPs, die so das
Packet 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 verlangt von den Packeten, welches von den IMPs
weitergeschalten werden wollen, daß sie eine Permit (Erlaubnis) besitzen.
Die Anzahl der im Netz kreisenden Permits ist begrenzt, wodurch verhindert
wird, daß das Netz mit Packeten überschwemmt wird und es so zu
Deadlocks kommt, die den gesamten Datenverkehr lahmlegen. Dieses
Routing-Verfarhren sorgt also zusätzlich für eine
Überlastkontrolle. Nachteile: Teilstrecken im Netz können auch
weiterhin mit Packeten überschwemmt werden, und Packete müssen z.T.
unzulässig lange auf die Permits warten.
Warum werden die QoS 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 akzeptierbaren Kosten.
Wie ist ein X.25-Packet in einen HDCL-Rahmen
eingefügt?
X.25-Packet: logischer
Kanal Packettyp Packetinformation
I-HDCL-Rahmen: Flag Adr Control X.25-Packet
Frame-Checking-Sequence Flag
Läßt 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
Routingverfahren, 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
muß das SNICP (Subnet Independent Convergence Protocol) herangezogen
werden, welches wie eine eigene Schicht im OSIM arbeitet und daher auch eine
eigene CPC (Cpntrol Protocol Information) in das X.25-Packet einfügt.
Welche Adresse(n) ist/sind relevant für Schicht 3?
Schicht 3 soll Packete auch über mehrere Subnets
vermitteln können. Aus diesem Grund ist es wichtig, daß 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überhinaus auch noch ortunabhängig sein sollte (was
sie i.d.R. aber nicht ist, da ihr Domain Specific Part i.d.R. 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 geführt 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 Packete geroutet.
Wie baut sich das OSI-Adreß-Format auf?
Das OSI-Adreß-Format bestimmt die N-SAPid. Das Format
muß 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, i.d.R. aber sich aus den
Knotenadressen zusammensetzt, über die der Zielrechner erreicht werden
kann (wodurch die von OSI geforderte Ortstransparenz jedoch verloren geht). Die
OSI-Adresse muß also keineswegs hierarchisch aufgebaut sein. Wohin sie
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 baut sich aus der Host-ID und der Netz-ID auf,
enthält also nicht die Portnummer; diese ist Teil des
Transportschicht-Vorspanns, bei IP i.d.R. TCP bzw. UDP. 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: Beides sind
Datagramm-Dienste, jedoch sitzt UDP i.d.R. auf IP auf und ist ein
End-to-end-Dienst. Daher enthält er auch die 16 Bit Portnummer und, da IP
unzuverlässig ist, trotz der IP-Header-Prüfsumme, eine eigene
Prüfsumme.
Sie haben die Wahl zwischen zwei Netzwerken: (1) Virtual
Channel mit 3-Byte-Header, pro IMP 8 Byte Speicher, (2) Datagramm mit
15-Byte-Header. Pro Verbindung werden 4 IMPs 1000 s lang mit 200 Packeten
beansprucht. IMP-Speicher kostet pro Byte 1Pf, und die Übertragung von
10^6 Bytes zwischen zwei Knoten kostet 1 Pf. Welches Netzwerk ist auf Dauer
billiger?
Die Kosten hängen ab von den übertragenen Bytes (bei
Datagrammen wegen Headern größer) und dem IMP-Speicher (bei VC
größer). Die Kosten sind eine Funktion der Zeit. Für den
Vergleich wichtig ist nur die Anzahl der Header-Bytes der Packete, nicht die
Anzahl der Datenbytes (die ist in beiden Fällen identisch). Pro Sitzung
fallen 1000 s lang Übertragungskosten an. Es gilt:
IMPKostenVC=IMP-Anzahl pro Sitzung*Anzahl Bytes*1 Pfennig=4*8*1=32 Pf
IMPKostenDG=0 Pf
Headerbytes pro SecVC=3Headerbytes*200Packete/1000s=.6 Bytes/s
Headerbytes pro SecDG=15Headerbytes*200Packete/1000s=3 Bytes/s
DÜKostenVC(t)=Knotenanzahl*(HB pro SecVC/Kostensatz)*t=t*3*0.6/10^6
DÜKostenDG(t)=t*3*3/10^6
KostenVC(t)=IMPKostenVC+DÜKostenVC=t*1.8/10^6 Pf+32 Pf
KostenDG(t)=IMPKostenDG+DÜKostenDG=t*9/10^6 Pf Pf+0 Pf
===> KostenVC(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-Flußregelung
ggü. der DL- und N-Flußregelung aus?
Die T-Flußregelung ist eine echte
End-to-End-Flußregelung. Zudem sieht das OSIM vor, der Transportschicht
einen Credit-Fenstermechanismus zuzuweisen, d.h. die Flußsteuerung
erfolgt nicht einfach durch Verwerfen von Packeten oder NAK-Sendungen, sondern
der Empfänger teilt dem Sender mit, wieviele Packete (Credits) er bereit
ist, zu empfangen. Die praktische Konsequenz ist, daß die
Transportschicht anders als die niedrigeren Schichten über ein variabel
großes 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 ausschließen. 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 Fehlerbehandlungs-Arbeit 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, daß 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 1023 liegt (die unteren sind fest belegt). Nun sendet er den
Verbindungswunsch zum Server, indem er als Portadresse 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 Childprozeß, der die Anfrage beantwortet, während der
Serverprozeß wieder in Lauschzustand übergeht, um sofort neue
Anfragen entgegen nhemen zu können (paralleler Server). Zu beachten ist,
daß der Server und seine Childs stets die gleiche Portnummer beibehalten:
Die Zuweisung der ankommenden Datenströme an die richtigen Childs 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äßt
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 zugewisen werden. Dies kann zur Folge haben, daß
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.
In wie weit 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, muß also viel Fehlerkontrolle
selbst übernehmen, u.a. führt es deshalb auch eigene Prüfsummen.
SNA entspricht damit dem OSI-TP der Klasse 0, während hingegen TCP dem
OSI-TP 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 jeoch nicht
gemultiplext werden, d.h. es können nie mehrere S-Verbindungen
gleichzeitig über eine T-Verbindung übertragen werden; jedoch
können sie sequentiell die gleiche T-Verbindung nutzen.
TCP bietet eigene Prüfsummen - ist dies sinnvoll?
End-to-End-Prüfsummen sind sinnvoll, wenn das
zugrundeliegene 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, daß 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
Hauptsynchronisations-Punkten (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äßt sich keine geeignete Flugzeit finden, so kann
auf "Flugrichtung wählen" resynchronisiert werden, um eine alternative
Richtung einzugeben. Mißlingt 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äßt 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 recghts - bei der IBM als Big Endian-Rechner
verhält es sich genau umgedreht. Bei einer Integerlä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 Mio 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 schmatisch 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äsenation -> Datei
LER-Nutzung:
Station A: Datei -> Compiler -> Prg. -> LER-A-Encoder -> Transfersyntax ->
Station B: -> LER A in LER B wandeln -> LER-B-Dekoder -> Prg.
Übersetzen Sie folgendes Pascal-Programm in eine
ASN.1-Repräsenation!
type Name=record
Vorname: string[10];
Initiale: char;
Nachname: string[20];
end;
ASN.1-Repräsenation:
Name::=[APPLICATION 0] SEQUENCE {
Vorname ISO64STRING,
Initiale ISO64STRING,
Nachname ISO64STRING
};
Nehmen Sie an, sie müßten 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, SEQUENCEOF 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 kontext-spezifische
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. kontext-spez.
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, daß
durch ihr Weglassen signalisiert werden kann, daß der zugehörige
Datensatz leer ist.
Beschreiben Sie das Längen-Format nach den BER!
Ein Datentyp kann eine bekannte und eine unbekanbnte
Länge haben. Der Aufbau geschieht folgendermaßen:
- 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,
WeitereVornamen ::= 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 Pasrtner eine ganze Reihe von Kontexti 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
Kontexti ä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-ABORTrequest, aber ein
P-P-ABORTindication?
Ein P-P-ABORT ist ein Dienstprimitiv, der einer
Darstellungsinstanz signalisiert, daß der Netzprovider zusammengebrochen
ist, z.B. weil ein Kabel mechansich 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-UNITDATArequest Idle D-UNITDATAindication
Für die Transformation mittels der Encoding Rules der
lokalen Präsenation 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 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 -abbau 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), Reliabel
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 muß
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, solange 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 innerhlab einer
Assoziation abspielen (eine Assoziation kann aus mehreren Dialogen bestehen!),
die aber notfalls auch Assoziations-Unterbrechungen und -Wiederaufnahmen
unbeschadet überbrücken können. TPSE erlaubt außerdem den
direkten Zugriff auf die Dienstprimitive der Session Layers.
Zeigen Sie den Protokollablauf einer Transaktion mittels des
RTSE auf!
RT-OPENreq
A-ASSOCIATIONreq
A-ASSOCIATIONind
RT-OPENind
RT-OPENrsp
A-ASSOCIATIONrsp
A-ASSOCIATIONcfm
RT-OPENcfm
RT-DATAreq
P-ACTIVITY-STARTreq
P-ASind
P-DATAreq
P-DATAind
P-MINOR-SYNCreq
P-MSind
P-MSrsp
P-MScnf
P-DATAind
...
...
P-ACTIVITY-ENDreq
P-AEind
RT-TRANSind
P-AErsp
P-AEcnf
RT-TRANScnf
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 einzelenes Packet mit
anschließendem Minor-Sync-Point versendet.
Stellen Sie den CCRSE-Protokollablauf dar (2-Phase-Commit),
wobei C-DONEreq verloren gehen soll!
C-BEGINreq(Daten)
(Phase 1) C-BEGINind(Daten)
Datenverarbeitung (Phase 1)
C-PREPAREreq
C-PREPAREind
C-READYreq (oder C-REFUSE)
C-READYind (Phase 2)
C-COMMITreq
(Phase 2) C-COMMITind
C-DONEreq
Timeout
C-COMMITreq
C-COMMITind
C-DONEreq
C-DONEind
Das 2PC-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 allgmeinen
Remote Operation Service Elements (ROSE). ROSE bietet veraschiedene
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 muß Argumente verpacken, es muß 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, daß RPCs
nach dem Client-Server-Prinzip arbeiten, also im asymmetrischen
Request-Reply-Modus, der nicht zu OSI paßt. Ebenso ist bes ein grober
Designfehler im OSI-Modell, daß 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, Ausnahmenhandling, Aufrufsemantik,
Präsenation , Sicherheit und Leistung!
Die Argumentform ist bei RPCs fast ausschließlich
by-Value und nie by-Reference, da zweitere unüberbrückbare Probleme
mit sich bringt. Das Problem der Bindung beschägtigt sich damit, wie der
Client den richtigen Server finden kann. Hier gibt es zahlreiche Modelle, wie
Server Adressen zentral verwalten oder selbt 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 fließt in die
Fehlerbrehandlung 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, daß 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äßt sich nur bwemerken, daß hier erhebliche Einbrüche zu
bemerken sind; es ist also zu überlegen, das RPCs so selten als
möglich stattfinden sollten, daß 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
Bs 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
anpaßt.
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ößte FADU die ganze Datie umfaßt 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öße 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 wuird 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 EMs unstrukturierte Dateien (nur Wurzel ohne
Namen), sequentiell-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) addressiert 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
vernanlaßt, 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
anschließen 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 bekanntlicherweise 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 (Zutä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 LCC Typ 1 LCC 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 (Scghicht 3 und 4 fehlen ja), und
es kann auch nicht mit dem "großen" MAP kommunizieren. Wie MAP benutzt es
aber auch die Manufactoring 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 Datasbase Access erlaubt die Versendung von
SQL-Statements in Offenenen Systemen. Die Statements werden in ASN.1
formuliert, daher ist es unwichtig, wie die DBMS physikal. organisiert sind.
Auf diese Weise kann über SQL ein hierarchisches DBS abgefragt werden,
sofern die Kommunikation über zwei Instanzen von RDA abgewickelt wird.
Bsp. für die ASN.1-SQL-Statement-Definition:
SQLDBLStatement::=CHOICE{
sqlDataStatement [0] IMPLICIT SQLDataStatement,
sqlSchemaStatement [1] IMPLICIT SQLSchemaStatement
};
SQLDataStatement::=SQLSchemaStatement::=IA5String -- spez. ISO-Def.
|