Daniel Jonietz Kaiserslautern Mai 2001

Download Report

Transcript Daniel Jonietz Kaiserslautern Mai 2001

Rechnernetze
1
Rechnernetze
und
Datenübertragung
IFB 2003
Daniel Jonietz
Jonietz
Motivation
Rechnernetze
2
 Isoliert stehende Rechner sollen verbunden werden.
 Vorteile:
– Austausch von Daten
– Gemeinsame Bearbeitung und Lösung von Problemen
 Nachteile / Probleme:
– Welche Daten werden ausgetauscht
(Datenschutz, Virenproblem, ...)
– Wie geschieht die Kommunikation
• im Detail
• im Großen gesehen
Jonietz
Übersicht
Rechnernetze
3
 Historischer Einstieg: Telegrafie und Morsen
– Grundbegriffe
 Programmtechnische Umsetzung
Überblick über vorhandene Möglichkeiten
– Teil 1
Nachbildung von Taster und Lampe:
Übertragen von „An“ und „Aus“
– Teil 2
Übertragen von Bitfolgen
– Teil 3
Übertragen von Zeichen
Ausblick
Übertragen von Texten: Terminalprogramm
 Schichtenmodell
– ISO/OSI
– Sicherungsschicht
– Anwendungsschicht im Internet
Jonietz
Telegrafie
Rechnernetze
4
 „Transatlantik-Kabel“
– Der Taster ist im Ruhezustand geschlossen, die Lampe
leuchtet. (So kann eine Unterbrechung der Leitung leichter
festgestellt werden)
– Durch Drücken des Tasters wird die Leitung unterbrochen,
die Lampe geht aus.
– Mit zwei Adern kann nur eine Seite, nämlich diejenige die
den Taster hat, senden  simplex-Betrieb
Jonietz
Telegrafie
Rechnernetze
5
 Umbau zum half-duplex-Betrieb:
– Es reichen weiterhin zwei Adern aus.
– Die Partner müssen sich darüber einig werden, wer gerade
sendet. Senden beide gleichzeitig, werden die Daten gestört.
Jonietz
Telegrafie
Rechnernetze
6
 Umbau zum full-duplex-Betrieb
– Wenn beide Seiten gleichzeitig senden (und empfangen)
wollen, muss die Schaltung weiter ergänzt werden.
– Es werden drei Adern benötigt.
Jonietz
Morsen
Rechnernetze
7
– Mit dem vorgestellten Aufbau könnte man jetzt seriell
Textnachrichten übermitteln. Dazu muss festgelegt werden,
wie der Empfänger es interpretieren soll, wenn die Leitung
vom Sender unterbrochen wird, also die Lampe ausgeht.
– Morsecode:
A
B
C
D
E
F
G
H
I
J
K
L
M
Jonietz
.-...
-.-.
-..
.
..-.
--.
....
..
.---..-..
--
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
-.
--.--.
--..-.
...
......--..-.---..
1
2
3
4
5
6
7
8
9
0
.---..--...-.........
-....
--...
---..
----.
-----
Á
Ä
É
Ñ
Ö
Ü
.--..-...-..
--.----.
..--
,
.
?
;
:
/
'
()
_
--..-.-.-...--..
-.-.---...
-..-.
-.....----.
-.--...--.-
Komma
Punkt
Fragezeichen
Semikolon
Doppelpunkt
Slash
Bindestrich
Apostrophe
Klammern
Unterstrich
Morsen - Details
Rechnernetze
8
 Damit ist aber noch nicht alles geklärt:
– Was bedeuten die Zeichen . bzw. - ?
• . „kurz“ – was heißt kurz?
• - „lang“ – aber wie lang?
– Wie verhalten wir uns bei Fehlern?
• Sender sendet versehentlich falsches Zeichen,
möchte so etwas wie „Backspace“ verwenden
• Empfänger kommt nicht mehr mit, weil Sender
zu schnell ist
• ...
– Übertragungsbeginn und –ende
„If the duration of a
dot is taken to be
one unit then that
of a dash is three
units. The space
between the
components of
one character is
one unit, between
characters is three
units and between
words seven units.
To indicate that a
mistake has been
made and for the
receiver to delete
the last word send
........ (eight dots).“
• Wie meldet der Sender seinen Mitteilungsbedarf? Vielleicht hört ihm niemand zu?
• Wann betrachten wir eine Übertragung als abgeschlossen?

Jonietz
Protokolle
Morsen - Ergebnis
Rechnernetze
9
 Die Interpretation der Daten ist unabhängig von der
Art der Übermittlung
– Aus den Symbolen . und – kann auf die Nachricht
geschlossen werden, egal wie wir die Symbole erhalten
haben (Spannungsimpulse, Lichtsignale, Rauchwolken,
notierte Zeichen, kurze und lange Holzstöcke, ...)
– Wir können zwischen Transport-Medium und dem Vorgang
des Morsens trennen.
Wer morsen kann, kann dies unabhängig vom gerade
eingesetzten Medium.
Jonietz
Topologie
Rechnernetze
10
 Haben immer einen Sender und einen Empfänger,
