1 / 84

Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz

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, ...)

paulos
Télécharger la présentation

Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rechnernetze und Datenübertragung IFB 2003 Daniel Jonietz

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

  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

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

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

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

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

  8. Morsen - Details „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

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

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

  11. Weitere Topologien • Bus • Ring Sender Empfänger Empfänger Sender Empfänger Sender Empfänger Sender Sender Empfänger Sender Empfänger Sender Empfänger Sender Empfänger Sender Empfänger Sender Empfänger Sender Empfänger

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

  13. Exkurs • Topologie im LAN (Ethernet) • PhysikalischStern 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)

  14. Teil 1 Morsen: Nachbildung von Taster und Lampe

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

  16. 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)

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

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

  19. 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)

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

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

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

  23. Lö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 ofAn : sLED.brush.Color := clRed;Aus : sLED.brush.Color := clBlack; end;end;

  24. Teil 2 Übertragen von Bitfolgen

  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:

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

  27. Signalübertragung • Brauchen Zuordnung zwischen logischen Signalen und physikalischen Signalen auf dem Medium 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

  28. Kodierung • 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 1 0 0 1 0 1 1 0 0 1 high low 0 1 0 0 1 0 1 1 0 0 1 high low 0 1 0 0 1 0 1 1 0 0 1 high low

  29. Manchester-Kodierungen • Jede Bit-Zeit wird in zwei Intervalle unterteilt • Manchester-Kodierunglog. 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 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. 0 1 0 0 1 0 1 1 high low

  30. 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! 0 0 0 0 0 0 0 0 high low 0 0 0 0 0 0 0 0 high low

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

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

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

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

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

  36. Bitfolgen-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 AnfangsbegrenzerAB (Startdelimiter, SD) vorgeschaltet werden. • Zur Kennzeichnung des Anfangs der Übertragung wird ein zum Ruhepegel komplementäres Signal verwendethier: Ruhepegel = highalso: AB = low

  37. Bitfolgen-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 = highalso: SB = high

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

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

  40. Aufbau von Rahmen AB 1. Datenbit 2. Datenbit 3. Datenbit 4. Datenbit 5. Datenbit 6. Datenbit 7. Datenbit 8. Datenbit SB high low 0 1 0 0 1 0 1 1 0 1 Rahmen (Frame)

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

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

  43. Empfangsautomat • Analog zum Sender

  44. Lösungsvorschlag Der Automat • type TSenderZustand = ( sWarte, SendeAB, SendeBit1, SendeBit2, SendeBit3, SendeBit4, SendeBit5, SendeBit6, SendeBit7, SendeBit8, SendeEB ); • procedure TSender.TimerTick;begin case zustand ofsWarte : 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;

  45. 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;

  46. 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 )publicOnBitFolgeGesendet : TEreignis; • if Assigned( OnBitFolgeGesendet ) thenOnBitFolgeGesendet;

  47. Teil 3 Übertragen von Zeichen

  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  charund ord() : char  intschon existieren)

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

  50. Ausblick Übertragen von Texten

More Related