Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz.

Slides:



Advertisements
Ähnliche Präsentationen
Powerpoint-Präsentation
Advertisements

Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
Übung 2.1 Information Wieviele Fragen benötigen Sie beim „Zahlenraten“
2 Kommunikationssysteme bieten Kommunikationsdienste an, die das Senden und Empfangen von Nachrichten erlauben (sending & receiving messages) bestehen.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Präsentation zum Thema Netzwerk Von Jan Metz.
Katja Bode MOdulator Der, Die, Das DEModulator.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Architektur von Netzwerken
Netzwerkadapter FGT-IT-12 Netzwerke planen und installieren
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
OSI-Schichtenmodell Unterschiedliche Rechner brauchen eine gemeinsame Basis, um sich miteinander zu „unterhalten“. Geklärt werden muss dabei u. a. Folgendes:
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Dieter Bergmann, Lichtenfels
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
Heute: Scherenzange zeichnen
AWA 2007 Natur und Umwelt Natürlich Leben
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
2 Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele.
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
Die Geschichte von Rudi
„Küsse deine Freunde“ – FlexKom-App teilen
Zusatzfolien zu B-Bäumen
Delphi II - OOP IFB Fortbildung
Eine Einführung in die CD-ROM
Dokumentation der Umfrage
Das OSI Schichtenmodell
Rechnernetze und Datenübertragung IFB 2006 Daniel Jonietz.
Kinder- und Jugenddorf Klinge Qualitätsentwicklung Januar 2005 Auswertung der Fragebögen für die Fachkräfte in den Jugendämtern.
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
Allgemeine Technologien I Sitzung am Mailserver
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
19. September 2006 Protokolle D. Jonietz, Prof. Dr. P. Müller Technische Universität Kaiserslautern, AG Integrated Communication Systems Staatl. Studienseminar.
Fehler in Rechnernetzen
Internet-Protokolle und Sicherheitsaspekte
Addieren und Subtrahieren von Dezimalzahlen
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Symmetrische Blockchiffren DES – der Data Encryption Standard
Situation Endlich haben Sie es geschafft auf alle Daten zuzugreifen und können in Ruhe weiterarbeiten und die Kundenanrufe betreuen. Plötzlich schaltet.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Folie Einzelauswertung der Gemeindedaten
Die 7 Schichten des OSI-Schichtmodells
Personal Fabrication Drahtgebundene Kommunikation
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
->Prinzip ->Systeme ->Peer – to – Peer
Mailserver Protokollen Universität zu Köln WS 2008/09 Allgemeine Technologien I Dozentin: Susanne Kurz M.A. Referentin: Bethzy Gianella.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
von Prof. Thomas Deutsch
Kirsten Kropmanns Allgemeine Technologien II 9. März 2009
2 Kommunikationssysteme
Netzwerke - Protokolle
ISO / OSI Referenzmodell
 Präsentation transkript:

Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz

Motivation 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

Ü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

Telegrafie „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

Telegrafie 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.

Telegrafie 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.

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 -- 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 Damit ist aber noch nicht alles geklärt: „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).“ 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

Morsen - 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.

Topologie 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) Sender Empfänger Empfänger Sender

Weitere Topologien Bus Ring Sender Empfänger Empfänger Sender

Weitere Topologien Stern Baum und weitere Mischformen Sender Empfänger Zentrum Sender Empfänger Sender Empfänger Sender Empfänger

Exkurs 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)

Teil 1 Morsen: Nachbildung von Taster und Lampe

Hardware - Ü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

Hardware - Vorbereitung Parallel Seriell USB Fischertechnik Loopback Vorbereitung Win9x: keine Sonst: Install. - ? Treiber installieren - Hilfssystem WinIO v2.0 www.internals.com RSCOM www.b-kainka.de IO-Warrior www.codemercs.de umFish www.ftcomputing.de - TNetzHw in ... (uParallel) uSeriell (uUSB) (uFtNetz) uLoopback „Gefahr“ gegeben klein klein klein keine Kabel Laplink Nullmodem Bausatz Eigenbau - Ergänzung LED-Bausatz LED-Bausatz - Aufwand mittel niedrig ? sehr hoch ohne Preis, ca. 5,- € 5,- € 100,- € ? 0,- € Bewertung + ++ ++ - (wg. Aufwand) (++) (kein wirkliches Netz)

Serielle Schnittstelle Sehr analog zu unserem Morsekabel: Ruhezustand auch „Leitung an“, also „LED leuchtet“. Nullmodemkabel

Nullmodem mit LEDs (schwarz und braun im Stecker getauscht!) Pin 5 = Masse R=220 Pin 8 LED Pin 7 LED

Die 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)

Vorgehensweise Programmtechnische Nachbildung von „Taster“ und „Lampe“ des „Atlantikkabels“  Übertragen von Bits Übertragung von Bitfolgen Übertragung einzelner Buchstaben Ausblick: Übertragung ganzer Texte

Nachbildung 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

Lösungsvorschlag In beiden Programmen: 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 Sender: Empfänger: 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;

