Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ...

Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ... Netzwerke Teil 11: Anwendungsprotokolle - Wirtschaftsinformatik bis ...

wi.f4.htw.berlin.de
von wi.f4.htw.berlin.de Mehr von diesem Publisher

<strong>Netzwerke</strong><br />

<strong>Teil</strong> <strong>11</strong>: <strong>Anwendungsprotokolle</strong><br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong> 10.06.13 1


Literatur - Allgemein<br />

[<strong>11</strong>-1] Bleich, Holger; Braun, Herbert; Mansmann, Urs: Nachrichten mit<br />

Köpfchen. CT 21/2006, S.218-221<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

2


Übersicht<br />

• Entferntes Arbeiten (remote access)<br />

– telnet<br />

– rlogin<br />

– ssh<br />

• Mail-Protokolle<br />

– SMTP<br />

– POP<br />

– IMAP<br />

• Filetransfer<br />

– FTP<br />

– HTTP (wird in einem anderen <strong>Teil</strong> behandelt)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

3


Literatur - Telnet<br />

[T1] telnet http://tools.ietf.org/html/rfc854<br />

[T2] rlogin BSD Rlogin<br />

http://tools.ietf.org/html/rfc1282<br />

[T3] telnet http://de.wikipedia.org/wiki/VT100<br />

[T4] telnet http://vt100.net/<br />

[T5] telnet http://de.wikipedia.org/wiki/Terminal_(Computer)<br />

[T6] telnet http://commons.wikimedia.org/wiki/Category:Data_termin<br />

als?uselang=de<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

4


Telnet<br />

• Telnet ist ein Protokoll für den interaktiven Zugriff auf entfernte<br />

Systeme über TCP/IP.<br />

• Alle Tastatureingaben beim Client werden an den Server<br />

übertragen, dessen Output Zeichen für Zeichen an den Client<br />

zurück geschickt und dort angezeigt werden.<br />

• Varianten:<br />

– Telnet, RFC 97 (1971), RFC 854 (1983), Port 23<br />

– rtelnet: Port 107<br />

– rlogin: Port 513<br />

– rsh: Port 514 (dazu gibt es kein RFC)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

5


Virtuelles Terminal<br />

• Telnet basiert auf der Idee eines virtuellen Terminals.<br />

• Terminal = Realisierung einer Bildschirm- und Tastatur-<br />

Schnittstelle an einem Kommunikationsendpunkt durch eine<br />

spezielles Gerät<br />

• Virtuelles Terminal = Simulation einer Terminal auf "normaler"<br />

Hardware und Software<br />

Das virtuelle Terminal von telnet realisiert:<br />

– Eingabe per Tastatur<br />

Lesbares ASCII<br />

Escape-Zeichen (0xFF, IAC) zur Eingabe von Kommandos<br />

– Ausgabe (Printer)<br />

Lesbares ASCII<br />

NUL, LF, CR, BEL, Horizontal Tab, Vertical Tab, Form Feed (FF)<br />

• Dies ist der kleinste gemeinsame Nenner aller Terminals<br />

Beispiele für Hardware-Terminals: IBM 3270, VT100, VT220<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

6


Bemerkungen<br />

• Mit Telnet-Kommandos ist Konfigurieren möglich,<br />

Beispiele:<br />

– Cooked Mode: Eingegebener String wird zum Verbessern von<br />

Tippfehlern zwischengepuffert und erst dann übertragen, wenn<br />

eine -Sequenz eingegeben wurde<br />

– Raw Mode: Alle Zeichen werden unmittelbar ohne Pufferung und<br />

ohne Möglichkeit der Verbesserung übertragen<br />

• Über Telnet können Verbindungen zu SMTP-, POP-, HTTP- oder<br />

FTP-Servern realisiert werden.<br />

Ein Telnet-Client kann daher auch als primitiver Email- oder<br />

FTP-Client benutzt werden.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

7


Secure Shell (SSH) - Literatur<br />

[S1]<br />

[S2]<br />

[S3]<br />