das System besteht nur aus diesen beiden
Teilnehmern: Punkt-zu-Punkt-Verbindung
Sender
Empfänger
Empfänger
Sender
 Sparen uns dadurch
– Adressierung (Wer soll die Daten erhalten?)
– Suche nach Weg zu Empfänger
– Zugriffskontrolle auf Medium (Wer darf gerade senden?)
 Aber:
– System kann zu anderen Topologien ausgebaut werden!
(Verschiedene Varianten denkbar)
Jonietz
Weitere Topologien
Rechnernetze
11
 Bus
Sender
Empfänger
 Ring
Empfänger
Sender
Sender
Empfänger
Empfänger
Sender
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
Jonietz
Empfänger
Sender
Sender
Empfänger
Weitere Topologien
Rechnernetze
12
 Stern
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
Zentrum
Sender
Empfänger
Sender
Empfänger
Sender
Empfänger
 Baum und weitere Mischformen
Jonietz
Exkurs
Rechnernetze
13
 Topologie im LAN (Ethernet)
– Physikalisch
Stern bzw. Baum
– Logisch:
• bei Einsatz von Hubs:
Bus (alles wird an alle gesendet)
• bei Einsatz von Switches:
Stern bzw. Baum bzw. Punkt-zu-Punkt (Switch lernt, wer was
sendet/empfängt)
Jonietz
Teil 1
Rechnernetze
14
Morsen:
Nachbildung von
Taster und Lampe
Jonietz
Hardware - Übersicht
Rechnernetze
15
 Verwenden eigene Hardware, die wir individuell
steuern können.
 Breite Palette an Möglichkeiten, mit unterschiedlich
hohem Aufwand verbunden
– Fischertechnik-Interfaces
– Standard-Ausgänge
• Serielle Schnittstelle
• Parallele Schnittstelle
– USB
– Loopback
Jonietz
Hardware - Vorbereitung
Rechnernetze
16
Vorbereitung
Hilfssystem
Parallel
Seriell
USB
Fischertechnik
Loopback
Win9x: keine
Sonst: Install.
-
?
Treiber
installieren
-
IO-Warrior
umFish
-
WinIO v2.0
RSCOM
www.internals.com
www.b-kainka.de
TNetzHw in ... (uParallel)
„Gefahr“
Kabel
Ergänzung
www.codemercs.de www.ftcomputing.de
uSeriell
(uUSB)
(uFtNetz)
uLoopback
gegeben
klein
klein
klein
keine
Laplink
Nullmodem
Bausatz
Eigenbau
LED-Bausatz
LED-Bausatz
Aufwand
mittel
niedrig
?
sehr hoch
ohne
Preis, ca.
5,- €
5,- €
100,- €
?
0,- €
+
++
++
Bewertung
Jonietz
-
-
(++)
(wg. Aufwand)
(kein wirkliches Netz)
Serielle Schnittstelle
Rechnernetze
17
 Sehr analog zu unserem Morsekabel:
– Ruhezustand auch „Leitung an“, also „LED leuchtet“.
 Nullmodemkabel
Jonietz
Nullmodem
Rechnernetze
18
 mit LEDs (schwarz und braun im Stecker getauscht!)
Pin 5 = Masse
Pin 8
R=220
LED
Pin 7
LED
Jonietz
Die Klasse TNetzHw
Rechnernetze
19
 Eigenschaften
– Unterscheidet sich je nach verwendeter Hardware
– Definiert auch den Datentyp TAnAus mit den Werten An und
Aus, der zur Beschreibung des Zustandes von Leitungen
verwendet werden kann
– Schnittstelle und Verhalten aber bei allen Fassungen gleich,
dadurch austauschbar!
– Klassendiagramm (hier für die Klasse TNetzHw in der Unit
uSeriell, ausgelegt für die Verbindung per NullmodemKabel)
Jonietz
Vorgehensweise
Rechnernetze
20
1. Programmtechnische Nachbildung von „Taster“ und
„Lampe“ des „Atlantikkabels“
 Übertragen von Bits
2. Übertragung von Bitfolgen
3. Übertragung einzelner Buchstaben
Ausblick: Übertragung ganzer Texte
Jonietz
Nachbildung Atlantikkabel
Rechnernetze
21
 Aufgabe:
– Lampe (und Leitung) im Ruhezustand an
– Sender kann ein- und ausschalten
– Empfänger zeigt aktuellen Zustand der Leitung an
 Problem
–
Wie wird eine Änderung des Leitungszustandes detektiert?
 Timer
Jonietz
Lösungsvorschlag
Rechnernetze
22
 In beiden Programmen:
Jonietz
–
uses
... uSeriell;
–
type
TGUI = class( TForm )
...
private
oNetzHw : TNetzHw;
–
procedure TGUI.OnCreate(Sender: TObject);
begin
oNetzHw := TNetzHw.Create;
end;
–
procedure TGUI.OnClose(Sender: TObject; var Action:
TCloseAction);
begin
oNetzHw.Free;
end;
Lösungsvorschlag
Rechnernetze
23
 Sender:
