Informatik 1 -...

91
Informatik 1 Volker Stahl [email protected]

Transcript of Informatik 1 -...

Informatik 1 Volker Stahl

[email protected]

Folien und Übungsaufgaben stehen unter http://mitarbeiter.hs-heilbronn.de/~vstahl/informatik1

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

Codierung natürlicher Zahlen

Umrechnung

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?

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 Schreiber und Leser müssen sich auf eine Codierung einigen: Standards!

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

1 611 kB 31 kB

Original Komprimiert

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

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.

Rechnernetze und

Internet

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

TCP/IP Gateways

Netzwerk 1

Netzwerk 2

Rechnernetze werden über Gateways (Router) verbunden.

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

HTML (Hypertext Markup Language)

Text

Überschriften

Hyperlinks

Listen

Bilder

Abschnitte

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

Kopplung von Rechnernetzen

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