Domain Name Service (DNS) Aufgabe: den numerischen IP-Adressen werden symbolische Namen zugeordnet Beispiel: 194.94.127.196 = www.w-hs.de Spezielle Server (Name-Server, DNS) für Listen mit IP-Adressen und Namen Funktionsweise: 1) Nutzer gibt symbolischen Namen in Browser ein 2) Browser schickt symbolischen Namen zum Name-Server (DNS) wichtig: IP-Adresse des DNS muss bekannt sein! wird bei der Netzwerkkonfiguration eingetragen 3) Name-Server schickt IP-Adresse zum Browser 4) Browser schickt Datenpakete an diese IP-Adresse IP-Adressen und Domain-Namen herausfinden: - UNIX-Tools nslookup oder host verwenden - spezielle whois-server ansprechen (z.b.: whois.denic.de) 1 / 12 Vorlesung_04_KN_2015
Aufbau der Domain-Namen Allgemein: z.b. host-name.subdomain.domain.top-level-domain www.iel.w-hs.de mit: - host-name = Name des Rechners, kennzeichnet oft auch einen Dienst - subdomain (kann fehlen) = eine Unterteilung des Netzes (z.b.: Subnetz) - domain = symbolischer Name des Netzes - top-level-domain = Gruppierung von Domain-Namen z.b. nach Ländern (.de=deutschland,.ch=schweiz...) nach Organisationsformen (.edu=education,.com=commercial...) Domain-Namen müssen eindeutig sein Antrag und Genehmigung nötig Für Deutschland: DE-NIC (Network Information Center) und verschiedene Internet Service Provider (ISP) 2 / 12 Vorlesung_04_KN_2015
Aufbau eines IP-Datenpaketes Paketkopf (header) Nutzdaten (data) mindestens 20 Byte zwischen 576 und 65535 Byte wichtige Informationen im Paketkopf: - Zieladresse (destination IP address) - Quelladresse (source IP adress) - Länge des Paketkopfes und Länge des Nutzdatenfeldes - IP-Versionsnummer (heute meist 4 oder 6) - Prüfsumme des Paketkopfes (header check sum) zur Fehlererkennung - Lebenszeit des Paketes (time to live = TTL) zur Vermeidung von Endlosschleifen wird vom Sender festgesetzt und in jedem Netzknoten dekrementiert Pakete mit TTL = 0 werden vernichtet 3 / 12 Vorlesung_04_KN_2015
Vermittlungsprinzip des IP-Protokolls Prinzip: Verbindungslose Paketvermittlung jedes Paket enthält eine Ziel- und Quelladresse kein Verbindungsaufbau zwischen Sender und Empfänger Pakete werden von Rechner zu Rechner weitergeleitet Abarbeitungsreihenfolge: 1) Prüfen, ob das Paket zum eigenen Rechner gehört Ziel-Adresse mit eigener IP-Adresse vergleichen bei Übereinstimmung: Paket verarbeiten 2) Prüfen, ob der Zielrechner zum eigenen Netz gehört Zieladresse mit Netzmaske verknüpfen und mit Netzkennung vergleichen bei Übereinstimmung: Paket zum Zielrechner schicken 3) Das Paket zu einem benachbarten Netz weiterleiten entweder ungezielt zum Standard-Router (Gateway) oder gezielt mit Hilfe von Wegewahltabellen (Routing-Tabellen) 4 / 12 Vorlesung_04_KN_2015
Internet Protokoll Version 6 Problem des aktuellen Internet-Protokolls: es gibt zu wenig IP-Adressen Lösung: IP Version 6 (IPv6) = IP next generation (IPnG) Neu: 16 Byte (128 Bit) Adressen statt bisher 4 Byte (32 Bit) Schreibweise: Hexadezimalzahlen, 16-Bit Gruppen, Doppelpunkte Beispiel: 0123:ABCD:0000:0000:0000:3456:789A:1234 Status: - 1994 standardisiert - in vielen Betriebssystemen und Geräten implementiert - bisher keine Anwendung auf breiter Basis - Adressenknappheit wird durch andere Maßnahmen entschärft 5 / 12 Vorlesung_04_KN_2015
IP Security (IPSec) Problem: Beispiel: IP-Protokoll enthält keine Sicherheitsmechanismen IP-Spoofing = IP-Pakete mit gefälschten Absenderadressen Lösung: IPSec = Erweiterung von IPv4 und IPv6 ( RFC 2401, RCF 2411) jedes IP-Paket vor Verfälschung sichern 1) Authentication Header (AH) = kryptographische Prüfsumme über Paketkopf und Nutzdaten bilden Veränderungen werden erkannt 2) Encapsulated Security Payload (ESP) = Nutzdaten werden verschlüsselt versendet Nutzdaten können nur vom Empfänger entschlüsselt werden IP AH Nutzdaten IP verschlüsselte Daten 6 / 12 Vorlesung_04_KN_2015
Transportschicht (Schicht 4) des Internet Es gibt zwei Transportprotokolle: TCP = Transmission Control Protocol UDP = User Datagram Protocol a) TCP: baut virtuelle Verbindung auf (verbindungsorientiert) Sichere Verbindung, Flusskontrolle, aus Nutzersicht: Datenstrom Anwendung: Web-Server, File-Transfer, E-Mail,... b) UDP: für verbindungslose Kommunikation Schnelle Datenübertragung, sehr kleine Treiberprogramme Anwendungen: Network-File-System (NFS), Ping, Trivial File Transfer (TFTP) Aufgaben: 1) mehrere Verbindungen gleichzeitig Port-Nummern 2) Paketverlust oder Vertauschung verhindern nur bei TCP 7 / 12 Vorlesung_04_KN_2015
Port-Nummern TCP/UDP Pakete enthalten eine 16-Bit Portnummer 65535 mögliche Ports für TCP + 65535 mögliche Ports für UDP Einige Ports sind fest bestimmten Anwendungen zugeordnet Well Known Ports siehe: RFC 1700 oder Linux-Datei /etc/services insbesondere Ports < 1024 sind reserviert Beispiel: Sinn: Linux: Port 21 = FTP (Dateitransfer) Port 80 = HTTP (Web-Server) Nutzer kann gezielt eine Anwendung auf dem Server ansprechen Internet-Super-Server (inetd) überwacht alle Ports bei Bedarf wird ein entsprechender Server gestartet 8 / 12 Vorlesung_04_KN_2015
TCP und UDP Paketformate TCP/UDP Paket ist im IP-Paket verpackt (encapsulation) IP-Paketkopf TCP/UDP Paketkopf Nutzdaten (Payload) UDP-Paketkopf enthält: - Empfänger-Portnummer (destination port) - Sender-Portnummer (source port) - Länge des UDP-Paketes und Prüfsumme für das UDP-Paket 8 Byte TCP-Paketkopf enthält zusätzlich für die Flusskontrolle: - Sequenznummer = laufende Nummer des Paketes - Quittierungsnummer = Nummer des zuletzt empfangenen Paketes - Fenstergröße (receive window size) = verfügbare Größe des Empfangspuffers - weitere Optionen 9 / 12 Vorlesung_04_KN_2015
Flusskontrolle bei TCP TCP realisiert einen Datenstrom (stream bzw pipe-konzept) Empfänger bestimmt, wie viele Pakete er annehmen will (Prinzip Wasserhahn ) Quittierungsmechanismus: - jedes gesendete Paket enthält eine Sequenznummer - Empfänger sendet eine Quittierung zurück - Sender wertet die Quittierung aus S Paket Quittung E Flusskontrolle: sliding window begrenzt die Anzahl der gesendeten Pakete Fenster 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 gesendet und gesendet, kann noch darf noch nicht quittiert nicht quittiert gesendet werden gesendet werden 10 / 12 Vorlesung_04_KN_2015
Implementierung der TCP/IP Protokolle Programmierschnittstelle zwischen TCP/IP und Anwendung = Socket-Schnittstelle Socket = Steckdose, Kommunikationsendpunkt Socket wird durch Port-Nummer adressiert Verbindung zwischen Server-Socket und Client-Socket Server-Socket: Client-Socket: - wartet auf Verbindungsanforderungen ( listening socket ) - analysiert die Verbindungsanfrage - sendet ggf. eine Antwort - sendet eine Verbindungsanforderungen - sendet eine Anfrage / ein Kommando - wartet auf eine Antwort - analysiert die Antwort 11 / 12 Vorlesung_04_KN_2015
Secure Socket Layer (SSL) SSL = Protokoll zum Schutz von TCP-Verbindungen ( RFC 2246) im OSI-Modell über TCP einzuordnen Socket Schnitt stelle ungeschützte Anwendung (ohne SSL) TCP IP geschützte Anwendung (mit SSL) Secure Socket Layer (SSL) TCP IP Programmierung: spezielle SSL-Funktionen statt Socket-Funktionen aufrufen Wirkung: - SSL-Schichten von Client und Server vereinbaren Verschlüsselung - Server prüft die Identität des Clients (Anforderung eines Zertifikates) 12 / 12 Vorlesung_04_KN_2015