Rechnernetze und Datenbertragung IFB 2003 Daniel Jonietz Rechnernetze
Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz
Rechnernetze Motivation 4 Isoliert stehende Rechner sollen verbunden werden. 4 Vorteile: – Austausch von Daten – Gemeinsame Bearbeitung und Lösung von Problemen 4 Nachteile / Probleme: – Welche Daten werden ausgetauscht (Datenschutz, Virenproblem, . . . ) – Wie geschieht die Kommunikation • im Detail • im Großen gesehen Jonietz
Rechnernetze Übersicht 4 Historischer Einstieg: Telegrafie und Morsen – Grundbegriffe 4 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 4 Schichtenmodell – ISO/OSI – Sicherungsschicht – Anwendungsschicht im Internet Jonietz
Rechnernetze Telegrafie 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
Rechnernetze Telegrafie 4 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
Rechnernetze Telegrafie 4 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
Rechnernetze Morsen – 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
Rechnernetze Morsen - Details 4 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
Rechnernetze Morsen - Ergebnis 4 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
Rechnernetze Topologie 4 Haben immer einen Sender und einen Empfänger, das System besteht nur aus diesen beiden Teilnehmern: Punkt-zu-Punkt-Verbindung Sender Empfänger Sender 4 Sparen uns dadurch – Adressierung (Wer soll die Daten erhalten? ) – Suche nach Weg zu Empfänger – Zugriffskontrolle auf Medium (Wer darf gerade senden? ) 4 Aber: – System kann zu anderen Topologien ausgebaut werden! (Verschiedene Varianten denkbar) Jonietz
Rechnernetze Weitere Topologien 4 Bus Sender Empfänger 4 Ring Empfänger Sender Empfänger Sender Empfänger Jonietz Empfänger Sender Empfänger
Rechnernetze Weitere Topologien 4 Stern Sender Empfänger Zentrum Sender Empfänger 4 Baum und weitere Mischformen Jonietz
Rechnernetze Exkurs 4 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
Rechnernetze Teil 1 Morsen: Nachbildung von Taster und Lampe Jonietz
Rechnernetze Hardware - Übersicht 4 Verwenden eigene Hardware, die wir individuell steuern können. 4 Breite Palette an Möglichkeiten, mit unterschiedlich hohem Aufwand verbunden – Fischertechnik-Interfaces – Standard-Ausgänge • Serielle Schnittstelle • Parallele Schnittstelle – USB – Loopback Jonietz
Rechnernetze Hardware - Vorbereitung Hilfssystem Parallel Seriell USB Fischertechnik Loopback Win 9 x: keine Sonst: Install. - ? Treiber installieren - IO-Warrior um. Fish - Win. IO v 2. 0 RSCOM www. internals. com www. b-kainka. de TNetz. Hw in. . . (u. Parallel) www. codemercs. de www. ftcomputing. de u. Seriell (u. USB) (u. Ft. Netz) u. Loopback gegeben klein keine Laplink Nullmodem LED-Bausatz Aufwand mittel Preis, ca. „Gefahr“ Kabel Ergänzung Bewertung Jonietz - Bausatz Eigenbau niedrig ? sehr hoch ohne 5, - € 100, - € ? 0, - € + ++ ++ - - (++) (wg. Aufwand) (kein wirkliches Netz)
Rechnernetze Serielle Schnittstelle 4 Sehr analog zu unserem Morsekabel: – Ruhezustand auch „Leitung an“, also „LED leuchtet“. 4 Nullmodemkabel Jonietz
Rechnernetze Nullmodem 4 mit LEDs (schwarz und braun im Stecker getauscht!) Pin 5 = Masse Pin 8 R=220 LED Pin 7 LED Jonietz
Rechnernetze Die Klasse TNetz. Hw 4 Eigenschaften – Unterscheidet sich je nach verwendeter Hardware – Definiert auch den Datentyp TAn. Aus 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 TNetz. Hw in der Unit u. Seriell, ausgelegt für die Verbindung per Nullmodem. Kabel) Jonietz
Rechnernetze Vorgehensweise 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
Rechnernetze Nachbildung Atlantikkabel 4 Aufgabe: – Lampe (und Leitung) im Ruhezustand an – Sender kann ein- und ausschalten – Empfänger zeigt aktuellen Zustand der Leitung an 4 Problem – Wie wird eine Änderung des Leitungszustandes detektiert? Timer Jonietz
Rechnernetze Lösungsvorschlag 4 In beiden Programmen: – uses. . . u. Seriell; – type TGUI = class( TForm ). . . private o. Netz. Hw : TNetz. Hw; – procedure TGUI. On. Create(Sender: TObject); begin o. Netz. Hw : = TNetz. Hw. Create; end; – procedure TGUI. On. Close(Sender: TObject; var Action: TClose. Action); begin o. Netz. Hw. Free; end; Jonietz
Rechnernetze Lösungsvorschlag 4 Sender: – procedure TGUI. b. An. Click(Sender: TObject); begin o. Netz. Hw. set. Sende. Leitung( An ); end; – procedure TGUI. b. Aus. Click(Sender: TObject); begin o. Netz. Hw. set. Sende. Leitung( Aus ); end; 4 Empfänger: – procedure TGUI. On. Timer. Tick(Sender: TObject); begin case o. Netz. Hw. get. Empfangs. Leitung of An : s. LED. brush. Color : = cl. Red; Aus : s. LED. brush. Color : = cl. Black; end; Jonietz
Rechnernetze Teil 2 Übertragen von Bitfolgen Jonietz
Rechnernetze Übertragen von Bitfolgen 4 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 4 Prototyp: Jonietz
Rechnernetze Die Klasse TBit. Folge 4 Hilfsklasse, die den Datentyp „Folge von 8 Bits“ und Operationen auf diesem kapselt Jonietz
Rechnernetze Signalübertragung 4 Brauchen Zuordnung zwischen logischen Signalen und physikalischen Signalen auf dem Medium Jonietz Signal Elektrisch Optisch Zwei Level Binärkodierung 0 1 0 V 5 V Licht aus Licht an 0 1 0 Drei Level Mehrfachniveaus 0 1 2 0 V 2, 5 V 5 V Licht aus Licht gedämmt Licht voll an 0 1 2
Rechnernetze Kodierung 4 Gebräuchliche Binärkodierungen: – NRZ-L (No Return to Zero – Level) log. 0 = low log. 1 = high 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 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 4 Jede Bit-Zeit wird in zwei Intervalle unterteilt – Manchester-Kodierung log. 0 = low / high log. 1 = high / low 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 1 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.
Manchester-Kodierungen Rechnernetze 30 4 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 high low – NRZ-L-Kodierung high low – Nachteil: Doppelte Bandbreite benötigt! Jonietz
Rechnernetze OOM Sender 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)
Rechnernetze OOM Ausblick Kommunikator ist in der Lage „beliebige“ Daten zu versenden und zu empfangen Jonietz
Rechnernetze Takte - Timer 4 Jedes zu sendende Bit hat eine feste Länge / Dauer high low 4 Timer steuern den Takt, in dem die Bits gesendet und empfangen werden. 4 Der Timer löst in festem Takt ein Ereignis aus, das dann von einer Ereignisbehandlungsroutine bearbeitet wird. 4 Beispiel: – Timer „tickt“ alle 100 ms und löst dabei das Ereignis Timer. Tick aus – Timer. Tick verarbeitet dies indem z. B. der Signalpegel der Sendeleitung geändert wird. Jonietz
Rechnernetze Timer in Delphi 4 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 – mein. Timer : = TTimer. Create( NIL ); 4 Klasse – TTimer in Unit Ext. Ctrls 4 Attribute: – enable true/false – interval in Millisekunden – On. Timer (procedure of object) 4 Löst das Ereignis On. Timer aus und ruft entsprechende Methode zur Bearbeitung auf Jonietz
Rechnernetze Aufgabe 4 Implementiere einen Sender mit Timer, der beginnend mit einem Klick auf den Start-Button alle 500 ms tickt und die Sendeleitung abwechselt an- und ausschaltet. Jonietz
Rechnernetze Bitfolgen-Begrenzer 4 Schwierigkeit 1: – Der Empfänger kann nur dann den Anfang einer Übertragung bemerken, wenn sich das erste übertragene Signal von dem des Ruhezustands unterscheidet. 4 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
Rechnernetze Bitfolgen-Begrenzer 4 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. 4 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 high low Nutzdaten Overhead Ruhe Stoppbit 8. Datenbit 7. Datenbit 6. Datenbit 5. Datenbit 4. Datenbit 3. Datenbit 2. Datenbit 1. Datenbit Anfangsbegrenzer Ruhe Übersicht Bitfolge 4 Damit gestaltet sich die Übertragung wie folgt:
Ruhe SB 8. Datenbit 7. Datenbit 6. Datenbit 5. Datenbit 4. Datenbit 3. Datenbit 2. Datenbit 1. Datenbit Ruhe Sender AB Rechnernetze 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 Aufbau von Rahmen 0 1 0 1 Rahmen (Frame)
Rechnernetze Wahrheit 4 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! 4 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
Rechnernetze Sendeautomat 4 Es bietet sich an, den Sender mit Hilfe eines Automaten zu modellieren und zu implementieren. Jonietz
Rechnernetze Empfangsautomat 4 Analog zum Sender Jonietz
Rechnernetze Lösungsvorschlag Der Automat 4 4 4 Jonietz type TSender. Zustand = ( s. Warte, Sende. AB, Sende. Bit 1, Sende. Bit 2, Sende. Bit 3, Sende. Bit 4, Sende. Bit 5, Sende. Bit 6, Sende. Bit 7, Sende. Bit 8, Sende. EB ); procedure TSender. Timer. Tick; begin case zustand of s. Warte : begin. . . end; Sende. AB : begin. . . zustand : = Sende. Bit 1; end; Sende. Bit 1 : begin. . . zustand : = Sende. Bit 2; end; Sende. Bit 2 : begin. . . zustand : = Sende. Bit 3; end; Sende. Bit 3 : begin. . . zustand : = Sende. Bit 4; end; Sende. Bit 4 : begin. . . zustand : = Sende. Bit 5; end; Sende. Bit 5 : begin. . . zustand : = Sende. Bit 6; end; Sende. Bit 6 : begin. . . zustand : = Sende. Bit 7; end; Sende. Bit 7 : begin. . . zustand : = Sende. Bit 8; end; Sende. Bit 8 : begin. . . zustand : = Sende. Bit. EB; end; Sende. EB : begin. . . zustand : = s. Warte; end; procedure TSender. Sende( Daten : TBit. Folge ); begin. . . zustand : = Sende. AB; end;
Rechnernetze Lösungsvorschlag Der Timer 4 type TSender = class ( TObject ). . . public. . . procedure Timer. Tick( sender : TObject ); end; 4 constructor TSender. Create; begin. . . o. Timer : = TTimer. Create( nil ); o. Timer. Interval : = 400; o. Timer. Enabled : = True; o. Timer. On. Timer : = Timer. Tick; . . . zustand : = s. Warte; end; Jonietz
Rechnernetze Lösungsvorschlag Ereignis auslösen 4 TYPE TGUI = CLASS ( TForm ). . . procedure Show. Message; 4 procedure TGUI. Show. Message; begin Message. Dlg('Übertragung beendet', mt. Information, [mb. Ok], 0); end; 4 o. Sender. On. Bit. Folge. Gesendet : = Show. Message; 4 TYPE TEreignis = procedure of object; 4 TYPE TSender = CLASS ( TObject ) public On. Bit. Folge. Gesendet : TEreignis; 4 if Assigned( On. Bit. Folge. Gesendet ) then On. Bit. Folge. Gesendet; Jonietz
Rechnernetze Teil 3 Übertragen von Zeichen Jonietz
Rechnernetze Übertragen von Zeichen 4 Aufgabe: – Statt Bitfolgen sollen jetzt Zeichen übertragen werden. 4 Prototyp: 4 Idee: – Kodiere und Dekodiere die Zeichen irgendwie, z. B. ASCII (leicht, da chr() : int char und ord() : char int schon existieren) Jonietz
Rechnernetze Lösungsvorschlag 4 Zeichen können schon übertragen werden, nur die Repräsentation muss angepasst werden: 4 Empfänger procedure TGUI. Refresh; begin e. Daten. Text : = o. Empfaenger. get. Bit. Folge. to. Char; end; 4 Sender procedure TGUI. onb. Sende. Click(Sender: TObject); begin o. Daten. from. Char( e. Daten. Text[1] ); o. Sender. On. Bit. Folge. Gesendet : = Show. Message; o. Sender. Sende( o. Daten ); end; Jonietz
Rechnernetze Ausblick Übertragen von Texten Jonietz
Rechnernetze Übertragen von Texten 4 Aufgabe: – Vereinige Sender und Empfänger in einem Kommunikator – Terminalprogramm 4 Prototyp: Jonietz
Rechnernetze Texte übertragen 4 Idee: – Übertragen den Text einfach zeichenweise! 4 Problem: – Können das nächste Zeichen erst dann senden, wenn die Übertragung des vorherigen abgeschlossen ist, da sonst die einzelnen Bits interferieren! 4 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
Rechnernetze ISO-OSI-Referenzmodell 4 ISO: International Organization for Standardisation 4 OSI: Open-System-Interconnection 4 Beschreibt abstraktes, logisch-funktionelles Architekturmodell, das die Datenkommunikation in offenen Systemen beschreibt (heutige Fassung von 1984) 4 Wird in Praxis nirgendwo in Reinform umgesetzt, trotzdem hohe Bedeutung, die gerade in der Referenzhaftigkeit liegt. Jonietz
Rechnernetze ISO-OSI-Referenzmodell 4 Ü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
Rechnernetze ISO-OSI / Wir 4 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 TNetz. Hw, Länge eines Bits RS 232 (Stecker, Spannungen) Kabel
Rechnernetze Schichtenarchitekturen 4 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 TNetz. Hw auch die Hardware ausgetauscht werden! – Weitere Schichten können einfach eingeschoben werden • Z. B. Sicherungsschicht mit zusätzlicher Fehlerüberprüfung Jonietz
Rechnernetze Sicherung 4 Motivation: – Bei der Übertragung können Fehler auftreten. – Diese Fehler sollen mindestens festgestellt, am Besten sogar behoben werden. 4 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
Rechnernetze Paritätsbits 4 Häufig bei serieller Übertragung eingesetzt 4 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
Rechnernetze Hamming-Kodierung 4 Erreicht minimale theoretisch erforderliche Anzahl Prüfbits zur Feststellung von Einzelbitfehlern 4 Verfahren: 2 2 2 2 0 0 0 7 6 5 4 3 2 1 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 0 1 1 0 0 1 1 1 1 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
Rechnernetze Hamming-Kodierung 4 Erreicht minimale theoretisch erforderliche Anzahl Prüfbits zur Feststellung von Einzelbitfehlern 4 Verfahren: 2 2 2 2 1 1 1 7 6 5 4 3 2 1 0 1 1 1 1 Nutzdaten 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 20 -Anteil 0 1 1 0 21 -Anteil 1 0 0 1 1 1 0 0 22 -Anteil 1 1 0 0 0 0 23 -Anteil Bestimme Paritätsbit für diese Bitfolge Jonietz
Rechnernetze Hamming-Kodierung 4 Beispiel: 10010111 Bilde log. AND zwischen Datenbit und 20 -Bit: 0 1 0 0 27 26 25 24 23 22 21 20 1 0 1 1 1 Nutzdaten 1 0 0 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 1 0 1 20 -Anteil 0 0 0 1 0 0 21 -Anteil 1 0 0 0 1 1 1 0 0 0 22 -Anteil 1 0 0 0 0 0 23 -Anteil Ergänze Paritätsbit für diese Bitfolge auf „gerade“ Jonietz
Rechnernetze Hamming-Code Jonietz
Anwendungsschicht H i ! 7210 = ‚H‘ 10510 = ‚i‘ 3310 = ‚!‘ Sicherungsschicht 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 Bitübertragungsschicht a b 0 c 1 0 0 d 1 0 0 1 1 e 0 1 0 0 1 0 0 f Medium Rechnernetze Überblick Schichten Jonietz 0 a b 0 c 1 0 0 d 0 1 0 0 1 1 e 0 1 0 1
Rechnernetze Zyklische Redundanzkodes 4 Cyclic Redundancy Check CRC – Bitfolgen werden als Polynome mit den Koeffizienten 0 und 1 behandelt – Bitfolge 110001 repräsentiert das Polynom P=x 5+x 4+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=x 16+x 12+x 5+1 (CRC-CCITT) • Entdeckt alle Einzelbitfehler, alle Doppelbitfehler, alle Bitfehler mit ungerader Bitanzahl, alle Fehlerbündel bis 16 Bits, 997% aller 17 -Bit-Fehlerbündel, 99. 998% aller Fehlerbündel mit 18 oder mehr Bits. – mit einfacher Hardware-Schaltung berechenbar! Jonietz
Rechnernetze Ausblick 4 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 4 Haben darüberhinaus der Einfachheit halber gespart – Positive / Negative Quittungen über eingehende Daten – Automatische Neuversendung fehlerhafter Daten Jonietz
Rechnernetze Anwendungen Internet-Protokolle der Anwendungsschicht Jonietz
Rechnernetze Überblick 4 Viele Anwendungs-Protokolle des Internets lassen sich einfach „von Hand“ nachvollziehen. – e. Mail: POP, SMTP (Post Office Protocol, Simple Mail Transport Protocol) – WWW: HTTP (Hyper. Text Transfer Protocol) – FTP: FTP (File Transfer Protocol) – Diese Protokolle definieren u. a. die Sprache, in der Anwendungs-Programm (Client) und Server sich „unterhalten“ Jonietz
Rechnernetze Internet-Protokolle 4 „Definition“ per RFC (Request for Comment) – POP: RFC 1939, SMTP: RFC 2821 4 Häufig de-facto-Standard 4 Verhalten: – i. d. R. zustandsorientiert (Erweiterter Endlicher Automat) – in der Form „Server muss“, „Server kann“, „Server darf, wenn auch nicht gerne gesehen“ 4 Format und Vokabular – Verwendetes Format: ASCII, EBCDIC, Unicode, . . . ? – in ABNF (Augmented Backus Naur Form) unter Rückgriff auf weitere RFCs 4 Relativ alt – POP erstmals 1982 (!) spezifiziert – Nicht immer effizient (vgl. SMTP: sehr hoher Overhead) Jonietz
Rechnernetze Überblick e. Mail 4 Einordnung in Schichtenarchitektur Benutzerschicht SMTP senden POP abholen Anwendungsschicht Transportschicht Internet Jonietz Bitübertragungsschicht
Rechnernetze Analyse der Protokolle 4 Treten zur Analyse an Stelle der Anwendung. 4 Hilfsmittel: Terminal-Programm, z. B. Pu. TTY Jonietz
Rechnernetze POP 4 Per POP wird e. Mail aus einem Postfach abgeholt. 4 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 4 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
Rechnernetze Beispiel-Sitzung +OK ready <724. 1048085272@europa. local> 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: <200303191446. h 2 JEjwr 00711@ europa. local> To: undisclosed-recipients: ; X-UIDL: HV#"!jd]!!`_'"!k. OM"! Hallo, wie gehts? . DELE 1 +OK Message 1 has been deleted. . QUIT +OK Pop server at europa. local signing off. Jonietz
4 Darstellung als Endlicher Automat * Hier fehlen durch Timeouts hervorgerufene Übergänge. Konzept in Erweiterten Automaten U IT QUIT Q PASS. . . * IT AUTH 2 U * USER. . . AUTH 1 Q Rechnernetze POP-Verhalten TRANS LIST Jonietz RETR n STOP
Rechnernetze POP in SDL 4 SDL (Specification and Description Language) – Beschreibungssprache für erweiterte Automaten – zur Darstellung von Protokoll-Verhalten AUTH 2 AUTH 1 USER. . . +OK AUTH 2 QUIT +OK * -ERR PASS. . . QUIT prüfen. . . +OK OK? Hier wären Timeouts jetzt prinzipiell möglich, SDL bietet entsprechende Möglichkeiten Jonietz TRANS -ERR AUTH 2 nein AUTH 1 +OK * -ERR
Rechnernetze POP in SDL TRANS RETR n QUIT Mail n holen und ausgeben OK? Jonietz * LIST NOOP Liste ermitteln und ausgeben +OK STAT Statistik ausgeben nein +OK -ERR +OK +OK TRANS TRANS
Rechnernetze SMTP 4 Per SMTP wird e. Mail versendet – vom Benutzer zu Postfach – oder aber auch von Server zu Server 4 SMTP-Server – versteht HELO, MAIL, RCPT, DATA, QUIT – Das Ende einer e. Mail wird dann als erreicht angesehen, wenn in einer Zeile allein einzelner Punkt steht <CRLF> 4 SMTP-Client – muss von der Sonderbedeutung von <CRLF> wissen und entsprechend damit umgehen! Jonietz
Rechnernetze SMTP in SDL Start HELO. . . QUIT prüfen. . . OK? OK Hallo gesagt Jonietz NOOP OK Start nein ERR Start * ERR Start
Rechnernetze SMTP in SDL (2) Hallo gesagt MAIL. . . QUIT prüfen. . . OK? OK Absender bekannt Jonietz NOOP OK Hallo gesagt nein ERR Hallo gesagt * ERR Hallo gesagt
Rechnernetze SMTP in SDL (3) Absender bekannt RCPT. . . QUIT prüfen. . . OK? OK Adressat bekannt Jonietz NOOP OK Absender bekannt nein ERR Absender bekannt * ERR Absender bekannt
Rechnernetze SMTP in SDL (4) 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
Rechnernetze SMTP in SDL (5) Empfange Daten. * Text absenden Merke Text Empfange Daten OK? OK Hallo gesagt Jonietz nein ERR ?
Rechnernetze Beispiel-Sitzung 220 europa. local ESMTP Sendmail 8. 10. 2/Su. SE 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 h 2 JEjwr 00711 Message accepted for delivery QUIT 221 2. 0. 0 europa. local closing connection Jonietz
Rechnernetze Umsetzung im Unterricht 4 Prinzipiell mindestens zwei Herangehensweisen denkbar: – „Von oben“: – „Von unten“: Anwendungsprotokolle Übertragungsprotokolle 4 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 4 Erfahrung: – „von unten“ wesentlich zeit- und materialaufwändiger Jonietz
Rechnernetze Literatur 4 Allgemeines – Tanenbaum, A. : Computer-Netzwerke – Olbrich, A. : Netze, Protokolle, Spezifikationen 4 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 4 Zur Anwendungsschicht – Diverse RFCs unter www. faqs. org/rfcs/ Jonietz
- Slides: 84