–
procedure TGUI.bAnClick(Sender: TObject);
begin
oNetzHw.setSendeLeitung( An );
end;
–
procedure TGUI.bAusClick(Sender: TObject);
begin
oNetzHw.setSendeLeitung( Aus );
end;
 Empfänger:
–
Jonietz
procedure TGUI.OnTimerTick(Sender: TObject);
begin
case oNetzHw.getEmpfangsLeitung of
An : sLED.brush.Color := clRed;
Aus : sLED.brush.Color := clBlack;
end;
end;
Teil 2
Rechnernetze
24
Übertragen
von Bitfolgen
Jonietz
Übertragen von Bitfolgen
Rechnernetze
25
 Aufgabe:
– Der Sender soll eine beliebige Bitfolge automatisch
übertragen, indem er entsprechende Signale auf die Leitung
legt.
– Der Empfänger muss den Anfang einer Übertragung
detektieren, um dann die Bits mitzubekommen
 Prototyp:
Jonietz
Die Klasse TBitFolge
Rechnernetze
26
 Hilfsklasse, die den Datentyp „Folge von 8 Bits“ und
Operationen auf diesem kapselt
Jonietz
Signalübertragung
Rechnernetze
27
 Brauchen Zuordnung zwischen logischen Signalen
und physikalischen Signalen auf dem Medium
Jonietz
Signal
Elektrisch
Optisch
Zwei Level
Binärkodierung
0
1
0V
5V
Licht aus
Licht an
0
1
0
Drei Level
Mehrfachniveaus
0
1
2
0V
2,5V
5V
Licht aus
Licht gedämmt
Licht voll an
0
1
2
Kodierung
Rechnernetze
28
 Gebräuchliche Binärkodierungen:
– NRZ-L
(No Return to Zero – Level)
log. 0 = low
log. 1 = high
0
1
0
0
1
0
1
1
0
0
1
(No Return to Zero – Mark)
log. 0 = keine Pegeländerung
0
1
log. 1 = Pegeländerung
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
high
low
– NRZ-M
high
low
– NRZ-S
(No Return to Zero – Space)
log. 0 = Pegeländerung
log. 1 = keine Pegeländerung
0
1
high
low
Jonietz
Manchester-Kodierungen
Rechnernetze
29
 Jede Bit-Zeit wird in zwei Intervalle unterteilt
– Manchester-Kodierung
log. 0 = low / high
log. 1 = high / low
0
1
0
0
1
0
1
1
high
low
– Differentielle Manchester-Kodierung
log. 0 = Pegeländerung im ersten Intervall
log. 1 = keine Pegeländerung im ersten Intervall
immer Pegeländerung im zweiten Intervall
0
high
low
Jonietz
1
0
0
1
0
1
1
low / low und
high / high sind
zwei illegale
Kodierungen, die
mit J und K
bezeichnet und z.B.
in Token-RingNetzen zur
Kennzeichnung des
Anfanges eines
neuen Rahmens
verwendet werden.
Manchester-Kodierungen
Rechnernetze
30
 Vorteile differentieller Kodierungen:
Beteiligte Rechner können sich anhand der übertragenen Signale
selbst synchronisieren, da mindestens in der Mitte jedes
Intervalles ein Pegelwechsel stattfindet:
– Differentielle Manchester-Kodierung
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
high
low
– NRZ-L-Kodierung
high
low
– Nachteil: Doppelte Bandbreite benötigt!
Jonietz
OOM Sender
Rechnernetze
31
die zu versendenden Daten
(vorerst auch Bitfolgen)
Die zu verwendende
Netzwerkhardware
Der Sender kopiert die Daten
bevor er mit dem Senden beginnt
Jonietz
Der Sender muss die
Netzhardware kennen
(Assoziation)
OOM Ausblick
Rechnernetze
32
Kommunikator ist in der Lage
„beliebige“ Daten zu versenden
und zu empfangen
Jonietz
Takte - Timer
Rechnernetze
33
 Jedes zu sendende Bit hat eine feste Länge / Dauer
high
low
 Timer steuern den Takt, in dem die Bits gesendet und
empfangen werden.
 Der Timer löst in festem Takt ein Ereignis aus, das
dann von einer Ereignisbehandlungsroutine bearbeitet
wird.
 Beispiel:
– Timer „tickt“ alle 100ms und löst dabei das Ereignis
TimerTick aus
– TimerTick verarbeitet dies indem z.B. der Signalpegel der
Sendeleitung geändert wird.
Jonietz
Timer in Delphi
Rechnernetze
34
 Timer in Delphi:
Eigentlich graphisches Objekt, aber auch anders
einsetzbar:
– Beim Erzeugen ist normalerweise ein grafisches Objekt (das
Formular) als Erzeuger anzugeben, geht aber auch: NIL
– meinTimer := TTimer.Create( NIL );
 Klasse
