Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP)



Ähnliche Dokumente
Übungen zu Rechnerkommunikation

. Nachrichtenübertragung. Internetkommunikation Christof Fox. Wie werden Nachrichten Übertragen?

Man liest sich: POP3/IMAP

Anwendungsprotokolle: HTTP, POP, SMTP

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Modul und FTP. Unit 6. (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS

Rechnernetze Übung 12

Dienste und Protokolle im Internet

Client/Server-Systeme

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

12. Kieler OpenSource und Linux Tage. Wie funktioniert eigentlich Mail? , Frank Agerholm, Linux User Group Flensburg e.v.

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Rechnernetze. 6. Übung

Bei Aufbau der Verbindung initialisiert der Sender das Überlastfenster auf die

Minimum aus beiden Fenstern ist die maximal zu sendende Anzahl von Bytes. Vergrößerung stoppt bei Erreichen des Empfängerfensters

POP3-Protokoll Eine kurze Erklärung. Johannes Mayer SAI, Universität Ulm Juni 2001

FAQ IMAP (Internet Message Access Protocol)

Vorlesung SS 2001: Sicherheit in offenen Netzen

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Web Grundlagen zum Spidering

FL1 Hosting Technische Informationen

Transmission Control Protocol (TCP)

Technische Grundlagen von Internetzugängen

Client-Server-Prinzip

Helmut Kleinschmidt. Pflicht ab

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Geschütztes FTP-Verzeichnis erstellen

Publizieren von Webs mit SmartFTP

Einrichtung eines -Kontos bei MS Office Outlook 2010 (Windows) Stand: 03/2011

Web Sockets mit HTML5. Quelle:

Kapitel 2: Anwendungsschicht

Socket-Programmierung (3)

Einrichtung eines -Kontos bei Mac OS X Mail Stand: 03/2011

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Schritt 2: Konto erstellen

Proseminar: Website-Management-Systeme

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Handbuch SyCOM Administration

POP3 und SMTP live und schwarzweiß

@HERZOvision.de. Lokalen -Client mit IMAP einrichten. v by Herzo Media GmbH & Co. KG -

FL1 Hosting Kurzanleitung

we run IT! ArGO Mail Inhaltsverzeichnis Services zurzeit in ArGO Mail aktiv: Mail

Kurzanleitung SEPPmail

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Session Management und Cookies

Webmail. V Christof Rimle

ecall sms & fax-portal

Einrichtung eines -konto mit Outlook Express

!"# $ % Internet Protokolle: HTTP 1/38

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

KvBK: Basic Authentication, Digest Authentication, OAuth

Konfiguration von Konten

Adressen der BA Leipzig

Anleitungen zur Konfiguration verschiedener Mailclients und Informationen zu der -Infrastruktur von Hostpoint.

OutLook 2003 Konfiguration

FTP-Server einrichten mit automatischem Datenupload für

Betriebskonzept Einrichtung

4. Network Interfaces Welches verwenden? 5. Anwendung : Laden einer einfachen Internetseite 6. Kapselung von Paketen

Enigmail Konfiguration

Leitfaden zur Nutzung von binder CryptShare

Internet und WWW Übungen

Einrichtung eines -Kontos bei MS Office Outlook 2007 (Windows) Stand: 03/2011

Externe Abfrage von für Benutzer der HSA über Mozilla-Thunderbird

SIZ Modul 221: Outlook und Internetdienste

FileMaker Go 13 ohne Connects

OP-LOG

Lübecker Ewiger -Account (LEA)

Anleitung für Zugriff auf den LEM-FTP-Server

Radius Server. Bericht im Studiengang Computerengineering an der HS-Furtwangen. Student: Alphonse Nana Hoessi Martikelnr.:227106

Schritt 1: Auswahl Schritt 3 Extras > Konten Schritt 2: Konto erstellen Konto hinzufügen klicken

Einfügen von Bildern innerhalb eines Beitrages

Websites mit Dreamweaver MX und SSH ins Internet bringen

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Die Verwendung von IMAP für alte programme und alte Handys

Kurzanleitung Hosting

SANDBOXIE konfigurieren

" -Adresse": Geben Sie hier bitte die vorher eingerichtete Adresse ein.

programm Einrichten

Online-Publishing mit HTML und CSS für Einsteigerinnen

BSCW-Anbindung im Dateiexplorer


Check Service CHECKBL

Einrichtung eines -konto mit Thunderbird

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Ihr Benutzerhandbuch für das IntelliWebs - Redaktionssystem

Anleitung. Spam Filter mit Quarantäne Eine kurze Funktionsübersicht. Internet- & Netzwerk-Services

Konfiguration von Outlook 2007

Erstellen von -Konten unter MAC

@HERZOvision.de. Allgemeine Informationen. v by Herzo Media GmbH & Co. KG -

Sie finden im Folgenden drei Anleitungen, wie Sie sich mit dem Server der Schule verbinden können:

Wir empfehlen die Konfiguration mit den Servern secureimap.t-online.de und securepop.t-online.de.

POP3 über Outlook einrichten

SMTP-Verfahren POP-Verfahren IMAP-Verfahren

Technische Anforderungen. zum Empfang. von XML-Nachrichten

Transkript:

Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP) HTML Conditional GET Authentifizierung Cookies File Transfer Protocol (FTP) E-Mail SMTP Nachrichtenformat Zugriffsprotokolle Socket-Programmierung (UDP) Peer-to-Peer P Systeme Rechnerkommunikation, Übung 2 1