Teil 2 Übertragen von Bitfolgen

Ü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:

Die Klasse TBitFolge Hilfsklasse, die den Datentyp „Folge von 8 Bits“ und Operationen auf diesem kapselt

Signalübertragung Brauchen Zuordnung zwischen logischen Signalen und physikalischen Signalen auf dem Medium Signal Elektrisch Optisch Zwei Level Binärkodierung 1 0V 5V Licht aus Licht an 1 Drei Level Mehrfachniveaus 1 2 0V 2,5V 5V Licht aus Licht gedämmt Licht voll an 1 2

Kodierung Gebräuchliche Binärkodierungen: NRZ-L (No Return to Zero – Level) log. 0 = low log. 1 = high NRZ-M (No Return to Zero – Mark) log. 0 = keine Pegeländerung log. 1 = Pegeländerung NRZ-S (No Return to Zero – Space) log. 0 = Pegeländerung log. 1 = keine Pegeländerung 1 1 1 1 1 high low 1 1 1 1 1 high low 1 1 1 1 1 high low

Manchester-Kodierungen Jede Bit-Zeit wird in zwei Intervalle unterteilt Manchester-Kodierung log. 0 = low / high log. 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 1 1 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. 1 1 1 1 high low

Manchester-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 high low

OOM Sender die zu versendenden Daten (vorerst auch Bitfolgen) Die zu verwendende Netzwerkhardware Der Sender muss die Netzhardware kennen (Assoziation) Der Sender kopiert die Daten bevor er mit dem Senden beginnt

OOM Ausblick Kommunikator ist in der Lage „beliebige“ Daten zu versenden und zu empfangen

Takte - 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

Timer 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

Aufgabe Implementiere einen Sender mit Timer, der beginnend mit einem Klick auf den Start-Button alle 500ms tickt und die Sendeleitung abwechselt an- und ausschaltet.

Bitfolgen-Begrenzer Schwierigkeit 1: Lösung 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

Bitfolgen-Begrenzer Schwierigkeit 2: Lösung: 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

Übersicht Bitfolge Damit gestaltet sich die Übertragung wie folgt: Ruhe Sender Ruhe Anfangs- begrenzer 1. Datenbit 2. Datenbit 3. Datenbit 4. Datenbit 5. Datenbit 6. Datenbit 7. Datenbit 8. Datenbit Stoppbit high low Nutzdaten Overhead

regelmäßiges Abtasten Sender/Empfänger Ruhe Sender Ruhe AB 1. Datenbit 2. Datenbit 3. Datenbit 4. Datenbit 5. Datenbit 6. Datenbit 7. Datenbit 8. Datenbit SB high low Warte Empfänger Warte AB 1. Datenbit 2. Datenbit 3. Datenbit 4. Datenbit 5. Datenbit 6. Datenbit 7. Datenbit 8. Datenbit SB high low regelmäßiges Abtasten 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

Aufbau von Rahmen Rahmen (Frame) 1 1 1 1 1 AB 1. Datenbit 2. Datenbit SB high low 1 1 1 1 1 Rahmen (Frame)

Wahrheit 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

Sendeautomat Es bietet sich an, den Sender mit Hilfe eines Automaten zu modellieren und zu implementieren.

Empfangsautomat Analog zum Sender

Lö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;

Lö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;

Lö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;

Teil 3 Übertragen von Zeichen

Ü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)

Lösungsvorschlag 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;

Ausblick Übertragen von Texten

Übertragen von Texten Aufgabe: Prototyp: Vereinige Sender und Empfänger in einem Kommunikator Terminalprogramm Prototyp:

Texte übertragen Idee: Problem: Lösungsansätze Ü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 ...

ISO-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.

ISO-OSI-Referenzmodell Überblick 7 Anwendungsschicht Application layer 6 Darstellungsschicht Presentation layer 5 Sitzungsschicht Session layer 4 Transportschicht Transport layer 3 Netzwerkschicht Network layer 2 Sicherungsschicht Data link layer 1 Bitübertragungsschicht Physical layer

ISO-OSI / Wir Einordnung in ein Schichtenmodell Anwendungsschicht 7 Application layer 6 Darstellungsschicht Presentation layer 5 Sitzungsschicht Session layer 4 Transportschicht Transport layer 3 Netzwerkschicht Network layer 2 Sicherungsschicht Data link layer Feststellen von Übertragungsfehlern Aufbau von Rahmen (Rahmenbegrenzer) Bit (Eins, Null) in TNetzHw, Länge eines Bits RS232 (Stecker, Spannungen) 1 Bitübertragungsschicht Physical layer Physikalisches Medium Kabel

Schichtenarchitekturen 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

Sicherung Motivation: Ansatzpunkte: 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.

Paritä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