[S4]<br />

[S5]<br />

[S6]<br />

[S7]<br />

SSH (Secure Shell) FAQ - Frequently Asked Questions<br />

http://www.faqs.org/faqs/computer-security/ssh-faq/<br />

http://de.wikipedia.org/wiki/Secure_Shell<br />

The Secure Shell (SSH) Protocol Architecture<br />

http://tools.ietf.org/html/rfc4251<br />

The Secure Shell (SSH) Protocol Assigned Numbers<br />

http://tools.ietf.org/html/rfc4250<br />

The Secure Shell (SSH) Authentication Protocol<br />

http://tools.ietf.org/html/rfc4252<br />

The Secure Shell (SSH) Transport Layer Protocol<br />

http://tools.ietf.org/html/rfc4253<br />

The Secure Shell (SSH) Connection Protocol<br />

http://tools.ietf.org/html/rfc4254<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

8


SSH basiert auf dem Secure Socket Layer (SSL)<br />

• Ursprünglich von Netscape zur Sicherung beim Surfen<br />

entwickelt<br />

• Aktuelle Version: 3<br />

• Weiterentwicklung zum Transport Layer Security<br />

(TLS, RFC2246)<br />

• Begriffe:<br />

– Verbindungen im SSL-Sinne sind immer Peer-to-Peer (also<br />

zwischen den Endsystemen) und gehören zu einer Sitzung<br />

– Sitzung: Verbindung mit der Gültigkeit von ausgehandelten<br />

Parametern, kann auch mehrere Verbindungen überspannen<br />

– Bei SSL bzw. SSH wird pro Sitzung nur eine Verbindung realisiert.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

9


Eigenschaften einer Sitzung<br />

• Session Identifier<br />

• X.509-Zertifikat des Partners - kann leer sein<br />

• Kompressionsmethode<br />

• Verwendete Verschlüsselungs- und Hash-Verfahren<br />

• Verschiedene geheime Schlüssel (secrets)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

10


SSL-Protokollstack<br />

(4b)<br />

SSL<br />

Handshake<br />

SSL Change<br />

Cipher Spec<br />

SSL<br />

Alert<br />

SSL Record-Protokoll<br />

HTTP<br />

(4a)<br />

TCP<br />

(3)<br />

IP<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

<strong>11</strong>


SSL-Record-Protokoll<br />

• Dienste:<br />

– Vertraulichkeit: Handshake-Protokoll mit gemeinsamen geheimen<br />

Schlüssel<br />

– Integrität: Handshake-Protokoll mit gemeinsamen geheimen<br />

Schlüssel als Basis für den MAC<br />

• Verfahren beim Senden<br />

1. Anwendungsdaten aufteilen in kleinere Blöcke<br />

2. Fragmente komprimieren<br />

3. Berechnen und Hinzufügen des MAC<br />

4. Verschlüsseln des gesamten neuen Pakets<br />

5. Vorausstellen des SSL-Headers<br />

• Verfahren beim Empfang: umgekehrte Reihenfolge<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

12


Change Cipher Spec/Alert Protokoll<br />

• Change Cipher Spec Protokoll:<br />

Mit dem SSL-Record-Protokoll wird ein einziges Byte versendet,<br />

damit sich Sender und Empfänger bzgl. der Verschlüsselung<br />

synchronisieren.<br />

• Alert Protokoll:<br />

Austausch von Warnungen oder Fehlermeldungen bei<br />

Realisierungsfehlern oder Netzwerkproblemen<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

13


Handshake Protokoll<br />

• Ziel<br />

– Möglichst gegenseitige Authentifizierung<br />

– Aushandeln von Verfahren (Verschlüsselung, Hash)<br />

– Austausch von Zertifikaten<br />

• Phasen<br />

– Phase 1: Einrichten von Sicherheitsfähigkeiten<br />

– Phase 2: Server-Authentifizierung und Schlüsselaustausch<br />

– Phase 3: Client-Authentifizierung und Schlüsselaustausch<br />