– TTimer in Unit ExtCtrls
 Attribute:
– enable true/false
– interval in Millisekunden
– OnTimer (procedure of object)
 Löst das Ereignis OnTimer aus und ruft
entsprechende Methode zur Bearbeitung auf
Jonietz
Aufgabe
Rechnernetze
35
 Implementiere einen Sender mit Timer, der beginnend
mit einem Klick auf den Start-Button alle 500ms tickt
und die Sendeleitung abwechselt an- und ausschaltet.
Jonietz
Bitfolgen-Begrenzer
Rechnernetze
36
 Schwierigkeit 1:
– Der Empfänger kann nur dann den Anfang einer
Übertragung bemerken, wenn sich das erste übertragene
Signal von dem des Ruhezustands unterscheidet.
 Lösung
– Weil das erste Bit im Prinzip ein beliebiges sein kann, muss
ein Anfangsbegrenzer AB (Startdelimiter, SD) vorgeschaltet
werden.
– Zur Kennzeichnung des Anfangs der Übertragung wird ein
zum Ruhepegel komplementäres Signal verwendet
hier:
Ruhepegel = high
also:
AB = low
Jonietz
Bitfolgen-Begrenzer
Rechnernetze
37
 Schwierigkeit 2:
– Nach jeder erfolgten Übertragung muss sichergestellt sein,
dass der Ruhepegel auch wieder erreicht wird.
– Nur dann kann der Empfänger den Übergang Ruhepegel 
Anfangsbegrenzer feststellen.
 Lösung:
– Nach der eigentlich zu übertragenden Bitfolge wird ein
Stoppbit SB gesendet.
– Zur Kennzeichnung des Übertragungsendes wird das Signal
des Ruhepegels verwendet
hier:
Ruhepegel = high
also:
SB = high
Jonietz
Rechnernetze
Sender
Jonietz
Overhead
high
low
Nutzdaten
Ruhe
Stoppbit
8. Datenbit
7. Datenbit
6. Datenbit
5. Datenbit
4. Datenbit
3. Datenbit
2. Datenbit
1. Datenbit
Anfangsbegrenzer
Ruhe
38
Übersicht Bitfolge
 Damit gestaltet sich die Übertragung wie folgt:
Ruhe
SB
8. Datenbit
7. Datenbit
6. Datenbit
5. Datenbit
4. Datenbit
3. Datenbit
2. Datenbit
Ruhe
Sender
1. Datenbit
Rechnernetze
39
AB
Sender/Empfänger
high
Warte
SB
8. Datenbit
7. Datenbit
6. Datenbit
5. Datenbit
4. Datenbit
3. Datenbit
2. Datenbit
1. Datenbit
AB
Empfänger
Warte
low
high
low
regelmäßiges
Abtasten
Jonietz
Startbit
erkannt
Anfang
1. Datenbit
vermutet
Messen
1. Datenbit
in der Mitte
Anfang
8. Datenbit
vermutet
Messen
8. Datenbit
in der Mitte
Ende
8. Datenbit
vermutet
Rechnernetze
Jonietz
2. Datenbit
3. Datenbit
4. Datenbit
5. Datenbit
6. Datenbit
7. Datenbit
8. Datenbit
SB
low
1. Datenbit
high
AB
40
Aufbau von Rahmen
0
1
0
0
1
0
1
1
0
1
Rahmen
(Frame)
Wahrheit
Rechnernetze
41
 Tatsächlich kann die Hardware Pegeländerungen
(Flanken) selbst detektieren.
– Ein Messen – wie hier durchgeführt – ist nicht nötig.
– Die zeitlichen Differenzen entfallen.
– Vgl. differentielle Manchester-Kodierung!
 Die hier verwendeten Timer haben einen großen
Nachteil: Sie können ausbleiben oder mit quasi
beliebig großer Verzögerung eintreten!
– Folge: Plötzliches Auftreten augenscheinlich unerklärlicher
Übertragungsfehler
– Besser: Selbstsynchronisierende Verfahren
Jonietz
Sendeautomat
Rechnernetze
42
 Es bietet sich an, den Sender mit Hilfe eines
Automaten zu modellieren und zu implementieren.
Jonietz
Empfangsautomat
Rechnernetze
43
 Analog zum Sender
Jonietz
Lösungsvorschlag
Rechnernetze
44
Der Automat



