Die Internet-Protokollsuite -- Anwendungsorientierte Protokolle
Transcription
Die Internet-Protokollsuite -- Anwendungsorientierte Protokolle
Vorlesung „Kommunikationsdienste und –netze“ Heterogene Darstellungen Unterschiedliche Rechnersysteme verschiedene Darstellungen Konsequenz: Umkodieren der zu übermittelnden Daten ist erforderlich Austauschstandards Aufgaben der Darstellungsschicht bzw. der Anwendungsschicht im Internet Behandeln der Darstellung (Syntax) von Informationen Bewahren der Bedeutung (Semantik) der Informationen Kapitel 7: Die Internet-Protokollsuite -- Anwendungsorientierte Protokolle -- Beispiel: Darstellungsproblematik E-Mail – Simple Mail Transfer Protocol Dateitransfer – File Transfer Protocol Netzwerkmanagement – Simple Network Management Protocol World Wide Web – HyperText Transfer Protocol Transparente Übertragung ... Schicht 5 Schicht 4 Schicht 3 32 Bit Integer Lokale Darstellung der Information Schicht 5 Schicht 4 Schicht 3 ... Transparente Übertragung nicht ausreichend 24 Bit Integer Umkodierung erforderlich KDN-SS01-7-2 ASN.1 ASN.1: Universal Typen Die abstrakte Syntax-Notation eins für Darstellungsunabhängige Syntax (ASN.1, Abstract Syntax Notation 1) ist eine von der ISO genormte Beschreibungssprache. ASN.1 erlaubt Typdefinitionen und die Spezifikation von Werten Die Datentypen werden in ASN.1 in 4 Klassen eingeteilt: • Universal: Global definierte Typen, z.B. Integer • Application: Typen, die in einem anderen Standard definiert werden (z.B. FTAM, MHS) • Private: Für Anwendungen eines Benutzers definierte Typen • Context-Specific: Typen, die nur in dem speziellen Kontext, in dem sie eingesetzt werden, definiert sind Elementare Datentypen: Boolean, Integer, Bitstring, Octetstring, IA5String, … Strukturierte Datentypen: Sequence : Geordnete Liste von Datentypen (vgl. Record in PASCAL) Set : Ungeordnete Menge von Datentypen Sequence OF: Geordnete Liste von Elementen des gleichen Datentyps (vgl. Array in PASCAL) Set OF : Ungeordnete Menge von Elementen des gleichen Datentyps Choice : Ungeordnete Menge von Datentypen, aus der einige Datentypen ausgewählt werden können (vgl. Varianter Record in PASCAL) Beispiel: Mitarbeiter ::= Set { Name IA5String, Alter Integer, Personalnr Integer } KDN-SS01-7-3 KDN-SS01-7-4 ASN.1: Kodierung / Dekodierung Ziele und Vorteile elektronischer Post Basis-Kodierungsregeln (Basic Encoding Rules, BER): Bezeichner Bezeichner Länge Länge Inhalt Inhalt Hauptziel: Internationaler Dienst zum Austausch elektronischer Mitteilungen zwischen Personen oder zwischen Rechnern Hauptvorteil gegenüber dem Telefon: Speichervermittlung Bit 7 6 5 4 3 2 1 0 Typklasse Datentyp Vergleich von Briefpost und Elektronischer Post: Umschlag Absender Tag-Nummer 00: Universal 0..30 0: einfach 01: Application 1: strukturiert 31: nächstes Byte gibt Tag an 10: Context Specific 11: Private Umschlag Postamt Beispiel: Integer Wert 5 Länge Inhalt Bezeichner 00 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 Inhalt Terminal Terminal UA Universal Klasse einfach 2 Integer 1 Postamt Inhalt Absender MTA MTA UA KDN-SS01-7-6 Internet-Mail: Ein Beispiel für einen SMTP-Dialog Internet Mail: Das SMTP-Modell File System SenderSMTP SMTP Commands Replies Empfänger 5 KDN-SS01-7-5 User Empfänger Briefkasten Briefkasten ReceiverSMTP File System Internet-Mail verwendet für die Übermittlung von Mitteilungen das Simple Mail Transfer Protocol (SMTP) Bei einigen Betriebssystemen (z.B. bei Unix: sendmail) sind Sender- und Receiver-SMTP in einem Betriebssystemprozess realisiert. Ein Receiver-SMTP kann Nachrichten für nicht-lokale Benutzer entweder ablehnen oder weitervermitteln. Der Benutzer verwendet eine Benutzerschnittstelle zu dem Sender-SMTP (z.B. bei Unix: mail). Internet-Mail bietet nur die Dienste Übermittlung und Vervielfältigung an. KDN-SS01-7-7 R: 220 MIT-Multics.Arpa Simple Mail Transfer Service Ready S: HELO Isi-VaxA.Arpa R: 250 MIT-Multics.Arpa S: MAIL FROM: Smith@Isi-VaxA.Arpa R: 250 OK S: RCPT TO: Jones@MIT.Multics.Arpa R: 250 OK S: DATA R: 354 Start mail input; end with <CRLF>.<CRLF> S: < Text Line 1 > < etc. > . R: 250 OK S: QUIT R: 221 MIT-Multics.Arpa Service closing transmission channel KDN-SS01-7-8 Internet-Mail: Anschluss des Client über POP3 Internet-Mail: Anschluss des Client über IMAP empfangene Nachrichten SMTP Internet Mail Folder gesendete Nachrichten Mail Client POP 3 Post Office Protocol POP in der Version 3 Mittels POP3 holt der Mail-Client die vom SMTP-Server empfangenen und in den Mail Folder eingestellten Meldungen ab Beispiele für Mail-Client-Programme • Outlook Express (Microsoft) • Messenger (Netscape) Internet Message Access Protocol (IMAP) IMAP unterstützt wie POP das Herunterladen der Mails von einem Mail-Server IMAP bildet funktional eine Obermenge von POP Im Gegensatz zu POP bietet IMAP Funktionen, um Mail schon auf den Server zu durchsuchen und zu analysieren • Der Zustand des Mail-Kontos wird somit auf dem Mail-Server geführt. • Man kann per IMAP von verschiedenen Rechnern an sein Mail-Konto gelangen und hat dennoch immer eine konsistente Sicht auf empfangene und gelesene Mails • IMAP bietet einen selektiven oder auch einen partiellen Nachrichtentransfer IMAP4 liefert u.a. zusätzliche Funktionalität in der Authorisierungsphase („Kerberos“) und in der Unterstützung allgemeiner Mailboxen mit Zugriffsmöglichkeiten mehrerer Benutzer bzw. Benutzergruppen KDN-SS01-7-9 Der MIME-Standard KDN-SS01-7-10 FTP- File Transfer Protocol SMTP sieht nur einfache ASCII-Texte als Nachrichten vor und definiert dementsprechend keine Struktur für den Hauptteil einer Nachricht. MIME erweitert den Hauptteil einer Nachricht um Formatinformation. Hierzu werden zwei neue Datenfelder für den Kopfteil einer Nachricht definiert: • Content-Type: definiert den Typ des Hauptteils. Bisher wurden die Typen Text, Multipart, Message, Application (Binary), Image, Audio, Video und X-private (erlaubt Erweiterungen) vereinbart. • Content-Transfer-Encoding: definiert die Transfer-Syntax, in der die Daten des Hauptteils übertragen werden. Bisher wurden die Syntaxen Base 64,Quoted Printable, 7bit, 8bit und binary vereinbart. Weitgehende Kompatibilität zur herkömmlichen Internet-Mail: • Mit der Transfersyntax Base 64 ist es möglich, Binärdaten durch Subnetze zu leiten, die nur die Übertragung von 7-Bit-ASCII-Texten erlauben. • Die Transfersyntax Quoted Printable erlaubt nationale Sonderzeichen. Wird eine solche Mail von einem "normalen Mailer" angezeigt, so werden nur diese Erweiterungen verstümmelt. KDN-SS01-7-11 Benutzer Benutzerschnittstelle Client Kontrollprozess FTP-Kommandos Server FTP-Antworten Kontrollprozess Dateisystem Dateisystem Client Datentransfer Daten Server Datentransfer KDN-SS01-7-12 FTP - Konzepte Allgemeine Netzwerkmanagementarchitektur FTP unterstützt keine virtuellen Dateien und kein Übersetzen von Dateitypen FTP-Optionen: • Datentyp (Text, Bitstrom, Bitgruppen) • Dateistrukturen (File, Record, Page) • Übertragungsmodus (Stream, Block, Compressed) FTP-Dienste: • Verbindungsaufbau mit Authentifizierung • Dateiübertragung (z.B. put, get) • Operationen auf Dateisystem (z.B. cd, dir) • Hilfefunktionen (z.B. Kommando-Auflistung inkl. Parameter) • Weitere implementierungsabhängige Dienste möglich KDN-SS01-7-13 KDN-SS01-7-14 Managed Object Management im Internet Managed Object Verhalten Operationen Attribute en ng u d el M betroffene Komponente Sammlung von Managed Objects in der Management Information Base (MIB) Ausgangspunkt Simple Gateway Monitoring Protocol SGMP (1987, RFC 1028) Ergebnisse wurden zusammengefasst in Structure of Management Information SMI (1988, RFC 1065 / 1155) Management Information Base MIB (1988, RFC 1066 / 1156) Weiterentwicklung Simple Network Management Protocol SNMP (1988, RFC 1098 / 1157) Neue Versionen Simple Network Management Protocol version 2 SNMPv2 (1992, RFC 1441 – RFC 1452; 1996, RFC 1902 – RFC 1910) Simple Network Management Protocol version 3 SNMPv3 (1999, RFC 2570 – RFC 2576) Ursprünglich sollte die SNMP-Architektur nur als Übergangslösung dienen, bis die ISO/OSI-Architektur stabil genug ist. Spätestens mit der neuen Version SNMPv2 wurde dieser Gedanke fallengelassen! KDN-SS01-7-15 KDN-SS01-7-16 Das Simple Network Management Protocol (SNMP) Das Simple Network Management Protocol Version 2 (SNMPv2) ! ! "#$ "#$ Neue Protokolloperationen: Get-Bulk zur effizienten Abfrage größerer Datenmengen Inform zum Austausch von Managementinformation zwischen zwei Managern Erweiterte Sicherheitsmechanismen drei Stufen: • unsichere Nachrichten, d.h. wie bislang mit der alten Version • authentische Nachrichten, Authentifizierung des Senders durch ein Authentifikationsprotokoll, z.B. MD5 • private Nachrichten, Verschlüsselung zusätzlich zur Authentifizierung, z.B. durch DES zusätzlich benötigte Information für sogenannte SNMPv2-Parties allerdings: dadurch Inkompatibilität in der PDU-Struktur zu SNMPv1 Zusätzliche Fehlermeldungen Insgesamt 18 Meldungen vorgesehen (gegenüber 6 vorher) KDN-SS01-7-17 KDN-SS01-7-18 Das Simple Network Management Protocol Version 3 (SNMPv3) Zur Entwicklung des World Wide Web (WWW) 1997 begann in der IETF die Entwicklung von SNMPv3 Ziel: • einheitliches Internet-Managementrahmenwerk aktuell: • RFCs 2570-2576 (1999, draft standards) Eigenschaften: • modular und erweiterbar - Weiterentwicklung auch nur einzelner Module • Wiederverwendung existierender Spezifikationen - PDU-Format (Get, ...) und Objektsyntax (SMI) nach SNMPv2 • Unterstützung aller existierenden und zukünftigen Protokollversionen • Integration verschiedener Sicherheitsmodelle - Authentifizierung und Vertraulichkeit sowie Zugriffskontrolle • Unterstützung von Mechanismen zur entfernten Konfiguration Hervorgegangen aus Arbeiten des britischen Informatikers Tim Barners-Lee am europäischen Forschungszentrum CERN (Genf) • Ziel: Einfacher weltweiter Austausch von Dokumenten zwischen den Wissenschaftlern Erster Prototyp Ende 1990 • grafisch (auf NEXTStep) und zeilenorientiert Durchbruch des WWW durch den von Marc Andreesen und Eric Bina (University of Illinois) entwickelten WWW-Client Mosaic • ursprünglich auf Unix-Workstation unter X-Window-System entwickelt s chnelle • als Quellcode per FTP kostenlos verfügbar Verbreitung Gründung eines W3-Konsortiums zur Standardisierung des WWW im Juli 1994 (Vorsitzender: Tim Barners-Lee) KDN-SS01-7-19 KDN-SS01-7-20 Was ist das World-Wide Web? Ideen und Ziele des Web „an internet-wide distributed hypermedia information retrieval system“ [Liu et al. 1994] „a global seamless environment in which all information (text, images, audio, video, computational services) that is accessible from the Internet can be accessed in a consistent and simple way by using a standard set of naming and access conventions“ [WebMaster Magazine 1996] „the universe of network-accessible information, the embodiment of human knowledge“ [W3C 1999] Lokalisierung von Information mit Hilfe einer einheitlichen Adressierungsmethode Einheitlicher Zugang (lesen und schreiben) über eine standardisierte Benutzerschnittstelle Inhalte als Hypermedia-Dokumente, visualisierbar, abspielbar auf unterschiedlichsten Rechnern Integration externer Informationsquellen (z.B. Datenbanken) Unterstützung von Transaktionen als Grundlage für interaktive Anwendungen (Client/Server) Keine Reglementierung von Informationsanbietern, inhärente Informationsverteilung KDN-SS01-7-21 Anforderungen eines verteilten Dokumentensystems KDN-SS01-7-22 Lösungen für das World-Wide Web Kodierung der Dokumente Inhalt Semantik Darstellung Identifikation der Dokumente Lokalisierung Zugriff Transport der Dokumente KDN-SS01-7-23 Dokumentenformat HyperText Markup Language (HTML) • Document Type Definition (DTD) • Standardized General Markup Language (SGML) Identifikationsschema Uniform Resource Identifier (URI) • Uniform Resource Name (URN) • Uniform Resource Locator (URL) Transferprotokoll Hypertext Transfer Protocol (HTTP) KDN-SS01-7-24 Architektur und Protokolle Ressourcen im World-Wide Web Client/Server-Architektur Synchrones Kommunikationsmodell (Request/Response) Ressourcen Einheit der Kommunikation zwischen Client und Server Statisch oder dynamisch WebWebSeite Seite WebSeite %& %! Aufbau der ausgetauschten Dokumente Darstellung am Bildschirm Anbindung von externen Quellen Common Gateway Interface (CGI) Formulare in HTML für die Parametererfassung WebSeite %& %- ) ) %!'(-($ %& %-.+,/0$ * * +, +, %!'(-" $ '(( KDN-SS01-7-25 Einheitliche Ressourcenidentifikation KDN-SS01-7-26 Uniform Resource Identifier (URI) Informationsressourcen müssen eindeutig identifizierbar sein Per Name, Per Adresse / Lokation. Jede Ressource im Internet soll identifizierbar sein Web-Ressourcen, FTP-Ressourcen, News-Ressourcen, Mailboxes, Directories, Dienste, ... Identifikationsschema muss erweiterbar vollständig als einfache Zeichenkette darstellbar sein. KDN-SS01-7-27 Syntax für alle Identifikatoren [RFC 1630]: <uri> ::= <scheme>":"<scheme-specific-part> <scheme> • Bezeichnet das Namensschema für diesen URI <scheme-specific-part> • Enthält aktuelle Identifikation entsprechend des scheme URIs können sein: Namen – Uniform Resource Name Lokationen / Adressen – Uniform Resource Locator Metainformationen – Uniform Resource Characteristic KDN-SS01-7-28 Uniform Resource Name (URN) URN - Auflösung Vereinheitlichung jeglicher Namensgebung URN [RFC 1737, RFC 2141] <urn> ::= "urn:" <nid> ":" <nss> nid = Namespace Identifier nss = Namespace Specific String Infrastruktur für URNs zur Zeit noch im experimentellen Stadium Resolver Discovery Dienste (RDS) Namensdienste / Namensauflösung (URN Resolver) Auflösung eines URN in URL oder URC Weitere Informationen: RFC 1737, 2276 Eigenschaften: Global eindeutig Dauerhaft beständig Skalierbar und erweiterbar Unterstützung bestehender Anwendungen Unabhängig KDN-SS01-7-29 Uniform Resource Locator (URL) Abgrenzung: Web und Internet Vereinheitlichung jeglicher Adressangabe URL scheme Definitionen [RFC 1738] KDN-SS01-7-30 http, https, ftp, news, nntp, mailto, telnet, ldap, ... scheme-specific-part: ["//"][user [":"password] "@"] host [":"port] ["/"url-path] Definitionen verwaltet die Internet Assigned Numbers Authority Relative URLs sind möglich KDN-SS01-7-31 Das Internet ist eine Verknüpfung heterogener Netzwerke Netzwerkprotokoll IP schafft die Transparenz Verschiedene Transportprotokolle sind verfügbar (TCP, UDP, RTP, ...) Es existiert eine Vielzahl von Anwendungsprotokollen (Telnet, FTP, NNTP, SMTP, HTTP, ...) Das World-Wide Web ist einer von vielen Internetdiensten, andere Internetdienste können allerdings im World-Wide Web integriert werden. KDN-SS01-7-32 Protokoll-Flexibilität des Web-Clients WWW-Server HTTP FTP-Server NEWS-Server FTP NNTP Mail-Server Medientypen im Web ... SMTP Internet WWW-Client FTP: Anzeige von Dateien eines FTP-Servers in der Web-Seite oder direkte Abholung durch Angabe des FTP-URL NNTP: • Angabe der gewünschten Newsgruppe im NEWS-URL • außerdem: eine in einem NEWS-Artikel als URL angegebene Web-Seite kann direkt angesprochen werden SMTP: • Struktur des URL ist mailto:name@adresse • Offenes Konzept zur Integration beliebiger Medien Übermittlung von Medien als MIME-Types (Multipurpose Internet Mail Extension) Interpretation verschiedener Medientypen im Web Im Web-Browser eingebaut für elementare Typen (HTML, Text, GIF, JPEG, ...) Durch Browser Plug-Ins (PDF, Real Audio, Real Video, ...) Durch Aufruf externer Anwendungen (Helper Applications, z.B. für PostScript) Abspeichern als Datei KDN-SS01-7-33 Dokumentenformat: HTML KDN-SS01-7-34 Beispiel: Ein HTML- (Minimal-) Dokument HyperText Markup Language Entwurfsziele Einfach Anwendungsübergreifend Plattformunabhängig Aufgeteilt in HEAD (Dokumentenkopf) BODY (Dokumentenrumpf) Erlaubt Informationseingabe über Forms <html> <html> <head> <head> <title> <title> Dokumenttitel Dokumenttitel </title> </title> </head> </head> <body> <body> <p>Dies <p>Dies ist ist ein ein HTML-Dokument.</p> HTML-Dokument.</p> </body> </body> </html> </html> <...>: Start-Tag </...>: Ende-Tag html, head, ..: Elementtypen heißen in SGML Generic Identifier (GI) Ein HTML-Dokument besteht aus head und body Verschiedene Strukturierungsmöglichkeiten des body-Elements (z.B. <p>: Absatz; <br>: neue Zeile; <hn>: Überschrift der Ebene n) Diverse Schriftauszeichnungsmöglichkeiten (z.B. <em>: hervorheben; <strong>: stark hervorheben; <i>: italic; <b>: fett) Standardzeichensatz: ISO 8859-1 (8-bit, ASCII als Untermenge enthalten) durch HTML 3 wurden weitere (z.B. Unicode, 16-bit) definiert KDN-SS01-7-35 KDN-SS01-7-36 Transferprotokoll Das HyperText Transfer Protocol Identifizierte Ressourcen müssen transportiert werden Client/Server-Architektur Request / Response – Protokoll Transaktionscharakter Entwurfsziele einfach / leichtgewichtig schnell Ergebnis: Hypertext Transfer Protocol HTTP Basierend auf TCP/IP Idempotent, daher zustandslos ASCII-kodiert HTTP: HyperText Transfer Protocol • Version 0.9 und 1.0 im RFC1945 beschrieben • seit Januar 1997 existiert eine Version 1.1 (RFC2068) Wesentliche Eigenschaften • ASCII-Anwendungsprotokoll • setzt auf eine (sichere) TCP-Verbindung auf • Default-Port: 80 • kurzlebige Verbindung, da der HTTP-Server nach Beantwortung einer Anfrage durch den HTTP-Client die Verbindung sofort schließt Beispiele von Befehlen, die der Client in Version 1.0 absetzen kann: • GET: Anfordern eines bestimmten Dokuments • HEAD: Anfordern von Informationen über ein Dokument • POST: Senden von Daten für die weitere Bearbeitung durch den Server KDN-SS01-7-37 Web-Client KDN-SS01-7-38 Web-Server Aufgaben: URL einlesen • Servername extrahieren und Serveradresse bestimmen • Dateiname extrahieren TCP-Verbindung zum Server / Proxy aufbauen HTTP-Request erstellen und schicken HTTP-Response (aktiv) empfangen HTTP-Response interpretieren Inhalte darstellen bzw. ausführen KDN-SS01-7-39 Aufgaben Auf HHTP-Requests warten HTTP-Requests interpretieren Requests bearbeiten • Zugriff auf Dateisystem • Eventuell Delegation Mit entsprechender Response antworten Unterschiedliche Realisierungsmöglichkeiten Iterativer Server Nebenläufiger Server KDN-SS01-7-40 HTTP-Transaktion HTTP/1.1 %& ) %! %& + + %& %! %! % % % Protokoll auf Anwendungsebene Für verteilte, kooperativ genutzte HypermediaInformationssysteme Eigenschaften: Generisch Zustandslos Objektorientiert Offen Unterstützt Typisierung von Daten Unterstützt Verhandlung über Datenrepräsentation Unabhängig von den übertragenen Daten KDN-SS01-7-41 Ablauf bei HTTP/1.1 Cookies #!1223 3243# ='(( - ! +(+ +(+ ,"(243#'((2536 ++"(1727 8+%98-:9 + (+ KDN-SS01-7-42 (+> 8'(-9 8'"9 89'! (## 829 82'"9 8);<9 333 333 HTTP ist zustandslos, d.h. es besteht kein Zusammenhang zwischen zwei Anfragen. Durch die Verwendung von Cookies wird der Zustand beim Client gespeichert. Protokollprimitive: Set-Cookie (ServerClient) Cookie (ClientServer) + (+ * * + + * * KDN-SS01-7-43 KDN-SS01-7-44 HTTP – Zustandsbehaftete Kommunikation Lastverteilung bei Web-Servern + + %& %!0 + %& 0+ Verteilten eines Domäne auf mehrere Subdomänen mit eigenem Rechner Server-Cluster Anfragen werden von einem Front-End entgegen genommen Dieser verteilt die Anfragen gemäß einem Algorithmus auf die dahinter liegenden Server • Berücksichtigung der Auslastung • Berücksichtung der angefragten Dokumente %! KDN-SS01-7-45 Beispiel Big/IP #!1223?32 ! KDN-SS01-7-47 KDN-SS01-7-46