– Phase 4: Beendigung (des Aufbaus)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

14


Simple Mail Transport Protokoll - Literatur<br />

[S8] smtp Simple Mail Transfer Protocol<br />

http://en.wikipedia.org/wiki/SMTP<br />

[S9] smtp Extended SMTP<br />

http://en.wikipedia.org/wiki/Extended_SMTP<br />

[S10] smtp SMTP Service Extension for Authentication<br />

http://tools.ietf.org/html/rfc4954<br />

http://tools.ietf.org/html/rfc5248<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

15


Simple Mail Transport Protokoll (SMTP)<br />

• RFC 821 (1982), 2821 (2001), 5321 (2008)<br />

• Bis zum Web (1992) war E-Mail die am weitesten verbreitete<br />

Internet-Anwendung.<br />

• Reines ASCII-Protokoll (Bit 7 der Bytes ist immer 0) auf der<br />

Anwendungsebene<br />

• Store and Forward:<br />

Keine direkten Verbindungen zwischen Absender und<br />

Empfänger, sondern ein Kopieren der Mails von Server zu<br />

Server<br />

• Vorteil: Hohe Ausfallssicherheit<br />

• Das E-Mail-System ist eines der erfolgreichsten verteilten<br />

Systeme.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

16


Architektur<br />

Client<br />

MUA<br />

SMTP<br />

Mail-Zugangsprotok<br />

olle<br />

Server<br />

MTA<br />

SMTP<br />

SMTP<br />

Internet<br />

Server<br />

MTA<br />

Server<br />

MTA<br />

SMTP<br />

Server<br />

MTA<br />

SMTP<br />

Mail-Zugangsprotok<br />

olle<br />

IMAP<br />

PO P<br />

SMTP<br />

Client<br />

MUA<br />

MUA = Mail User Agent<br />

MTA = MessageTransfer Agent<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

17


Bemerkungen<br />

• Wenn der Mail User Agent (MUA, Client) mit dem Mail-Reader<br />

SMTP-fähig ist, kann auf die Mail-Zugriffsprotokolle POP oder IMAP<br />

verzichtet werden.<br />

• Die Trennung zwischen den MTA (Message Transfer Agent), die fast<br />

immer laufen, und den MUA, die nur dann laufen, wenn der<br />

Benutzer es will, hat den großen Vorteil, dass auch bei<br />

abgeschalteten Clients die E-Mails so weit wie möglich zu Ziel<br />

transportiert werden können.<br />

• MUA und MTA können sich auf demselben System befinden.<br />

• Die Mailbox liegt als Datei im Zugriff des letzten MTA vor dem MUA.<br />

In der Praxis beim Internet Service Provider (ISP).<br />

• Die empfangenen Mails werden meist nach dem Kopieren auf den<br />

MUA in der Mailbox gelöscht, müssen aber nicht.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

18


Empfangen einer Mail<br />

• Der Begriff "Empfangen einer Mail" ist nun komplizierter:<br />

– Das Kopieren der Email in die Mailbox beim Provider<br />

– Das Kopieren der Email aus der Mailbox des Providers auf das<br />

System des Clients<br />

– Das Lesen der Email durch einen Menschen<br />

• Weiterhin gibt es keinen Mechanismus der Bestätigung, dass<br />

eine Email empfangen worden ist.<br />

Um das zu kompensieren, kann der Sender den Empfänger<br />

bitten, beim Empfang eine kleine Bestätigungsmail (Receipt) zu<br />

senden.<br />

• Die Dauer eines Mailtransports liegt international zwischen 5-10<br />

Min. und einem Tag, meistens im Bereich von 10 Min. Die<br />

Zeiten hängen von der Belastung des Netzes und vom Weg<br />

durch das Netz ab.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

19


Mail-Format<br />

• Das allgemeine Format ist definiert in<br />

RFC 822 (1982), 2822 (2001), 5322 (2008)<br />

• Überarbeitet und erweitert <strong>bis</strong> 1996 zum Extended SMTP durch<br />

