Wirtschaftsinformatik (Bachelor-Studiengang): Rechnernetze/Onlinedienste (2. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Rechnernetze/Onlinedienste: Grundprinzipien der Rechnernetze (Teil 2)
BM / CM, Kurs vom 01.10.2002 - 31.03.2003
Fehlerbehandlung
Das einzige, was sicher über Fehler gesagt werden kann, ist, dass sie (immer öfter) auftauchen.
Zwei Phasen:
- Fehlererkennung
- Behandlung erkannter Fehler
Arten von Fehlern:
- Bitkipper, einschließlich Verlust von Bits und ungewollte Verlängerung durch Bits
- Verlust von Paketen
- Vertauschung von Paketen
- Duplizieren gesendeter Pakete
- Entstehen neuer Pakete
Beim Paketverlust gibt es noch den Grenzfall, dass ein Paket extrem lange zum Übertragen braucht. Dies wird nicht vom Verlust unterschieden.
Feststellen von Paketveränderungen
Verfahren der Parität (gerade, ungerade):
- Angewendet auf einzelne Bytes
- Angewendet auf einen Block
- In Form einer Matrix zugleich auf Bytes und Block
Es können nicht alle praktisch vorkommenden Bitfehler festgestellt werden, hier nur ungeradzahlige Bitkipper.
Verfahren der Prüfsummenbildung:
- Cyclic Redundancy Check (CRC)
- Hash-Codes (werden hier noch nicht behandelt)
Es können alle praktisch vorkommenden Bitfehler, insbesondere Büschelfehler (Block von Bits wird verändert), mit hoher Wahrscheinlichkeit erkannt werden.
Es gibt kein Verfahren, dass alle Fehler erkennen vermag; d.h. es werden immer Fehler unerkannt auftreten.
Lediglich ihre Wahrscheinlichkeit kann verringert werden.
Parität
Bildbeschreibung "Parität 1": Gerade Parität = Ist die Anzahl der Einsen in einem Byte gerade, dann ist das Paritätsbit Null. Ist die Anzahl der Einsen ungerade, so wird das Paritätsbit auf Eins gesetzt, damit auf der Empfängerseite die geforderte gerade Anzahl Einsen ankommt. Ungerade Parität = Die Anzahl der Einsen in einem Byte muss ungerade sein. Durch das Setzen einer Eins im Paritätsbit kann bei gerader Anzahl von Einsen dies ausgeglichen werden.
Es wird die Anzahl der Einsen in einem Byte gezählt und diese durch das Paritätsbit gerade oder ungerade gemacht. Der Empfänger prüft, ob bei ihm die Anzahl der Einsen gerade bzw. ungerade ist.
Bildbeschreibung "Parität 2": Ergänzung auf gerade oder ungerade Längsparität. Im Beispiel werden fünf 8-bit-Zeichen bitweise nebeneinandergelegt. Bei der Ergänzung auf ungerade Längsparität (Blockparität) werden nun die jeweils gleichwertigen Bit betrachtet (Bit 1 aus Zeichen 1, 2, 3, 4 und 5; Bit 2 aus Zeichen 1 bis 5 usw.). Ist die Summe der Einsen in den einzelnen Bitreihen gerade, so wird das angefügte Paritätsbit auf Eins gesetzt, ist die Anzahl ungerade, so wird das Bit auf Null gesetzt.
Dasselbe Verfahren kann auf einen Block angewendet werden, indem jeweils das Bit N jedes Bytes des Blocks betrachtet und ein neues Byte mit den Paritätsbits angehängt wird.
Kreuzsicherung:
Beide Verfahren können kombiniert werden, indem eine Längsparität (Blockparität) und auch eine "normale" Parität gebildet wird. Der Datenblock wird wie in einer Matrix in Reihen und Spalten behandelt. Dies ist das beste Paritätsverfahren.
Bildbeschreibung "Kreuzsicherung": Zusätzlich zur Blockparität wird die "normale" Parität für jedes Byte gebildet. Im Beispiel wird die gerade Parität gebildet. Von den gebildeten Paritätsbits wird erneut die Blockparität gebildet.
Prüfsummenbildung
Die Bytes eines Blocks werden als Integer-Werte betrachtet und stückweise durch eine besondere mathematische Funktion verarbeitet, die die besondere Eigenschaft hat, einen speziellen Wert zu berechnen, der repräsentativ für den Block ist, d.h. schon minimale Änderungen im Block führen zu einer anderen Prüfsumme.
Bildbeschreibung "Prüfsummenbildung": Nach festgelegtem Prinzip wird aus dem 5-Byte-Block ein 1-Byte-Block gebildet.
Typische Prüfsummen sind folgende CRC-Polynome:
- CRC-8: x8+x4+x3+x2+1
- CRC-12: x12+x11+x3+x2+x+1
- CRC-16: x16+x15+x2+1
- CRC-32: x32+x26+x23+x22+x16+x 12+x11+x10+x8+x7+x 5+x4+x2+x+1
- CRC-CCITT: x16+x12+x5+1
Der Sender berechnet den Wert und hängt ihn hinten als Trailer an die Daten an. Der Empfänger berechnet die Prüfsumme des gesamten Pakets einschließlich des empfangenen CRC-Wertes und muss als Ergebnis einen bestimmten Wert erhalten, wenn keine Veränderungen stattgefunden haben.
Die Berechnung wird durch eine einfache Schaltung bestehend aus einem Schieberegister und einigen Gattern realisiert.
Verlust von Paketen
Es gibt folgende Möglichkeiten, dass ein Paket verloren geht:
- Der Empfänger stellt eine Veränderung fest und verwirft das Paket.
- Der Empfänger ist so überlastet, dass er ein gesendetes Paket nicht empfangen kann (und verwirft es).
- Das Netzwerk zwischen Sender und Empfänger verwirft das Paket bzw. leitet es an eine falsche Stelle.
Feststellen des Verlustes:
- Alle Pakete werden durchnumeriert und es wird erwartet, dass die Pakete mit aufsteigenden Nummern empfangen werden. Die Nummer ist im Paketkopf eingetragen.
- Der Sender erwartet nach dem Senden eines Pakets eine Bestätigung des Empfangs. Kommt diese nicht in einem definierten Zeitraum, wird der Verlust angenommen.
Zeitdiagramme
In den Zeitdiagrammen wird eine globale Sicht mit einer einheitlichen Zeit eingenommen. Jede Kommunikation sowie jede Verarbeitung benötigt Zeit, die durch unten liegende Punkte symbolisiert wird.
Bildbeschreibung "Zeitdiagramme": Computer A sendet zum Zeitpunkt t1 ein Paket an Computer B. Zum Zeitpunkt t2 empfängt Computer B das Paket. Die Zeitdifferenz wird als "Laufzeit des Paketes" bezeichnet.
Fall 1: Alles läuft prima
Der Empfänger bestätigt in einem besonderen Paket den erfolgreichen Empfang des Datenpakets mit der Nummer 1.
Bildbeschreibung "Fall 1 (Alles läuft prima)": Computer A sendet zum Zeitpunkt t1 das Datenpaket D1 an Computer B. Zum Zeitpunkt t2 empfängt Computer B das Paket. Daraufhin sendet Computer B zum Zeitpunkt t3 eine Empfangsbestätigung an Computer A, welches dieser zum Zeitpunkt t4 entgegennimmt.
Fall 2: Bitkipper in D1
Der Empfänger stellt eine Bitfehler fest und fordert den Sender zur Wiederholung des Sendens von Paket 1 auf. Es gibt eine Bestätigung (Acknowledge, Confirmation) sowie eine negative Bestätigung im Sinne einer Wiederholungsaufforderung (Not Acknowledge).
Bildbeschreibung "Fall 2 (Bitkipper in D1)":Computer A sendet zum Zeitpunkt t1 das Datenpaket D1 an Computer B. Zum Zeitpunkt t2 empfängt Computer B das Paket, stellt jedoch einen Bitfehler fest. Daraufhin sendet Computer B zum Zeitpunkt t3 eine Wiederholungsanforderung an Computer A, welche dieser zum Zeitpunkt t4 entgegennimmt.
Fall 3: Paket geht verloren
Nach dem definierten Protokoll darf B nur dann eine Bestätigung (positiv oder negativ) senden, wenn ein Paket empfangen wurde; A darf nur dann weiter machen, wenn eine derartige Bestätigung von B empfangen wurde. Da das letztere nie eintritt, bleibt die ganze Kommunikation stehen.
Bildbeschreibung "Fall 3 (Paket geht verloren, Teil 1)": Computer A sendet zum Zeitpunkt t1 das Datenpaket D1 an Computer B. Leider geht das Paket auf dem Weg verloren. Da Computer A zum Senden der nachfolgenden Pakete auf eine Bestätigung von Computer B angewiesen ist, wird die Übertragung und die Kommunikation abgebrochen.
Das Warten auf ein nie eintretendes Ereignis wird Deadlock (Verklemmung) genannt.
Nach einer gewissen Zeit verliert A beim Warten auf B die Geduld und wiederholt das zuletzt gesendete Datenpaket 1, das dann hoffentlich ankommt.
Bildbeschreibung "Fall 3 (Paket geht verloren, Teil 2)": Nach eimem unbestimmten Zeitraum sendet Computer A das anscheinend verlorengegangene Paket erneut.
Nach jedem Senden setzt der Sender eine "Sanduhr", die sich nach der festgesetzten Zeit mit einem Time Out-Ereignis meldet.
Fall 4: Paket braucht lange:
Bildbeschreibung "Fall 4 (Paket braucht lange)": Computer A wartet nach dem Senden eines Datenpaketes vergeblich auf eine Bestätigung von Computer B. Nach eimem unbestimmten Zeitraum sendet Computer A das anscheinend verlorengegangene Paket erneut. Währenddessen ist das Paket dann doch bei Computer B angelangt. Das erneute Senden des Paketes hat zur Folge, dass kurze Zeit später das gleiche Paket noch einmal bei Computer B ankommt.
Fall 5: Paket braucht sehr lange:
Bildbeschreibung "Fall 5 (Paket braucht sehr lange)": Computer A wartet nach dem Senden eines Datenpaketes vergeblich auf eine Bestätigung von Computer B. Nach eimem unbestimmten Zeitraum sendet Computer A das anscheinend verlorengegangene Paket erneut. Das zuletzt gesendete Paket kommt bei Computer B an. Doch mit einiger Verzögerung kommt nun auch das zuerst gesendete Paket an.
"Ungeduldiger Sender":
Ist der Time-Out-Zeitraum
zu klein, kommen eventuell Dubletten beim Empfänger an, der
dies an der Paket-Nummer erkennt und dann das Paket nur einmal
bestätigt.
Da der Fehlerfall auch hier eintreten kann, kann es passieren,
dass eine Dublette empfangen wird, wobei eine der Kopien einen
Fehler hat und verworfen wird, was eine Reparatur des Fehlers zur
Folge hat.
Behandlung der langen Laufzeiten:
zu Fall 4: Paket braucht lange:
Bildbeschreibung "Behandlung der langen Laufzeiten (Teil 1)": Das zuletzt empfangene Paket wird verworfen, das erste bestätigt.
zu Fall 5: Paket braucht sehr lange:
Bildbeschreibung "Behandlung der langen Laufzeiten (Teil 2)": Auch hier wird das zuletzt empfangene Paket verworfen, das erste bestätigt.
Stop and Wait-Protocol:
Das vorgestellte Protokoll, bei dem der Sender nach einem Senden immer auf die Bestätigung durch den Empfänger wartet, wird Stop and Wait-Protocol oder Send and Wait-Protocol genannt.
Das Prinzip nach einer Sende-Operation auf eine Bestätigung bzw. Ablehnung zu warten, wird Hand Shake-Verfahren genannt, genauer: 2-Wege-Hand Shake. Das später behandelte Internet-Protokoll TCP benutzt ein 3-Wege-Hand Shake.
So ineffizient es auch ist, dieses einfache Protokoll löst fast alle Probleme in diesem Bereich einschließlich der später behandelten Flusskontrolle.
Reaktionen auf Probleme
Fall A:
Ein Paket mit der falschen Nummer kommt an. Der Empfänger verwirft es (über den Time Out-Mechanismus kommt eine Wiederholung).
Fall B:
Ein Paket kommt doppelt an. Es wird verworfen.
Fall C:
Ein Paket wird vom Netzwerk generiert. Hier gibt es folgende Fälle:
- Es hat die falsche Nummer: siehe Fall A
- Es hat eine richtige Nummer. Der Empfänger bestätigt dem Sender ein von ihm nicht gesendetes Paket, was dieser bemerkt.
- Es hat eine richtige Nummer. Wie eben bestätigt der Empfänger, dessen Bestätigungspaket nach dem Senden des richtigen Pakets empfangen wird. Beide sind mit dem Fehler zufrieden (alle Fehler können eben nicht festgestellt werden).
Netzwerk generiert ein Paket:
Fall 6: Falsches Paket wird geboren:
Bildbeschreibung "Fall 6 (Falsches Paket wird geboren)": Computer B erwartet Datenpaket D1. Irgendwo aus dem Nirwana empfängt er jedoch Paket D47. Da er dieses nicht erwartet hat, verwirft er es. Nun sendet Computer A auch endlich das gewünschte Paket. Computer B empfängt es und bestätigt seinen Empfang.
Fall 7: "Richtiges" Paket wird geboren:
Bildbeschreibung "Fall 7 (Richtiges Paket wird geboren)": Computer B emfängt Paket D1 und bestätigt es. Computer A erhält die Bestätigung, wundert sich aber, da er dieses gar nicht gesendet hat.
Anmerkung: Viele Protokolle kommen mit Fall 7 nicht richtig klar. Im besten Fall wird die gesamte Verbindung abgebrochen.
Fall 8: "Richtiges" Paket wird geboren
Dieser Fall kann nur dann behandelt werden, wenn die Herkunft von Paketen zu 100% geklärt werden kann. Die Methoden dazu werden beim Thema Sicherheit behandelt.
Bildbeschreibung "Fall 8 (Richtiges Paket wird geboren)": Computer B empfängt Paket D1 aus dem Nirwana und bestätigt es. Währenddessen hat Computer A das eigentliche Paket D1 losgeschickt und freut sich nun über die schnelle Bestätigung. Computer B nimmt das eigentlich richtige Paket entgegen, hält es für eine Dublette und verwirft es.
Pech: In dieser Version sind alle glücklich.
Diese Version ist zwar sehr unwahrscheinlich, aber
möglich.
Fall 9: Bestätigung geht verloren
Um diesem Fall einfach zu behandeln, könnte die Regel eingeführt werden, dass der Empfänger jeden zweiten/dritten Empfang einer Dublette bestätigt, so dass irgendwann einmal die Bestätigung zum Sender durchzudringen vermag.
Bildbeschreibung "Fall 9 (Bestätigung geht verloren)": Computer A sendet Datenpaket D1 an Computer B. Computer B nimmt es entgegen und schickt die Bestätigung los. Leider geht diese auf dem Weg zu Computer B verloren. Also sendet Computer A nach einiger Zeit das Paket erneut an Computer B.
Da Bestätigungen nicht bestätigt werden - das würde zum 3-Wege-Hand Shake führen - führt diese Situation zum Deadlock, in dem der Sender immer wieder D1 senden würde. Hier greift ein weiterer Mechanismus, dass nach N-Mal Senden die Verbindung aufgegeben wird.
Richtung des Datenflusses
Zwischen zwei Computern A und B gibt es von den Fähigkeiten des Mediums bzw. der Verbindung her folgende Möglichkeiten:
Simplex
A kann nur senden, während B nur empfangen kann. Der Datenfluss geht von A nach B.
Zeitdiagramm:
Bildbeschreibung "Zeitdiagramm Simplex": Links = Computer A, sendet. Rechts = Computer B, nimmt Daten ausschließlich in Empfang.
Duplex oder Vollduplex
A und B können gleichzeitig senden und empfangen. Der Datenfluss geht in beide Richtungen.
Zeitdiagramm:
Bildbeschreibung "Zeitdiagramm Duplex/Vollduplex": Links = Computer A, kann sowohl senden als auch empfangen. Rechts = Computer B, kann ebenfalls empfangen und senden. Jeder kann gleichzeitig senden und empfangen.
Halbduplex
Entweder sendet A und B empfängt oder B sendet und A empfängt, jedoch nie gleichzeitig. Der Datenfluss geht entweder von A nach B oder umgekehrt.
Zeitdiagramm:
Bildbeschreibung "Zeitdiagramm Halbduplex": Computer A sendet an Computer B. Computer B wartet, bis die Daten empfangen wurden und sendet dann. Während B sendet, wartet Computer A auf den Empfang der Daten und sendet auch erst dann neue Daten.
Bitte beachten, dass sich diese Begriffe auf die Eigenschaften des Mediums bzw. der benutzten Verbindung beziehen.
Diese Einteilung bezieht sich auf das, was möglich ist, und nicht auf etwas, was immer geschieht, d.h. dass z.B. bei einer Duplex-Verbindung nur einer senden kann.
Anzahl der Partner
Folgende Variationen bezüglich der Anzahl der an der Kommunikation beteiligten Partner gibt es:
- Unicast
Ein Sender und ein Empfänger - Multicast
Ein Sender mit einer definierten Liste der Empfänger - Broadcast
Ein Sender mit allen möglichen, dem Sender unbekannten Empfängern (bis hin zu keinem Empfänger)
Daneben gibt es noch Sonderformen, wie z.B. Anycast. Diese kommen in der Praxis selten vor.
Adressen
Mit Ausnahme der Unicast-Situation sind immer mehrere Computer verbunden, so dass das Problem der Adressierung entsteht, wenn ein bestimmter Rechner angesprochen werden soll.
Adresse = Innerhalb eines Bereichs (Domain) eindeutiger Name eines Computers.
Adressen sind in der Regel numerisch, können aber auch aus Buchstaben/Zeichen bestehen. Aus Effizienzgründen werden nur numerische Adressen verwendet, wobei die zweite Art als symbolische Adressen behandelt wird. Diese werden in die numerischen vor der Benutzung umgewandelt.
Topologie
Topologie eines Netzwerks = Geometrische Relation der verbundenen Rechner (Knoten) unter Abstraktion der Örtlichkeiten der Knoten.
Mit anderen Worten: die geometrische Anordnung der Verbindungen ohne Berücksichtigung der Entfernungen.
Hier gibt es drei "Reinformen" und eine allgemeine Form:
- Stern oder einfache Hierarchie
- Bus
- Ring
Und als allgemeine Form:
- (Teil-)vermaschtes Netz
Diese Formen kommen in beliebiger Kombination in der Praxis vor, z.B. mehrere Ringe sind durch einen Bus verbunden.
Reinformen
Stern:
Bildbeschreibung "Stern": Ein Computer bildet den zentralen Ankerpunkt für verschiedene Computer. Diese sind kreisförmig um ihn herum angeordnet.
Stern als Hierarchie:
Bildbeschreibung "Stern als Hierarchie": Gleiche Schematik wie vorangegangenes Bild. Im Unterschied zu diesem werden die Comuter unterhalb des zentralen Ankerpunktes dargestellt, so dass eine Hierarchie erkennbar ist.
Der Stern kann anders gezeichnet als 1-stufige Hierarchie angesehen werden. Mehrfache Anwendung führt zu Stern-über-Stern-Topologien.
Beispiele für Stern-Topologie: Telefonnetz, ATM
Bus:
Bildbeschreibung "Bus": Von beiden Seiten des Busses greifen verschiedene Rechner auf diesen zu.
Ring:
Bildbeschreibung "Ring": Verschiedene Rechner sind kreisförmig miteinander verbunden.
Beispiele:
- Stern/Hierarchie: Telefonnetz, ISDN (intern), ATM
- Bus: Token-Bus, Ethernet, ISDN (Anschluss)
- Ring: Token-Ring, FDDI
- Vermascht: Internet
Eine Sonderform ist Peer to Peer (Peer2Peer): Hier werden die beteiligten Kommunikationspartner direkt miteinander verbunden.
Wenn alle beteiligten Rechner Peer to Peer verbunden sind, wird von einem voll vermaschten Netz gesprochen.
Ausdehnung
Die Netze werden in folgende Klassen, die jeweils die physikalische Ausdehnung adressieren, eingeteilt:
Local Area Network (LAN):
Netzwerk innerhalb eines Gebäudes, Gebäudekomplexes, meistens innerhalb eines Grundstücks. Bereich bis 500 m Radius.
Metropolitan Area Network (MAN):
Stadtnetzwerk: innerhalb einer Stadt oder größeren Gemeinde. Bereich bis 10 km Radius.
Wide Area Network (WAN):
Netzwerk, was LAN und MAN innerhalb von Ländern verbindet.
Global Area Network (GAN):
Netzwerk, was unbeschränkt weltweit WAN verbindet.
Die Grenzen zwischen den Klassen sind fließend, auch gibt es keine einheitliche Definition.
Bemerkungen:
GAN wird selten verwendet, meist wird WAN statt GAN gesagt. Das Internet ist dann ein WAN und kein GAN.
Der Begriff GAN hat seinen Ursprung in der Benutzung von Satellitenkommunikation, die in früheren Zeiten etwas besonderes war. Heute benutzen WAN auch Satelliten.
Im Funknetzbereich gibt es noch den Begriff des Pico Area Network (PAN) - ein Netzwerk, das eine Kugel mit einem Radius bis zu 20 m umfasst.
Besonders bei den Funknetzen (Radio networks) gibt es begrifflich noch viel Bewegung (mit unklaren Definitionen).