Anwendungsschicht - Protokoll vs. Server

francy_space

Ensign
Registriert
Juni 2020
Beiträge
169
Hallo,

ich habe heute gelesen, dass auf der Anwendungsschicht des OSI-Modells Protokolle wie HTTP, FTP, DNS oder SMTP arbeiten.
Wenn ich beispielsweise den DNS-Server von Google (8.8.8.8) auf meinem Browser abrufe, so interagiert der Browser mit der Anwendungsschicht.

Zwei Protokolle finde ich dabei interessant.

1.) DNS-Protokoll: Innerhalb dieser Schicht wird die Anfrage innerhalb des LANs an den DNS-Server übertragen, der gleichzeitig mein Provider-Router ist. Der Browser nutzt hierfür das DNS-Protokoll, um die Daten an den DNS-Server zu übermitteln.

2.) HTTP-Protokoll: Das HTTP-Protokoll ist ein Übertragungsprotokoll, um Daten über das Internet zu übertragen. Ich denke, dass ich mit der Anfrage (8.8.8.8) bezwecke, Daten über das Internet zu übertragen. Allerdings habe ich im LAN keinen Webserver aufgesezt. Das heißt: Auf der Anwendungsschicht gibt es im LAN keine Anlaufstelle für das HTTP-Protokoll. Erst bei der Transport-Schicht kann das HTTP-Protokoll den Webserver des Providers per IP-Protokoll erreichen und mit diesen dann kommunizieren.

Ist die Logik korrekt, in der Anwendungsschicht immer darauf zu achten, ob im LAN ein entsprechender Server ("Anlaufstelle") für das jeweilige Protokoll vorhanden ist?

HTTP-Protokoll <--> Webserver
DNS-Protokoll <--> DNS-Server
SMTP-Protokoll <--> Mailserver
 
Zuletzt bearbeitet:
Jede Kommunikation durchläuft im "ungünstigsten" Fall alles Schichten von oben nach unten. Bis zur Codierung der Datenübertragung über das physische Medium "Kabel". Dabei ist dem höheren Protokoll sozusagen egal was das Protokoll darunter macht. Das wäre meine Logik dazu. Je nachdem auf welcher Schicht du operierst solltest du dich darauf verlassen können dass die darunterliegenden Schichten korrekt arbeiten, so wie sich höher gelegene Schichten darauf verlassen können müssen dass du auf deiner Schicht korrekt arbeitest.

Dem HTTP Protokoll ist es am Ende vollkommen egal wo die 8.8.8.8 beheimatet ist. Das ist die Angelegenheit des IP und TCP Protokolls auf einer darunter liegenden Schicht. Und wo die Signale langlaufen ist dem Routingprotokoll wichtig, nicht dem TCP/IP Protokoll. Das Routingprotokoll pfeift drauf wie die Signale auf der Leitung übertragen werden. Und so weiter....
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: francy_space
Mir fälllt auch gerade ein, dass die Übertragung innerhalb des LANs meistens durch Ethernetrahmen und MAC-Adressen erfolgt, die in Schicht 2 zur Anwendung kommt. Sprich: In der Anwendungsschicht dürfte nichts zum Provider-Router (DNS-Server) übertragen werden. Das müsste in Schicht 2 per Rahmen passieren.
 
Ja, die Logik ist korrekt, aber es wird nicht direkt drauf "geachtet". Bzw.
francy_space schrieb:
Erst bei der Transport-Schicht kann das HTTP-Protokoll den Webserver des Providers per IP-Protokoll erreichen und mit diesen dann kommunizieren.
stimmt so nicht, weil die Transport-Schicht kein HTTP kennt.

Wenn du einen Server erreichen willst, "sagt" dein Client "Ich möchte HTTP-Anfrage XY stellen". Dann wird das ganze von dem Betriebssystem oder dem Programm in ein TCP-Paket (Transport-Layer) verpackt. Das ganze wird dann in ein IP-Paket verpackt (Internet-Layer) und das ganze wird über den Link-Layer an den nächsten Knoten im Netzwerk (z.B. dein Router) geschickt. Der schaut sich dann nur das äußerste Paket an (Internet-Layer) und kann anhand der dort sichtbaren IP sehen, ob das Ziel sich im Netzwerk oder außerhalb des Netzwerks liegt. Er leitet das dann entsprechend weiter und der nächste Knoten schaut sich die äußerste Schicht an.

Am Ende kriegt der Server das Paket und sieht "Hey, das ist ja meine IP" und entpackt den Internet-Layer. Dann schaut er sich das TCP-Paket an und sieht an welchen Port es adressiert ist und kann es so einem Programm zuordnen. Wenn kein Programm auf diesem Port "lauscht", wird die Anfrage entweder verworfen oder ein Fehler zurückgeschickt.
Wenn ein Programm lauscht, wird das TCP-Paket entpackt und der "Kern" wird dem Programm übergeben (die HTTP-Anfrage)

Lg

PS: das ist an einigen Stellen vereinfacht, aber die Idee wird vielleicht klar.
 
  • Gefällt mir
Reaktionen: francy_space
nein, du wirfst mehrere Dinge komplett durcheinander!

vorneweg: ich bin absoluter "Hasser" von stocksteifen Diskussionen über "was ist jetzt welche Schicht im ISO Modell". Das habe ich aufgegeben weil z.B. jeder etwas anderes erzählt ob sich RS232/422/485 jetzt auf Layer 0 oder 1 unterscheiden...

Im Prinzip ist am ISO Layer Modell nur interessant, dass sich eine Schicht eben nur mit derselben Ebene "auf der anderen Seite" unterhalten kann und der eigentliche Datenverkehr erst vertikal im lokalen Stack bis auf die Transport Ebene runter geht, mit dem Zielort kommuniziert und dort wieder die "Schichten hoch krabbelt".

was es da an "Zwischen-Stationen" gibt, ist erstmal egal. Deine DNS Anfrage wird ja z.B. bis auf das Ethernet Kabel runter zu deiner Fritzbox geleitet, dort wird es geroutet, das ja schon eine Ebene höher, dasselbe passiert draußen im Internet noch mehrmals, dein Paket wird von Netz zu Netz geroutet und läuft durch Glasfaser, Kupfer usw. bis es bei 8.8.8.8 ankommt.

ob du in deinem Netzwerk die Fritzbox, den Provider DNS oder Google DNS nutzt ist dabei eher im Bereich Proxy (bzw. DNS Forwarder) zu suchen und hat mit dem ISO Modell so nicht direkt etwas zu tun.
 
  • Gefällt mir
Reaktionen: francy_space und FranzvonAssisi
francy_space schrieb:
Sprich: In der Anwendungsschicht dürfte nichts zum Provider-Router (DNS-Server) übertragen werden.

Doch, immer wenn du eine Anwendung hast (eins der Anwendungsprotokolle nutzt: HTTP, HTTPS, DNS, FTP, ...), ist auch der Anwendungslayer aktiv.
Für die Übertragung werden die anderen Schichten trotzdem genutzt.

Lg
 
  • Gefällt mir
Reaktionen: francy_space
Zurück
Oben