Einführung von MIME zur Übertragung binärer Daten<br />

• MIME = Multi Purpose Internet Mail Extension<br />

– Das MIME-Format ist definiert in<br />

RFC 1341 (1992), 1521 (1993), 2045-2049 (1996), 2184 (1997),<br />

2231 (1997)<br />

– Weiteres in RFC 1343 und 1524<br />

• Aufbau jeder Mail:<br />

– Kopf mit Schlüsselworten samt Werten<br />

– Leerzeile<br />

– Body<br />

– Optionale Attachments (Anhänge) entsprechend MIME<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

20


Einfaches Beispiel<br />

Betreff:Btte um einen Termin<br />

Von: "bmesser" <br />

Datum: Fri, 29 Apr 20<strong>11</strong> 15:42:15 +0200<br />

An: "FB4-Service" <br />

Return-Path: <br />

Delivery-date: Fri, 29 Apr 20<strong>11</strong> 15:40:28 +0200<br />

Received: from [141.45.29.226] (helo=[127.0.0.1]) by mail2.rz.htw-berlin.de<br />

Nachricht-ID: <br />

User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)<br />

MIME-Version: 1.0<br />

Content-Type: text/plain; charset="iso-8859-1"<br />

Content-Transfer-Encoding: 7bit<br />

Liebe Frau ...,<br />

koennten Sie bitte ...<br />

in WH reservieren?<br />

Vielen Dank!<br />

Mit freundlichen Gruessen -- Burkhard Messer<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

21


Ein zweites Beispiel<br />

Received: from tulip.berlin.fhg.de (tulip.berlin.fhg.de [153.97.66.4]) by hermes.rz.fhtw-berlin.de ..... Thu, 17 Jan<br />

Received: from abird.isst.fhg.de ([153.97.74.7] helo=isst.fhg.de) by tulip.berlin.fhg.de .... Thu, 17 Jan 2002 <strong>11</strong>:02:37 +0100<br />

Message-ID: <br />

Date: Thu, 17 Jan 2002 <strong>11</strong>:02:36 +0100<br />

From: Kurt .... <br />

Organization: Fraunhofer ISST Berlin<br />

X-Mailer: Mozilla 4.79 [en] (X<strong>11</strong>; U; SunOS 5.8 sun4u)<br />

MIME-Version: 1.0<br />

To: bmesser@fhtw-berlin.de<br />

Header<br />

Subject: Re: Wiedervorlage<br />

References: <br />

<br />

Content-Type: multipart/mixed; boundary="------------B9464F909C2354DFF4841DE8"<br />

Content-Length: 2261<br />

Trenner zwischen<br />

Attachments<br />

Hallo Burkhard,<br />

Leerzeile<br />

.... blah bla<br />

Burkhard Messer wrote:<br />

> ein schönes neues Jahr wünsche ich Dir (und Euch<br />

> allen am ISST und zu Hause)....<br />

><br />

> Mit freundlichen Grüssen -- Burkhard<br />

> --<br />

> FHTW Berlin, FB 4, <strong>Wirtschaftsinformatik</strong><br />

> Treskowallee 8 Tel. (030) 5019-25<strong>11</strong><br />

> 10318 Berlin EMail bmesser@fhtw-berlin.de<br />

....<br />

[gekürzt]<br />

Body<br />

Wiederholung einer<br />

früheren Mail<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

22


Beispiele für Keywords<br />

Keyword<br />

Received<br />

Message-ID<br />

Date<br />

From<br />

To<br />

Subject<br />

References<br />

Organization<br />

MIME-Version<br />

Content-Type<br />

Content-Length<br />

Erläuterung<br />

Angaben über den Weg der Mail durch das Netz (Reihenfolge von<br />

oben nach unten, "falsch herum")<br />

Eindeutiger Name dieser Mail beim Absender<br />

Datum der Absendung<br />

Verfasser/in der Mail<br />

Empfänger/in der Mail<br />

Thema der Mail<br />