HTTP Ablauf Benutzer gibt Uniform Resource Locator (URL) in Web-Browser ein URL enthält Host-Namen eines PC mit Web-Servers und den Pfad zu Browser einem Objekt (Datei) dort (z.b. Firefox) Web-Browser stellt Anfrage an Web-Server für dieses Objekt Web-Server liefert Objekt an Web-Browser zurück Web-Browser stellt Objekt in für den Benutzer lesbarer Form dar Server mit Apache Webserver Mac mit Browser (z.b. Safari) Rechnerkommunikation, Übung 2 2

HTTP URL http://www.someschool.edu:80/somedept/pic.gif Dienst Hostname Portnr. Pfad zum Objekt nicht alle Teile müssen dabei sein Nachrichtentypen in HTTP Anfragenachrichten Antwortnachrichten beide beinhalten nur ASCII-Zeichen und sind daher lesbar Rechnerkommunikation, Anwendungsschicht 3

HTTP: Format der Anfragenachrichten GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) Anfragezeile method sp URL sp version cr lf header field name: sp value cr lf Kopfzeilen header field name: sp value cr lf Leerzeile cr lf Rumpf

HTTP Aufbau von Web-Seiten Basis-Seite in Hypertext Markup-Language (HTML) eingebettete Objekte (Bilder, Video, Audio, Code, ) Referenzen auf andere Web-Seiten <html> <head><title>amalgamated WIDGET, INC.</title></head> <body><h1>welcome to AWI`s Home Page</h1> <img src="http:www http:www.widget.com/images/logo.gif widget gif" ALT="AWI AWI Logo"><br> We are so happy that you have chosen to visit <b>amalgamated Widget s</b> home page. We hope <i>you</i> will find all the information you need here. <p>below we have links to information about our many fine products. You can order electronically (by WWW), by telephone, or by FAX.</p> <hr> <h2>product information</h2> <ul> <li><a href="http://widget.com/products/big">big widgets</a> <li><a href="http://widget.com/products/little">little widgets</a> </ul> <h2>telephone numbers</h2> <ul> <li>by telephone: 1-800-WIDGETS <li>by fax: 1-415-765-4321 </ul> </body> </html> Welcome to AWI s Home Page We are so happy that you have chosen to visit Amalgamated Widget s home page. We hope you will find all the information you need here. Below we have links to inform about our many fine products. You can order electronically (by WWW), by telephone, or by FAX. Product Information Big widgets Little widgets Telephone numbers 1-800-WIDGETS 1-415-765-4321 Rechnerkommunikation, Anwendungsschicht 5

HTTP: Aufbau von Web-Seiten Häufige HTML-Tags (weiter Infos unter: http://de.selfhtml.org) <html> </html> <head> </head> Tag Description Declares the Web page to be written in HTML Delimits the page's head <title> </title> Defines the title (not displayed on the page) <body> </body> Delimits the page's body <h n> </h n> Delimits a level n heading <b> </b> Set in boldface <i> </i> <center> </center> Set in italics Center on the page horizontally <ul> </ul> Brackets an unordered ed (bulleted) list <ol> </ol> <li> <br> <p> <hr> Brackets a numbered list Starts a list item (there is no </li>) Forces a line break here Starts a paragraph Inserts a horizontal rule <img src=" "> Displays an image here <a href=" "> </a> Defines a hyperlink Rechnerkommunikation, Anwendungsschicht 6

HTTP: Dynamische Inhalte Formular Benutzer kann Daten in Browser eingeben <html> <head><title>test Anmelde formular</title></head> <body> <form method="post" action="/path/to/anmeldung" enctype="multipart/form-data"> <table border=0> <tr><td align=right>name:</td><td><input type="text" name="name" size="30"/></td></tr> <tr><td align=right>matrikelnummer:</td><td><input type="text" name="matnr" size="30"/></td></tr> <tr><td align=right>schein:</td><td><select name="schein"> <option value="kein Schein">kein Schein</option> <option value="benoteter Schein">benoteter Schein</option> <option value="unbenoteter Schein">unbenoteter Schein</option> </select></td></tr> <tr><td></td><td><input type="submit" name="absenden" value="absenden" /></td></tr> </table> </form> </body> </html> Browser liefert Typ/Wert-Paare an Server: - Mit method= get : /path/to/anmeldung?name=john+doe&matnr=0123456&schein=b enoteter+schein&absenden=absenden - Mit method= post : Parameter in der Kopfzeile von HTTP Rechnerkommunikation, Anwendungsschicht 7

HTTP: Conditional GET Ziel: Objekt nicht neu übertragen, wenn der Client aktuelle Version im Cache hat Client: übergibt das Datum der Kopie im Cache If-modified-since: <date> Server: Antwort enthält kein Objekt, wenn die Kopie im Cache aktuell ist: HTTP/1.0 304 Not Modified Häufig bei Web Caches, Proxies Client HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified d HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> Server Objekt im Cache aktuell Objekt im Cache nicht aktuell Rechnerkommunikation, Übung 2 8

HTTP: Authentifizierung Ziel: Zugriffskontrolle für Objekte auf dem Server Client Üblicher HTTP Request Server HTTP ist zustandslos, daher muss die Autorisierung in jedem Request erfolgen Autorisierung üblicherweise mittels Benutzername und Passwort Kopfzeile im Request nötig: authorization Fehlt diese Kopfzeile, sendet der Server keine Daten, sondern in einer Kopfzeile der Antwort: WWW-Authenticate Übliche Browser speichern Benutzernamen und Passwort, so dass die Daten nur einmal eingegeben werden müssen 401: Autorisierungsanfr. WWW-Authenticate: Üblicher HTTP Request Authorization: Zeile Übliche HTTP Antwort Üblicher HTTP Request Authorization: Zeile Übliche HTTP Antwort Rechnerkommunikation, Übung 2 9

HTTP: Cookies Client Ziel: HTTP eigentlich zustandslos, trotzdem Zustand für Client merken Server sendet Cookie in der Antwort an den Client Set-cookie: 1678453 Client speichert Cookie (in spezieller Datei) In weiteren Anfragen überträgt der Client das Cookie mit: cookie: 1678453 Üblicher HTTP Request Übliche HTTP Antwort + Set-cookie: # Üblicher HTTP Request + cookie: # Übliche HTTP Antwort Server Server gleicht das präsentierte Cookie mit Informationen auf dem Server ab: Authentifizierung Benutzereinstellungen, vorangegangene Auswahl (z.b. Sprache) Zielgruppengerichtete Werbung (Verfolgende Cookies: ermöglichen Servern, Informationen über den Besuch anderer Server zu erhalten) Üblicher HTTP Request + cookie: # Übliche HTTP Antwort Cookie- spezifische Aktion Cookiespezifische Aktion Rechnerkommunikation, Übung 2 10

Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP) Conditional GET Authentifizierung Cookies File Transfer Protocol (FTP) E-Mail SMTP Nachrichtenformat Zugriffsprotokolle Socket-Programmierung (UDP) Peer-to-Peer Systeme Rechnerkommunikation, Übung 2 11

FTP File Transfer Protocol Übertragung von Dateien zwischen Hosts eine TCP-Verbindung (Port 21) zur Steuerung lesbare Kommandos: USER username, PASS password, LIST, RETR filename, STOR filename, jeweils eine TCP-Verbindung (Port 20) zur Übertragung einer Datei out-of-band-control Rechnerkommunikation, Übung 2 12

FTP: Separate Steuer- und Datenverbindungen FTP- Server FTP- Client TCP Steuerverbindung Port 21 TCP Datenverbindung Port 20 FTP-Client kontaktiert FTP- Server auf Port 21 mittels TCP (Steuerverbindung) Authentifizierung über die Steuerverbindung Client kann Inhalt des entfernten Verzeichnisses über die Steuerverbindung ansehen Sobald der Server einen Befehl zur Dateiübertragung erhält, baut er mittels TCP eine Datenverbindung zum Client auf (hier: Active Mode) Nach der Dateiübertragung schließt der Server die Datenverbindung. Server öffnet weitere Datenverbindungen für weitere Datenübertragungen. g Separate Steuerverbindung: Out-of-Band FTP-Server speichert Zustandsinformationen: aktuelles Verzeichnis, vorangegangene Authentifizierung Rechnerkommunikation, Übung 2 13

FTP: Befehle und Rückgabewerte Beispiele für Befehle: als ASCII-Text über die Steuerverbindung gesendet USER username PASS password LIST liefert eine Liste von Dateien im aktuellen Verzeichnis RETR filename lädt eine Datei vom Server STOR filename speichert ih eine Datei auf dem Server Beispiele für Rückgabewerte: Statuscode und textuelle Meldung (wie bei HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file Rechnerkommunikation, Übung 2 14

FTP: Active Mode vs. Passive Mode Active Mode Passive Mode Client baut eine TCP-Verbindung Client baut eine TCP-Verbindung von einem beliebigen von einem beliebigen unprivilegierten TCP-Port N zu unprivilegierten TCP-Port N zu Port 21 des Servers auf Port 21 des Servers auf (Steuerverbindung) (Steuerverbindung) Vor Dateiübertragung sendet Vor Dateiübertragung sendet Client den Befehl Client den Befehl PORT N+1 PASV an den Server und wartet auf an den Server. Der Server TCP-Verbindungen auf Port N+1 wartet auf einem beliebigen Server baut eine TCP- unprivilegierten Port P auf Verbindung von seinem lokalen eingehende Verbindungen vom Port 20 zu Port N+1 des Clients Client und teilt dem Client im auf (Datenverbindung) Rückgabewert des Befehls diesen Port P mit. Problem: Firewall muss Verbindungen vom Server zu Client baut eine TCP-Verbindung Port N+1 zulassen von seinem lokalen Port N+1 zu Port P des Servers auf (Datenverbindung). Rechnerkommunikation, Übung 2 15

Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP) HTML Conditional GET Authentifizierung Cookies File Transfer Protocol (FTP) E-Mail SMTP Nachrichtenformat Zugriffsprotokolle Socket-Programmierung (UDP) Peer-to-Peer P Systeme Rechnerkommunikation, Übung 2 16

E-Mail Simple Mail Transfer Protocol (SMTP) Nachrichten im ASCII-Format, Kopf, Rumpf andere Daten (Word-Dateien u.ä.) werden in ASCII umgewandelt angehängt: MIME Versenden mit SMTP über TCP (lesbar) Abholen mit POP3, IMAP, HTTP (lesbar) Rechnerkommunikation, Übung 2 17

E-Mail Drei wesentliche Komponenten: Mail User Agents (MUA) Mail-Server Simple Mail Transfer Protocol: SMTP Mail User Agent Mail-Client zum Verfassen, Editieren und Lesen von Nachrichten z.b. Thunderbird, d Outlook, mutt, Evolution Ausgehende und eingehende Nachrichten auf Server gespeichert Mail- Server SMTP MUA Mail- Server MUA Mail- Server SMTP SMTP MUA Warteschlange für ausgehende Nachrichten Benutzer-Mailbox MUA MUA MUA Rechnerkommunikation, Übung 2 18

E-Mail: Mail-Server Mail-Server Client: sendender Mail-Server Server: empfangender Mail-Server Mail- Server SMTP MUA Mail- Server MUA Mail- Server SMTP SMTP MUA Warteschlange für ausgehende Nachrichten Benutzer-Mailbox MUA MUA Mailbox enthält (ungelesene) eingegangene Nachrichten für Benutzer (Briefkasten) Warteschlange für ausgehende (zu sendende) Nachrichten SMTP-Protokoll zwischen Mail- Servern zum Nachrichtenaustausch MUA Rechnerkommunikation, Übung 2 19

Weiteres zu SMTP SMTP verwendet persistente Verbindungen für SMTP müssen die Nachrichten (Header & Body) als 7-bit-ASCII-Text vorliegen Einige Zeichenketten (z.b. CRLF.CRLF) sind in Nachrichten nicht erlaubt. Daher müssen Nachrichten codiert werden (üblicherweise Base-64 oder Quoted Printable) Der SMTP-Server nutzt CRLF.CRLF zum Erkennen des Endes einer Nachricht Vergleich mit HTTP HTTP: pull (d.h. Empfänger fordert an) SMTP: push (d.h. Sender sendet unaufgefordert an Server) beide verwenden Interaktion mit ASCII-Befehlen und Antworten sowie Statuscodes HTTP: Jedes Objekt wird in einer eigenen Antwortnachricht t ht gekapselt SMTP: Mehrere Objekte einer Nachricht werden in einer so genannten Multipart-Nachricht versendet Rechnerkommunikation, Übung 2 20

Mail-Nachrichtenformat SMTP: Protokoll zum Austausch von Nachrichten RFC 822: Standard für das Nachrichtenformat: Kopfzeilen, z.b. - To: (Empfänger) - From: (Absender) Body - Subject: (Betreff) unterscheidet sich von SMTP- Befehlen! Die Nachricht selbst, reiner ASCII-Text Header Body Leer- zeile Rechnerkommunikation, Übung 2 21

Nachrichtenformat: Multimedia-Erweiterungen MIME: multimedia mail extension, RFC 2045, 2056 Zusätzliche Kopfzeilen im Nachrichtenkopf bestimmen den MIME Content Type (Art/Typ des Inhalts) From: alice@crepes.fr MIME-Version To: bob@hamburger.edu Subject: Picture of yummy crepe. Codierungsmethode MIME-Version: 1.0 für Daten Content-Transfer-Encoding: base64 Content-Type: image/jpeg Multimedia-Datentyp, Unterart, base64 encoded data... Parameterfestlegung......base64 encoded data Codierte Daten Rechnerkommunikation, Übung 2 22

MIME-Typen Content-Type: type/subtype; parameters Text Unterarten z.b.: Image plain html Unterarten, z.b.: Audio jpeg gif Unterarten t z.b.: basic (8-bit mu-law encoded) 32kadpcm (32 kbps coding) Video Unterarten z.b.: mpeg quicktime Application andere Daten, die vom Leser erst verarbeitet t werden müssen, bevor sie angezeigt werden können Unterarten z.b.: msword octet-stream Rechnerkommunikation, Übung 2 23

Multipart-Nachricht From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded d data.........base64 encoded data --98766789-- Rechnerkommunikation, Übung 2 24

Mail-Zugriffsprotokolle MUA SMTP Mail- SMTP Mail- Zugriffs- Server protokoll Server MUA Mailserver des Senders Mailserver des Empfängers SMTP: Auslieferung und Ablage der Nachrichten auf Mailserver des Empfängers Mail-Zugriffsprotokoll: Abholen der Nachrichten vom Server POP: Post Office Protocol [RFC 1939] - Autorisierung (MUA <--> Server) und Abholen IMAP: Internet Mail Access Protocol [RFC 1730] - leistungsfähiger (und komplexer) - Manipulation der auf dem Server gespeicherten Nachrichten - Verzeichnisse (Folder) etc. HTTP: GMX, Hotmail, Yahoo! Mail, etc. Rechnerkommunikation, Übung 2 25

POP3-Protokoll Autorisierungsphase Befehle des Clients: user: Benutzername pass: Paßwort Antworten des Servers +OK -ERR Transaktionsphase, Client: list: gibt Nachrichtennummern als Liste aus retr: hole Nachricht mit bestimmter Nummer ab dele: lösche Nachricht quit S: +OK POP3 server ready C: user bob b S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <Inhalt Nachricht 1> S:. C: dele 1 S: +OK message marked for delete C: retr 2 S: <Inhalt Nachricht 2> S:. C: dele 2 S: +OK message marked for delete C: quit S: +OK POP3 server signing off Rechnerkommunikation, Übung 2 26

IMAP-Protokoll IMAP4rev1 RFC 3501 seit 1996 Autorisierungsphase Befehle des Clients: Befehl ID: a001 user: mrc pass: secret Antworten des Servers Befehl ID: a001 OK LOGIN Transaktionsphase Wählen der inbox Betragen und löschen der Mail 12 Abmeldephase S: * OK IMAP4rev1 Service Ready C: a001 login mrc secret et S: a001 OK LOGIN completed C: a002 select inbox S: * 18 EXISTS S: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft) S: * 2 RECENT S: * OK [UNSEEN 17] Message 17 is the first unseen message S: * OK [UIDVALIDITY 3857529045] UIDs valid S: a002 OK [READ-WRITE] SELECT completed C: a004 fetch 12 body[header] S: * 12 FETCH (BODY[HEADER] {342} S: Date: Wed, 17 Jul 1996 02:23:25-0700 (PDT) S: From: Terry Gray <gray@cac.washington.edu> S: Subject: IMAP4rev1 WG mtg summary and minutes S: To: imap@cac.washington.edu S: cc: minutes@cnri.reston.va.us, John Klensin <KLENSIN@MIT.EDU> S: Message-Id: <B27397-0100000@cac.washington.edu> S: MIME-Version: 1.0 S: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII S: S: ) S: a004 OK FETCH completed C: a005 store 12 +flags \deleted S: * 12 FETCH (FLAGS (\Seen \Deleted)) S: a005 OK +FLAGS completed C: a006 logout S: * BYE IMAP4rev1 server terminating connection S: a006 OK LOGOUT completed Rechnerkommunikation, Übung 2 27

POP3 und IMAP POP3 vorheriges Beispiel nutzt den Download-and-Delete -Modus. Bob kann die Nachricht nicht erneut abholen und lesen, wenn er einen anderen Mailclient verwendet mit Download-and-Keep - Modus sind Kopien der Nachrichten in verschiedenen Clients möglich POP3 ist über die Sitzungen hinweg zustandslos üblicherweise TCP Port 110 IMAP behält alle Nachrichten an zentralen Stelle auf dem Server Erlaubt es, Nachrichten in Verzeichnisse (Folder) einzuordnen IMAP behält den Zustand über Sitzungen hinweg: Namen der Verzeichnisse und Abbildung zwischen den Nachrichten-IDs und dem Verzeichnisnamen üblicherweise TCP Port 143 Rechnerkommunikation, Übung 2 28

Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP) HTML Conditional GET Authentifizierung Cookies File Transfer Protocol (FTP) E-Mail SMTP Nachrichtenformat Zugriffsprotokolle Socket-Programmierung (UDP) Peer-to-Peer P Systeme Rechnerkommunikation, Übung 2 29

Socket-Programmierung mit UDP UDP: verbindungslos, d.h. kein Verbindungsaufbau zwischen Client und Server kein Handshaking Sender fügt für jedes Paket explizit Ziel-IP-Adresse und Port ein Empfänger muss die Quell-IP- Adresse und den Quellport aus dem empfangenen Paket extrahieren UDP: gesendete Daten können in falscher Reihenfolge empfangen werden ede oder verloren oe gehene Aus Sicht der Anwendung UDP bietet unzuverlässige Übertragung einer Gruppe von Bytes (Datagramme) zwischen Client und Server Rechnerkommunikation, Übung 2 30

Client-Server-Socket-Interaktion: UDP Server (auf Host hostid) erzeuge Socket, port=x, für eingehende Anforderung (Request): serversocket = DatagramSocket() Anforderung lesen aus serversocket Client Erzeuge Socket, clientsocket = DatagramSocket() Erzeugung, Adressierung hostid, port=x, sende Anfrage als Datagramm über clientsocket Antwort schreiben in serversocket unter Angabe der Client-IP-Adresse und des Ports Lesen der Antwort aus clientsocket schließe clientsocket Rechnerkommunikation, Übung 2 31

Beispiel: Java-Server (UDP) import java.io. *; import java.net.*; Erzeuge Datagramm-Socket auf Port 9876 class UDPServer { public static void main(string args[]) throws Exception { DatagramSocket serversocket = new DatagramSocket(9876); byte[] receivedata = new byte[1024]; byte[] senddata = new byte[1024]; Reserviere Speicher für empfangenes Datagramm Empfange Datagramm while(true) { DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); serversocket.receive(receivepacket); receive(receivepacket); Rechnerkommunikation, Übung 2 32

Beispiel: Java-Server (UDP) Auslesen der IP-Addr. und Portnum. des Senders int rcvlen = receivepacket.getlength(); String sentence = new String(receivePacket.getData(), 0, rcvlen); InetAddress IPAddress = receivepacket.getaddress(); int port = receivepacket.getport(); String capitalizedsentence = sentence.touppercase(); Erz. Datagramm zum Senden an Client Schreibe Datagramm in Socket } } senddata = capitalizedsentence.getbytes(); DatagramPacket sendpacket = new DatagramPacket(sendData, senddata.length, IPAddress, port); serversocket.send(sendpacket); } Ende der while-schleife, zurückspringen und auf weiteres es Datagramm amm warten Rechnerkommunikation, Übung 2 33

Beispiel: Java-Client (UDP) import java.io.*; import java.net.*; class UDPClient { public static void main(string args[]) throws Exception { Erzeuge InputStream BufferedReader d infromuser = new BufferedReader(new InputStreamReader(System.in)); Erzeuge Client-Socket DatagramSocket clientsocket = new DatagramSocket(); Übersetzung InetAddress IPAddress = InetAddress.getByName("hostname"); Hostnamen in IP- Adresse mit DNS byte[] senddata = new byte[1024]; byte[] receivedata = new byte[1024]; String sentence = infromuser.readline(); senddata = sentence.getbytes(); Rechnerkommunikation, Übung 2 34

Beispiel: Java-Client (UDP) Erzeuge Datagramm mit zu sendenden d DatagramPacket sendpacket = Daten, Länge, IPnew DatagramPacket(sendData, senddata.length, IPAddress, 9876); Addr., Port Sende Datagramm clientsocket.send(sendpacket); an Server DatagramPacket receivepacket = new DatagramPacket(receiveData, receivedata.length); Lese Datagramm clientsocket.receive(receivepacket); von Server String modifiedsentence = new String(receivePacket.getData()); } System.out.println( println("from SERVER:" + modifiedsentence); clientsocket.close(); } Rechnerkommunikation, Übung 2 35

Anwendungsschicht Das Web: Hypertext Transfer Protocol (HTTP) Conditional GET Authentifizierung Cookies File Transfer Protocol (FTP) E-Mail SMTP Nachrichtenformat Zugriffsprotokolle Socket-Programmierung (UDP) Peer-to-Peer Systeme Rechnerkommunikation, Übung 2 36

P2P Bittorrent Schwarm: Peers für gleiche e Datei, z.b. Tausende Chunks: Teile der zu verteilenden Datei, z.b. 256 KB Tracker: zentraler Server, bei dem sich Peers registrieren.torrent-datei mit Meta-Daten über zu verteilende Datei und Tracker neuer Peer A tritt Schwarm bei - A registriert sich bei Tracker und erhält IP-Adressen zufälliger anderer Peers (z.b. 50) des Schwarms - A baut TCP-Verbindung zu einigen dieser Peers auf, fragt Liste der Chunks in ihrem Besitz nach und sendet Anfragen für Chunks - Rarest First: A fragt die seltensten Chunks der Peers zuerst nach, dadurch gleichmäßige Verteilung - A misst Antwortsrate der Peers und antwortet an diese in entsprechendem Anteil der Upload-Rate - neue Nachbarn werden zufällig dazugenommen - und mehr: Hashing, Pipelining, Random First Piece, Endgame Model, Choking, Anti-Snubbing, Rechnerkommunikation, Anwendungsschicht 37

P2P Beispiel auf Web-Seite befindet sich.torrent-datei für großes SW-Image Download mit Bittorrent Client Rechnerkommunikation, Anwendungsschicht 38

P2P Anzeige der Peers: grafische Veranschaulichung: Rechnerkommunikation, Anwendungsschicht 39

P2P Anzeige der bereits heruntergeladenen Teile: Rechnerkommunikation, Anwendungsschicht 40