Kommunikationsnetze Praxis Internet Michael Rotert E-Mail: [email protected] Version 4.0 Inhalt Einführung (Teil 1) Lokale Netze (LAN) – Topologie, Komponenten – Ethernet • Punkt-zu-Punkt über Ethernet – Virtuelle LANs IPv6 (Teil 6) – Entwicklung, Geschichte – IPv6 Header – IPv6 Adressierung IPv6 Zusatzprotokolle – Konfiguration, Autokonfiguration – Fragmentierung – DHCP, ICMP Internet Ebene 3 Protokolle (Teil 2) – Definition, Geschichte – Architektur, Protokolle IPv4 (Teil3) Drahtlose und mobile Netze (Teil 8) – IPv4 Header – Fragmentierung – IPv4 Adressierung – – – – IPv4 Routing (Teil 4) – Autonome Systeme – Routing Protokolle – Internet Exchanges Zusatzprotokolle (Teil 5) Eigenschaften Adressierung/Routing mobiler Benutzer Mobilität in IPv4 Netzen WLAN/Wifi Transportschicht (Teil 9) – TCP und UDP Anwendungsschicht (Teil 10) – – – – – ARP / RARP – ICMP (ping und traceroute) – DHCP und NAT Kommunikationsnetze M.Rotert SS2015 (Teil 7) Teil 10 Grundlagen, Architekuren DNS Electronic Mail (SMTP, POP3, IMAP) P2P-Anwendungen 2 Applikationen im Internet Ebene 5 – 7 7 Application 6 Presentation 5 Session 4 Transport 3 Network 2 Data Link 1 Physical Kommunikationsnetze M.Rotert SS2015 DNS SMTP FTP Net Bios Telnet Teil 10: Anwendungsschicht Keine Protokoll Standards in TCP/IP 3 Einige Netzwerk Anwendungen • • • • • • • E-Mail Web Instant Messaging Terminalfernzugriff P2P-Filesharing Netzwerkspiele Streaming von Videoclips Kommunikationsnetze M.Rotert SS2015 • • • • Voice over IP (VoIP) Videokonferenzen Soziale Netzwerke Grid Computing Teil 10: Anwendungsschicht 2-4 Einige Netzwerk Anwendungen Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 5 Entwickeln einer Netzwerkanwendung Schreibe Programme, die – auf mehreren (verschiedenen) Endsystemen laufen – über das Netzwerk kommunizieren – Beispiel: Die Software eines Webservers kommuniziert mit dem Browser (Software) Kaum Software für das Innere des Netzwerkes – Im Inneren des Netzwerkes werden keine Anwendungen ausgeführt – Die Konzentration auf Endsysteme erlaubt eine schnelle Entwicklung und Verbreitung der Software Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 6 Verschiedene Architekturen • Client-Server – mit software-as-a-service / cloud computing (z.B. Google Data Centers) • Peer-to-Peer (P2P) • Kombination von Client-Server und P2P Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 7 Client-Server-Architektur Server: – Immer eingeschaltet – Feste IP-Adresse – Serverfarmen, um zu skalieren Clients: – Kommunizieren mit Servern – Sporadisch angeschlossen – Können dynamische IPAdressen haben – Kommunizieren nicht direkt miteinander Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 8 Reine P2P-Architektur • Keine Server • Beliebige Endsysteme kommunizieren direkt miteinander • Peers sind nur sporadisch angeschlossen und wechseln ihre IPAdresse • Beispiel: Gnutella Gut skalierbar, aber schwer zu warten und zu kontrollieren! Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 9 Kombination von Client-Server und P2P Instant Messaging – Chat zwischen zwei Benutzern: P2P – Zentralisierte Dienste: Erkennen von Anwesenheit, Zustand, Aufenthaltsort eines Anwenders • Benutzer registriert seine IP-Adresse beim Server, sobald er sich mit dem Netz verbindet • Benutzer fragt beim Server nach Informationen über seine Freunde und Bekannten Skype – P2P-Anwendung für Voice-over-IP – Zentraler Server: Adresse des Kommunikationspartners finden – Verbindung zwischen Clients: direkt (nicht über einen Server) Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 10 Basis: Kommunizierende Prozesse Prozess: Programm, welches auf einem Host läuft • Innerhalb eines Hosts können zwei Prozesse mit InterProzess-Kommunikation Daten austauschen (durch das Betriebssystem unterstützt) • Prozesse auf verschiedenen Hosts kommunizieren, indem sie Nachrichten über ein Netzwerk austauschen Client-Prozess: Prozess, der die Kommunikation beginnt Server-Prozess: Prozess, der darauf wartet, kontaktiert zu werden ❒ Anmerkung: Anwendungen mit einer P2P-Architektur haben Clientund Server-Prozesse Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 11 Anwendungsprotokolle bestimmen … • Arten von Nachrichten – z.B. Request, Response • Syntax der Nachrichten – Welche Felder sind vorhanden und wie werden diese voneinander getrennt? • Semantik der Nachrichten – Bedeutung der Informationen in den Feldern • Regeln für das Senden von und Antworten auf Nachrichten Kommunikationsnetze M.Rotert SS2015 „Öffentlich verfügbare „Protokolle: • Definiert in RFCs • Ermöglichen Interoperabilität • z.B. HTTP, SMTP, BitTorrent Proprietäre Protokolle: • z.B. Skype, PPStream Teil 10: Anwendungsschicht 12 Wahl des Transportdienstes Datenverlust Bandbreite • Einige Anwendungen können Datenverlust tolerieren • Einige Anwendungen (z.B. (z.B. Audioübertragungen) Multimedia-Streaming) brauchen • Andere Anwendungen benötigen eine Mindest-bandbreite, um zu einen absolut zuverlässigen funktionieren Datentransfer (z.B. Dateitransfer) • Andere Anwendungen verwenden Zeitanforderungen • Einige Anwendungen (z.B. Internet-Telefonie oder Netzwerk-Spiele) tolerieren nur eine sehr geringe Verzögerung Kommunikationsnetze M.Rotert SS2015 einfach die verfügbare Bandbreite (bandbreitenelastische Anwendungen) Teil 10: Anwendungsschicht 13 Beispiele für Anforderungen von Anwendungen Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 14 Beispiele aus dem Internet Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 15 DNS: Domain Name System Menschen: verschiedene Identifikationsmechanismen – Name, Ausweisnummer Internet-Hosts, Router: – IP-Adresse (32 Bit) – für die Adressierung in Paketen – “Name”, z.B., www.yahoo.com – von Menschen verwendet Frage: Wie findet die Abbildung zwischen IP-Adressen und Namen statt? • Kommunikationsnetze M.Rotert SS2015 Domain Name System: • Verteilte Datenbank, implementiert eine Hierarchie von Nameservern • Protokoll der Anwendungsschicht, wird von Hosts verwendet, um Namen aufzulösen (Abbildung zwischen Adresse und Name) – zentrale Internetfunktion, implementiert als Protokoll der Anwendungsschicht – Grund: Komplexität nur am Rand des Netzwerkes! Teil 10: Anwendungsschicht 16 DNS Zeitlinie 1971: RFC 226 schlägt vor, IPs Namen zuzuordnen. 1981: RFC 799 schlägt das Konzept der Name Domains vor (über 400 Nicknames in HOSTS.TXT). 1982: RFC 819 führt fully qualified domain names ein. Der Dienst name service wird vorgeschlagen. Pro Domain soll ein name server installiert werden, der Namen zu IP-Adressen umsetzt. 1983: MILNET und ARPANET werden gespalten. RFC 881 schlägt einen Zeitplan für die Umstellung auf Domains vor. Die Rechner im ARPANET erhalten provisorisch .ARPA als Domain, die neue Tabelle heißt DHOSTS.TXT. 1984: DHOSTS.TXT heißt jetzt HOSTS.TXT Zustand vor DNS Alle Rechner hatten /etc/hosts-Dateien, in denen zu IPs der Hostname und die Dienste standen. Zentrale Verwaltung, die Dateien wurden manuell synchronisiert. Konzept: Domain Name System Ziel: Einführung eines hierarchischen Namensraumes. Zweck: Abbildung von Hosts auf IPs und zurück, aber auch von Diensten Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 17 DNS DNS-Dienste • • Übersetzung von Hostnamen in IPAdressen Aliasnamen für Hosts – Kanonische Namen und Aliasnamen • • Aliasnamen für Mailserver Lastausgleich – Replizierte Webserver: mehrere IPAdressen von einem kanonischen Namen Warum ist DNS nicht zentralisiert? • Robustheit gegenüber Fehlern und Angriffen • Datenverkehrsaufkommen • Große „Distanz“ zur zentralisierten Datenbank • Wartung DESIGNKRITERIEN • • • Anfallende Datenmenge annähernd proportional zur Anzahl der Nutzer. Kleine Änderungsrate der Daten. Zugriff auf Informationen und ihre Verfügbarkeit wichtiger als globale Konsistenz. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 18 Name und Directory Services Der Domain Name Space beginnt an einer gemeinsamen Wurzel und gliedert sich immer feiner auf. Com. edu. de. HS-Karlsruhe RZ fr. it. eco tst Informatik www Kommunikationsnetze M.Rotert SS2015 net. Germany speedtest ns ns Teil 10: Anwendungsschicht 19 Domain Names Notationsregeln: Punkte zwischen den Domainstufen (nodes) Hinweis: Kein Bezug zu IP-Netzgrenzen aufgrund der IP-Adressierung notwendig. Aufbau: Host subdomain domain topleveldomain sonst: host.subdomain (ohne Punkt am Ende) Gesamtlänge < 256 Zeichen (max. 255 Zeichen) Domainname < 64 Zeichen Groß-/Kleinschreibung irrelevant 7 Bit Zeichensatz (a-z, 0-9 und „-“) aber auch IDNs Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 20 DNS: Root-Nameserver • • Wird vom lokalen Nameserver kontaktiert, wenn dieser einen Namen nicht auflösen kann Root-Nameserver: – Kennt die Adressen der Nameserver der Top-Level-Domains (com, net, org, de, uk, …) – Gibt diese Informationen an die lokalen Nameserver weiter 13 RootNameserver weltweit Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 21 TLD- und Autoritative Server • Top-Level-Domain (TLD)-Server: – Verantwortlich für com, org, net, edu etc. sowie für alle LänderDomains, z.B. de, uk, fr, ca, jp – Verisign ist verantwortlich für den com-TLD-Server – Educause hat die Verantwortung für den edu-TLD-Server • Autoritativer DNS-Server: – DNS-Server einer Organisation, der eine autorisierte Abbildung der Namen dieser Organisation auf IP-Adressen anbietet – Verwaltet von der entsprechenden Organisation oder einem Service Provider Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 22 Name und Directory Services • • • • • • Abbildung Rechnername <--> IP-Adresse Vergabe von Alias-Namen (z.b. ftp.xlink.net) Mail-Exchange-Records Verkettung von Nameservern Caching, Aktualität, etc. Hostinfo, Kontaktadresse, etc. query application resolver local Authoritative name Name server response server Beispiel: DNS-Einträge für xlink2.xlink.net xlink2 IN A 1 93.141.40.2 IN HINFO Linux ; Adresse ; Host.Info IN MX 100 relay1.xlink.net. ; Mail-Exchanger IN MX 200 relay.xlink.net ; Mail-Exchanger Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 23 Name und Directory Services User Program user queries user responses queries Resolver responses cache Nach RFC 1123 muss ein Resolver für TCP/IP im Internet implementiert sein. Einfache Aktivierung eines Resolvers durch Eintrag in Datei, wer der NameServer-Rechner ist. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 24 Alternativen: Namensauflösung mit DNS • Host cis.poly.edu fragt nach der IP-Adresse von gaia.cs.umass.edu Iteratives Vorgehen: ❒ Angesprochene Server in der Hierarchie antwor-ten mit einem Verweis auf andere Server ❒ “Ich kenne den Namen nicht, frag’ diesen Server …” Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 25 Alternativen: Namensauflösung mit DNS Rekursives Vorgehen: ❒ Die Aufgabe zur Namensauflösung wird an den gefragten Nameserver delegiert ❒ Zusätzliche Belastung! ❒ Root-Nameserver erlauben dies häufig nicht ❒ Andere Nameserver dagegen schon! ❒ Vorteil: Caching der Antworten Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 26 DNS - nslookup >nslookup -q=mx hs-karlsruhe.de Server: dns1.versatel.de Address: 62.72.64.237 Nicht autorisierte Antwort: fh-karlsruhe.de MX preference = 9, mail exchanger = rz06.HSKarlsruhe.de >nslookup -q=ns fh-karlsruhe.de Server: dns1.versatel.de Address: 62.72.64.237 Nicht autorisierte Antwort: hs-karlsruhe.de nameserver = rz01.HS-Karlsruhe.de hs-karlsruhe.de nameserver = iraun1.ira.uni-karlsruhe.de hs-karlsruhe.de nameserver = dns1.BelWue.de hs-karlsruhe.de nameserver = dns3.BelWue.de > Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 27 DNS: Caching • Sobald ein Nameserver eine Abbildung zur Namensauflösung kennenlernt, merkt er sich diesen in einem Cache – Die Einträge im Cache werden nach einer vorgegebenen Zeit wieder gelöscht – Die Adressen der TLD-Server werden üblicherweise von den lokalen Nameservern gecacht • Root-Nameserver werden eher selten angesprochen • Mechanismen zur Pflege von Cache-Einträgen und zur Benachrichtigung bei Änderungen werden derzeit von der IETF entwickelt – RFC 2136 – http://www.ietf.org/html.charters/dnsind-charter.html Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 28 DNS Resource Records DNS: Verteilte Datenbank für Resource Records (RR) RR-Format: (name, • Typ=A – – value, typ, ttl) • Type=CNAME name ist der Hostname value ist die IP-Adresse – name ist ein Alias für einen kanonischen (echten) Namen: – • Typ=NS – – name ist eine Domain (z.B. foo.com) value ist der Hostname des autoritativen Nameservers für diese Domain Kommunikationsnetze M.Rotert SS2015 – www.ibm.com ist ein Alias für servereast.backup2.ibm.com value ist der kanonische Name • Type=MX – Teil 10: Anwendungsschicht value ist der Name des Mailservers für die Domain name 29 DNS Record: NS Wichtigster Eintrag im DNS ist der NS-Eintrag, der auf andere Nameserver verweist. Mit ihm drückt man explizite Delegation aus. Attribute: Rechnername. $ORIGIN domain.com. @ 17h36m4s IN NS bindsucks 17h36m4s IN A bindsucks 10.1.2.3 Subdomains Subdomains werden auch über NS-Records gemacht. $ORIGIN domain.com. sub 1D IN NS bind.sub 1D IN A Kommunikationsnetze M.Rotert SS2015 bind.sub 10.4.5.6 Teil 10: Anwendungsschicht 30 DNS DNSSEC RFC 2535 definiert die Record-Typen KEY, SIG und NXT (”next“). KEY speichert öffentliche Schlüssel. SIG speichert digitale Signaturen. NXT verweist (zirkulär) auf den nächsten Key. So kann man von einem Angreifer eingefügte Records erkennen. Leider kann man so auch einen Zonentransfer ohne AXFR machen (Sicherheitsproblem). Als Public Key Verfahren ist DSA Pflicht, RSA/MD5 wird empfohlen. Das Problem von DNSSEC DNSSEC ist nur nützlich, wenn die Registries es benutzen und die Domains damit digital signieren. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 31 DNS Primary und Secondary Das DNS Protokoll unterscheidet nicht zwischen Primary und Secondary. Die meisten Registries verlangen zwei DNS-Server (weil BIND so unzuverlässig ist). Antworten des Primary sind nicht ”wertvoller“ als Antworten des Secondary. Es ist nicht einmal definiert, welcher Nameserver zuerst oder überhaupt befragt werden soll. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 32 Reverse DNS Suche Name von 192.128.52.43 Eine Domain, über die wenig gesprochen wird, die aber mindestens genauso wichtig wie alle anderen ist, ist in-addr.arpa. Sie ist wie die »normalen« Domains aufgebaut und erlaubt es, den Rechnernamen herauszufinden, wenn nur die IP-Adresse bekannt ist. Eine wichtige Eigenheit muss man allerdings kennen: Die IP-Adressen werden in der in-addr.arpa-Domain verkehrt herum aufgelistet. Wenn man die IP-Adresse 192.128.52.43 hat, arbeitete named genauso wie im prep.ai.mit.edu-Beispiel: Suche den arpa.-Server und dann nach in-addr.arpa.-Servern, 192.in-addr.arpa.-Servern, 128.192.in-addr.arpa.-Servern und nach 52.128.192.in-addr.arpa. Servern. Letztendlich findet er dann die Einträge für 43.52.128.192.in-addr.arpa. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 33 IPv6 und DNS Das IPv6 Desaster: AAAA Records 1. Ansatz: AAAA Record. foo IN AAAA fe80::260:67ff:fe33:d15b Reverse Lookup über b.5.1.d.3.3.e.f.f.f.7.6.0.6.2.0.0.0.0.0.0.0.0.0.0.\0.0.0.j.8.e.f.ip6.int IN PTR foo.domain.com. Problem: Reverse Lookups dauern sehr lange. Das IPv6-Desaster: Bitstrings 2. Ansatz: Bitstrings. Die Hoffnung war, dass damit auch das CIDR Problem verbessert wird. $ORIGIN \[x3ffe805002011860/64].ip6.arpa.\ [x0042000000000001/64] IN PTR host.domain.com. Syntax extrem gewöhnungsbedürftig! Man beachte die neue Domain ”ip6.arpa“. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 34 Neue Einträge in DNS einfügen • Beispiel: neues Startup “Network Utopia” • Registrieren des Namens networkuptopia.com bei einem DNS-Registrar (z.B. Network Solutions) – Bereitstellen der Namen und der IP-Adressen der autoritativen Server (Primary und Secondary) – Registrar trägt zwei RRs beim TLD-Server für com ein: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) • Wie könnte der Typ-A-RR für www.networkuptopia.com aussehen? Wie der Typ-MX-RR für networkutopia.com? • Wie erfährt man die IP-Adresse Ihrer Webseite? Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 35 Electronic Mail Drei Hauptbestandteile: • Anwendungsprogramm • Mailserver • Übertragungprotokoll: SMTP (Simple Mail Transfer Protocol) Anwendungsprogramm: • Auch “Mail Reader” • Erstellen, Editieren, Lesen von EMail-Nachrichten • z.B. Eudora, Outlook, elm, Mozilla Thunderbird • Eingehende und ausgehende Nachrichten werden auf dem Server gespeichert Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 36 Electronic Mail: Mailserver Mailserver • Die Mailbox enthält die eingehenden Nachrichten eines Benutzers • Die Warteschlange für ausgehende Nachrichten ent-hält die noch zu sendenden E-Mail-Nachrichten • SMTP wird verwendet, um Nachrichten zwischen Mailservern auszutauschen – Client: sendender Mailserver – Server: empfangender Mailserver Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 37 Electronic Mail: SMTP [RFC 2821] • Ursprüngliche Version aus dem Jahr 1982 • TCP wird zum zuverlässigen Transport von E-Mail-Nachrichten vom Client zum Server (Port 25) verwendet • Direkter Transport der Nachrichten: vom sendenden Server zum empfangenden Server • Drei Phasen des Mail-Versands: analog zu einer Unterhaltung – Handshaking (Begrüßung) – Transfer of Messages (Austausch von Informationen) – Closure (Verabschiedung) • Interaktion basiert auf dem Austausch von Befehlen (Commands) und Antworten (Responses) – Command: ASCII-Text – Response: Statuscode und Bezeichnung • Nachrichten müssen in 7-Bit-ASCII kodiert sein Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 38 Electronic Mail Mail-Transport Simple Mail Transport Prot. ist in RFC821 spezifiziert. Beispiel: open Port 25 auf Internetadresse x.y.z.v 220 mailx Server SMTP (Complaints/bugs to: [email protected]) HELO 250 mailx - you are a charlatan Help 214 - The following commands are accepted: 214 - helo noop mail data rcpt help quit rset expn vrfy 214 – 214 Send complaints/bugs to: [email protected] mail from: rotert 250 OK rcpt to: root 250 Recipient OK. data 354 Enter Mail, end by a line with only „•“ Dies ist ein smtp dialog !!! • 250 Submited & immediates started (msg.aa12732) quit 221mailx says goodbye to x.dpn.com at Mon May 12 09:41:17 Security! telnet host 25 (Port) Security! Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 39 SMTP: Zusammenfassung Vergleich mit HTTP: • SMTP verwendet eine dauerhafte Verbindung für den Versand von E-Mails • • HTTP: Pull • SMTP: Push • SMTP verwendet sowohl für Header als auch für Daten 7-Bit-ASCII • Beide interagieren mittels ASCIIBefehl/Antwort-Paaren sowie Statuscodes • Ein SMTP-Server verwendet CRLF.CRLF, um das Ende einer Nachricht zu signalisieren • HTTP: Jedes Objekt ist in einer eigenen Antwortnachricht gekapselt • SMTP: Mehrere Objekte können in einer Nachricht (multipart msg) versendet werden Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 40 Format einer E-Mail-Nachricht SMTP: Protokoll für den Austausch von E-Mail-Nachrichten RFC 822: Standard für Textnachrichten: • Header-Zeilen, z.B. – To: – From: – Subject: Keine SMTP-Befehle! Header Leerzeile Body • Body – Die eigentliche Nachricht in ASCII Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 41 Nachrichtenformat: Multimedia-Erweiterung • MIME: Multimedia Mail Extension, RFC 2045, 2056 • Zusätzliche Zeilen im Header deklarieren den MIME-Typ des Inhaltes MIME-Version Methode, die zum Kodieren der Daten verwendet wurde Deklaration der Datentypen und Untertypen From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data Codierte (Multimedia-)Daten Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 42 Datentypen in MIME Text Beispiele für Subtypen: • plain • html Bilder Beispiele für Subtypen: • jpeg • gif • png Audio Beispiele für Subtypen: • basic (8-bit mu-law encoded), • 32kadpcm (32 kbps coding) Kommunikationsnetze M.Rotert SS2015 Video Beispiele für Subtypen: • mpeg • quicktime Anwendungen • Daten müssen von der Anwendung vor der Wiedergabe interpretiert werden • Beispiele für Subtypen: msword, octet-stream Teil 10: Anwendungsschicht 43 Multipart-Typ From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=StartOfNextPart --StartOfNextPart Dear Bob, Please find a picture of a crepe. --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPart Do you want the recipie? Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 44 Mail-Zugriffsprotokolle • SMTP: Zustellung/Speicherung auf dem Mailserver des Empfängers • Zugriffsprotokoll: Protokolle zum Zugriff auf E-Mails • Abruf vom Server – POP3: Post Office Protocol [RFC 1939] • Autorisierung (Anwendung <--> Server) und Zugriff/Download – IMAP4: Internet Mail Access Protocol [RFC 1730] • Größere Funktionalität (deutlich komplexer) • Manipulation der auf dem Server gespeicherten Nachrichten – HTTP: Hotmail, Yahoo!Mail etc. Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 45 POP3-Protokoll • Autorisierungsphase: • Befehle des Clients: - user: Benutzername - pass: Passwort • Antworten des Servers: - +OK - -ERR • • • • • Transaktionsphase: list: Nachrichten auflisten retr: Nachrichten herunterladen dele: Löschen von Nachrichten Quit: Ende Kommunikationsnetze M.Rotert SS2015 S: C: S: C: S: +OK POP3 server ready user bob +OK pass hungry +OK user successfully logged C: S: S: S: C: S: S: C: C: S: S: C: C: S: list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off Teil 10: Anwendungsschicht on 46 POP3 und IMAP4 Mehr zu POP3 • Vorheriges Beispiel nutzte den “Download-and-Delete”Modus, d.h., andere E-MailClients haben danach keine Möglichkeit mehr, die Mails zu lesen • Der “Download-and-Keep”Modus ermöglicht den reinen Lesezugriff auf Nach-richten, d.h., verschiedene Clients haben Zugriff • POP3 ist zustandslos zwischen einzelnen Sitzungen Kommunikationsnetze M.Rotert SS2015 IMAP4 • Alle Nachrichten bleiben an einem Ort: auf dem Server • Nachrichten können auf dem Server in Ordnern verwaltet werden • IMAP bewahrt den Zustand zwischen einzelnen Sitzungen: – Namen von Ordnern und Zuordnung von Nachrichtennummer und Ordnername bleiben erhalten Teil 10: Anwendungsschicht 47 Zahlen und Fakten zu Mail Deutschland: ca. 400 Mrd. Emails/Jahr, im Vergleich dagegen SMS: 60 Mrd./Jahr Weltweit: ca. 150 Mrd./Tag, im Vergleich dagegen Whatsapp: über 40 Mrd./Tag ca. 75% des E-Mailaufkommens sind private Mails Privat zu Privat sinkt um 4% zu Gunsten von Short Message Systemen Business Mail wächst um 7-10% Bis 2015 wird bei mobilen E-Mail Nutzern Wachstum von 25%/Jahr erwartet! Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 48 E-Mail SPAM SPAM (Monty Python Sketch Eier und Spam, Spam,Spam…… taucht 132-mal auf lt. Wikipedia) Spam = Spiced Ham (gewürzter Schinken) Mail: Weltweiter Spam immer noch über 60%, abnehmend, DE: 80% Tendenz zunehmend (je nach Quelle) Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 49 E-Mail - Schlussbemerkung Bis heute keine „Mailkultur“ Adressen: Name.Vorname, Initialen etc. etc. , Form: Anrede, Grußformel etc., CC Verteiler an jeden, Verteilerlisten offen (nicht im BCC) Empfangsquittung, Lesequittung, Anruf, ob Mail angekommen?! E-Mail entspricht heute noch in den meisten Fällen dem Standard einer Postkarte! Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 50 P2P: Zentrales Verzeichnis Ursprüngliches “Napster”Design 1) Wenn sich ein Peer verbindet, übermittelt er zum zentralen Server: – IP-Adresse – verfügbarer Inhalt 2) Alice fragt nach “Hey Jude” 3) Alice fordert die Datei von Bob an Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 51 Zentrales Verzeichnis: Probleme • Single Point of Failure, d.h., es gibt eine zentrale Instanz, die nur einmal vorhanden ist: der Server mit dem Verzeichnis! Der Dateitransfer erfolgt dezentral, aber die Suche nach dem Inhalt ist hochgradig zentralisiert • Leistungsfähigkeit ist durch die Ressourcen des Servers beschränkt • Lässt sich leicht “abschalten” Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 52 Hierarchische Overlays • Ansatz zwischen zentralem Index und dem Fluten von Anfragen • Jeder Peer ist entweder selbst ein „Super-Peer“ oder einem anderen Super-Peer zugeordnet – TCP-Verbindung zwischen Peer und seinem Super-Peer – TCP-Verbindungen zwischen einigen Super-Peers • Super-Peers kennen die Dateien, welche von ihren Peers angeboten werden Peer Super Peer Nachbarschaft im Overlay Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 53 Beispiel: Skype • P2P-Voice-over-IP-Anwendung (VoIP) Skype-Clients (SC) – auch Instant Messaging (IM) • • Kein veröffentlichtes Anwendungsprotokoll (Informationen via Reverse Engineering) SkypeLogin-Server Hierarchisches Overlay Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht Supernode (SN) 54 Skype: Ruf absetzen • Benutzer startet Skype • SC registriert sich bei einem SN • • SkypeLogin-Server Liste v. Bootstrap-SNs SC loggt sich ein (Authentifikation) • Ruf: SC sendet die ID des Ziels an den SN • • SN kontaktiert andere SNs (unbekanntes Protokoll), um die Adresse des Ziels zu finden und an den SC zu senden SC kontaktiert das Ziel direkt über TCP Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 55 Letzte Folie Viel Erfolg bei allen anstehenden Prüfungen! Kommunikationsnetze M.Rotert SS2015 Teil 10: Anwendungsschicht 56