Bezüge der Mail, wenn diese als Antwort auf andere Mails dient<br />

(Definition des "Threads")<br />

Firma/Organisation des/r Absenders/in<br />

Version der MIME-Kodierung<br />

MIME-Beschreibung des Mailaufbaus einschließlich eines Trenners<br />

zwischen den Anhängen<br />

Länge der Mail bzw. Attachments in byte<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

23


Mail-Routing<br />

• Der Weg der Mail durch das Netz der SMTP-Server wird von<br />

den Einträgen in den korrespondierenden DNS-Servern<br />

bestimmt.<br />

• In den MX-Records dieser DNS-Server stehen priorisierte<br />

Angaben, zu welchen SMTP-Servern die Mail weitergeleitet<br />

werden soll (RFC 974).<br />

• Der SMTP-Server versucht, den angegebenen Server<br />

anzusprechen. Gelingt ihm das nicht, versucht er es nach einer<br />

gewissen Zeit ein weiteres Mal.<br />

• Gibt es auch dann Schwierigkeiten, wird es mit einem Server<br />

der nächst niedrigeren Priorität probiert.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

24


Beispiel für Anhänge I<br />

Type/Subtype<br />

Art der Kodierung<br />

Datei/Attachment-Name<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

25


Beispiel für Anhänge II<br />

Date: Fri, 18 Jan 2002 16:<strong>11</strong>:55 +0100<br />

From: Albrecht .... <br />

[....]<br />

Subject: Zuarbeit zu Musical (keine Noten)<br />

Content-Type: multipart/mixed;<br />

boundary="------------050004040708050801060200"<br />

Leerzeile<br />

This is a multi-part message in MIME format.<br />

--------------050004040708050801060200<br />

Content-Type: text/plain; charset=us-ascii; format=flowed<br />

Content-Transfer-Encoding: 7bit<br />

blah bla blahh<br />

--------------050004040708050801060200<br />

Content-Type: application/msword;<br />

name="Musical_3.6.doc"<br />

Content-Transfer-Encoding: base64<br />

Content-Disposition: inline;<br />

filename="Musical_3.6.doc"<br />

base64-kodiert<br />

Trenner zwischen<br />

Attachments<br />

1. Attachment<br />

kodiert in ASCII<br />

2. Attachment<br />

kodiert in base64<br />

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAJAAAAAAA<br />

AAAAAFQBAAAAAAAAVAEAABQAAAAAAAAAAAAAAGgBAAAAAAAAqAMAAAAAAACoAwAAAAAAAKgD<br />

[....]<br />

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==<br />

--------------050004040708050801060200--<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

26


Anhänge<br />

• Jeder Anhang hat einen Typ, der die Gruppe beschreibt, und<br />

einen Untertyp, der das Verarbeitungsprogramm oder das<br />

spezielle Format beschreibt.<br />

• Jeder Anhang hat einen eigenen Kopf, der vom Inhalt mit einer<br />

Leerzeile getrennt ist.<br />

• Im Kopf stehen Angaben über die Kodierung, den Typ und den<br />

Namen der Datei etc.<br />

Diese erfolgen nach dem Schema:<br />

: <br />

• Theoretisch können die Mails beliebig lang werden; sie werden<br />

aber praktisch begrenzt:<br />

– durch die maximale Größe der Mailbox, meist 5-10 Mbyte<br />

– durch Begrenzungen der Mailserver, meist 10 Mbyte<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

27


Beispiele für MIME-Typen<br />

Type Subtype Bemerkungen<br />

Text Plain Normaler ASCII-Text<br />

Text HTML Normaler ASCII-HTML<br />

Multipart Mixed Mehrere Anhänge unterschiedlichen Typs<br />

Application msword Word-Datei<br />

Application Mac-Binhex40 Binärdatei für Macintosh<br />

Application Postscript Postscript-Datei (z. B. zum Ausdrucken)<br />

Image gif GIF-Datei<br />

Image jpeg JPEG-Datei<br />

Audio Basic Normale Audio-Datei<br />