Jonietz
type TSenderZustand = ( sWarte, SendeAB, SendeBit1, SendeBit2,
SendeBit3, SendeBit4, SendeBit5, SendeBit6, SendeBit7, SendeBit8,
SendeEB );
procedure TSender.TimerTick;
begin
case zustand of
sWarte
: begin ...
end;
SendeAB
: begin ... zustand := SendeBit1; end;
SendeBit1 : begin ... zustand := SendeBit2; end;
SendeBit2 : begin ... zustand := SendeBit3; end;
SendeBit3 : begin ... zustand := SendeBit4; end;
SendeBit4 : begin ... zustand := SendeBit5; end;
SendeBit5 : begin ... zustand := SendeBit6; end;
SendeBit6 : begin ... zustand := SendeBit7; end;
SendeBit7 : begin ... zustand := SendeBit8; end;
SendeBit8 : begin ... zustand := SendeBitEB; end;
SendeEB
: begin ... zustand := sWarte;
end;
end;
end;
procedure TSender.Sende( Daten : TBitFolge );
begin ...
zustand := SendeAB;
end;
Lösungsvorschlag
Rechnernetze
45
Der Timer

type TSender = class ( TObject )
...
public
...
procedure TimerTick( sender : TObject );
end;

constructor TSender.Create;
begin
...
oTimer := TTimer.Create( nil );
oTimer.Interval := 400;
oTimer.Enabled := True;
oTimer.OnTimer := TimerTick;
...
zustand := sWarte;
end;
Jonietz
Lösungsvorschlag
Rechnernetze
46
Ereignis auslösen

TYPE TGUI = CLASS ( TForm )
...
procedure ShowMessage;

procedure TGUI.ShowMessage;
begin
MessageDlg('Übertragung beendet', mtInformation, [mbOk], 0);
end;

oSender.OnBitFolgeGesendet := ShowMessage;

TYPE TEreignis = procedure of object;

TYPE TSender = CLASS ( TObject )
public
OnBitFolgeGesendet : TEreignis;

if Assigned( OnBitFolgeGesendet ) then
OnBitFolgeGesendet;
Jonietz
Teil 3
Rechnernetze
47
Übertragen
von Zeichen
Jonietz
Übertragen von Zeichen
Rechnernetze
48
 Aufgabe:
– Statt Bitfolgen sollen jetzt Zeichen übertragen werden.
 Prototyp:
 Idee:
– Kodiere und Dekodiere die Zeichen irgendwie, z.B. ASCII
(leicht, da
chr() : int  char
und
ord() : char  int
schon existieren)
Jonietz
Lösungsvorschlag
Rechnernetze
49
 Zeichen können schon übertragen werden, nur die
Repräsentation muss angepasst werden:
 Empfänger
procedure TGUI.Refresh;
begin
eDaten.Text := oEmpfaenger.getBitFolge.toChar;
end;
 Sender
procedure TGUI.onbSendeClick(Sender: TObject);
begin
oDaten.fromChar( eDaten.Text[1] );
oSender.OnBitFolgeGesendet := ShowMessage;
oSender.Sende( oDaten );
end;
Jonietz
Ausblick
Rechnernetze
50
Übertragen
von Texten
Jonietz
Übertragen von Texten
Rechnernetze
51
 Aufgabe:
– Vereinige Sender und Empfänger in einem Kommunikator
– Terminalprogramm
 Prototyp:
Jonietz
Texte übertragen
Rechnernetze
52
 Idee:
– Übertragen den Text einfach zeichenweise!
 Problem:
– Können das nächste Zeichen erst dann senden, wenn die
Übertragung des vorherigen abgeschlossen ist, da sonst die
einzelnen Bits interferieren!
 Lösungsansätze
– Sender sagt, wann er fertig mit der Übertragung ist
– Sender erhält (großen) Puffer, der mit den zu sendenden
Daten gefüllt wird
– ...
Jonietz
ISO-OSI-Referenzmodell
Rechnernetze
53
 ISO: International Organization for Standardisation
 OSI: Open-System-Interconnection
 Beschreibt abstraktes, logisch-funktionelles
Architekturmodell, das die Datenkommunikation in
offenen Systemen beschreibt (heutige Fassung von
1984)
 Wird in Praxis nirgendwo in Reinform umgesetzt,
trotzdem hohe Bedeutung, die gerade in der
Referenzhaftigkeit liegt.
Jonietz
ISO-OSI-Referenzmodell
Rechnernetze
54
 Überblick
Jonietz
7
Anwendungsschicht
6
Darstellungsschicht
5
Sitzungsschicht
4
Transportschicht
3
Netzwerkschicht
2
Sicherungsschicht
1
Bitübertragungsschicht
Application layer
Presentation layer
Session layer
Transport layer
Network layer
Data link layer
Physical layer
ISO-OSI / Wir
Rechnernetze
55
 Einordnung in ein Schichtenmodell
7
Anwendungsschicht
6
Darstellungsschicht
5
Sitzungsschicht
4
Transportschicht
3
Netzwerkschicht
2
Sicherungsschicht
1
Bitübertragungsschicht
Application layer
Presentation layer
Session layer
Transport layer
Network layer
Data link layer
Physical layer
Physikalisches Medium
Jonietz
Feststellen von Übertragungsfehlern
Aufbau von Rahmen (Rahmenbegrenzer)
Bit (Eins, Null) in TNetzHw, Länge eines Bits
RS232 (Stecker, Spannungen)
Kabel
Schichtenarchitekturen
Rechnernetze
56
 Vorteile:
