Was sind Webanwendungen?
E-Mail
Web
Instant Messaging
Terminalfernzugriff
P2P-FilesharingNetzwerkspiele
Streaming von Videoclips
Voice over IP (VoIP)
Videokonferenzen
Grid Computing
Was ist ein Prozess?
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 Client- und Server-Prozesse
Was sind Begriffe der Verzeichnisdienste bei der Dateiverwaltung?
Eigenschaften
Dateiname
Dateityp
Besitzer
Attribute bzw. Zugriffsrechte
Dateigröße
Erstellungs- bzw. Änderungsdatum und
Verweise auf die Datenblock oder eine Verwaltungsstruktur
Was sind die Protokollstapel des Internets?
Anwendungsschicht:
Unterstützung von Netzwerkanwendungen
FTP
SMTP
HTTP
Transportschicht:
Datentransfer zwischen Prozessen
TCP
UDP
Netzwerkschicht (auch Vermittlungsschicht):
Weiterleiten der Daten von einem Sender zu einem Empfänger
IP
Routing-Protokolle
Sicherungsschicht:
Datentransfer zwischen benachbarten Netzwerksystemen
PPP
Ethernet
Bitübertragungsschicht:
Bits auf der Leitung
Was sind Sockets?
Prozesse senden/empfangen Nachrichten über einen Socket
Ein Socket lässt sich mit einer Tür vergleichen
Der sendende Prozess schiebt die Nachrichten durch die Tür
Der sendende Prozess verlässt sich auf die Transportinfrastruktur auf der anderen Seite der Tür, um die Nachricht zum Socket des empfangenden Prozesses zu bringen
API:
Wahl des Transportprotokolls
Einstellen einiger Parameter
Wie weden Prozesse adressiert?
Um eine Nachricht empfangen zu können, muss ein Prozess identifiziert werden können
Ein Host besitzt eine eindeutige, 32 Bit lange IP-Adresse
viele Prozesse können auf demselben Host laufen!
-> Prozesse werden durch eine IP-Adresse UND eine Portnummer identifiziert!
Beispiel-Portnummern:
HTTP-Server: 80
E-Mail-Server: 25
Um an den Webserver gaia.cs.umass.edu eine HTTP-Nachricht zu schicken:
IP-Adresse: 128.119.245.12
Portnummer: 80
Welche 3 Aspekte sind bei der Wahl des Transportdienstes wichtig?
Datenverlust:
Einige Anwendungen können Datenverlust tolerieren (z.B. Audioübertragungen)
Andere Anwendungen benötigen einen absolut zuverlässigen Datentransfer (z.B. Dateitransfer)
Zeitanforderungen:
Einige Anwendungen (z.B. Internettelefonie oder Netzwerkspiele) tolerieren nur eine sehr geringe Verzögerung
Bandbreite:
Einige Anwendungen (z.B. Multimedia-Streaming) brauchen eine Mindestbandbreite, um zu funktionieren
Andere Anwendungen verwenden einfach die verfügbare Bandbreite (bandbreitenelastische Anwendungen)
Was sind Beispiele für Anforderungen von Anwendungen?
Was sind TCP-Dienste und UDP-Dienste?
TCP-Dienste:
Verbindungsorientierung:
Herstellen einer Verbindung zwischen Client und Server
Zuverlässiger Transport:
zwischen sendendem und empfangendem Prozess
Flusskontrolle:
Sender überlastet den Empfänger nicht
Überlastkontrolle:
Bremsen des Senders, wenn das Netzwerk überlastet ist
Nicht:
Zeit- und Bandbreitengarantien
UDP-Dienste:
Unzuverlässiger Transport von Daten zwischen Sender und Empfänger
Nicht: Verbindungsorientierung, Zuverlässigkeit, Flusskontrolle, Überlastkontrolle, Zeit- oder Bandbreitengarantien
Woraus besteht eine Website?
Eine Webseite besteht aus Objekten
Objekte können sein:
HTML-Dateien,
JPEG-Bilder,
Audiodateien, …
Eine Webseite hat eine Basis-HTML-Datei, die mehrere referenzierte Objekte beinhalten kann
Jedes Objekt kann durch eine URL (Uniform Resource Locator) adressiert werden
Was ist eine URL?
Angabe eines weltweit eindeutigen Ablageortes eines Dokumentes (Bild, Text-Seite, Video, ...) mit Hilfe folgender Konstruktion:
genutztes Internet-Protokoll
angesprochener Server
Port (muß über den dem Protokoll entsprechenden DefaultPort laufen, wenn keine Angabe gemacht wird)
Datenpfad am Server
Was ist der Aufbau und was sind die Eigenschaften von HTTP?
HTTP (HyperText Transfer Protocol)
Anwendungsprotokoll des Web
Client/Server-Modell
Client: Browser, der Objekte anfragt, erhält und anzeigt
Server: Webserver verschickt Objekte auf Anfrage
Verwendet TCP
Client baut mit der Socket-API eine TCP-Verbindung zum Server auf
Server wartet auf Port 80
Server nimmt die TCPVerbindung des Clients an
HTTP-Nachrichten (Protokollnachrichten der Anwendungsschicht) werden zwischen Browser (HTTPClient) und Webserver (HTTPServer) ausgetauscht
Die TCP-Verbindung wird geschlossen
HTTP ist “zustandslos”
Server merkt sich keine Informationen über frühere Anfragen von Clients
Was ist Nichtpersistentes und Persistentes HTTP?
Nichtpersistentes HTTP
Maximal ein Objekt wird über eine TCP-Verbindung übertragen
HTTP/1.0 verwendet nichtpersistentes HTTP
Persistentes HTTP
Mehrere Objekte können über eine TCP-Verbindung übertragen werden
HTTP/1.1 verwendet standardmäßig persistentes HTTP
Welche Typen von Anweisungen gibt es?
HTTP/1.0
GET
POST
HEAD
Bittet den Server, nur die Kopfzeilen der Antwort (und nicht das Objekt) zu übertragen
HTTP/1.1
PUT
Lädt die im Datenteil enthaltene Datei an, die durch eine URL bezeichnete Position hoch
DELETE
Löscht die durch eine URL angegebene Datei auf dem Server
Wie werden Informationen hochgeladen?
Post-Anweisung:
Webseiten beinhalten häufig Formulare, in denen Eingaben erfolgen sollen
Eingaben werden zum Server im Datenteil (entity body) der Post-Anweisung übertragen
Get-Anweisung:
Eingabe wird als Bestandteil der URL übertragen
Wie nutzen Websites Cookies (4 Bestandteile)?
Vier Bestandteile:
Cookie-Kopfzeile in der HTTP-Response-Nachricht
Cookie-Kopfzeile in der HTTP-Request-Nachricht
Cookie-Datei, die auf dem Rechner des Anwenders angelegt und vom Browser verwaltet wird
Backend-Datenbank auf dem Webserver
Einsatz von Cookies:
Autorisierung
Einkaufswagen
Empfehlungen
Sitzungszustand (z.B. bei Web-E-Mail)
Cookies und Privatsphäre:
Cookies ermöglichen es Websites, viel über den Anwender zu lernen:
Formulareingaben (Name, E-MailAdresse)
Besuchte Seiten
Alternativen, um Zustand zu halten:
In den Endsystemen:
Zustand wird im Protokoll auf dem Client oder Server gespeichert und für mehrere Transaktionen verwendet
Cookies: HTTP-Nachrichten beinhalten den Zustand
Was ist Web-Caches (Proxyserver)?
Ziel:
Anfragen des Clients ohne den ursprünglichen Webserver beantworten
Benutzer konfiguriert Browser:
Webzugriff über einen Cache
Browser sendet alle HTTP-Requests an den Cache
Objekt im Cache: Cache gibt Objekt zurück
Sonst: Cache fragt das Objekt vom ursprünglichen Server an und gibt es dann an den Client zurück
Was ist das File Transfer Protocol (FTP)?
Übertragen einer Datei von/zu einem entfernten Rechner
-> ein Kontroll- und ein Datenverbindungskanal
Client: Seite, die den Transfer initiiert (vom oder zum entfernten Rechner)
Server: entfernter Rechner
FTP: RFC 959
FTP-Server: TCP Port 21
FTP Kanäle:
FTP-Client kontaktiert den FTPServer auf Port 21, wobei er TCP als Transportprotokoll nutzt
Client autorisiert sich über die Kontrollverbindung
Client betrachtet das entfernte Verzeichnis, indem er Kommandos über die Kontrollverbindung schickt
Empfängt der Server ein Kommando für eine Dateiüber-tragung, öffnet der Server eine TCP-Datenverbindung zum Client
Nach der Übertragung einer Datei schließt der Server die Verbindung
Server öffnet eine zweite TCP-Datenverbindung, um noch eine Datei zu übertragen
Kontrollverbindung: “out of band”
FTP Server hält „Statusinformationen“ vor:
aktuelles Verzeichnis, frühere Authentifizierung
Was ist Aktives und Passives FTP?
Aktives FTP:
Client öffnet einen zufälligen Port oberhalb 1023, teilt diesen und seine IP-Adresse dem Server mit.
Die Datenübertragung erfolgt beim Server über Port 20.
Die Kommunikation und Befehle über Port 21.
Passives FTP:
Client sendet ein PASVSignal an den Server
Server öffnet einen Port und übermittelt diesen mitsamt der IP-Adresse.
Der Client öffnet einen zufälligen Port und sendet auf den vom Server zugesandten IP-Adresse und Port.
-> Passives FTP, wenn der Server keine Verbindung zum Client aufbauen kann:
Client sitzt hinter einem Router, der NAT betreibt
Firewall schirmt das Netz von außen ab.
Was sind die 3 Hauptbestandteile von Electronic Mail?
Electronic Mail:
Anwendungsprogramm
Auch “Mail Reader”
Erstellen, Editieren, Lesen von E-Mail-Nachrichten
z.B. Eudora, Outlook, elm, Mozilla Thunderbird
Eingehende und ausgehende Nachrichten werden auf dem Server gespeichert
Mailserver
Die Mailbox enthält die eingehenden Nachrichten eines Benutzers
Die Warteschlange für ausgehende Nachrichten enthält die noch zu sendenden E-Mail-Nachrichten
SMTP wird verwendet, um Nachrichten zwischen Mailservern auszutauschen
Client: sendender Mailserver
Server: empfangender Mailserver
Übertragungprotokoll: SMTP (Simple Mail Transfer Protocol)
SMTP verwendet eine dauerhafte Verbindung für den Versand von E-Mails
SMTP verwendet sowohl für Header als auch für Daten 7-Bit-ASCII
Ein SMTP-Server verwendet CRLF.CRLF, um das Ende einer Nachricht zu signalisieren
Wie unterscheiden sich SMTP und HTTP?
HTTP: Pull
SMTP: Push
Beide interagieren mittels ASCII-Befehl/AntwortPaaren sowie Statuscodes
HTTP: Jedes Objekt ist in einer eigenen Antwortnachricht gekapselt
SMTP: Mehrere Objekte können in einer Nachricht (multipart msg) versendet werden
Was sind die Datentypen in MIME (mit jeweiligem Subtypen Beispiel)?
Text
plain
html
Bilder
jpeg
gif
png
Audio
basic (8-bit mu-law encoded)
32kadpcm (32 kbps coding)
Video
mpeg
quicktime
Anwendungen
Daten müssen von der Anwendung vor der Wiedergabe interpretiert werden
msword
octet-stream
Welche Mail-Zugriffsprotokolle gibt es?
SMTP: Zustellung/Speicherung auf dem Mailserver des Empfängers
Zugriffsprotokoll: Protokolle zum Zugriff auf E-Mails
Abruf vom Server
POP: Post Office Protocol [RFC 1939]
Autorisierung (Anwendung <--> Server) und Zugriff/Download
IMAP: Internet Mail Access Protocol [RFC 1730]
Größere Funktionalität (deutlich komplexer)
Manipulation der auf dem Server gespeicherten Nachrichten
HTTP: Hotmail, Yahoo!Mail etc.
Was ist DNS?
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
Domain Name System (DNS):
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!
Was sind DNS-Dienste?
DNS-Dienste
Übersetzung von Hostnamen in IP-Adressen
Aliasnamen für Hosts
Kanonische Namen und Aliasnamen
Aliasnamen für Mailserver
Lastausgleich
Replizierte Webserver:
mehrere IP-Adressen von einem kanonischen Namen
Warum ist DNS nicht zentralisiert?
Robustheit gegenüber Fehlern und Angriffen
Datenverkehrsaufkommen
Große „Distanz“ zur zentralisierten Datenbank
Wartung
-> Skaliert nicht!
Was ist eine Verteilte hierarchische Datenbank?
Was sind Root-Namenserver?
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
ca. 1.000 Root-Server weltweit
Was sind Top-Level-Domain-Server (TLD)?
Was sind Autoritative DNS-Server?
Top-Level-Domain (TLD)-Server:
Verantwortlich für com, org, net, edu etc. sowie für alle Länder-Domains, z.B. de, uk, fr, ca, jp
Network Solutions ist verantwortlich für den com-TLDServer
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
Wie funktioniert 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 antworten mit einem Verweis auf andere Server
“Ich kenne den Namen nicht, frag’ diesen Server …”
Was ist 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
Was für Aufgaben haben Transportdienste und Transportprotokolle?
Stellen logische Kommunikation zwischen Anwendungsprozessen auf verschiedenen Hosts zur Verfügung
Netzwerkschicht:
logische Kommunikation zwischen Hosts
logische Kommunikation zwischen Prozessen
verwendet und erweitert die Dienste der Netzwerkschicht
Transportprotokolle laufen auf Endsystemen
Sender: teilt Anwendungsnachrichten in Segmente auf, gibt diese an die Netzwerkschicht weiter
Empfänger: fügt Segmente wieder zu Anwendungsnachrichten zusammen, gibt diese an die Anwendungsschicht weiter
Zuverlässige, reihenfolgeerhaltende Auslieferung (TCP)
Überlastkontrolle
Flusskontrolle
Verbindungsmanagement
Unzuverlässige Datenübertragung ohne Reihenfolgeerhaltung: UDP
Minimale Erweiterung der “Best-Effort”-Funktionalität von IP
Dienste, die nicht zur Verfügung stehen:
Garantien bezüglich Bandbreite oder Verzögerung
Es exisitieren verschiedene Transportschichtprotokolle
Internet: TCP und UDP
Analogie:
12 Kinder senden Briefe an 12 andere Kinder
Prozess = Kind
Anwendungsnachricht = Brief in einem Umschlag
Host = Haus
Transportprotokolle = Ann und Bill
Netzwerkprotokoll = gewöhnlicher Postdienst
Was ist IANA?
IANA - Internet Assigned Numbers Authority
Verwaltung der Protokollnummern
zentrale DNS-Rootzone
Vergabe von IPv4/ IPv6 Adressen.
Was sind standartisierte Ports?
Die Portnummer ist eine 16-Bit Adresse.
Die Ports 0-1023 sind fest vergeben und werden weltweit geregelt (Well-knownPorts) genannt
Die Ports von 1024- 49152 sind z.T. definiert. Man nennt sie „Registered Ports“
Die Ports von 49152- 65535 sind frei zur Verfügung
Was ist UDP?
User Datagram Protocol (UDP) [RFC 768]
Minimales Internet-Transportprotokoll
“Best-Effort”-Dienst,
UDP-Segmente können:
verloren gehen
in der falschen Reihenfolge an die Anwendung ausgeliefert werden
Verbindungslos:
kein Handshake zum Verbindungsaufbau
jedes UDP-Segment wird unabhängig von allen anderen behandelt
Häufig für Anwendungen im Bereich Multimedia-Streaming eingesetzt
verlusttolerant
Mindestrate
Andere Einsatzgebiete
DNS
SNMP
Zuverlässiger Datentransfer über UDP:
Zuverlässigkeit auf der Anwendungsschicht implementieren
Anwendungsspezifische Fehlerkorrektur!
Warum gibt es UDP?
Kein Verbindungsaufbau (der zu Verzögerungen führen kann)
Einfach: kein Verbindungszustand im Sender oder Empfänger
Kleiner Header
Keine Überlastkontrolle: UDP kann so schnell wie von der Anwendung gewünscht senden
Was ist TCP?
Punkt-zu-Punkt:
Ein Sender, ein Empfänger
Zuverlässiger, reihenfolgeerhaltender Byte-Strom:
Keine “Nachrichtengrenzen”
Pipelining:
TCP-Überlast- und –Fluss-kontrolle verändern die Größe des Fensters
Sender- & Empfängerfenster
Vollduplex:
Daten fließen in beide Richtungen
MSS: Maximum Segment Size
Verbindungsorientiert:
Handshaking (Austausch von Kontrollnachrichten) Initialisiert den Zustand im Sender und Empfänger, bevor Daten ausgetauscht werden
Sender überfordert den Empfänger nicht
Was ist TCP-Segmentaufbau?
Was sind TCP-Sequenznummern und -ACKs?
Sequenznummern:
Nummer des ersten Byte im Datenteil
ACKs:
Sequenznummer des nächsten Byte, das von der Gegenseite erwartet wird
Kumulative ACKs
Frage: Wie werden Segmente behandelt, die außer der Reihe ankommen?
Wird von der TCPSpezifikation nicht vorgeschrieben!
Bestimmt durch die Implementierung
Was ist die Kreditmethode (Flusskontrolle)?
Kreditmethode
Der Empfänger teilt dem Sender einen Kreditrahmen n mit
Der Sender darf maximal n Nachrichten ohne positive Quittung verschicken.
Der Sender muss eine Zeitüberwachung einführen, um verlorene Kredit-Nachrichten behandeln zu können.
Was ist Flusskontrolle?
Was ist TCP-Flusskontrolle?
Empfängerseite von TCP hat einen Empfängerpuffer
Die Anwendung kommt unter Umständen nicht mit dem Lesen hinterher
Dienst zum Angleich von Geschwindigkeiten: Senderate wird an die Verarbeitungsrate der Anwendung auf dem Empfänger angepasst
Wichtig:
Sender schickt nicht mehr Daten, als der Empfänger in seinem Puffer speichern kann
Was ist ein Drei-Wege-Handshake?
Starten einer Verbindung
Schritt 1: Client sendet ein SYNPacket an den Server mit einer zufälligen Sequenznummer client_isn.
Schritt 2: Server empfängt das SYNPacket, und artwortet mit TCP-RST, wenn der Port geschlossen ist. Wenn der Port geöffnet ist, antwortet er mit ACK/SYN, und der nächste Adresse client_isn+1 ;
Schritt 3: Client bestätigt den Empfang und antwortet mit der Adresse client_isn+1 ;
Last changeda year ago