Video mpeg MPEG-Video<br />

Siehe auch: http://en.wikipedia.org/wiki/MIME<br />

und: http://tools.ietf.org/html/rfc2045<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

28


MIME-Typen im Thunderbird<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

29


Kodierungen (ASCII und Base64)<br />

Es werden zwei Kodierungen benutzt:<br />

– ASCII (7 bit)<br />

– Base64: Kodierung zur Übertragung von Binärdateien<br />

Dazu werden jeweils 24 bit in vier 6-bit-<strong>Teil</strong>e aufgeteilt, die<br />

wiederum als ASCII kodiert werden:<br />

2*26 Buchstaben, 10 Ziffern und 2 Sonderzeichen (+/) -> 64<br />

3 byte binär<br />

(24 bit)<br />

8 bit 8 bit 8 bit<br />

6 bit 6 bit 6 bit 6 bit<br />

Aufteilung<br />

in 4 6-bit-<br />

<strong>Teil</strong>e<br />

8 bit 8 bit 8 bit 8 bit<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

30


SMTP selbst<br />

• ASCII-Protokoll - kann mit Telnet auch von Hand eingegeben<br />

werden. Es gibt keine festen Bitformate für die Pakete, sondern<br />

es werden variabel lange Strings verwendet.<br />

• Client: das System, das die Kommunikation beginnt<br />

Server: das System, das darauf antwortet<br />

Per Kommando können diese Rollen getauscht werden.<br />

• Client-Request:<br />

[Daten]<br />

• Server-Responses:<br />

[Daten]<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

31


Auszug aus einer SMTP-Sitzung<br />

SMTP-Client<br />

HELO <br />

MAIL FROM: <br />

RCPT TO: <br />

RCPT TO: <br />

DATA<br />

Text der Mail in ASCII<br />

......<br />

.<br />

QUIT<br />

SMTP-Server<br />

250 Hello <br />

250 OK<br />

250 OK<br />

550 No such user here<br />

354 Start Mail Input; end with<br />

.<br />

250 OK<br />

221 Closing Connection<br />

In diesem Beispiel beginnt der Client links und der Server antwortet<br />

in der Gegenrichtung rechts.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

32


Erläuterungen<br />

• Die Mail selbst wird nach der Vorbereitung durch die Kommandos<br />

"MAIL FROM:" und "RCPT TO:" nach dem Kommando "DATA" als<br />

ASCII-Text übertragen.<br />

• Das Ende der Daten ist eine einzelne Zeile mit einem Punkt.<br />

• Jede Zeile wird mit (2 Bytes: Carriage Return, Line<br />

Feed) abgeschlossen.<br />

• Der String "." muss innerhalb der Mail verhindert<br />

werden.<br />

• Die Statuscodes des Servers werden durch den nachfolgenden<br />

String erläutert.<br />

Es gibt keine Flusskontrolle, keine Verschlüsselungen (<strong>bis</strong> auf<br />

S/MIME), keine Wiederholungen, keine Bestätigungen, keinen CRC,<br />

keine Wiederaufsetzpunkte, keine Zeichenkonvertierungen.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

33


SMTP-Kommandos (Auszug)<br />

Kommando<br />

HELO<br />

MAIL FROM<br />

RCPT TO<br />

DATA<br />

RSET<br />

QUIT<br />

VRFY<br />

NOOP<br />

EXPN<br />

TURN<br />

Erläuterung<br />

Beginn, Identifizierung<br />

Angabe der Absenderadresse<br />

Angabe der Zieladresse<br />

Beginn des Mailinhalts<br />

Rücksetzen der Verbindung<br />

Beenden der Verbindung<br />

Frage nach Gültigkeit einer Mailbox<br />

Erwarten einer OK-Antwort<br />

Expandieren von Maillisten<br />

Sender und Empfänger tauschen die Rollen<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

34


Post Office Protokoll (POP)<br />

• POP ist ein Mailbox-Zugriffsprotokoll zum Abholen und<br />