– Saubere Trennung von Zuständigkeiten
– Klare Schnittstellen
– Einzelne Schichten können einfach ausgetauscht werden
• Austausch der Hardware-Schicht: Ohne irgendwelche
Änderungen kann z.B. mit Austausch der entsprechenden
TNetzHw auch die Hardware ausgetauscht werden!
– Weitere Schichten können einfach eingeschoben werden
• Z.B. Sicherungsschicht mit zusätzlicher Fehlerüberprüfung
Jonietz
Sicherung
Rechnernetze
57
 Motivation:
– Bei der Übertragung können Fehler auftreten.
– Diese Fehler sollen mindestens festgestellt, am Besten
sogar behoben werden.
 Ansatzpunkte:
– Paritätsbit PB
• an die Bitfolge anhängen und mitübertragen
• Empfänger kann u.U. feststellen, ob Fehler auftrat
– Prüfsumme FCS (Frame Check Sequence)
• Berechnen und an die Bitfolge anhängen bzw. in die Bitfolge
integrieren.
• Empfänger kann je nach verwendetem Verfahren Fehler
feststellen und teilweise sogar reparieren.
Jonietz
Paritätsbits
Rechnernetze
58
 Häufig bei serieller Übertragung eingesetzt
 Grundtypen:
– Gerade Parität (even)
es wird auf gerade Anzahl log. Einsen ergänzt
– Ungerade Parität (odd)
es wird auf ungerade Anzahl log. Einsen ergänzt
– Null (zero)
PB = 0
– Eins (one)
PB = 1
– Keine Parität (none)
kein Paritätsbit
Jonietz
Hamming-Kodierung
Rechnernetze
59
 Erreicht minimale theoretisch erforderliche Anzahl
Prüfbits zur Feststellung von Einzelbitfehlern
 Verfahren: 2 2 2 2 2 2 2 2
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Hamming-Code
12
11
10
9
8
7
6
5
4
3
2
1
23+22
23+21+20
23+21
23+20
23
22+21+20
22+21
22+20
22
21+20
21
20
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
Neue Nummerierung
20-Anteil
0
21-Anteil
0
0
0
22-Anteil
0
0
0
23-Anteil
Bestimme Paritätsbit für
diese Bitfolge
Jonietz
Nutzdaten
Hamming-Kodierung
Rechnernetze
60
 Erreicht minimale theoretisch erforderliche Anzahl
Prüfbits zur Feststellung von Einzelbitfehlern
 Verfahren: 2 2 2 2 2 2 2 2
1
1
1
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
Nutzdaten
1
0
1
1
1
0
1
1
1
Hamming-Code
Neue Nummerierung
12
11
10
9
8
7
6
5
4
3
2
1
23+22
23+21+20
23+21
23+20
23
22+21+20
22+21
22+20
22
21+20
21
20
0
1
0
1
0
1
0
1
0
1
0
1
20-Anteil
0
1
1
0
0
1
1
0
0
1
1
0
21-Anteil
1
0
0
0
0
1
1
1
0
0
0
0
22-Anteil
1
1
1
1
0
0
0
0
0
0
0
0
23-Anteil
Bestimme Paritätsbit für
diese Bitfolge
Jonietz
Hamming-Kodierung
Rechnernetze
61
 Beispiel: 10010111
Bilde log. AND
zwischen
Datenbit und
20-Bit: 0
1
0
0
27
26
25
24
23
22
21
20
1
0
0
1
0
1
1
1
Nutzdaten
1
0
0
1
1
1
1
0
1
Hamming-Code
Neue Nummerierung
12
11
10
9
8
7
6
5
4
3
2
1
23+22
23+21+20
23+21
23+20
23
22+21+20
22+21
22+20
22
21+20
21
20
0
0
0
1
0
0
0
1
0
1
0
1
20-Anteil
0
0
0
0
0
0
1
0
0
1
0
0
21-Anteil
1
0
0
0
0
0
1
1
1
0
0
0
22-Anteil
1
0
0
1
0
0
0
0
0
0
0
0
23-Anteil
Ergänze Paritätsbit für
diese Bitfolge auf „gerade“
Jonietz
Hamming-Code
Rechnernetze
62
Jonietz
Überblick Schichten
Anwendungsschicht
H i !
H i !
7210 = ‚H‘
10510 = ‚i‘
3310 = ‚!‘
Sicherungsschicht
0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1
0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 0 0 1
Bitübertragungsschicht
a b 0 c 1 0 0 d 1 0 0 0 0 1 1 e 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 f
Medium
Rechnernetze
63
Jonietz
0 a b 0 c 1 0 0 d 0 1
0 1 0 0 0 0 1 1 e 0 1
0 0 1 0 0 1 0 0 1 0 1
Rechnernetze
64
Zyklische Redundanzkodes
 Cyclic Redundancy Check CRC
