Öffnet eure letzte Filius-Projektdatei (WebServer und DNS-Server). Falls ihr diese nicht (korrekt) vorliegen habt, nehmt die Vorlage unten. Das Netzwerk sollte ungefähr so aussehen:
Öffnet auf einem der Clients die Befehlszeile und gebt den Befehl host www.max-mustermann.de
ein, wobei ihr die URL hier durch die von euch im DNS-Server hinterlegte ersetzt. Betrachtet nun im Datenverkehr-Fenster des Rechners die beiden blauen Zeilen der Anwendungsschicht im Detail. Eine Zeile im Datenverkehr Fenster steht für ein über das Netzwerk versendetes "Paket".
Das Sequenz-Diagramm der Kommunikation könnte so aussehen:
Beantwortet die folgenden Fragen:
- Wer hat welches Paket an wen gesendet?
- Welches Transport- und welches Vermittlungs-Protokoll wurde benutzt?
- Was könnten jeweils die Bemerkungen in der Anwendungsschicht bedeuten?
Löscht nun den Inhalt des Datenverkehr-Fensters. Startet anschließend den Web-Browser auf Rechner 1.10 und ruft die Website http://www.max-mustermann.de auf und beobachtet den Datenverkehr. Vergleicht den Datenverkehr mit dem folgenden Sequenzdiagramm.
Beantwortet die folgenden Fragen:
- Informiert euch auf Wikipedia (TCP) (nur die Kapitel "Verbindungsaufbau", "Verbindungsabbau" und "3-Wege-Handschlag") über das TCP-Protokoll. Was bedeuten die Begriffe Handshake und Teardown?
- Informiert euch auf Wikipedia (HTTP) (nur die Kapitel Aufbau und Funktionsweise) über das HTTP-Protokoll. Was bedeuten die Begriffe Request und Response?
- Schaut euch nun ganz genau die beiden Pakete aus der Anwendungsschicht an, die HTTP benutzen.
- Welche Daten werden in der Anwendungsschicht gesendet?
- Achtet auch auf die Transport-Schicht. Was haben TCP und HTTP in diesem Beispiel miteinander zu tun?
Schaut euch die verschiedenen Schichten in Filius an. Es gibt die Netzzugangs-, die Vermittlungs-, die Transport- und die Anwendungsschicht.
Filius benutzt hierbei eine vereinfachte Version des OSI-Schichtenmodells.
OSI | FILIUS |
---|---|
7: Anwendung | 4: Anwendung |
6: Darstellung | |
5: Sitzung | |
4: Transport | 3: Transport |
3: Vermittlung | 2: Vermittlung |
2: Sicherung | 1: Netzzugang |
1: Bitübertragung |
In den folgenden Beispielen werden wir uns genau ansehen, was beim Aufruf der Beispielseite im Browser passiert ist.
Der Browser möchte gerne die Website www.max-mustermann.de angezeigt bekommen, dies funktioniert mit dem GET-Befehl des HTTP-Protokolls.
Paket auf Anwendungsschicht: HTTP |
---|
GET / HTTP/1.1 HOST: www.max-mustermann.de |
Um das Paket zu versenden, wird das TCP-Protokoll benutzt. Dieses benutzt zunächst den Handshake, um die Verbindung aufzubauen und ergänzt anschließend die Daten der Anwendungsschicht um Meta-Daten, die Ports. Diese sind dafür da, verschiedene Programme zu identifizieren, die gleichzeitig auf einem Rechner Daten über die IP-Adresse des Rechners senden und empfangen:
Paket auf Transportschicht: TCP | |
---|---|
Meta-Daten | Daten der Anwendungsschicht |
Quell-Port: 8283, Ziel-Port: 80 | GET / HTTP/1.1 HOST: www.max-mustermann.de |
Das Versenden an einen anderen Rechner übernimmt das IP-Protkoll. Dieses ergänzt erneut Meta-Daten zum bereits vorhandenen Paket, die IP-Adressen von Sender und Empfänger:
Paket auf Vermittlungsschicht: IP | ||
---|---|---|
Meta-Daten | Daten der Transportschicht | |
Quell-IP: 192.168.1.10, Ziel-IP: 192.168.0.12 | Meta-Daten | Daten der Anwendungsschicht |
Quell-Port: 8283, Ziel-Port: 80 | GET / HTTP/1.1 HOST: www.max-mustermann.de |
Jetzt erst übernimmt die Netzwerkkarte: Sie versendet die Daten auf physikalischer Ebene mit Hilfe des Ethernet-Protokolls. Auch hier werden wieder Meta-Daten ergänzt, nämlich die MAC-Adressen:
Paket auf Netzzugangsschicht: Ethernet-Protokoll | |||
---|---|---|---|
Meta-Daten | Daten der Vermittlungsschicht | ||
Quell-MAC: B1:2A:C2:4F:D3:59, Ziel-MAC: 6F:36:4C:04:CF:4F | Meta-Daten | Daten der Transportschicht | |
Meta-Daten | Daten der Anwendungsschicht | ||
Quell-IP: 192.168.1.10, Ziel-IP: 192.168.0.12 | Quell-Port: 8283, Ziel-Port: 80 | GET / HTTP/1.1 HOST: www.max-mustermann.de |
Erstellt die vier Tabellen aus dem Beispiel auch für die HTTP-Response. Vergleicht anschließend die Tabellen des Requests mit denen der Response.
Ihr habt nun den Weg der Daten von der Anwendung bis zur Netzwerkkarte kennen gelernt. In jedem Schritt werden Meta-Daten hinzugefügt, die für den Transport benötigt werden.
Überlegt euch, wie der Empfänger des Pakets mit den Daten umgehen könnte?
Macht euch klar, was die Meta-Daten der einzelnen Schichten zu bedeuten haben und wofür man diese benötigt. Beantwortet dazu die folgenden Fragen:
- Was sind die MAC-Adressen?
- Was sind die IP-Adressen?
- Was ist ein Port?
- Enthält die Anwendungsschicht auch Meta-Daten? Wenn ja, welche?
Informiert euch weiter über die angesprochenen Prokolle (Ethernet, IP, TCP und HTTP).
- Gibt es auf den verschiedenen Schichten auch noch andere Protokolle?
- Was ist das FTP-Protkoll?
- Was ist das UDP-Protkoll?
Paket auf Anwendungsschicht: HTTP |
---|
HTTP/1.1 200 OK Content-type: text/html <html><head>… |
Paket auf Transportschicht: TCP | |
---|---|
Meta-Daten | Daten der Anwendungsschicht |
Quell-Port: 80, Ziel-Port: 8283 | HTTP/1.1 200 OK Content-type: text/html <html><head>… |
Paket auf Vermittlungsschicht: IP | ||
---|---|---|
Meta-Daten | Daten der Transportschicht | |
Quell-IP: 192.168.0.12, Ziel-IP: 192.168.1.10 | Meta-Daten | Daten der Anwendungsschicht |
Quell-Port: 80, Ziel-Port: 8283 | HTTP/1.1 200 OK Content-type: text/html <html><head>… |
Paket auf Netzzugangsschicht: Ethernet-Protokoll | |||
---|---|---|---|
Meta-Daten | Daten der Vermittlungsschicht | ||
Quell-MAC: 6F:36:4C:04:CF:4F, Ziel-MAC: B1:2A:C2:4F:D3:59 | Meta-Daten | Daten der Transportschicht | |
Meta-Daten | Daten der Anwendungsschicht | ||
Quell-IP: 192.168.0.12, Ziel-IP: 192.168.1.10 | Quell-Port: 80, Ziel-Port: 8283 | HTTP/1.1 200 OK Content-type: text/html <html><head>… |