jonietz rechnernetze 1 und datenübertragung ifb 2003 daniel jonietz
TRANSCRIPT
Jonietz
Rech
nern
etz e
1
Rechnernetzeund
Datenübertragung
IFB 2003
Daniel Jonietz
Jonietz
Rech
nern
etz e
2Motivation
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
Rech
nern
etz e
3Übersicht
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
Rech
nern
etz e
4Telegrafie
„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
Rech
nern
etz e
5Telegrafie
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
Rech
nern
etz e
6Telegrafie
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
Rech
nern
etz e
7Morsen
– 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 --
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
Jonietz
Rech
nern
etz e
8Morsen - Details
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• Wie meldet der Sender seinen Mitteilungs-
bedarf? Vielleicht hört ihm niemand zu?
• Wann betrachten wir eine Übertragung als abgeschlossen? Protokolle
„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).“
Jonietz
Rech
nern
etz e
9Morsen - Ergebnis
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
Rech
nern
etz e
10Topologie
Haben immer einen Sender und einen Empfänger, das System besteht nur aus diesen beiden Teilnehmern: Punkt-zu-Punkt-Verbindung
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)
SenderEmpfänger
EmpfängerSender
Jonietz
Rech
nern
etz e
11Weitere Topologien
Bus
Ring
SenderEmpfänger
EmpfängerSender
EmpfängerSender
EmpfängerSender
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger Sender
Empfänger
SenderEmpfänger
Jonietz
Rech
nern
etz e
12Weitere Topologien
Stern
Baum und weitere Mischformen
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger
SenderEmpfänger Sender
Empfänger
SenderEmpfänger
Zentrum
Jonietz
Rech
nern
etz e
13Exkurs
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
Rech
nern
etz e
14Teil 1
Morsen:Nachbildung von
Taster und Lampe
Jonietz
Rech
nern
etz e
15Hardware - Übersicht
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
Rech
nern
etz e
16Hardware - Vorbereitung
Parallel Seriell USB Fischertechnik Loopback
VorbereitungWin9x: keineSonst: Install.
- ?Treiber
installieren-
TNetzHw in ... (uParallel) uSeriell uLoopback(uFtNetz)
Hilfssystem WinIO v2.0www.internals.com
RSCOMwww.b-kainka.de
umFishwww.ftcomputing.de
-
Aufwand
Bewertung
mittel niedrig sehr hoch ohne
+ ++ -(wg. Aufwand)
(++)(kein wirkliches Netz)
Kabel Laplink Nullmodem -
Ergänzung LED-Bausatz LED-Bausatz -
„Gefahr“ gegeben klein keineklein
IO-Warriorwww.codemercs.de
Preis, ca. 5,- € 5,- € ? 0,- €100,- €
Bausatz
(uUSB)
klein
?
++
Eigenbau
Jonietz
Rech
nern
etz e
17Serielle Schnittstelle
Sehr analog zu unserem Morsekabel:– Ruhezustand auch „Leitung an“, also „LED leuchtet“.
Nullmodemkabel
Jonietz
Rech
nern
etz e
18Nullmodem
mit LEDs (schwarz und braun im Stecker getauscht!)
R=220
LED
LED
Pin 5 = Masse
Pin 7
Pin 8
Jonietz
Rech
nern
etz e
19Die Klasse TNetzHw
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 Nullmodem-Kabel)
Jonietz
Rech
nern
etz e
20Vorgehensweise
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
Rech
nern
etz e
21Nachbildung Atlantikkabel
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
Rech
nern
etz e
22Lösungsvorschlag
In beiden Programmen:– uses
... uSeriell;
– typeTGUI = 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;
Jonietz
Rech
nern
etz e
23Lösungsvorschlag
Sender:– procedure TGUI.bAnClick(Sender: TObject);
begin oNetzHw.setSendeLeitung( An );end;
– procedure TGUI.bAusClick(Sender: TObject);begin oNetzHw.setSendeLeitung( Aus );end;
Empfänger:– procedure TGUI.OnTimerTick(Sender: TObject);
begin case oNetzHw.getEmpfangsLeitung of An : sLED.brush.Color := clRed; Aus : sLED.brush.Color := clBlack; end;end;
Jonietz
Rech
nern
etz e
24Teil 2
Übertragen von Bitfolgen
Jonietz
Rech
nern
etz e
25Übertragen von Bitfolgen
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
Rech
nern
etz e
26Die Klasse TBitFolge
Hilfsklasse, die den Datentyp „Folge von 8 Bits“ und Operationen auf diesem kapselt
Jonietz
Rech
nern
etz e
27Signalübertragung
Brauchen Zuordnung zwischen logischen Signalen und physikalischen Signalen auf dem Medium
Signal Elektrisch Optisch
Zwei LevelBinärkodierung
Drei LevelMehrfachniveaus
01
0V5V
Licht ausLicht an
012
0V2,5V5V
Licht ausLicht gedämmt
Licht voll an
0 1 0
0 1 2
Jonietz
Rech
nern
etz e
28Kodierung
Gebräuchliche Binärkodierungen:– NRZ-L (No Return to Zero – Level)
log. 0 = lowlog. 1 = high
– NRZ-M (No Return to Zero – Mark) log. 0 = keine Pegeländerunglog. 1 = Pegeländerung
– NRZ-S (No Return to Zero – Space)log. 0 = Pegeländerunglog. 1 = keine Pegeländerung
0 101 0 0 1 0 1 1 0
0 101 0 0 1 0 1 1 0
0 101 0 0 1 0 1 1 0
high
low
high
low
high
low
Jonietz
Rech
nern
etz e
29Manchester-Kodierungen
Jede Bit-Zeit wird in zwei Intervalle unterteilt– Manchester-Kodierung
log. 0 = low / highlog. 1 = high / low
– Differentielle Manchester-Kodierunglog. 0 = Pegeländerung im ersten Intervalllog. 1 = keine Pegeländerung im ersten Intervallimmer Pegeländerung im zweiten Intervall
0 1 0 0 1 0 1 1
high
low
0 1 0 0 1 0 1 1
high
low
low / low und high / high sind
zwei illegale Kodierungen, die
mit J und K bezeichnet und z.B.
in Token-Ring-Netzen zur
Kennzeichnung des Anfanges eines
neuen Rahmens verwendet werden.
Jonietz
Rech
nern
etz e
30Manchester-Kodierungen
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
– NRZ-L-Kodierung
– Nachteil: Doppelte Bandbreite benötigt!
high
low
0 0 0 0 0 0 0 0
high
low
0 0 0 0 0 0 0 0
Jonietz
Rech
nern
etz e
31OOM Sender
die zu versendenden Daten(vorerst auch Bitfolgen)
Die zu verwendende Netzwerkhardware
Der Sender kopiert die Daten bevor er mit dem Senden beginnt
Der Sender muss die Netzhardware kennen(Assoziation)
Jonietz
Rech
nern
etz e
32OOM Ausblick
Kommunikator ist in der Lage „beliebige“ Daten zu versenden und zu empfangen
Jonietz
Rech
nern
etz e
33Takte - Timer
Jedes zu sendende Bit hat eine feste Länge / Dauer
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.
high
low
Jonietz
Rech
nern
etz e
34Timer in Delphi
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
Rech
nern
etz e
35Aufgabe
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
Rech
nern
etz e
36Bitfolgen-Begrenzer
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 verwendethier: Ruhepegel = high also: AB = low
Jonietz
Rech
nern
etz e
37Bitfolgen-Begrenzer
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 verwendethier: Ruhepegel = high also: SB = high
Jonietz
Rech
nern
etz e
38Übersicht Bitfolge
Damit gestaltet sich die Übertragung wie folgt:
high
low
Ruh
e
Ruh
e
Anf
angs
-be
gren
zer
Sto
ppbi
t
1. D
aten
bit
2. D
aten
bit
3. D
aten
bit
4. D
aten
bit
5. D
aten
bit
6. D
aten
bit
7. D
aten
bit
8. D
aten
bit
Sender
Nutzdaten
Overhead
Jonietz
Rech
nern
etz e
39Sender/Empfänger
Ruh
e
Ruh
e
AB
SB
1. D
aten
bit
2. D
aten
bit
3. D
aten
bit
4. D
aten
bit
5. D
aten
bit
6. D
aten
bit
7. D
aten
bit
8. D
aten
bit
War
te
War
te
AB
SB
1. D
aten
bit
2. D
aten
bit
3. D
aten
bit
4. D
aten
bit
5. D
aten
bit
6. D
aten
bit
7. D
aten
bit
8. D
aten
bit
Sender
Empfänger
regelmäßiges Abtasten
Startbiterkannt
Anfang 1. Datenbit vermutet
Messen 1. Datenbit in der Mitte
Anfang 8. Datenbit vermutet
Ende 8. Datenbit vermutet
Messen 8. Datenbit in der Mitte
high
low
high
low
Jonietz
Rech
nern
etz e
40Aufbau von Rahmen
AB
SB
1. D
aten
bit
2. D
aten
bit
3. D
aten
bit
4. D
aten
bit
5. D
aten
bit
6. D
aten
bit
7. D
aten
bit
8. D
aten
bit
high
low
0 00 0 101111
Rahmen(Frame)
Jonietz
Rech
nern
etz e
41Wahrheit
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
Rech
nern
etz e
42Sendeautomat
Es bietet sich an, den Sender mit Hilfe eines Automaten zu modellieren und zu implementieren.
Jonietz
Rech
nern
etz e
43Empfangsautomat
Analog zum Sender
Jonietz
Rech
nern
etz e
44Lösungsvorschlag
Der Automat 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;
Jonietz
Rech
nern
etz e
45Lösungsvorschlag
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
Rech
nern
etz e
46Lösungsvorschlag
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
Rech
nern
etz e
47Teil 3
Übertragen von Zeichen
Jonietz
Rech
nern
etz e
48Übertragen von Zeichen
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
Rech
nern
etz e
49Lösungsvorschlag
Zeichen können schon übertragen werden, nur die Repräsentation muss angepasst werden:
Empfängerprocedure TGUI.Refresh;begin eDaten.Text := oEmpfaenger.getBitFolge.toChar;end;
Senderprocedure TGUI.onbSendeClick(Sender: TObject);begin oDaten.fromChar( eDaten.Text[1] ); oSender.OnBitFolgeGesendet := ShowMessage; oSender.Sende( oDaten );end;
Jonietz
Rech
nern
etz e
50Ausblick
Übertragen von Texten
Jonietz
Rech
nern
etz e
51Übertragen von Texten
Aufgabe:– Vereinige Sender und Empfänger in einem Kommunikator– Terminalprogramm
Prototyp:
Jonietz
Rech
nern
etz e
52Texte übertragen
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
Rech
nern
etz e
53ISO-OSI-Referenzmodell
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
Rech
nern
etz e
54ISO-OSI-Referenzmodell
Überblick
AnwendungsschichtApplication layer
DarstellungsschichtPresentation layer
SitzungsschichtSession layer
TransportschichtTransport layer
NetzwerkschichtNetwork layer
SicherungsschichtData link layer
BitübertragungsschichtPhysical layer
1
2
3
4
5
6
7
Jonietz
Rech
nern
etz e
55ISO-OSI / Wir
Einordnung in ein Schichtenmodell
AnwendungsschichtApplication layer
DarstellungsschichtPresentation layer
SitzungsschichtSession layer
TransportschichtTransport layer
NetzwerkschichtNetwork layer
SicherungsschichtData link layer
BitübertragungsschichtPhysical layer
1
2
3
4
5
6
7
Physikalisches Medium Kabel
Feststellen von ÜbertragungsfehlernAufbau von Rahmen (Rahmenbegrenzer)
Bit (Eins, Null) in TNetzHw, Länge eines BitsRS232 (Stecker, Spannungen)
Jonietz
Rech
nern
etz e
56Schichtenarchitekturen
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
Rech
nern
etz e
57Sicherung
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
Rech
nern
etz e
58Paritätsbits
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
Rech
nern
etz e
59
27 26 25 24 23 22 21 20
Hamming-Kodierung Erreicht minimale theoretisch erforderliche Anzahl
Prüfbits zur Feststellung von Einzelbitfehlern Verfahren:
0 Nutzdaten0 0 0 0 0 0 0
0 0 0 00 0 00
00000001111 23 -Anteil
120
221
321 +20
422
522 +20
622 +21
722 +21 +20
823
923 +20
1023 +21
1123 +21 +20
1223 +22
01010101010 20 -Anteil
Neue Nummerierung
01001100110 21 -Anteil
00011100001 22 -Anteil
Hamming-Code
Bestimme Paritätsbit für diese Bitfolge
Jonietz
Rech
nern
etz e
60
27 26 25 24 23 22 21 20
Hamming-Kodierung Erreicht minimale theoretisch erforderliche Anzahl
Prüfbits zur Feststellung von Einzelbitfehlern Verfahren:
1 Nutzdaten1 1 1 1 1 1 1
0 1 1 1 0 1 1 11 1 11
000000001111 23 -Anteil
120
221
321 +20
422
522 +20
622 +21
722 +21 +20
823
923 +20
1023 +21
1123 +21 +20
1223 +22
101010101010 20 -Anteil
Neue Nummerierung
011001100110 21 -Anteil
000011100001 22 -Anteil
Hamming-Code
Bestimme Paritätsbit für diese Bitfolge
Jonietz
Rech
nern
etz e
61
27 26 25 24 23 22 21 20
Hamming-Kodierung Beispiel: 10010111
1 Nutzdaten0 0 1 0 1 1 1
0 0 1 1 1 1 0 10 0 11
000000001001 23 -Anteil
120
221
321 +20
422
522 +20
622 +21
722 +21 +20
823
923 +20
1023 +21
1123 +21 +20
1223 +22
101010001000 20 -Anteil
Neue Nummerierung
001001000000 21 -Anteil
000111000001 22 -Anteil
Hamming-Code
Ergänze Paritätsbit für diese Bitfolge auf „gerade“
Bilde log. AND zwischen
Datenbit und 20-Bit: 0
Jonietz
Rech
nern
etz e
62Hamming-Code
Jonietz
Rech
nern
etz e
63Überblick Schichten
b 1c0a 0 0 d 0 10 0 0001 1 1 e 0 10 1 1000 0 0 1 0 10
Bitü
be
rtra
gu
ng
s-sc
hic
ht
Me
diu
mA
nw
en
du
ng
s-sc
hic
ht
Sic
he
run
gs-
sch
ich
t
i !H
i !H
1 1000 0 0 0
7210 = ‚H‘
1 1010 0 0 1
10510 = ‚i‘
0 0010 0 0 1
3310 = ‚!‘
1 1000 0 0 0 1 1010 0 0 1 0 0010 0 0 1
b 1c0a 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
Jonietz
Rech
nern
etz e
64Zyklische 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
Rech
nern
etz e
65Ausblick
In „echten“ Netzen treten weitere Probleme auf, die wir hier durch Einsatz einer Punkt-zu-Punkt-Verbindung 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
Rech
nern
etz e
66Anwendungen
Internet-Protokolle der Anwendungsschicht
Jonietz
Rech
nern
etz e
67Überblick
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
Rech
nern
etz e
68Internet-Protokolle
„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
Rech
nern
etz e
69Überblick eMail
Einordnung in Schichtenarchitektur
Internet
Transport-schicht
Bitübertragungs-schicht
SMTPsenden
POPabholen
Benutzer-schicht
Anwendungs-schicht
Jonietz
Rech
nern
etz e
70Analyse der Protokolle
Treten zur Analyse an Stelle der Anwendung. Hilfsmittel: Terminal-Programm, z.B. PuTTY
Jonietz
Rech
nern
etz e
71POP
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
Rech
nern
etz e
72Beispiel-Sitzung
+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 octetsReturn-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 +0100From: 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
Rech
nern
etz e
73POP-Verhalten
Darstellung als Endlicher Automat
AUTH1
AUTH2
TRANS
*
*
*
LIST RETR n
QUIT
QUIT
QUIT
US
ER
...
STOPP
AS
S .
..
Hier fehlen durch Timeoutshervorgerufene Übergänge.Konzept in Erweiterten Automaten
Jonietz
Rech
nern
etz e
74POP in SDL
SDL (Specification and Description Language)– Beschreibungssprache für erweiterte Automaten – zur Darstellung von Protokoll-Verhalten
AUTH1
QUITUSER ...
AUTH2
*
AUTH1
-ERR+OK+OK
+OK
prüfen ...
AUTH2
QUITPASS ...
OK?
TRANS
-ERR
*
AUTH2
-ERR
nein
+OK
Hier wären Timeouts jetzt prinzipiell möglich, SDL bietet entsprechende Möglichkeiten
Jonietz
Rech
nern
etz e
75POP in SDL
+OK
Mail n holenund ausgeben
TRANS
QUITRETR n
OK?
TRANS TRANS
-ERR
*
TRANS
-ERR
nein
+OK
LIST
Liste ermittelnund ausgeben
+OK
TRANS
NOOP
TRANS
+OK
STAT
Statistikausgeben
+OK
TRANS
Jonietz
Rech
nern
etz e
76SMTP
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
Rech
nern
etz e
77SMTP in SDL
OK
prüfen ...
Start
NOOPQUITHELO ...
StartOK?
Hallogesagt
Start
ERR
OK
*
Start
ERR
nein
Jonietz
Rech
nern
etz e
78SMTP in SDL (2)
OK
prüfen ...
Hallogesagt
NOOPQUITMAIL ...
HallogesagtOK?
Absenderbekannt
Hallogesagt
ERR
OK
*
Hallogesagt
ERR
nein
Jonietz
Rech
nern
etz e
79SMTP in SDL (3)
OK
prüfen ...
Absenderbekannt
NOOPQUITRCPT ...
AbsenderbekanntOK?
Adressatbekannt
Absenderbekannt
ERR
OK
*
Absenderbekannt
ERR
nein
Jonietz
Rech
nern
etz e
80SMTP in SDL (4)
OK
prüfen ...
Adressatbekannt
NOOPQUITRCPT ...
AbsenderbekanntOK?
Adressatbekannt
ERR
OK
*
Absenderbekannt
ERR
DATA
EmpfangeDaten
OK
Adressatbekannt
nein
Jonietz
Rech
nern
etz e
81SMTP in SDL (5)
OK
EmpfangeDaten
.
OK?
Hallogesagt
?
ERR
*
Textabsenden
EmpfangeDaten
Merke Text
nein
Jonietz
Rech
nern
etz e
82Beispiel-Sitzung
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
Rech
nern
etz e
83Umsetzung im Unterricht
Prinzipiell mindestens zwei Herangehensweisen denkbar:
– „Von oben“: Anwendungsprotokolle– „Von unten“: Ü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
Rech
nern
etz e
84Literatur
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/