– Bitfolgen werden als Polynome mit den Koeffizienten 0 und 1
behandelt
– Bitfolge 110001 repräsentiert das Polynom P=x5+x4+1
– Berechne Additionen und Subtraktionen ohne Übertrag, d.h.
identisch mit XOR
– Sender und Empfänger eingen sich auf Generatorpolynom G
– Prüfsumme ist der Rest bei Division P : G
– z.B: G=x16+x12+x5+1 (CRC-CCITT)
• Entdeckt alle Einzelbitfehler, alle Doppelbitfehler, alle Bitfehler
mit ungerader Bitanzahl, alle Fehlerbündel bis 16 Bits, 99,997%
aller 17-Bit-Fehlerbündel, 99.998% aller Fehlerbündel mit 18
oder mehr Bits.
– mit einfacher Hardware-Schaltung berechenbar!
Jonietz
Ausblick
Rechnernetze
65
 In „echten“ Netzen treten weitere Probleme auf, die
wir hier durch Einsatz einer Punkt-zu-PunktVerbindung vermeiden konnten. Dadurch ist:
– keine Adressierung notwendig (weder Kennzeichnung des
Empfängers noch Angabe des Absenders)
– keine Leitweg-Suche
– keine Mechanismen zur Zugriffskontrolle auf das Medium
nötig (full-duplex, aber jeweils immer nur ein Sender und ein
Empfänger), keine Kollisionen möglich
 Haben darüberhinaus der Einfachheit halber gespart
– Positive / Negative Quittungen über eingehende Daten
– Automatische Neuversendung fehlerhafter Daten
Jonietz
Anwendungen
Rechnernetze
66
Internet-Protokolle
der Anwendungsschicht
Jonietz
Überblick
Rechnernetze
67
 Viele Anwendungs-Protokolle des Internets lassen
sich einfach „von Hand“ nachvollziehen.
– eMail:
POP, SMTP (Post Office Protocol, Simple Mail Transport
Protocol)
– WWW:
HTTP (HyperText Transfer Protocol)
– FTP:
FTP (File Transfer Protocol)
– Diese Protokolle definieren u.a. die Sprache, in der
Anwendungs-Programm (Client) und Server sich
„unterhalten“
Jonietz
Internet-Protokolle
Rechnernetze
68
 „Definition“ per RFC (Request for Comment)
– POP: RFC 1939, SMTP: RFC 2821
 Häufig de-facto-Standard
 Verhalten:
– i.d.R. zustandsorientiert (Erweiterter Endlicher Automat)
– in der Form „Server muss“, „Server kann“, „Server darf, wenn
auch nicht gerne gesehen“
 Format und Vokabular
– Verwendetes Format: ASCII, EBCDIC, Unicode, ... ?
– in ABNF (Augmented Backus Naur Form) unter Rückgriff auf
weitere RFCs
 Relativ alt
– POP erstmals 1982 (!) spezifiziert
– Nicht immer effizient (vgl. SMTP: sehr hoher Overhead)
Jonietz
Überblick eMail
Rechnernetze
69
 Einordnung in Schichtenarchitektur
Benutzerschicht
SMTP
senden
POP
abholen
Anwendungsschicht
Transportschicht
Internet
Jonietz
Bitübertragungsschicht
Analyse der Protokolle
Rechnernetze
70
 Treten zur Analyse an Stelle der Anwendung.
 Hilfsmittel: Terminal-Programm, z.B. PuTTY
Jonietz
POP
Rechnernetze
71
 Per POP wird eMail aus einem Postfach abgeholt.
 POP-Server
– versteht u.a. folgende Befehle: USER, PASS, LIST,
STAT, RETR, DELE, NOOP, RSET, QUIT
– antwortet genau mit +OK oder -ERR und führt den Befehl
wenn möglich aus
– manche der Befehle benötigen zusätzliche Argumente
 POP-Client
– muss die Reihenfolge der Befehle einhalten
– auf das entsprechende Format achten (z.B. dass Postfächer
keine Umlaute im Namen führen dürfen)
– wissen wie die empfangenen Daten zu interpretieren sind
Jonietz
Beispiel-Sitzung
Rechnernetze
72
+OK ready <[email protected]>
USER jonietz
+OK Password required for jonietz.
PASS geheim
+OK jonietz has 1 visible message (0 hidden) in 567 octets.
RETR 1
+OK 567 octets
Return-Path: <root@europa>
Received: from europa.burg.bildung-rp.de ([192.168.0.76]) by europa.local ...
Date: Wed, 19 Mar 2003 15:46:27 +0100
From: root <root@europa>
Message-Id: <[email protected]>
To: undisclosed-recipients:;
X-UIDL: HV#"!jd]!!`_'"!kOM"!
Hallo,
wie gehts?
.
DELE 1
+OK Message 1 has been deleted.
.
QUIT
+OK Pop server at europa.local signing off.
Jonietz
POP-Verhalten
 Darstellung als Endlicher Automat