Bestimme Paritätsbit für diese Bitfolge Hamming-Kodierung Erreicht minimale theoretisch erforderliche Anzahl Prüfbits zur Feststellung von Einzelbitfehlern Verfahren: Nutzdaten 27 26 25 24 23 22 21 20 Hamming-Code Neue Nummerierung 20-Anteil 12 23+22 11 23+21+20 10 23+21 9 23+20 8 23 7 22+21+20 6 22+21 5 22+20 4 22 3 21+20 2 21 1 20 21-Anteil 1 1 1 1 1 22-Anteil 1 1 1 1 1 23-Anteil 1 1 1 1 1 1 1 1 Bestimme Paritätsbit für diese Bitfolge

Bestimme Paritätsbit für diese Bitfolge Hamming-Kodierung Erreicht minimale theoretisch erforderliche Anzahl Prüfbits zur Feststellung von Einzelbitfehlern Verfahren: Nutzdaten 27 26 25 24 23 22 21 20 1 1 1 1 1 1 1 1 Hamming-Code Neue Nummerierung 1 1 1 1 1 1 1 1 1 1 20-Anteil 12 23+22 11 23+21+20 10 23+21 9 23+20 8 23 7 22+21+20 6 22+21 5 22+20 4 22 3 21+20 2 21 1 20 21-Anteil 1 1 1 1 1 1 22-Anteil 1 1 1 1 1 1 23-Anteil 1 1 1 1 1 1 1 1 Bestimme Paritätsbit für diese Bitfolge

Hamming-Kodierung Beispiel: 10010111 Nutzdaten 27 26 25 24 23 22 21 20 1 1 1 1 Hamming-Code Bilde log. AND zwischen Datenbit und 20-Bit: 0 Neue Nummerierung 1 1 1 1 1 1 1 20-Anteil 12 23+22 11 23+21+20 10 23+21 9 23+20 8 23 7 22+21+20 6 22+21 5 22+20 4 22 3 21+20 2 21 1 20 21-Anteil 1 1 1 1 22-Anteil 1 1 23-Anteil 1 1 1 1 1 1 Ergänze Paritätsbit für diese Bitfolge auf „gerade“

Hamming-Code

Überblick Schichten Anwendungs- schicht Sicherungs- schicht ! H i ! H 1 7210 = ‚H‘ 1 10510 = ‚i‘ 1 3310 = ‚!‘ 1 1 1 Sicherungs- schicht a b c 1 d 1 1 1 e 1 1 1 1 f Bitübertragungs- schicht a b c 1 d 1 1 1 1 e 1 1 Medium

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!

Ausblick 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

der Anwendungsschicht Anwendungen Internet-Protokolle der Anwendungsschicht

Ü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“

Internet-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)

Überblick eMail Einordnung in Schichtenarchitektur Benutzer- schicht Anwendungs- schicht SMTP senden POP abholen Transport- schicht Internet Bitübertragungs- schicht

Analyse der Protokolle Treten zur Analyse an Stelle der Anwendung. Hilfsmittel: Terminal-Programm, z.B. PuTTY

POP 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

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.h2JEjwr00711@europa.local> 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.

POP-Verhalten Darstellung als Endlicher Automat * Hier fehlen durch Timeouts hervorgerufene Übergänge. Konzept in Erweiterten Automaten AUTH1 QUIT USER ... * AUTH2 STOP QUIT PASS ... QUIT * TRANS LIST RETR n

POP in SDL SDL (Specification and Description Language) Beschreibungssprache für erweiterte Automaten zur Darstellung von Protokoll-Verhalten AUTH2 AUTH1 PASS ... QUIT * USER ... QUIT * prüfen ... +OK -ERR +OK +OK -ERR OK? AUTH2 nein AUTH2 AUTH1 +OK -ERR Hier wären Timeouts jetzt prinzipiell möglich, SDL bietet entsprechende Möglichkeiten TRANS

POP in SDL TRANS RETR n QUIT * LIST NOOP STAT Mail n holen und ausgeben +OK Liste ermitteln und ausgeben Statistik ausgeben OK? nein +OK -ERR -ERR +OK +OK +OK TRANS TRANS TRANS TRANS TRANS TRANS

SMTP Per SMTP wird eMail versendet SMTP-Server SMTP-Client 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!

SMTP in SDL Start HELO ... QUIT NOOP * prüfen ... OK ERR OK? Start nein OK ERR Hallo gesagt Start

SMTP in SDL (2) Hallo gesagt MAIL ... QUIT NOOP * prüfen ... OK ERR nein OK ERR Absender bekannt Hallo gesagt

SMTP in SDL (3) Absender bekannt RCPT ... QUIT NOOP * prüfen ... OK ERR OK? Absender bekannt Absender bekannt nein OK ERR Adressat bekannt Absender bekannt

SMTP in SDL (4) Adressat bekannt RCPT ... QUIT NOOP DATA * prüfen ... OK OK ERR OK? Absender bekannt Empfange Daten Absender bekannt nein OK ERR Adressat bekannt Adressat bekannt

SMTP in SDL (5) Empfange Daten . * Text absenden Merke Text Empfange OK? nein OK ERR Hallo gesagt ?

Beispiel-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

Umsetzung 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

Literatur Allgemeines Zur seriellen Übertragung Zur Anwendungsschicht 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/