einfachen Verwalten von Mailboxen<br />

• Versionen<br />

– POP: RFC 918, 1984<br />

– POP2: RFC 937, 1985<br />

– POP3: RFC 1725 (1994), 1939 (1996)<br />

Ergänzungen: RFC 1957 und RFC 2449<br />

• ASCII-Protokoll sehr ähnlich zu SMTP :<br />

– Client sendet Kommandos<br />

– Server antwortet mit Statuscodes und Daten<br />

• Keine Verschlüsselung:<br />

Passwörter werden in ASCII übertragen, daher Einsatz nur auf<br />

"privaten" Leitungen, typisch zwischen Benutzer und ISP-<br />

Mailbox<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

35


Verarbeitungsphasen<br />

Phase 1<br />

Phase 2<br />

Phase 3<br />

Phase 4<br />

Phase 5<br />

Verbindungsaufbau<br />

Authentifizierung<br />

Client identifiziert sich gegenüber Server<br />

Sperren der Mailbox durch Server<br />

Datenübertragung zum Client<br />

Update<br />

Server führt nach Verbindungsbeendigung Operationen an<br />

der Mailbox aus und gibt Mailbox frei<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

36


Beispiele für Client-Kommandos<br />

Kommando<br />

USER<br />

PASS<br />

QUIT<br />

STAT<br />

LIST<br />

RETR<br />

NOOP<br />

RSET<br />

DELE<br />

TOP N<br />

Erläuterung<br />

Mitteilung des Mail-Accounts<br />

Mitteilung des Passworts<br />

Ende der Verbindung, Beginn des Updates<br />

Anzahl der Mails, Gesamtgröße<br />

Liste von Mails samt jeweilige Größe<br />

Holen einer Mail<br />

Erwarten eines OK<br />

Zurücksetzen der Verbindung<br />

Löschen einer Mail<br />

Anlisten einer Mail (N Zeilen)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

37


Erläuterungen I<br />

• Das TOP-Kommando veranlasst den Server nur die angegebene<br />

Anzahl von Zeilen der Mail zu übertragen.<br />

• Eine Mail kann ohne Übertragung zum Client auf dem Server<br />

gelöscht werden.<br />

• Mit dem APOP-Kommando ist eine Authentifizierung basierend auf<br />

dem MD5-Algorithmus möglich.<br />

• Die Kommandos TOP und APOP werden nicht von allen POP-Servern<br />

unterstützt.<br />

• Löschkommandos werden nach einem Reset/Leitungsabbruch vom<br />

Server nicht ausgeführt.<br />

• Löschkommandos sowie das Freigeben der Mailbox erfolgt erst nach<br />

dem QUIT und damit ordnungsgemäßen Abbau der Verbindung.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

38


Erläuterungen II<br />

• Antworten des Servers haben den Aufbau:<br />

[Daten]<br />

Als Indikator kommen "+OK" und "-ERR" in Frage.<br />

• Alle Zeilen werden mit einem abgeschlossen<br />

• Die übertragene Mail wird mit einem .<br />

abgeschlossen.<br />

Das Konvertieren nach Binär/ASCII sowie das Anzeigen etc.<br />

erfolgt ausschließlich im Mail-Reader des Clients nach der<br />

Benutzung von POP.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

39


Internet Message Access Protokoll (IMAP)<br />

• Leistungsfähiges Protokoll für den Zugriff auf E-Mails durch<br />

einem Client<br />

• Definitionen aus den Jahren 1986, 1988, 1994, 1996<br />

• Letzte Version 4<br />

• Recht komplex<br />

• IMAP erlaubt<br />

– Berücksichtigung der Struktur der Mail<br />

– Anzeige des Status, Zugriff auf die einzelnen <strong>Teil</strong>e<br />

– Suchoperationen<br />

– Verwaltung der Mailbox auf dem IMAP-Server<br />

– Anlegen, Löschen und Umbenennen von eigenen Mailboxen<br />

– Aber nur Empfangen von Mails<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

40