*
Hier fehlen durch Timeouts
hervorgerufene Übergänge.
Konzept in Erweiterten Automaten
*
USER ...
AUTH1
AUTH2
*
QUIT
PASS ...
Rechnernetze
73
TRANS
LIST
Jonietz
RETR n
STOP
POP in SDL
Rechnernetze
74
 SDL (Specification and Description Language)
– Beschreibungssprache für erweiterte Automaten
– zur Darstellung von Protokoll-Verhalten
AUTH2
AUTH1
USER ...
+OK
QUIT
+OK
*
PASS ...
QUIT
prüfen ...
+OK
-ERR
OK?
AUTH2
Hier wären Timeouts jetzt prinzipiell möglich,
SDL bietet entsprechende Möglichkeiten
Jonietz
TRANS
-ERR
AUTH2
nein
AUTH1
+OK
*
-ERR
POP in SDL
Rechnernetze
75
TRANS
RETR n
QUIT
Mail n holen
und ausgeben
OK?
Jonietz
*
LIST
NOOP
Liste ermitteln
und ausgeben
+OK
STAT
Statistik
ausgeben
nein
+OK
-ERR
-ERR
+OK
+OK
+OK
TRANS
TRANS
TRANS
TRANS
TRANS
TRANS
SMTP
Rechnernetze
76
 Per SMTP wird eMail versendet
– vom Benutzer zu Postfach
– oder aber auch von Server zu Server
 SMTP-Server
– versteht HELO, MAIL, RCPT, DATA, QUIT
– Das Ende einer eMail wird dann als erreicht angesehen,
wenn in einer Zeile allein ein einzelner Punkt steht
<CRLF> . <CRLF>
 SMTP-Client
– muss von der Sonderbedeutung von <CRLF> . <CRLF>
wissen und entsprechend damit umgehen!
Jonietz
SMTP in SDL
Rechnernetze
77
Start
HELO ...
QUIT
prüfen ...
OK?
OK
Hallo
gesagt
Jonietz
NOOP
OK
Start
nein
ERR
Start
*
ERR
Start
SMTP in SDL (2)
Rechnernetze
78
Hallo
gesagt
MAIL ...
QUIT
prüfen ...
OK?
OK
Absender
bekannt
Jonietz
nein
ERR
Hallo
gesagt
NOOP
*
OK
ERR
Hallo
gesagt
Hallo
gesagt
SMTP in SDL (3)
Rechnernetze
79
Absender
bekannt
RCPT ...
QUIT
prüfen ...
OK?
OK
Adressat
bekannt
Jonietz
NOOP
OK
Absender
bekannt
nein
ERR
Absender
bekannt
*
ERR
Absender
bekannt
SMTP in SDL (4)
Rechnernetze
80
Adressat
bekannt
RCPT ...
QUIT
prüfen ...
OK?
OK
Adressat
bekannt
Jonietz
NOOP
OK
Absender
bekannt
nein
ERR
Adressat
bekannt
DATA
OK
Empfange
Daten
*
ERR
Absender
bekannt
SMTP in SDL (5)
Rechnernetze
81
Empfange
Daten
.
*
Text
absenden
Merke Text
Empfange
Daten
OK?
OK
Hallo
gesagt
Jonietz
nein
ERR
?
Beispiel-Sitzung
Rechnernetze
82
220 europa.local ESMTP Sendmail 8.10.2/8.10.2/SuSE Linux 8.10.0-0.3;
Wed, 19 Mar 2003 15:45:34 +0100
HELO europa.burg.bildung-rp.de
250 europa.local Hello [192.168.0.76], pleased to meet you
MAIL FROM:<root@europa>
250 2.1.0 <root@europa>... Sender ok
RCPT TO:<jonietz@europa>
250 2.1.5 <jonietz@europa>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Hallo,
wie gehts?
.
250 2.0.0 h2JEjwr00711 Message accepted for delivery
QUIT
221 2.0.0 europa.local closing connection
Jonietz
Umsetzung im Unterricht
Rechnernetze
83
 Prinzipiell mindestens zwei Herangehensweisen
denkbar:
– „Von oben“:
– „Von unten“:
Anwendungsprotokolle
Übertragungsprotokolle
 Beide Wege schon umgesetzt
– Unterrichtsreihe im GK Informatik
am Burggymnasium KL, Stufe 13 2002/03 und 2003/2004
– Unterrichtsreihe im LK Informatik
am Hohenstaufen-Gymnasium KL, Stufe 11 2002/03
 Erfahrung:
– „von unten“ wesentlich zeit- und materialaufwändiger
Jonietz
Literatur
Rechnernetze
84
 Allgemeines
– Tanenbaum, A.: Computer-Netzwerke
– Olbrich, A.: Netze, Protokolle, Spezifikationen
 Zur seriellen Übertragung
– Burkert u.a.: Informatik heute, Band 2
– Keller, R.: Bit für Bit. c‘t Heft 12, 1983
– Klotz, G.: Bits im Gänsemarsch. c‘t Heft 12, 1986
 Zur Anwendungsschicht
– Diverse RFCs unter www.faqs.org/rfcs/
Jonietz