Upload
vuongthien
View
218
Download
0
Embed Size (px)
Citation preview
Inhalt I. Codierung
Zahlensysteme (Dualsystem, Hexadezimalsystem) Zeichensätze (ASCII, UNICODE, …) Grafikformate (Pixelgrafik, Vektorgrafik)
III. Rechnernetze und Internet TCP/IP Protokolle Internet Dienste (Client-Server Architektur) WWW, HTML Kopplung von Netzen
Datenkompression (verlustfrei, verlustbehaftet) Kryptographie (symmetrisch, asymmetrisch, Signatur, Zertifikat...)
II. Datenkompression und Verschlüsselung
Inhalt
Praktische Übungen am Rechner Codierung Kryptographie Rechnernetze, Protokolle HTML, CSS, SVG, JavaScript Internet Dienste
Codierung natürlicher Zahlen
0 1 2 3 4 5 6 7 8 9
10 11 12
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100
Dezimalsystem zehn Symbole
Dualsystem zwei Symbole
Alphabet: Endliche Menge von Zeichen (Symbolvorrat)
Beispiele:
Dezimales Alphabet: 0,1,2,3,4,5,6,7,8,9 Binäres Alphabet: 0,1 Hexadezimales Alphabet: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Buchstaben Alphabet: A,B,C,…,Z
Endliche Folgen über einem Alphabet
Beispiele:
4958714 1101110001 1AF8CC3 INFORMATIK
Codierung: Zuordnung der Elemente eines Wertebereichs zu endlichen Folgen über einem Alphabet.
z.B. Codierung der natürlichen Zahlen durch endliche Folgen von Nullen und Einsen (Dualsystem).
Alle Elemente des Wertebereichs bekommen unterschiedliche Codes! Sonst wären die Elemente nach der Codierung nicht mehr unterscheidbar!
Binärcodierung Codierung mit binärem Alphabet.
z.B. Codierung von Nachrichten durch endliche Folgen von Buchstaben.
Nur diskrete Wertebereiche können codiert werden!
alle endlichen Mengen, z.B. Buchstaben natürliche Zahlen, Texte Längenangaben in ganzen Millimetern, …
physikalische Größen (Zeit, Ort, Helligkeit, Wellenlänge, Schalldruck …) reelle Zahlen
Beispiele für diskrete Wertebereiche:
Beispiele für analoge Wertebereiche:
Ausweg: Quantisierung Runden auf diskrete Werte (ganze Millisekunden, ganze Meter, …)
Bitfolgen der Länge n
0 1
00 01 10 11
000 001 010 011 100 101 110 111
n=1: 2 Folgen
n=2: 4 Folgen
n=3: 8 Folgen
1 Bit mehr: doppelt so viele Folgen → 2n Folgen der Länge n
n=0: 1 Folge
Näherung: 210 = 1024 ≈ 1000 = 103
Bitfolgen der Länge n
Wie kann man 240 näherungsweise von Hand berechnen?
Rechneradressen im Internet bestehen aus 4 Byte. Wie viele Rechner kann man damit maximal adressieren?
Die Hardware Adresse (MAC) einer Ethernet Karte besteht aus 6 Byte. Weltweit soll jede Ethernet Karte eine unterschiedliche Adresse haben. Könnte das bald knapp werden?
Aufgabe
Aufgabe
Aufgabe
Wieviele Bitfolgen gibt es, die weniger als n Bit lang sind? Aufgabe
Binärcodierung von Text
Idee: A = 0 B = 1 C = 10 D = 11 E = 100 F = 101 G = 110 …
Problem? Decodierung von 110: Könnte „G“ oder „DA“ oder „BC“ oder auch „BBA“ sein!
Keine eindeutige Decodierung möglich!
Binärcodierung von Text
Einfachste Lösung: Jeder Code soll gleiche Bit Länge haben (Block Code).
A = 00000 B = 00001 C = 00010 D = 00011 E = 00100 F = 00101 G = 00110 …
Decodierung: 00100 00011 00110 E D G
Binärcodierung von Text
ASCII (American Standard Code for Information Interchange), 1967
7 Bit Code (128 Zeichen) Groß- und Kleinbuchstaben, Ziffern, Sonderzeichen Zusätzliches 8. Bit zur Fehlererkennung (1 Byte pro Zeichen)
Erweiterungen Bit 8 nicht für Fehlererkennung, somit Platz für weitere 128 Zeichen. Latin 1(ISO-8859-1) Zeichen für westeuropäische Sprachen, 1998 Latin 15 (ISO-8859-15) Ähnlich Latin 1, Euro Zeichen ANSI (Windows Code Page 1252, ähnlich Latin 1) DOS Zeichensätze
Problem: Andere Sprachen benötigen andere Sonderzeichen / Codierung! Konsequenz: Inkompatibilität. Codierung im Browser, Editor einstellbar.
Binärcodierung von Text Unicode (Version 1.0.0.: 1991)
Idee: Eine Codierung für alle Zeichen aller Sprachen (> 1 Million Zeichen). Problem: Viele Bit pro Zeichen, Speicherplatz!
Lösung: UTF-8
Gleicher Zeichenvorrat wie Unicode, effizientere Codierung. Idee: Kurze Codes für häufig benutzte Zeichen.
0 x x x x x x x 1 Byte Codes: 128 ASCII Zeichen
1 1 0 x x x x x 1 0 x x x x x x 2 Byte Codes
1 1 1 0 x x x x 1 0 x x x x x x 3 Byte Codes
1 0 x x x x x x
1 1 1 1 0 x x x 1 0 x x x x x x 4 Byte Codes
1 0 x x x x x x 1 0 x x x x x x
Rückwärtskompatibel zu ASCII! Eindeutige Identifikation der Start Bytes, Fehlererkennung. → Beispiel
Binärcodierung von Text
Aufgabe Wieviele Zeichen lassen sich mit UTF-8 codieren?
Aufgabe
Sie haben eine HTML Datei mit einem Editor geschrieben, der UTF-8 Codierung verwendet. Was passiert, wenn Sie sich das Dokument in einem Browser anschauen, der Latin 1 Codierung verwendet? Wie ließe sich das Problem lösen?
1 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 Aufgabe
Weshalb kann die Byte Folge nie in einem UTF-8 codierten Dokument auftreten? Kann das Byte in einem UTF-8 codierten Dokument auftreten? Wie kann ein Webbrowser „erraten“ welche Codierung in einem vorliegenden Dokument verwendet wird?
1 1 1 1 1 1 1 1
Grafik Formate
Pixelgrafik
Vektorgrafik
Farbwert zu jedem Bildpunkt (Pixel) speichern Rasterbild Anwendung: z.B. Fotos.
Koordinaten von geometrischen Figuren speichern z.B. Kreis mit Mittelpunkt (50,274) und Radius 84 Anwendung: z.B. Konstruktionszeichnungen.
Pixelgrafik Farbtiefe (Bit pro Pixel)
1 Bit: Schwarz/Weiß 8 Bit: Grauwerte 24 Bit: True Color (je 8 Bit für rot/grün/blau)
Farbpalette (Color Lookup Table CLUT) 256 Farben auswählen (Palette) Im Bild wird die Nummer einer Farbe gespeichert (8 Bit/Pixel).
5
Nummer Farbe 1 2 3 4 5 6 7 8
Pixel
Bild Farbpalette (CLUT)
Pixelgrafik Farben
Menschliches Auge hat Sehzellen für rot, grün und blau (Zapfen).
Jede Farbwahrnehmung kann durch Mischung von rotem, grünem und blauem Licht erzeugt werden.
… obwohl es unendlich viele Wellenlängen für Licht gibt!
Pixelgrafik Bildschirm: additive Farbmischung
Rot + Grün + Blau = Weiß „Licht Strahler“
Papier: subtraktive Farbmischung Rot + Grün + Blau = Schwarz „Licht Filter, Wasserfarben“
Im Drucker Patronen für CMYK (Cyan, Magenta, Yellow, Key = Black)
Jede CMYK Farbe „verschluckt“ eine RGB Farbe: Cyan verschluckt Rot Magenta verschluckt Grün Yellow verschluckt Blau
Tintenmischung: C+M verschluckt R+G → B C+Y verschluckt R+B → G M+Y verschluckt G+B → R
Lichtmischung ist additiv, Stoffmischung subtraktiv!
Pixelgrafik
Aufgabe Wieso braucht man im Drucker neben CMYK noch eine zusätzliche Farbe Schwarz?
Aufgabe Licht besteht aus einer Überlagerung von elektromagnetischen Schwingungen unterschiedlicher Frequenz und Amplitude. Durch eine Überlagerung von rotem, grünen und blauem Licht ließe sich nur ein Linienspektrum (vgl. Dreiklang in der Musik) erzeugen. Warum reicht das für die Grafik aus?
Aufgabe Sie fotografieren einen Sonnenuntergang, bei dem das Sonnenlicht eine Wellenlänge von 630nm hat. Später schauen Sie sich das Bild am Bildschirm an. Sendet der Bildschirm nun auch Licht mit 630nm aus?
Pixelgrafik
Kriterien für Formate Transparenz (Überlagern von Bildern, z.B. mit Text) Animation (Bewegte Grafiken) Kompression (verlustfrei / verlustbehaftet) Interlacing (schichtweise Laden)
Standard Formate
JPEG: variable, verlustbehaftete Kompression. GIF: verlustfreie Kompression, Animation, Transparenz PNG: verlustfreie Kompression, variable Transparenz BMP: Windows Standard
Vektorgrafik
Vorteile im Vergleich zu Pixelgrafik Viel weniger Speicherplatz bei einfachen Zeichnungen Keine Verluste bei Drehen und Skalieren Optimale Qualität in jeder Auflösung (Drucker vs. Bildschirm) Objekte können einzeln bearbeitet werden Meistens einfache ASCII Dateien
Standard Formate
Postscript, PDF Scalable Vector Graphics (SVG) →Beispiel
Datenkompression
Ziele:
Speicherplatz sparen, insbesondere bei Bildern, Filmen, Musik
Bandbreite sparen bei Datenübertragung (Mobilfunk)
Verfahren:
Verlustfrei kein Informationsverlust, somit exakte Dekompression möglich Anwendung: Textdokumente, Programme, …
Verlustbehaftet Informationsverlust, daher keine exakte Dekompression möglich dafür aber wesentlich höherer Kompressionsfaktor Anwendung: Bilder, Musik, …
Verlustfreie Datenkompression Beispiel: Verlustfreie Kompression eines Grauwertbildes.
Beobachtung: Benachbarte Pixel haben i.a. ähnliche Grauwerte (außer bei Kanten)
Idee: Speichere nicht den Grauwert eines Pixels sondern die Differenz zum Grauwert des vorherigen Pixels. z.B. 17, 19, 23, 22, 25 → 17, 2, 4, -1, 3
Konsequenz: Viele kleine Zahlen, wenige große Zahlen. Immer noch eine Zahl pro Pixel.
Idee: Codiere häufig auftretende Zahlen durch kurze Bitfolgen und selten auftretende Zahlen durch lange Bitfolgen.
Problem: Wie findet man eine „gute“ Codierung?
Verlustfreie Datenkompression Beispiel: Nur 4 verschiedene Symbole A,B,C,D.
Zeichen Häufigkeit
A B C D
20 10 5 1
Standard Codierung:
Code
A B C D
00 01 10 11
2 Bit pro Zeichen, 36 Zeichen, folglich 72 Bit
Bessere Codierung:
Code
A B C D
0 10 110 111
20 mal 1 Bit + 10 mal 2 Bit + 5 mal 3 Bit + 1 mal 3 Bit, folglich nur 58 Bit
Eindeutige Decodierung, Präfix Code
Zeichen
Zeichen
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
Symbol Häufigkeit
A
6
B
3
C
8
D
2
E 4
Fasse die beiden seltensten Symbole zusammen. Ein Bit erforderlich um diese wieder zu unterscheiden.
Idee:
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
Symbol Häufigkeit
A
6
B
3
C
8
D
2
E 4
Fasse die beiden seltensten Symbole zusammen. Ein Bit erforderlich um diese wieder zu unterscheiden.
Idee:
B D
0 1
B,D 5
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
Symbol Häufigkeit
A
6
B
3
C
8
D
2
E 4
Fasse die beiden seltensten Symbole zusammen. Ein Bit erforderlich um diese wieder zu unterscheiden.
Idee:
B,D 5
B,D,E
9
B D E
0 1
1 0
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
Symbol Häufigkeit
A
6
B
3
C
8
D
2
E 4
Fasse die beiden seltensten Symbole zusammen. Ein Bit erforderlich um diese wieder zu unterscheiden.
Idee:
B,D 5
B,D,E
9
A,C
14
B D A C E
0 1
1 0
0 1
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
Symbol Häufigkeit
A
6
B
3
C
8
D
2
E 4
Fasse die beiden seltensten Symbole zusammen. Ein Bit erforderlich um diese wieder zu unterscheiden.
Idee:
B,D 5
B,D,E
9
A,C
14
A,B,C,D,E
23
B D A C E
0 1
1 0
0 1
0 1
Verlustfreie Datenkompression Optimale Codierung: Huffman Codierung
B D A C E
0 1
1 0
0 1
0 1
Symbol Häufigkeit
Code
A
6 10
B
3 000
C
8 11
D
2 001
E 4
01
Verlustfreie Datenkompression
Symbol Häufigkeit
A
5
B
30
C
10
D
1
Aufgabe Berechnen Sie den Huffman Code für folgende Symbolverteilung. Wie viel Speicherplatz ist insgesamt erforderlich? Gibt es mehrere gleich gute Lösungen?
Aufgabe
Weshalb ist folgende Codierung unbrauchbar?
Symbol Code
A
10
B
1
C
0
D
01
Verlustfreie Datenkompression
Aufgabe Kann es ein verlustfreies Kompressionsverfahren geben, das jede Datei verkleinert?
Kryptographie
Sender Empfänger Nachricht
Angreifer
Ziele:
Vertraulichkeit Angreifer kann die Nachricht nicht lesen (Flüstern).
Integrität Angreifer kann die Nachricht nicht nicht ändern ohne dass der Empfänger dies merkt (Versiegeln).
Authentizität Von einer Nachricht kann festgestellt werden, wer sie geschrieben hat (Unterschrift).
Nichtabstreitbarkeit Versand und Empfang kann nicht abgestritten werden (Einschreiben).
Unverzichtbare Voraussetzung z.B. für E-Commerce
Kryptographie
Ziel: Vertraulichkeit
Sender
Verschlüsselung
Klartext
Entschlüsselung
Empfänger
Klartext verschlüsselte
Nachricht
Probleme:
Algorithmen zur Ver/Entschlüsselung müssen geheim gehalten werden.
Jedes Sender/Empfänger Paar braucht sein eigenes Verschlüsselungsverfahren.
Wie einigen sich Sender und Empfänger auf ein Verfahren ohne dass dies ein Angreifer mitkriegt?
Kryptographie Lösung: Verwendung von Schlüsseln
Sender
Verschlüsselung
Klartext
Entschlüsselung
Empfänger
Klartext verschlüsselte
Nachricht
Algorithmen zur Ver/Entschlüsselung öffentlich bekannt.
Jedes Sender/Empfänger Paar muss sich nur noch auf einen gemeinsamen (geheimen) Schlüssel einigen.
Problem: Austausch des Schlüssels ohne dass dies der Angreifer mitkriegt!
Schlüssel Schlüssel
Symmetrische Kryptographie: gleicher Schlüssel zum Ver- und Entschlüsseln. Verfahren z.B. DES, IDEA, AES, RC4, RC5, Blowfish…
Kryptographie
Realität (v.a. Internet)
Sender und Empfänger können keinen geheimen Schlüssel austauschen da prinzipiell jede Nachricht abgefangen werden kann.
Ist unter diesen Umständen eine vertrauliche Kommunikation theoretisch überhaupt möglich?
Kryptographie Lösung: Asymmetrische Kryptographie (Public Key Verfahren)
Zwei unterschiedliche, zueinander passende Schlüssel: • public key zum Verschlüsseln (öffentlich) • private key zum Entschlüsseln (geheim)
Idee:
Sender Empfänger Erzeuge Schlüsselpaar public key, private key
Veröffentliche public key
Verschlüssele Nachricht mit public key des Empfängers
Sende verschlüsselte Nachricht Entschlüssele Nachricht
mit private key
public key
verschlüsselte Nachricht
1977: RSA Algorithmus
Asymmetrische Kryptographie
Analogie Briefkasten:
Jeder kann etwas in den Briefkasten des Empfängers werfen (verschlüsseln mit public key des Empfängers)
Nur der Empfänger kann seinen Briefkasten öffnen (entschlüsseln mit seinem private key)
Konsequenz: Jeder braucht nur einen Briefkasten (Schlüsselpaar)! Bei n Teilnehmern
n(n-1)/2 Schlüssel bei symmetrischer Kryptographie n Schlüsselpaare bei asymmetrischer Kryptographie
Asymmetrische Kryptographie
Angriffsmöglichkeiten:
Private Key des Empfängers durch Probieren erraten. Schlüssellänge z.B. 1024 Bit 21024 ≈ 10300 Möglichkeiten, vgl. 1080 Atome im Universum
Private Key aus Public Key des Empfängers errechnen. Erfordert Faktorisierung sehr großer Zahlen. Aus Aufwandsgründen praktisch nicht machbar!
Asymmetrische Kryptographie
Integrität und Authentizität Ziel: Verhindern dass Angreifer eine Nachricht unbemerkt verändern kann. Nachweisen dass eine Nachricht von einem bestimmten Autor stammt.
Idee: Autor verschlüsselt die Nachricht mit seinem private key. Jeder kann die Nachricht mit dem public key des Autors entschlüsseln. Beweis dass der Autor die Nachricht verfasst (verschlüsselt) hat.
Autor
Verschlüssele Nachricht N mit private key: N‘
Veröffentliche N und N‘
Erzeuge Schlüsselpaar public key, private key
Veröffentliche public key
Tester
Wenn N = N‘‘ dann wurde N mit dem private key des
Autors verschlüsselt. Da diesen nur der Autor kennt, stammt N garantiert vom Autor.
Entschlüssele N‘ mit public key des Autors: N‘‘
Asymmetrische Kryptographie
Verbesserung: Autor muss nicht die ganze Nachricht verschlüsseln, es genügt ein Hash Wert („Quersumme“, „digitaler Fingerabdruck“). Hash Funktionen z.B. MD5 (128 Bit) oder SHA-1 (160 Bit)
Autor
Verschlüssele Hash Wert n mit private key: n‘ (digitale Signatur)
Veröffentliche N und n‘
Erzeuge Schlüsselpaar public key, private key
Veröffentliche public key
Tester
Wenn n = n‘‘ dann wurde n mit dem private key des
Autors verschlüsselt. Da diesen nur der Autor kennt, stammt N garantiert vom Autor.
Entschlüssele n‘ mit public key des Autors: n‘‘
Berechne Hash Wert von N: n.
Berechne Hash Wert von Nachricht N: n.
Asymmetrische Kryptographie Aufgabe
Software wird im Internet häufig nicht nur auf der Webseite des Herstellers zum Download angeboten sondern auch auf sog. Mirror Sites. Dadurch wird die Netzwerklast auf mehrere Rechner verteilt.
Hierbei könnte der Betreiber einer Mirror Site die Software böswillig ändern. Überlegen Sie sich, wie dies durch Hash Funktionen vermieden werden kann.
Von welchem Server muss der Hash Wert geholt werden – vom Server des Herstellers oder vom Server der Mirror Site?
Produkt P x = Hash(P)
Entwickler Nutzer
Mirror Sites
P
P‘ (Falsch)
P
P P‘
Asymmetrische Kryptographie Angriff auf öffentlichen Schlüssel – aktiver Angriff
Angreifer fälscht den öffentlichen Schlüssel des Empfängers. Dadurch kann er jede Nachricht lesen, die dem Empfänger geschickt wird!
Empfänger Sender
public key des Empfängers
Angreifer
public key des Angreifers
Empfänger Sender Angreifer
Nachricht mit public key des
Angreifers verschlüsselt
Nachricht mit public key des
Empfängers verschlüsselt
Sender und Empfänger merken hiervon gar nichts!
„Man in the middle attack“
Asymmetrische Kryptographie
Lösung: Zertifikate.
Garantie, dass ein öffentlicher Schlüssel tatsächlich von der genannten Person stammt.
Wie kann ich meinen public key zertifizieren lassen?
Gehe mit public key und Personalausweis zu Zertifizierungsbehörde. Diese erstellt ein Dokument, in dem mein Name und mein public key steht und signiert es mit ihrem private key.
Wie kann ich sicher sein, den korrekten public key von Person x zu bekommen?
Verlange Zertifikat von x. Prüfe Signatur mit public key der Zertifizierungsbehörde. Entnehme public key von x aus dem Zertifikat.
Asymmetrische Kryptographie
Problem: Viel zu kompliziert für den Durchschnitts-Surfer!!!
Lösung: Secure Socket Layer (SSL) Verschlüsselung und Prüfung von Zertifikaten geschieht automatisch ohne dass man etwas davon merkt.
HTTPS: HTTP über SSL Webserver authentifiziert sich über ein Zertifikat. Daten werden verschlüsselt übertragen.
Sender
SSL
Empfänger
SSL Klartext Klartext
Verschlüsselt
Client
Symmetrische Kryptographie verschlüsselt mit K.
Überprüfe Zertifikat, erhalte public key des Servers
Erzeuge Session Key K
Server
Entschlüssle Session Key K mit private key
Sende Zertifikat an Client
Verschlüssle K mit public key des Servers und sende ihn
an den Server
Kryptographie
Zertifikat
Session Key K verschlüsselt mit public key des Servers
Symmetrische Kryptographie verschlüsselt mit K.
Symmetrische Kryptographie
Hybride Verfahren: asymmetrische Kryptographie aufwändig!
Nur der Session Key K für symmetrische Kryptographie wird mit asymmetrischer Kryptographie verschlüsselt. Effizienter da symmetrische Kryptographie weniger Rechenaufwand kostet.
1969 ARPANET, Projekt der Advanced Research Projects Agency (ARPA) Paket orientierte Vermittlung Kabel, Funk, Satelliten Verbindungen 1969:4, 1971:15, 1972:37 Rechner,
1973/74 Entwicklung der TCP/IP Protokolle Ziel: Verbindung von heterogenen Netzwerken, nicht nur von einzelnen Rechnern
1982 ARPANET wird auf TCP/IP umgestellt, Gateway zum CSNET.
1969 Betriebssystem UNIX bei AT&T entwickelt
1975 BSD UNIX (Uni Berkeley). Setzt sich später an Universitäten durch.
1980 ARPANET besteht aus 66 Rechnern. TCP/IP wird in BSD UNIX implementiert von BBN.
1979 USENET, zunächst UUCP Protokoll über Telefonleitungen, ab Mitte 80er Jahre TCP/IP
Entwicklung des Internets
1981 CSNET für nichtmilitärische Forschungseinrichtungen, TCP/IP.
1982 EUNET, Niederlande, Schweden, Großbritanien, Dänemark. Telefonverbindung mit UUCP, Verbindung über USENET zu ARPANET
1984 Uni Karlsruhe wird ans CSNET angeschlossen. Gründung des DFN Vereins: B-WiN (1995), G-WiN (2000), X-WiN (2006)
1989 Auflösung des ARPANET
1989 Entwicklung des WWW am CERN, 1993 erster Web Browser NCSA Mosaic
1990 NSF nutzt Internet für kommerzielle Anwendungen Internet wird über Unis hinaus öffentlich zugänglich
1983 MILNET wird vom ARPANET abgespalten Verbindung über Gateways, die nur email durchlassen.
1985 National Science Foundation (NSF) verbindet ihre Superrechner Zentren zum NSFNET. NSFNET wird wichtigster Backbone, an den sich weitere, zunächst isolierte Netze anschließen (BITNET, USENET, FidoNET, SPAN..)
1987 BelWü Netz in Baden-Württemberg , TCP/IP 1989 Anbindung an USA, 2003 Integration in G-WiN
TCP/IP Protokolle
Ziel: Kommunikation von Anwendungen auf unterschiedlichen Rechnern
Komplexes Problem Zerlegen in einfachere Teilprobleme: Schichten
Übertragung von digitalen Signalen in einem Netz: Netzzugangsschicht
Übertragung von Nachrichten zwischen Rechnern in unterschiedlichen Netzen: Internetschicht
Zuverlässige Kommunikation zwischen Prozessen: Transportschicht
Kommunikation von Anwendungen (Web, Mail, Datenbanken, DNS, …): Anwendungsschicht
Jede Schicht löst eine Teilaufgabe und greift dabei auf Dienste der darunterliegenden Schicht zu (Kapselung).
TCP/IP Protokolle
Netz Zugangsschicht Signalverarbeitung Hardware Adressen (6 Byte MAC), Telefon Nummern, … Konfliktauflösung wenn zwei Karten gleichzeitig senden (CSMA/CD) Keine Verbindung zwischen Netzwerken
Netzwerk 1
Netzwerk 2
MAC MAC MAC
MAC MAC Ethernet Standards und Protokolle
TCP/IP Protokolle Internet Schicht
Internet Adressen (4 Byte, Netzwerk + Rechner) Weiterleiten von Nachrichten zwischen Netzwerken Wegsuche (Routing)
Gateway/Router
IP IP IP IP
Ethernet
Internet Protocol (IP)
IP
TCP/IP Protokolle Transport Schicht
Port Nummern (Briefkästen, 2 Byte) Socket besteht aus IP und Port: Virtuelle Verbindung Quittierung
IP IP IP
Port Port Port Port Port
Socket Socket Transmission Control Protocol (TCP)
Internet Protocol (IP)
Ethernet
http://mitarbeiter.hs-heilbronn.de:80/~vstahl
TCP/IP Protokolle
Anwendungsschicht Legt fest wie Programme ihre Daten in Bytefolgen verpacken.
Socket Socket
Web Browser (Client)
Web Server Port 80
Hypertext Transfer Protocol (HTTP)
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Ethernet
TCP/IP Protokolle
Anwendungsschicht Legt fest wie Programme ihre Daten in Bytefolgen verpacken.
Socket Socket
Mail Client Mail Server Port 25
Simple Mail Transfer Protocol (SMTP)
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Ethernet
TCP/IP Protokolle
Anwendungsschicht Legt fest wie Programme ihre Daten in Bytefolgen verpacken.
Socket Socket
Mail Client IMAP Server Port 143
Internet Message Access Protocol (IMAP)
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Ethernet
TCP/IP Protokolle
Ports, Quittierung
WWW, Mail, … Anwendungsschicht
Transportschicht
Internetschicht
Netz Zugangsschicht
Zugriff auf Netzwerkkarte Abstraktion von Hardware Details
Routing
Zuverlässige Verbindung über Sockets (IP + Portnummer)
Unzuverlässige Nachrichten (Datagramme) zwischen Rechnern im Internet
Zuordnung IP zu Hardware Adresse Physikalische Datenübertragung
TCP/IP Schichtenmodell
Anwendungsschicht (HTTP, SMTP, FTP)
Transportschicht (TCP, UDP)
Internetschicht (IP, ICMP)
Netz Zugangsschicht (Ethernet, ARP, PPP) Hardware
Adressen
Internet Adressen
Software außerhalb des Betriebssystems
Software im Betriebssystem
TCP/IP Adressen
Internet Adressen
Rechneradresse (Internet Adresse, IP) besteht aus 4 Byte z.B. 217.79.215.140
Zur einfacheren Lesbarkeit symbolische Rechnernamen z.B. www.bundestag.de
Übersetzung zwischen symbolischen Namen und IP Adressen durch Domain Name Server (DNS).
DNS Client DNS Server
www.bundestag.de
217.79.215.140
TCP/IP Protokolle
Socket Socket
nslookup DNS Client
DNS Server Port 53 DNS Protokoll
Transmission Control Protocol (TCP)
Internet Protocol (IP)
Ethernet
Domain Name Service
DNS Client DNS Server nslookup www.bundestag.de
Kennt „der“ DNS Server alle Rechnernamen im Internet?
.
de uk fr com org
hs-heilbronn fht-esslingen
www mitarbeiter Viele Name Server, die sich untereinander austauschen!
se
r2d2
Top Level Domains
amazon
www
microsoft
www.bundestag.de
217.79.215.140
Internet Adressen
IP besteht aus zwei Teilen: Adresse des Netzwerks in dem der Rechner steht Adresse des Rechners in dem Netzwerk.
Subnet Mask gibt an welche Bits der IP das Netzwerk und welche den Rechner identifizieren
141.7.66.227 Rechneradresse Netzwerkadresse
255.255.255.0
Router / Gateways
Rechnernetze werden über Gateways (Router) verbunden.
Netzwerk 1
Netzwerk 2
Gateway/ Router
Gateways sind Rechner, die gleichzeitig zu zwei Netzwerken gehören, d.h. zwei IP‘s und zwei Netzwerkkarten haben.
Gateways übernehmen oft Routing Aufgaben und werden dann Router genannt.
Routing
Jeder Router weiß an welche Netze er direkt angeschlossen ist. Router tauschen diese Information untereinander aus (Routing Tabellen). Ziel: Nachrichten auf schnellstem Weg in das Zielnetzwerk weiterleiten
Quelle
Ziel
Internet Dienste
z.B. email, WWW, FTP, telnet, ssh, ping, news,DNS,…
Client-Server Modell:
Server: Maschine, die einen Dienst anbietet, z.B. Web Server, Mail Server, DNS Server …
Client: Maschine, die einen Dienst in Anspruch nehmen möchte, z.B. Web Browser (IE, Firefox), Mail Client (Outlook, Thunderbird), …
Peer-to-Peer Modell:
Alle beteiligten Maschinen sind gleichberechtigt, d.h. gleichzeitig sowohl Client als auch Server z.B. Tauschbörsen, gnutella…
Internet Dienste Beispiel E-Mail
Mail Client (Sender)
Mail Client (Empfänger)
Mail Server des Empfängers
Mail Server des Senders
SMTP
POP3 oder IMAP
SMTP
Mail Client Software z.B. Thunderbird, Outlook Mail Server Software z.B. Postfix, Sendmail
Simple Mail Transfer Protocol
Post Office Protocol Internet Mail Access Protocol
Dialog: Client schickt mail an Server mit SMTP:
220 zpop.rz.hs-heilbronn.de ESMTP Postfix HELO r2d2.hs-heilbronn.de 250 Hello r2d2.hs-heilbronn.de, I am glad to meet you MAIL FROM:[email protected] 250 Ok RCPT TO:[email protected] 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> From: “Volker Stahl" [email protected] To: Axel Stahl [email protected] Date: Tue, 15 Jan 2008 16:02:43 -0500 Subject: Test message Hallo Axel Viele Grüße, Volker . 250 Ok: queued as 12345 QUIT 221 Bye
Internet Dienste telnet (Port 23), rlogin (Port 513), ssh (secure shell, Port 22):
Text Kommandos an den Server schicken und dort ausführen. Beispiel: ssh –l vstahl mitarbeiter.hs-heilbronn.de password: … ls
ftp (file transfer protocol, Port 21):
Dateien zwischen einem FTP Server und dem eigenen Rechner austauschen (z.B. Webseiten auf einen Webserver hochladen).
ping:
Auf Internet Schicht testen ob eine Maschine erreichbar ist. Beispiel: ping 141.7.1.18 ping mitarbeiter.hs-heilbronn.de
Internet Dienste Beispiel WWW
Web Client/Browser (Internet Explorer, Firefox)
Web Server (Apache HTTP Server, IIS)
HTTP (Hyper Text Transfer Protocol )
http://mitarbeiter.hs-heilbronn.de/~vstahl/informatik1/index.html
Browser schickt die Adresse einer Webseite (URL) an den Server, z.B.
Web Server schickt das angeforderte Dokument an den Client zurück.
Server Name Datei auf dem Server Protokoll
http://mitarbeiter.hs-heilbronn.de:80/~vstahl/informatik1/index.html
Port
Dialog: Web Client schickt Anfrage an Web Server mit HTTP:
GET /~vstahl/informatik1/index.html HTTP/1.1 Host: mitarbeiter.hs-heilbronn.de:80 HTTP/1.1 200 OK Date: Sun, 16 Mar 2008 12:50:11 GMT Server: Apache/2.2.3 (Linux/Unix) Last-Modified: Tue, 11 Mar 2008 19:05:24 GMT Etag: “1d2d5-2c-4c23b600” Accept-Ranges: bytes Content-Length: 552 Content-Type: text/html <html> <body> … </body> </html>
HTML (Hypertext Markup Language)
<html>
<head>
</head>
<body>
</body>
</html>
Kopf: Titel, Codierung, … (optional)
Rumpf: Eigentlicher Inhalt
CSS (Cascading Style Sheets) Ziel: Mehr Möglichkeiten für das Layout einer HTML Seite (Farbe, Fonts)
<html>
<head>
</head>
<body>
</body>
</html>
<link rel=„stylesheet“ href=„meinstil.css“ type=„text/css“>
Einbinden der CSS Datei „meinstil.css“ ins HTML Dokument:
→ beispiel.html → meinstil.css
Rechnernetze
LAN (Local Area Network) Wenige 100 Meter i.a. innerhalb eines Gebäudes
WAN (Wide Area Network) Große Entfernungen (Länder, Kontinente) Verbindet oft lokale Netze Hoher Datendurchsatz
Rechnernetze Ethernet
Hardware Standard 6 Byte MAC Adressen Kollisionserkennung CSMA/CD
Standard Ethernet 10 Mbit/s, Bustopologie (Koaxialkabel) oder Sterntopologie (verdrillte Kabelpaare)
Fast Ethernet 100 Mbit/s Sterntopologie durch Hubs oder Switches Kupfer oder Glasfaser
Gigabit Ethernet 1 Gbit/s, Kupfer oder Glasfaser
10 Gigabit Ethernet 10 Gbit/s, Kupfer oder Glasfaser LAN und WAN
Kopplung von Netzen
Problem: Kabellänge von Ethernet physikalisch begrenzt (i.a.100m). Lösung: Signalverstärker (Repeater).
Repeater/ Hub
Hub: Repeater mit mehreren Anschlüssen (Multi Port)
Problem: Zu viele Kollisionen / Wartezeiten bei hoher Netzwerklast. Lösung: Aufspalten in Kollisionsdomänen
Bridge / Switch
Bridge: Kennt MAC Adressen der Rechner in jedem Netzwerksegment. Liest MAC Zieladresse von Datenpaketen. Leitet Datenpakete ins richtige Netzwerksegment weiter.
Switch: Multiport Bridge Ports können unabhängig voneinander Daten senden/empfangen
gleichzeitig möglich
Kopplung von Netzen
Praxis: Häufig nur ein Rechner pro Port (Port Switches).
Jeder kann mit jedem gleichzeitig kommunizieren
Kopplung von Netzen
Problem: Verbinden von Netzen mit unterschiedlichen Netzwerk Adressen.
Lösung: Router
Router
Router: Kennt Internet Adressen der angeschlossenen Netze. Liest IP Zieladresse von Datenpaketen. Leitet Datenpakete ins richtige Netzwerk weiter.
ISP
Wireless LAN 192.168.21.xxx
WAN 71.210.182.xxx
Praxis: Kombination von Switch, Router und Modem in einem Gerät
Kopplung von Netzen
TCP/IP Modell
Anwendungsschicht
Transportschicht
Internetschicht (IP)
Netz Zugangsschicht (Ethernet, MAC)
Switch, Bridge Verarbeitet MAC Adresse
Hub,Repeater Reiner Signalverstärker
Router Verarbeitet Internet Adresse
Anwendungsschicht
Transportschicht
Internetschicht (IP)
Netz Zugangsschicht (Ethernet, MAC)
Kopplung von Netzen