File Transfer Protokoll - Literatur<br />

[F1] ftp http://tools.ietf.org/html/rfc959<br />

[F2] ftp http://slacksite.com/other/ftp.html<br />

[F3] ftp http://www.nsftools.com/tips/RawFTP.htm<br />

[F4] ftp http://winscp.net/eng/docs/protocols<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

41


File Transfer Protokoll (FTP)<br />

• Definiert in RFC 959, 1985<br />

• Variation im Trivial File Transfer Protokoll (TFTP), basiert auf<br />

UDP/IP und dient häufig zum Booten von Stationen über ein LAN<br />

• Über FTP ist ein voller Zugriff auf ein hierarchisches Dateisystem<br />

über TCP/IP ohne Verschlüsselung möglich<br />

• Es wird eine eigene (Telnet-basierte) Verbindung zur Steuerung<br />

sowie weitere Verbindungen zum Datentransport benutzt.<br />

• Es werden in der Regel gleichzeitig mehrere Verbindungen<br />

benutzt.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

42


Beispiele für Kommandos I<br />

Kommando<br />

PASS<br />

ACCT<br />

CWD<br />

CDUP<br />

ABOR<br />

LIST<br />

SYST<br />

PORT<br />

RETR<br />

STOR<br />

DELE<br />

Erläuterung<br />

Übergabe des Passwords<br />

Angabe des Accounts<br />

Change working directory<br />

Change to parent directory<br />

Abbrechen der Datenübertragung<br />

Auflisten der working Directory<br />

Auskunft über Server<br />

Angabe des Ports für Dateiaustausch<br />

Holen einer Datei zum Client<br />

Senden einer Datei zum Server<br />

Löschen einer Datei<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

43


Beispiele für Kommandos II<br />

Kommando<br />

RMD<br />

MKD<br />

PWD<br />

RNFR<br />

RNTO<br />

REIN<br />

QUIT<br />

REST<br />

APPE<br />

Erläuterung<br />

Remove Directory<br />

Make Directory<br />

Print Working Directory<br />

Rename From<br />

Rename To<br />

Beendigung des angegebenen Accounts<br />

Abbau der Verbindung<br />

Wiederaufsetzen nach Abbruch<br />

Anhängen (Append)<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

44


Datenverbindung<br />

• Über die Kommandoverbindung wird der Port, der Name der<br />

Datei, der Übertragungsmodus etc. vereinbart.<br />

• Über eine weitere Datenverbindung wird parallel der Transfer<br />

realisiert; es können parallel mehrere Dateitransfers in<br />

verschiedenen Richtungen über jeweils eigene Verbindungen in<br />

ablaufen.<br />

• Modi der Datenübertragung (Transmission modes):<br />

1. Stream: Es werden die Bytes der Datei direkt ohne Strukturierung<br />

übertragen.<br />

2. Block: Es werden Blöcke mit einem Kopf und Körper übertragen.<br />

3. Compressed: Vor der Übertragung werden die Daten komprimiert.<br />

In der Praxis wird nur Nr. 1 benutzt.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

45


Praxis<br />

• Es gibt viele FTP-Server mit einem Standard-Account:<br />

"anonymous" mit einem Passwort als der eigenen Mail-Adresse<br />

• Einige FTP-Server verifizieren die Mail-Adresse über einen<br />

AUTH-Server und verweigern den Zugriff bei falscher Adresse.<br />

Ein AUTH-Server muss dann auf dem System des Clients laufen<br />

und Auskunft über die Identität geben.<br />

• Es gibt ein Kommando "REST", das ein Wiederaufsetzen nach<br />

einem abgebrochenen Dateitransfer erlaubt.<br />

• Leider realisieren nicht alle FTP-Server bzw. Clients alle<br />

Kommandos.<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

46


Nach dieser Anstrengung etwas Entspannung....<br />

<strong>Netzwerke</strong> - SS 2013 - <strong>Teil</strong> <strong>11</strong>/<strong>Anwendungsprotokolle</strong><br />

47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!