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: [email protected]
R: 250 OK
S: RCPT TO: [email protected]
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