Anwendungsschicht Flashcards
1
Q
Entwickeln von Netzwerkanwendungen
A
- Netzwerkanwendungen: Programme, die…
- … auf mehreren verschiedenen Endsystemen laufen
- … über das Netzwerk kommunizieren
- Keine Software im Netzwerkkern notwendig
- im Inneren des Netzwerkes werden keine Anwendungen ausgeführt
- Konzentration auf Endsysteme: schnelle Entwicklung und Verbreitung der Software
2
Q
Architektur von Netzwerkanwendungen
A
- legt fest, wie die Applikation auf den verschiedenen Endsystemen strukturiert ist
- Paradigmen für Anwendunsarchitekturen
- Client-Server
- Peer-to-Peer (P2P)
- Kombination von Client-Server und P2P
3
Q
Client-Server-Architektur
A
- Server-Host
- immer eingeschaltet
- Feste IP-Adresse
- Serverfarmen, um zu skalieren
- Client-Hosts:
- Kommunizieren mit Servern und nicht direkt miteinander
- Sporadisch angeschlossen
- Können dynamische IP-Adressen haben
- Hohe Investitions- und Betriebskosten für Server-Bereitstellung
4
Q
Reine P2P-Architektur
A
- keine Server
- beliebige Endsysteme kommunizieren direkt miteinander
- Peers fordern von anderen Peers Dienst an, stellen selbst anderen Peers Dienst zur Verfügung
- selbstskalierend: mit neuen Peers kommen neue Dienstanforderungen aber auch Dienstkapazität hinzu
- Peers sind nur sporadisch angeschlossen und wechseln ihre IP-Adresse
- Gut skalierbar, aber schwer zu warten und zu steuern
5
Q
Kombination Client-Server und P2P
A
- Skype
- P2P-Anwendungen für Voice-over-IP
- Zentrale Server, um Adresse des Kommunikationspartners zu finden
- Sprachübermittlung direkt zwischen Clients
- 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
6
Q
Kommunizierende Prozesse
A
- Prozess: Programm, welches auf einem Host läuft
- Innerhalb eines Hosts können zwei Prozesse mit Inter-Prozess-Kommunikation Daten austauschen
- 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
- Anwendungen mit P2P-Architektur haben Client- und Server-Prozesse auf jedem Host
7
Q
Sockets
A
- Prozesse senden/ empfangen Nachrichten über einen Socket
- lässt sich mit Tür vergleichen
- auch API
- Wahl des Transportprotokolls
- Einstellen einiger Transportschichtparameter
8
Q
Adressierung von Prozessen
A
- um Nachrichten zu empfangen, muss ein Prozess identifiziert werden können
- Hierarchisches Adressierungsschema:
- Jedes Endsystemen hat eine eindeutige IP-Adresse
- Portnummer identifiziert Prozess innerhalb des Ziel-Hosts
- Prozesse werden Netzwerken durch eine IP-Adresse und eine Portnummer adressiert
9
Q
Wahl des Transportdienstes für eine Applikation
A
- Zuverlässiger Datentransfer
- Einige Anwendungen können etwas Datenverlust tolerieren
- Andere Anwendungen benötigen einen absolut zuverlässigen Datentransfer
- Zeitanforderung
- Einige Anwendungen tolerieren nur sehr geringe Verzögerung
- Durchsatz
- Einige Anwendungen brauchen Mindestbandbreite um zu funktionieren
- Andere verwenden einfach die verfügbare Kapazität
- Sicherheit
- Verschlüsselung, Datenintegrität, …
10
Q
Internet-Transportprotokolle und deren Dienste
A
- TCP (Transmission Control Protocol)
- verbindungsorientiert
- zuverlässiger Transport
- Flusssteuerung
- Überlaststeuerung
- Keine Zeit- und Durchsatz-Garantien oder Sicherheit
- UDP (User Datagram Protocol)
- verbindungslos
- Unzuverlässiger Transport
- auch keine Fluss-, Überlastungssteuerung, Zeit-, Durchsatzgarantien oder Sicherheit
11
Q
WWW und HTTP - Begriffe
A
12
Q
HTTP Überblick
A
- Anwendungsprotokoll des WWW
- Client-Server-Modell
- Client: Browser, der Web-Objekte anfordert (über HTTP), empfängt und „anzeigt“
- Server: Web-Server mit fester IP-Adresse, der ständig online ist, sendet (über HTTP) Objekte als Antwort auf Anfragen
- Verwendet TCP
- Client initiiert TCP-Verbindung zum Server-Port 80
- Server akzeptiert den TCP-Verbindungswunsch vom Client
- HTTP-Nachrichten werden zwischen Browser und Web-Server ausgetauscht
- TCP-Verbindung wird abgebaut
- HTTP ist gedächtnislos: Server speichert keine Information über frühere Client-Anfragen
- Protokolle mit Gedächtnis sind komplex
- der Zustand muss gespeichert und verwaltet werden
- bei Server/ Client Absturz kann deren Sicht des Zustands differieren, muss wieder abgeglichen werden
13
Q
HTTP Verbindungsmodi
A
- Nicht persistentes HTTP
- Maximal ein Objekt -> ein Request/ Response-Paar wird über eine TCP-Verbindung gesendet
- Nach jedem Objekttransfer wird die TCP-Verbindung abgebaut
- Herunterladen mehrerer Objekte erfordert mehrere Verbindungen
- Persistentes HTTP
- Mehrere Objekte können über eine einzige TCP-Verbindung zwischen Client und Server gesendet werden
- Server schließt die TCP-Verbindung nach einem konfigurierbaren Timeout für Client-Aktivität
- Default-Modus, aber konfigurierbar in Client und Server
14
Q
Nicht persistentes HTTP: Antwortzeit
A
- Round Trip Time (RTT): Zeit, um ein kleines Paket vom Client zum Server und zurück zu senden
- Antwortzeit:
- eine RTT um die TCP-Verb. Aufzubauen
- eine RTT für HTTP-Request und die ersten wenigen Bytes des HTTP-Response zu empfangen
- Gesamtzeit für den Objekttransfer = 2RTT + Übertragungsdauer
15
Q
Vergleich der Verbindungsmodi
A
- Probleme nicht persistent:
- erfordert 2xRTT pro Objekt
- Browser öffnen oft parallele TCP-Verbindungen, um referenzierte Objekte zu holen
- Betriebssystem-Overhead für jede TCP-Verbindung
- Vorteile persistent:
- Client sendet Requests sobald er auf ein referenziertes Objekt stößt -> Pipelining zulässig
- Nur eine RTT für alle referenziertem Objekte