Wir beenden das ISO/OSI-Modell mit den letzten drei Schichten in der sechsundachzigsten Episode des Anwendungsentwickler-Podcasts.
TL;DR
Ich gehe mit dir die anwendungsorientierten Schichten 5 bis 7 des ISO-OSI-Modells durch und ordne bekannte Netzwerkprotokolle ein. Die Sitzungsschicht verbindet zusammengehörige Anfragen und Antworten zu einem Dialog, während die Darstellungsschicht dafür sorgt, dass beteiligte Systeme die übertragenen Daten verstehen. Auf der Anwendungsschicht erhalten Daten und Befehle ihre Bedeutung für das jeweilige Protokoll. Anhand einer E-Mail lässt sich nachvollziehen, wie alle sieben Schichten zusammenarbeiten und welche Aufgaben sie beim Übertragen übernehmen.
Podcast: Play in new window | Download (Duration: 35:47 — 13.2MB)
Abonnieren: Apple Podcasts | Spotify | RSS
Kapitelmarken
- [00:00:00] Begrüßung und Abschluss der Reihe zum ISO-OSI-Modell
- [00:01:48] Transportorientierte und anwendungsorientierte Schichten
- [00:03:12] Schicht 5: Sitzungsschicht und zusammengehörige Anfragen
- [00:05:20] Warenkorb als Beispiel und Websessions auf Anwendungsebene
- [00:06:38] Wiederaufsetzpunkte bei unterbrochenen Verbindungen
- [00:07:36] Schichtübergreifende Komponenten und RPC
- [00:09:02] Schicht 6: Darstellungsschicht und Syntax der Daten
- [00:10:59] Zeichenkodierung, Verschlüsseln und Komprimieren
- [00:13:31] Zeilenenden zwischen Windows und Linux
- [00:14:18] Datenstrukturen mit ASN.1 beschreiben
- [00:16:12] Schicht 7: Anwendungsschicht als Einstiegspunkt für Programme
- [00:18:10] Semantik und Bedeutung von Befehlen
- [00:19:27] Firewalls auf Anwendungsebene
- [00:20:41] Proxyserver: Stellvertreter, Cache und Inhaltsfilter
- [00:22:17] Anfragen mit einem Loadbalancer verteilen
- [00:23:14] Gateways zwischen unterschiedlichen Technologien
- [00:25:21] Bekannte Protokolle auf Anwendungsebene
- [00:26:52] Rückblick auf die Schichten 5 bis 7
- [00:29:36] Eine E-Mail durch alle sieben OSI-Schichten
- [00:32:31] Prüfungswissen und Fehlersuche in der Praxis
- [00:33:49] Feedback, Begleitmaterial und Podcastpause
Inhalt
5: Sitzungsschicht (Session Layer)
- Wie wird eine dauerhafte Kommunikation von Netzwerkteilnehmern aus unterschiedlichen Anfragen und Antworten (Dialog) ermöglicht?
- Einheit: Daten
- Zusätzliche Informationen: Zuordnung von Anfragen und Antworten zueinander, Wiederaufsetzpunkte bei Ausfall der Kommunikation
- Hardware: siehe Anwendungsschicht
- Protokolle: RPC, siehe Anwendungsschicht
6: Darstellungsschicht (Presentation Layer)
- Wie können Daten unabhängig von der konkreten Repräsentation auf den beteiligten Systemen verständlich ausgetauscht werden?
- Einheit: Daten
- Zusätzliche Informationen: Syntax der Daten, Encoding, Verschlüsselung, Kompression
- Hardware: siehe Anwendungsschicht
- Protokolle: ASN.1, siehe Anwendungsschicht
7: Anwendungsschicht (Application Layer)
- Wie können anwendungsspezifische Daten und Befehle ein- und ausgegeben werden?
- Einheit: Daten
- Zusätzliche Informationen: Semantik der Daten
- Hardware: Gateway, Load Balancer, Proxy, Firewall
- Protokolle: HTTP, FTP, SMTP
Literaturempfehlungen
*
Links
- Permalink zu dieser Podcast-Episode
- RSS-Feed des Podcasts
- OSI-Modell
- Das OSI-Referenzmodell
Zusammenfassung
Die oberen Schichten des ISO-OSI-Modells
Zum Abschluss meiner Reihe zum ISO-OSI-Modell gehe ich mit dir die anwendungsorientierten Schichten 5 bis 7 durch. Als IT-Azubi zum/zur Fachinformatiker:in Anwendungsentwicklung brauchst du dieses Wissen für die Prüfung und für die Fehlersuche im Alltag.
Die Schichten 1 bis 4 übernehmen den Transport. Darauf bauen die oberen Schichten auf, deren übertragene Einheit jeweils Daten heißt. Protokolle und Netzwerkkomponenten können Aufgaben auf mehreren dieser oberen Schichten übernehmen, weshalb sich ihre Funktionen teilweise über die Schichtgrenzen erstrecken.
Schicht 5: Sitzungsschicht, Session Layer
Wenn mehrere Anfragen zusammengehören, muss die Kommunikation ihren Zusammenhang erhalten. Die Sitzungsschicht ordnet Anfragen und Antworten einander zu, sodass zwischen den beteiligten Systemen ein Dialog entsteht. Dabei greift sie auf die Dienste der Transportschicht zurück.
Über Wiederaufsetzpunkte lässt sich eine unterbrochene Kommunikation fortführen. Wird beispielsweise eine große Datei übertragen und die Verbindung bricht nach einem bereits übertragenen Teil ab, kann der Austausch an einer passenden Stelle weitergehen.
Am Warenkorb eines Onlineshops lässt sich das Prinzip zusammengehöriger Anfragen veranschaulichen: Wenn du einen Artikel hineinlegst und später den Warenkorb aufrufst, muss der Server beide Vorgänge miteinander verbinden. Solche Websessions werden auf Anwendungsebene verwaltet, etwa über eine Session-ID und serverseitig gespeicherte Daten. Die Sitzungsschicht behandelt den Zusammenhang auf einer technischeren Ebene.
Als Beispiel für diese Schicht dient RPC, Remote Procedure Call. Wenn auf einem entfernten Rechner eine Funktion aufgerufen wird, müssen die ausgetauschten Daten dem Aufruf zugeordnet werden können.
Schicht 6: Darstellungsschicht, Presentation Layer
Damit unterschiedliche Systeme dieselben Daten verstehen, brauchen sie gemeinsame Regeln für deren Darstellung. Auf Schicht 6 geht es um die Syntax, also darum, wie Daten aufgebaut und dargestellt werden.
- Zeichenkodierung: Zeichensätze wie ASCII und Unicode müssen beim Austausch berücksichtigt und gegebenenfalls umgewandelt werden.
- Verschlüsselte Daten: Auf der Gegenseite müssen die Daten entschlüsselt werden, damit sie gelesen werden können. Verschlüsseln dient der Geheimhaltung.
- Komprimierte Daten: Vor dem Darstellen werden die Daten wieder entpackt. Komprimieren spart Speicherplatz und verringert die zu übertragende Datenmenge.
- Zeilenenden: Beim Austausch von Textdateien zwischen Windows und Linux kann eine Anpassung nötig sein. Windows verwendet Carriage Return und Line Feed, Linux verwendet Line Feed.
Mit ASN.1, Abstract Syntax Notation One, lassen sich Datenstrukturen unabhängig von einem konkreten Endsystem beschreiben. Die Beschreibungssprache kennt beispielsweise Boolean und Integer. Ihre Aufgabe lässt sich mit XML vergleichen, wobei ASN.1 eine eigene Syntax hat. Über gemeinsame Regeln können beteiligte Systeme die übertragenen Daten wieder in ihre jeweilige Darstellung zurückführen.
Schicht 7: Anwendungsschicht, Application Layer
Ein E-Mail-Programm wie Thunderbird greift auf die Anwendungsschicht zu, um mit einem Mailserver Befehle auszutauschen. Diese Schicht bildet den Einstiegspunkt für Programme, die über das Netzwerk kommunizieren. Die darunterliegenden Schichten übernehmen die weiteren Aufgaben des Austauschs.
Zur Form der Daten kommt hier ihre Semantik hinzu: Welche Bedeutung hat ein Befehl innerhalb des Protokolls, und passt er zum jeweiligen Ablauf? Bei SMTP führen bestimmte Befehle dazu, dass eine E-Mail auf dem Mailserver angelegt wird.
Zu den bekannten Protokollen auf Anwendungsebene gehören HTTP und FTP sowie SSH, SMTP, IMAP und POP3. HTTP definiert beispielsweise die Methoden GET, POST, PUT, DELETE, HEAD und PATCH. Diese Protokolle solltest du für die Prüfung kennen. Ihre Funktionen können auch Aufgaben der Sitzungsschicht und der Darstellungsschicht umfassen.
Komponenten auf den oberen Schichten
Je nachdem, welche Daten eine Komponente auswertet und welche Aufgaben sie übernimmt, arbeitet sie auf unterschiedlichen Ebenen des Modells.
- Firewall: Eine Firewall auf Anwendungsebene kann übertragene Inhalte prüfen und gefährliche Daten erkennen. Dafür muss sie die Bedeutung der Daten verstehen können.
- Proxy: Er stellt stellvertretend Anfragen und nimmt Antworten entgegen. Wenn er Antworten zwischenspeichert, kann er wiederholte Anfragen aus seinem Cache bedienen. Außerdem kann er Inhalte prüfen oder bestimmte URLs sperren.
- Loadbalancer: Er verteilt Anfragen auf mehrere Server. Auf höheren Schichten kann er anhand einer URL entscheiden, an welchen Server eine Anfrage geht, oder verschiedene Protokolle unterschiedlich behandeln.
- Gateway: Es übersetzt zwischen unterschiedlichen Technologien oder Protokollen. Ein SMS-Gateway kann beispielsweise eine per E-Mail eingehende Nachricht als SMS weitergeben. Ein Fax-Gateway kann empfangene Faxe per E-Mail ins interne Netzwerk schicken.
Das in der IP-Konfiguration angegebene Standard-Gateway bezeichnet den Router, an den Pakete für Ziele außerhalb des eigenen Netzwerks geschickt werden. Ein Gateway auf den oberen Schichten übernimmt das Übersetzen zwischen Technologien.
Eine E-Mail durch alle sieben Schichten
Am Beispiel einer versendeten E-Mail gehe ich den Weg von oben nach unten durch:
- Anwendungsschicht: Das E-Mail-Programm tauscht anwendungsspezifische SMTP-Befehle mit dem Mailserver aus.
- Darstellungsschicht: Sie regelt, wie die Daten dargestellt werden, und berücksichtigt dabei etwa die Zeichenkodierung oder eine verschlüsselte Verbindung.
- Sitzungsschicht: Zusammengehörige Anfragen werden miteinander in Beziehung gesetzt.
- Transportschicht: TCP sorgt dafür, dass die Segmente vollständig und in der richtigen Reihenfolge ankommen und wieder zusammengesetzt werden können. Ports gehören zu dieser Schicht.
- Vermittlungsschicht: IP-Adressen bezeichnen logische Ziele. Router leiten die Pakete durch die beteiligten Netzwerke weiter.
- Sicherungsschicht: Hier werden Frames übertragen und MAC-Adressen herangezogen. Ein Switch kann darüber entscheiden, an welchem Anschluss das Ziel erreichbar ist.
- Bitübertragungsschicht: Die Bits werden über das jeweilige Medium übertragen, beispielsweise über Kabel oder WLAN.
Für die Prüfung und die Fehlersuche
Wenn du untersuchst, weshalb ein Ping keine Antwort liefert, hilft dir das Modell dabei, die beteiligten Vorgänge einzuordnen. Bekannte Protokolle aus deinem Alltag lassen sich ihren Aufgaben im Modell zuordnen, wodurch du dir die Schichten leichter merken kannst.
Begleitmaterial und Podcastpause
In den Shownotes zu Episode 86 habe ich weiterführende Wikipedia-Artikel verlinkt. Auch ein IT-Handbuch eignet sich, um die behandelten Inhalte nachzulesen. Nach dieser letzten Episode des Podcastjahres 2016 ist die nächste Folge für den 9. Januar 2017 angekündigt. Über meinen kostenlosen Newsletter erhältst du wöchentlich neue Website-Inhalte und Links mit Bezug zur IT-Ausbildung.
Transkription der gesamten Episode
Automatisch erzeugte Transkription der Episode
Herzlich Willkommen zum Anwendungsentwickler-Podcast, dem Podcast rund um die Ausbildung zum Fachinformatiker
für Anwendungsentwicklung. In dieser Episode beenden wir das ISO-OSI-Modell. Viel Spaß!
Hallo und herzlich Willkommen zur 86. Episode des Anwendungsentwickler-Podcasts. Mein Name
ist Stefan Macke und heute beende ich mal meinen Podcastjahr 2016 etwas vorzeitig, denn
das hier ist für dieses Jahr jetzt erstmal die letzte Episode. Ich möchte auch ein bisschen
Ruhe haben über die Feiertage und deswegen gibt es die nächste Podcast-Episode erst
am 9.01.2017, also im neuen Jahr. Bis dahin möchte ich aber ganz gerne das ISO-OSI-Modell
endlich abschließen, denn ich will auch mal wieder ein bisschen Programmierthemen hier
behandeln. Wir haben jetzt die vierte Episode zum ISO-OSI-Modell. Das ist sicherlich wichtiger
Prüfungsinhalt und wir haben ja auch viele Sachen rechts und links vom Modell angesprochen,
TCP und IP und ich weiß nicht was alles. Also das ist alles prüfungsrelevant, auch für
Anwendungsentwickler, keine Frage. Aber mir persönlich machen natürlich auch die Programmierthemen
deutlich mehr Spaß als diese Netzwerkgeschichten hier. Das ist wichtiger Kram und ich kann das
ja auch noch und brauche das auch im Prinzip jeden Tag. Ist ein bisschen übertrieben,
aber es sind wichtige Themen natürlich und deswegen gehe ich das auch gerne durch. Aber
irgendwann muss auch mal Schluss sein und wir kommen wieder zu Programmierthemen. Ich bin
schon sehr gespannt, mit welchen Themen es hier weitergeht. Ich weiß es selber noch nicht so
ganz. Wir hören uns dann nächstes Jahr, aber bis dahin haben wir natürlich noch drei Schichten
vor uns, die ich jetzt mal durchkauen muss. Und zwar die Schichten 5 bis 7 und um die soll es
heute gehen. Also lasst uns loslegen. Die drei Schichten, um die es heute geht, sind die Schicht
5, die Sitzungsschicht, die Schicht 6, das ist die Darstellungsschicht und die Schicht 7, die
Anwendungsschicht. Warum mache ich die drei zusammen und gehe da nicht so individuell,
doch ich gehe individuell auf einen, aber warum sind die zusammen in einer Episode? Nun,
ich hatte ganz am Anfang in der allerersten Episode schon gesagt, dass man das ISO-OSI-Modell grob
einteilt in zwei Bereiche und zwar immer so in die transportorientierten Schichten, das sind
nämlich die 1 bis 4 und dann in die anwendungsorientierten Schichten, das sind die 5 bis
6, ne Entschuldigung, 5, 6 und 7, also 5 bis 7 so. Und die behandeln wir heute. Die anderen Schichten,
da gibt es ganz ganz viel Kram zu, auch technisches Zeug und so, was man lernen kann. Deswegen hat
das auch so lange gedauert mit den anderen Schichten. Da waren ja die verschiedensten
Protokolle, die man auch im Alltag immer braucht und die man auch für die Prüfung braucht und so
weiter. Aber in Schicht 5 und 6 und 7 sieht das ein bisschen anders aus. Die sind ein bisschen
dünner, sage ich mal. Da sind nicht so viele spannende Sachen drin, die man auch im Alltag
häufig trifft und auch für die Prüfung braucht. Deswegen kann man die auch ganz gut zusammendampfen.
Man muss schon wissen, was da drin läuft und wofür die da sind und was die machen,
keine Frage. Aber man kann die nicht so individuell intensiv behandeln, wie halt
die vier bisherigen Schichten. Deswegen passen die ganz gut zusammen und wir gehen so ein bisschen im
Schnelldurchlauf mal durch, was diese drei Schichten machen. Fangen wir also mit der untersten an.
Das ist die Nummer 5, die Sitzungsschicht oder auf Englisch Session Layer genannt. Auch hier wieder
wie bei der Transport Layer, Transportschicht, kann man das ganz gut übersetzen. Wenn man weiß,
dass Sitzung auf Englisch Session heißt, ist es wirklich eine 1 zu 1 Übersetzung. Das war bei den
anderen Schichten ja teilweise etwas anders. Also Bit-Übertragung und Physical, naja,
das muss man sich dann wirklich schon merken. Aber Sitzungsschicht, Session Layer, das kann
man 1 zu 1 übersetzen. Das ist die Schicht 5 und ich habe mal so die Frage dazu gestellt,
wie wird eine dauerhafte Kommunikation von Netzwerkteilnehmern aus unterschiedlichen
Anfragen und Antworten, also eine Art Dialog, ermöglicht. Das soll unsere fünfte Schicht,
die Sitzungsschicht machen. Wir reden jetzt hier auf allen drei Schichten, die wir uns heute angucken,
von der Einheit Daten. Man kann jetzt also nicht mehr sowas unterscheiden wie Paket und Segment
und Datagramm, was es da alles gab, sondern wir reden jetzt hier immer von diesen Daten und da
gibt es jetzt also nicht unbedingt mehr so Header-Geschichten, die irgendwo vorgeschrieben
werden oder solche Sachen, sondern, ja, das gab es wunderbar auf den unteren Ebenen. Da konnte man
auch schöne Diagramme zeichnen, wie die Header aufgebaut sind und wie viel Byte für was reserviert
ist und so weiter. Das ist auf diesen Schichten jetzt nicht mehr ganz so interessant, deswegen
lassen wir das einfach weg. Wir sprechen ab jetzt einfach nur noch von Daten, die von A nach B
geschickt werden bzw. zurück. Was jetzt in Schicht 5 dazukommt zur Schicht 4, die da drunter liegt,
ist die Zuordnung von Anfragen und Antworten, die zueinander gehören, um eben so einen Dialog zu
ermöglichen. Grundsätzlich bietet die Schicht 4 nach oben hin quasi das Transportmedium unabhängig
von der konkreten Implementierung an. Das heißt, die Schichten 5, 6, 7, die verlassen sich darauf,
dass sie halt irgendwie die Daten von A nach B transportieren. Aber wie genau,
das ist denen jetzt halt egal. Das regelt Schicht 4. Und Schicht 4 regelte ja auch schon,
dass wir zum Beispiel eine Verbindung aufbauen können mit TCP zum Beispiel, wo ich also sicher
sein kann, dass alle Segmente von A nach B übermittelt werden und auch in der richtigen
Reihenfolge und wieder zusammengesetzt werden und und und. Das macht das Ding alles. Aber jetzt
bewegen wir uns auf so einer Art logischen Ebene. Das heißt, wir haben jetzt hier mehrere Anfragen,
die vielleicht miteinander in Beziehung stehen. Ich nehme jetzt einfach mal so ein Beispiel. Ich
lege bei Amazon etwas in meinen Warenkorb und erwarte, wenn ich auf den Warenkorb klicke,
dass natürlich die Sachen, die ich da vorher reingelegt habe, auch da drin sind. Obwohl dieser
Klick auf den Warenkorb eigentlich einen ganz neuen HTTP-Request auslöst, der mit dem ersten
eigentlich nichts zu tun hat, denn HTTP ist ein zustandsloses Protokoll, muss trotzdem der
Webserver diese beiden Sachen miteinander in Verbindung bringen und wissen, dass die zweite
Anfrage dem Warenkorb aus der ersten Anfrage zuzuordnen ist. Und das kann man im Prinzip mit
einer Sitzung beschreiben. Das heißt, mehrere Antworten oder mehrere Anfragen und deren Antworten
müssen einander zugeordnet werden. Davon reden wir, wenn wir von einer Sitzung sprechen, von so
einer Session. Bitte jetzt aber nicht durcheinanderwerfen. Ich habe es jetzt noch mal so
ein bisschen verständlicher erklärt. Wir reden hier auf Schicht 5 nicht von diesen Sitzungen im
Webbrowser-Umfeld. Das sind tatsächlich Sitzungen, die auf der Anwendungsebene nochmal
gesondert betrachtet werden müssen. Das würde zum Beispiel jetzt, wenn ich eine PHP-Anwendung
habe, würde so eine Session abgelegt auf Server-Seite und die wird aufgerufen, wenn der
Client seine Session-ID mitschickt und so weiter. Das hat mit dieser Session auf Schicht 5 erstmal
nichts zu tun. Bei der Sitzungsschicht geht es noch auf einer etwas technischeren Ebene darum,
die Sachen einander zuzuordnen. Das heißt, insbesondere werden hier Protokolle, die
die sogenannten Wiederaufsetzpunkte beim Ausfall von Kommunikationsbeziehungen definieren. Das heißt,
wenn ich zum Beispiel per TCP Sachen hin und her schicke und die sollen einander zugeordnet
werden und jetzt bricht mir einfach mittendrin die Verbindung weg. Keine Ahnung, zieht jemand
einen Stecker oder Stromausfall oder was auch immer und ich kann dann ein paar Sekunden später
vielleicht, gut beim Stromausfall wäre es jetzt schwierig, aber ich kann dann ein paar Sekunden
später diese Verbindung wieder aufnehmen. Dann müssen die Daten, also die logischen
Informationen, die da hin und her geschickt werden, einander wieder zugeordnet werden,
sodass ich zum Beispiel jetzt nicht, jetzt mal angenommen, ich habe gerade eine Datei übertragen
per FTP und ich habe jetzt einen von vier Gigabyte übertragen und jetzt bricht mir die Verbindung
kurz ab. Dann will ich natürlich nicht wieder ganz von vorne anfangen, sondern irgendwo bei
dem Gigabyte, was ich schon übertragen habe. Und diese Geschichten müssen einander zugeordnet
werden. Davon reden wir, wenn wir von so einer Sitzung reden, auf Ebene 5 des ISO-OSI-Stacks.
Die Hardware, die wir uns hier auf Schicht 5 angucken können, die ist auch nicht so schön
zuordnenbar wie bei den anderen vier Schichten und deswegen mache ich jetzt einfach für 5 und 6
und 7 die Hardware und auch die Protokolle, die wir sehen werden, auch die Einheiten alle
identisch, denn man kann die nicht mehr eindeutig einer Schicht zuordnen. Viele Protokolle und viele
Hardwarekomponenten arbeiten auf allen diesen drei Schichten, sodass ich jetzt also nicht sagen
kann, hier, das Stückchen Hardware passt zu Schicht 5 und 6 und 7, sondern das gehört halt
eben zu all diesen Schichten. Deswegen kann man diese Schichten auch gut zusammenfassen. Auf den
Schichten 1, 2, 3, 4 konnte man wirklich explizit sagen, das Protokoll arbeitet nur auf dieser
Schicht. Aber das ist hier jetzt einfach ein bisschen anders bei diesen drei Schichten,
deswegen komme ich da nachher noch mal drauf, welche Hardware hier jetzt eingesetzt werden kann.
Das gucken wir uns dann ganz am Ende an, wenn wir uns die Schicht 7 angucken. Protokolle,
genau das gleiche machen wir auch bei Schicht 7, aber ein konkretes Protokoll, was man durchaus
auch der Sitzungsschicht zuordnen kann, wäre das RPC, Remote Procedure Call. Da geht es nämlich
genau darum, wenn ich also remote auf einem entfernten Rechner irgendeine Funktion aufrufen
möchte, Procedure Call, wie der Name sagt, dann muss ich halt eben auch Daten, die denn
und her gereicht werden, einander zuordnen. Also ich muss, wenn irgendwas ausfällt,
wieder aufsetzen können und das macht eben diese Sitzungsschicht. Das soll es jetzt auch
erstmal schon gewesen sein zur Schicht Nummer 5. Da gehen wir dann gleich weiter zur Schicht Nummer
6, denn die kann man sich wieder etwas besser vorstellen, wie ich finde. Also dieses Wiederaufsetzpunkte
hin definieren und da gibt es dann auch irgendwelche wilden Protokolle, die will ich hier jetzt auch
gar nicht durchgehen. Irgendwelche X-Punkt-Irgendwas-Protokolle sind auch für die Prüfung
nicht relevant. Das ist zu technisch, ehrlich gesagt. Aber auf Schicht 6 gibt es durchaus
wieder Informationen, die wir auch in unserem Alltag häufiger mal sehen und die auch zum
Beispiel für Anwendungsentwickler durchaus relevant sind oder die uns jeden Tag begegnen,
nämlich zum Beispiel das Encoding. Ja, wenn wir von Linux nach Windows mal ein paar Dateien
übertragen, dann haben wir nämlich genau ein Problem, was diese Darstellungsschicht eigentlich
lösen soll. Dazu gleich mehr. Fangen wir wieder vorne an. Die Darstellungsschicht auf Englisch
Presentation Layer kann man also auch wieder ganz gut übersetzen. Darstellung, Presentation,
das passt ganz gut zusammen. Wofür ist die also da? Die sorgt eigentlich dafür, dass Daten unabhängig
von der konkreten Repräsentation auf den beiden beteiligten Systemen verständlich
ausgetauscht werden können. Mein Beispiel von eben, ich habe ein Linux-System und ein Windows-System,
die reden quasi zwei völlig verschiedene Sprachen, sage ich jetzt einfach mal, und trotzdem möchte
ich von A nach B irgendwie Daten übertragen können. Und jedes System soll die vernünftig
interpretieren und verstehen können. Und dafür ist die Darstellungsschicht da. Einheit hatte
ich schon gesagt, Daten genau wie bei 5 und 7. Und zusätzliche Informationen, die jetzt hier aber
an die Daten rangehängt werden, sind eben genau diese Sachen, die wir vielleicht aus dem Alltag
kennen, nämlich die Syntax der konkreten Daten. Hier wird also definiert, wie die Daten auszusehen
haben, damit sie korrekt interpretiert werden können. Also als Beispiel, wenn wir mal das
SMTP-Protokoll meinetwegen nehmen, da gibt es einen Befehl, hello, und der muss geschrieben
werden. Und das wäre jetzt hier halt einzuhalten. Ich kann jetzt also nicht auf einmal zwei
Buchstaben vertauschen, dann wäre die Syntax nicht mehr korrekt und das würde halt eben auf
der Darstellungsschicht hier geprüft. Aber es kommen auch noch andere Sachen dazu, die auf
Schicht 6 arbeiten, nämlich zum Beispiel das Encoding. Also wenn ich verschiedene Zeichensätze
benutze, also meinetwegen den ASCII-Zeichensatz oder Unicode, die müssen ineinander eventuell
umgewandelt werden, wenn die Daten korrekt interpretiert werden können sollen. Außerdem
würde so etwas wie eine Verschlüsselung oder auch eine Kompression auf Schicht 6 arbeiten.
Man kann sich vorstellen, wenn ich zum Beispiel einen riesengroßen Text auf meiner Website platziere
und ein Client möchte den sich anschauen, möchte den herunterladen, dann interessiert ihn ja erst
mal wenig, ob der Text irgendwie bei der Übertragung komprimiert wird oder nicht. Er wünscht sich das
vielleicht sogar, dass er komprimiert wird, damit er nicht so viele Bytes herunterladen muss. Aber
wenn er den dann heruntergeladen hat, möchte er den natürlich im Klartext lesen können, so dass
also diese Kompression wieder aufgelöst werden muss und quasi die Daten wieder entpackt werden
müssen, um sie vernünftig darzustellen. Und das würde eben auf dieser Schicht 6, auf der
Darstellungsschicht erledigt. Genau das gleiche bei der Verschlüsselung. Verschlüsselung, ich will
jetzt nicht Kompression und Verschlüsselung durcheinander bringen, das ist was definitiv
unterschiedliches, aber es funktioniert halt ähnlich. Ich habe Daten, die da irgendwo reingehen,
entweder in einen Kompressions- oder in Verschlüsselungsalgorithmus und die kommen
auf der Gegenseite auch wieder raus. Das heißt, wenn ich etwas verschlüsselt habe, muss ich es
wieder entschlüsseln, damit ich es lesen kann. Und wenn ich etwas komprimiert habe, muss ich es
wieder dekomprimieren, damit ich es auch lesen kann. Also nicht durcheinander bringen sind zwei
verschiedene Sachen. Verschlüsselung dient der Geheimhaltung. Das heißt, ich gebe irgendwie
ein Passwort oder einen Schlüssel mit, damit niemand anderes diese Daten lesen kann. Und eine
Kompression dient ausschließlich dazu, Speicherplatz zu sparen. Aber das heißt nicht, dass
dann niemand mehr reingucken kann, sondern wenn ich den Kompressionsalgorithmus kenne, dann kann
ich die Daten einfach dekomprimieren, dann kann ich natürlich da reingucken. Also es hat nichts
mit Geheimhaltung zu tun an dieser Stelle. Und all diese Dinge kann man sich immer gut vor Augen
halten. Da geht es eigentlich weniger darum, die Daten irgendwie zu manipulieren, sondern es wird
einfach anders dargestellt. Daten werden vielleicht in einem anderen Zeichensatz abgelegt
oder sie sind halt verschlüsselt oder sie sind komprimiert, aber es handelt sich immer noch um
dieselben Daten. Und die müssen natürlich von A nach B ausgetauscht werden, denn beide Endpunkte
sollen ja mit den gleichen Daten arbeiten. Aber wie sie jetzt konkret repräsentiert werden, also
meinetwegen g7 oder in Unicode anstatt in ASCII oder wie auch immer, das ist erst mal völlig egal
für die darunter liegenden Schichten, denn das wird hier auf der Darstellungsschicht jetzt, sag
ich mal, vereinbart, sodass die Gegenseite dann mit diesen Daten auch irgendwas anfangen kann. Also
jetzt mal ein ganz blödes Beispiel. Ich hole mir irgendwie eine Datei von Linux nach Windows,
dann muss ich vielleicht sicherstellen, dass meine Datei, Entschuldigung, dass meine Zeilenenden
entsprechend umgeändert werden. Das kann man sogar, wenn man per FTP Dateien überträgt, kann man
sogar anhaken, dass man von Windows nach Linux Sachen umändern will, sodass also eine Textdatei
zum Beispiel aus einem Carry-to-Turn-Line-Feed nur noch ein Line-Feed gemacht wird. Wenn ich
jetzt also von Windows nach Linux übertrage, Windows benutzt Carry-to-Turn-Line-Feed als
Zeilenende, Linux benutzt nur Line-Feed, das heißt, ich könnte das hin und her transformieren.
Ist jetzt ein doofes Beispiel, weil ich da wirklich in die Datei so eingreifen muss quasi, aber das wäre
etwas, was auf der Darstellungsschicht eventuell gemacht werden müsste. Die Hardware hatte ich schon gesagt,
gucken wir uns bei Schicht 7 an, aber es gibt ein kleines Protokoll, was man sich nur angucken kann,
beziehungsweise, naja, ein richtiges Protokoll ist es jetzt auch nicht. Es ist mehr eine Notation und
das ist die sogenannte ASN.1. Das ist die Abstract Syntax Notation One und das ist eine
Beschreibungssprache für Datenstrukturen. Ich will da jetzt nicht zu sehr ins Detail gehen, aber man
kann das vielleicht so ein bisschen vergleichen mit XML. Mit XML kann ich auch Dateiformate zum
Beispiel spezifizieren, wie die aufgebaut sind, welche Elemente es da geben muss, Attribute und so
weiter und so fort und das ASN ist im Prinzip etwas sehr ähnliches. Damit kann ich auch Aufbauten
von Dateien zum Beispiel beschreiben. Das kennt Datentypen wie zum Beispiel Boolean und Integer
und so weiter und das ist durchaus vergleichbar mit so etwas wie XML. Die Syntax ist eine komplett
andere, sieht ganz anders aus, also keine spitzen Klammern und so weiter, sieht völlig anders aus,
aber das ist ein allgemein gültiger Standard, mit dem ich solche Datenstrukturen festlegen kann.
Und die ist wirklich völlig unabhängig von irgendeinem konkreten Endsystem. Das heißt,
ich könnte jetzt zum Beispiel auf dem einen System irgendeine Nachricht losschicken und
auf der Schicht 6 würde diese Nachricht jetzt umgewandelt in diese ASN-Notation und die kann
dann halt über das Netzwerk übertragen werden und auf der Gegenseite können daraus die
Originaldaten quasi wiederhergestellt werden. Und das ist halt ein Format, das es mir erlaubt,
auch verschiedenste Datentypen, ich hatte es gerade schon gesagt, Boolean und Integer und Strings und
was es da alles gibt, halt sauber von A nach B zu transportieren, ohne dass sie jetzt irgendwie
besonders interpretiert werden müssten. Sie müssen halt diesem Standard ASN entsprechen und dann kann
halt die Gegenseite wunderbar was damit anfangen, die wieder quasi in das Originalformat zurück
wandeln und die dann auch entsprechend interpretieren. Gut, damit wären wir mit den ersten beiden Schichten
schon durch. Dann kommen wir jetzt zur letzten Schicht, zur Anwendungsschicht. Und da geht es
darum, dass wir anwendungsspezifische Daten und Befehle ein- und ausgeben können. Das heißt,
hier reden wir jetzt wirklich von der Schicht, wo wir, sage ich mal, das Übliche, was wir auch aus
den Protokollen, die wir uns schon mal anguckt haben, HTTP und SMTP usw. kennen, tatsächlich auch
ein- und ausgeben können. Also wenn ich mich jetzt zum Beispiel mit meinem Mail-Server verbinde und
eine Mail hinschicke über SMTP, dann werden ja diese Befehle zum Beispiel eingegeben. Hatte ich
gerade schon gesagt, Halo oder Mail from, Recipient to usw. Und die Sachen befinden sich oder bewegen
sich hier auf der Anwendungsschicht. Das ist die Schicht, also eine ganz abstrakte Schicht, die
dann zum Beispiel meine Programme nutzen, um die Daten tatsächlich auszutauschen. Also wenn ich
jetzt zum Beispiel mein Thunderbird hier starte, mein E-Mail-Client oder mein Outlook oder was auch
immer du benutzt, dann setzt der direkt auf der Anwendungsschicht ganz ganz oben auf und benutzt
jetzt die Funktion, die diese Anwendungsschicht uns bereitstellt. Also das ist quasi der Einstiegspunkt
für ein Programm, was jetzt über das Netzwerk kommunizieren will. Das sieht es eigentlich nur
von diesem ganzen ISO-OSI-Modell, denn der ganze Kram, der unter der Anwendungsschicht ist, ist ja
versteckt für den Aufrufer. Das ist ja die Idee dieses Modells, dass wir immer abstrakter werden
und wir nicht mehr die Details der darunter liegenden Schichten kennen müssen. Das heißt,
so ein Thunderbird zum Beispiel könnte jetzt hergehen und mit einem Remote-Mail-Server einfach
Halo, Mail from, Recipient usw. austauschen, ohne sich darüber Gedanken machen zu müssen,
ob es jetzt per WLAN oder Kabel, ob es per TCP oder UDP oder wie auch immer kommuniziert. Das
muss das Ding nicht wissen und das interessiert es auch überhaupt nicht. Es hat nur einen
Einstiegspunkt, wo es Befehle abliefern kann quasi und kriegt eventuell was zurück. Und das ist
alles, was das Ding sieht. Es ist also wirklich völlig abstrahiert von der konkreten Netzwerk-
Technologie darunter. Das macht dieses Modell halt so interessant. Okay, aber fangen wir wieder von
vorne an bei der Anwendungsschicht. Also anwendungsspezifische Daten werden hier ausgetauscht,
Einheit, logischerweise also Daten, wie bei den anderen Schichten auch. Aber die zusätzliche
Information, die jetzt dazukommt, das ist jetzt die Semantik der Daten. Während wir auf der
Darstellungsschicht einfach nur von der Syntax gesprochen haben, also wie müssen die Daten
aussehen, damit sie korrekt interpretiert werden können, kommt jetzt die eigentliche Bedeutung
dieser Daten, also genau die Semantik, auf der Schicht 7 zum Tragen. Das heißt, ich kann auf
Schicht 6 zum Beispiel prüfen, ob ich statt Halo vielleicht Hallo eingegeben habe. Das wäre
syntaktisch falsch. Aber der Befehl Halo ist syntaktisch korrekt. Wenn er jetzt in der falschen
Reihenfolge passiert zum Beispiel, dann ist die Semantik dieser Daten falsch. Also das Wort Halo
ist zwar syntaktisch ein korrekter SMTP-Befehl, wenn ich ihn aber nicht zurück zum richtigen
Zeitpunkt absende oder doppelt hintereinander absende zum Beispiel, dann ist die Bedeutung
dieses Befehls im Kontext des Protokolls nicht korrekt und das kann dann die Darstellungsschicht
nicht mehr prüfen. Dafür wäre dann die Anwendungsschicht da. Hier reden wir also wirklich
davon, was diese Daten eigentlich heißen sollen. Was will ich denn jetzt machen? Ich möchte zum
Beispiel eine E-Mail versenden, also muss ich konkrete Befehle eingeben, die dann dazu führen,
dass so eine Mail auf dem Mail-Server angelegt wird.
Ja, die Hardware, die auf dieser Schicht arbeitet und eben auch auf Schicht 5 und 6,
es gilt also jetzt wie gesagt für alle drei Schichten, das wären zum Beispiel
ein Gateway, ein Loadbalancer, ein Proxy oder eine Firewall. Fangen wir hinten an
mit der Firewall, die hatte ich doch eigentlich schon auf Schicht 4 und 3
erklärt. Ja, richtig, da arbeiten auch die Paketfilter, so heißen sie auch, aber es
gibt auch Firewalls, die ein bisschen mehr drauf haben. Die können nämlich in
die Semantik, also in die Daten, die da über die Leitung geschickt werden,
Einblick bekommen. Und die können dann zum Beispiel ein bisschen mehr als
einfach nur sagen, oh, da will jemand auf Port 80 mit mir Verbindung aufnehmen, der
sieht dann zum Beispiel auch, dass über Port 80 da gerade ein böser Virus
übertragen wird, erst mal ganz blöd gesagt. Das heißt, er kann auch mit den
Daten hier etwas anfangen. Dafür muss er natürlich auf Schicht 7 arbeiten und da
reicht es eben nicht mehr aus, einfach nur einen Port zu scannen, sondern es kann
natürlich auch sein, dass so eine Firewall sagt, ja klar, das HTTP, was da
reinkommt, lasse ich durch, aber das andere HTTP da, da ist was gefährliches
drin. Dafür muss ich aber da reingucken können und das auch verstehen, was da
über die Leitung läuft. Also ich muss Kenntnis dieser Semantik haben. Dafür
muss ich halt eben auf den Schichten 5 bis 7 arbeiten. Ein Proxy-Server, was ist
das? Das ist ein Server, der stellvertretend für mich Anfragen
rausschickt oder Antworten entgegen nimmt. Also Proxy auf Englisch, das ist
eben der Stellvertreter auf Deutsch und ein Proxy-Server wird ganz häufig in
Unternehmen eingesetzt, um zum Beispiel alle Anfragen ins Internet über diesen
Proxy-Server laufen zu lassen. Dann stellt der die Anfrage ans Internet, kann
dann die Antwort zum Beispiel zwischenspeichern, also cachen. Also wenn
ich mir jetzt zum Beispiel die neuesten Nachrichten bei spiegel.de angucke und
mein Büronachbar macht das fünf Sekunden später auch, dann kann der
Proxy-Server entscheiden, okay, in fünf Sekunden wird sich wohl nichts geändert
haben, also liefere ich dem zweiten Anfrager einfach die gleiche Seite aus,
die ich vor fünf Sekunden auch schon mal ausgeliefert habe und dann spare ich
mir quasi einen Internetzugriff. Das kann ein Proxy-Server tun.
Er kann aber auch, wie ich gerade schon gesagt habe, bei der Firewall in den
Inhalt noch mal reingucken. Er kann vielleicht einen Virenscan durchführen.
Er kann Sachen ausschließen, also er kann zum Beispiel, was weiß ich, in einem
Hochschulnetzwerk YouTube sperren, wenn ich also auf YouTube will und der Proxy
sagt, nein, da darfst du aber nicht hin, diese URL habe ich ausgeschlossen.
Das ist ja auch etwas, was über das hinausgeht, was auf Port- und IP-Adressebene
da unten funktioniert. Wenn ich zum Beispiel sage, YouTube-Traffic möchte ich
nicht haben, dann geht es ja schon darüber hinaus, einfach zu sagen, eine IP-Adresse
wird gesperrt, denn YouTube hat vielleicht einfach mehrere IP-Adressen.
Das heißt, ich muss gucken, der Name, der da angefragt wird, ist der erlaubt?
Und das, was da zurückkommt, ist zum Beispiel Video-Traffic, den lasse ich
nicht durch und so weiter. Also das sind alles Informationen, die erst auf den
Schichten fünf bis sieben zur Verfügung stehen. Von daher arbeitet so ein Proxy-
oder eine Firewall auf diesen Schichten. Ein Loadbalancer, was ist das? Den kann ich
auch auf weiter unten liegenden Schichten haben, also Loadbalancer ganz
klassisch. Ich habe zum Beispiel einen Webserver, da habe ich aber nicht nur
eine einzige physikalische Maschine stehen, sondern zum Beispiel drei, weil ich
einfach eine Last verteilen will. Wenn ich jetzt zum Beispiel mehrere Millionen
Aufrufe am Tag habe, dann reicht das nicht, wenn da ein Server steht. Ich
stelle also mehrere hin. Jetzt brauche ich aber irgendwie eine Komponente, die
diese Last jetzt auf die drei Server verteilt. Und das ist dann zum Beispiel
so ein Stück Hardware, ein Loadbalancer. Das geht auch auf den unteren Ebenen, zum
Beispiel auf IP-Ebene kann ich sagen, wenn dieser angesprochen wird, wird im
Hintergrund aber auf drei Server rotierend quasi die Anfrage weiter
verteilt. Ich kann das Ganze aber auch auf den höheren Ebenen machen, also fünf
bis sieben in diesem Fall, wo ich dann zum Beispiel anhand der URL zum Beispiel,
die eingegeben wird, irgendein Routing mache oder ich weiß es nicht, bestimmte
Protokolle auf andere Server leite, SMTP zum Beispiel anders behandle als FTP
oder wie auch immer. Das sind Dinge, die ich auf diesen Ebenen auch machen kann.
Und das Letzte ist ein Gateway. Das wird heute häufig missverstanden als
Standard-Gateway, was man auch immer sieht, wenn man zum Beispiel unter
Windows-IP-Config sich anguckt. Das ist immer das Standard-Gateway, ist
eigentlich der Standard-Router, der da drin steht. Das ist nämlich auf IP-Ebene
der nächste Hop im Netzwerk, den ich frage, wenn ich mein Ziel nicht im eigenen
Netzwerk finde. Wenn ich also zum Beispiel aus meinem Netzwerk heraus, aus
meinem privaten Netzwerk heraus Google ansprechen möchte, dann steht Google halt
nicht einfach einen PC neben mir, hat eine ähnliche IP-Adresse und ich kann
direkt damit reden, sondern es ist halt ein ganz anderer IP-Adressbereich und ich
habe keine Ahnung, wie ich da hinkomme. Und wie komme ich jetzt dahin?
Naja, ich sende mein Paket einfach mal an meinen Standard-Router und der wird es
schon wissen, denn der ist ja genau dafür da, das Paket eben weiter zu routen.
Deswegen ist das Standard-Gateway eigentlich ein bisschen irreführend. Es
sollte eigentlich Standard-Router heißen. Ein Gateway, von dem ich jetzt hier rede
auf Ebene 5 bis 7, da reden wir wirklich von einem Stückchen Hardware oder
Software, was zwei völlig unterschiedliche Technologien oder
Netzwerkprotokolle ineinander übersetzt. Als Beispiel ein SMS-Gateway, wo ich zum
Beispiel eine SMS per E-Mail verschicken kann. Oder umgekehrt, wenn ich ein Fax-
Gateway habe, dann kann vielleicht dieses Gateway mit der Außenwelt über Fax
kommunizieren und schickt mir dann das Fax aber per E-Mail ins interne Netz. Also
ich habe da wirklich zwei völlig unterschiedliche Technologien SMS, Fax,
E-Mail, wie auch immer. Und so ein Gateway, das übermittelt quasi zwischen diesen
Technologien. Und dafür muss es aber auch eben auf den höheren Schichten
arbeiten. Allein um eine E-Mail zu versenden, muss ich halt SMTP sprechen.
Also bin ich auf Schicht 7 der Anwendungsschicht.
Ich habe übrigens, fällt mir gerade ein, glaube ich noch gar nicht den Namen der
Schicht 7 gesagt. Also sie heißt Anwendungsschicht auf Deutsch und
Application Layer auf Englisch. Also dieses Mal, diese Woche ist ein bisschen
einfacher. Alle Schichten, die wir gehört haben, können wir eins zu eins ins
Englische übersetzen. Sitzungsschicht, Session Layer, Darstellungsschicht,
Presentation Layer, Anwendungsschicht, Application Layer. Also einfach nur die
englischen Worte und dann sind wir fertig. Also nicht großartig, was zu
merken. Das ist auch mal ganz gut. Ja und zum Schluss kommen noch zu so ein paar
Protokollen. Und da geht es jetzt natürlich ins Eingemachte. Die können wir
jetzt auch nicht alle im Detail durchgehen. Aber im Prinzip alles, was ich
schon als Beispiel gerade gebracht habe. HTTP, FTP, SSH, SMTP, IMAP, POP3 und so
weiter. Alle diese Dinge, die ich in der letzten Episode zu TCP, wo wir die ganzen
Ports durchgesprochen haben, erwähnt habe, die arbeiten natürlich letztlich
auf Ebene 7, auf der Anwendungsschicht. Und was wird hier also definiert? HTTP
zum Beispiel definiert auf Ebene 7 seine ganzen Befehle. Wie zum Beispiel GET, POST,
PUT, DELETE. Was gibt es noch? HEAD und PATCH und ich weiß nicht, was noch alles
gibt. SMTP eben MAIL FROM, RECIPIENT TO, was ich schon oft gesagt habe. FTP, so
was wie USER und PASSWORD und DOWNLOAD. Das heißt gar nicht DOWNLOAD, aber irgendwie GET
glaube ich oder UP oder ich weiß es selber gar nicht mehr, wie die Befehle
genau heißen. Aber alles das, um jetzt wirklich meinen Daten irgendeine
Bedeutung zu geben, das ist jetzt auf Schicht 7 definiert. Und da spielen halt
alle diese sehr bekannten Protokolle eine Rolle. Und die sollte man natürlich
auch unbedingt für die Prüfungen kennen. Also alles das, was ich jetzt hier
erwähnt habe. Aber das sind im Prinzip die Sachen, die ich auch letzte Woche
schon erwähnt habe in Episode 3 hier. Deswegen will ich da jetzt auch nicht
mehr im Detail darauf eingehen. Aber dir sollte einfach bewusst sein, wenn du von
diesen Protokollen sprichst, die ja auch, sage ich mal, landläufig bekannt sind.
Also HTTP, das hat wahrscheinlich jeder draußen schon mal irgendwo in seinem
Browser eingegeben, auch wenn er nichts mit IT zu tun hat. Das sind aber alles
Dinge, die letztlich auf der Ebene 7 des ISO-OSI-Protokolls arbeiten.
Okay, damit sind wir jetzt mit allen Schichten des OSI-Modells durch. Ich fasse
noch mal zusammen, was wir heute jetzt hier gelernt haben. Die Schicht 5, das ist
die Sitzungsschicht oder Session Layer auf Englisch. Und die sorgt dafür, dass
sich eine dauerhafte Kommunikation zwischen verschiedenen Netzwerkteilnehmern
erreichen kann. Das heißt, es wird so ein Dialog hergestellt. Die Einheit, von der
wir hier reden, sind unsere Daten. Zusätzliche Informationen ist eben genau
diese Zuordnung der Anfragen zueinander, aber auch Wiederaufsetzpunkte für den
Fall, dass die Verbindung mal ausfällt. Hardware sind die Dinger, die ich eben
schon gesagt habe. Gateway, Loadbalancer, Proxy, Firewall gehören aber auch zu
Schicht 6 und 7. Und ein spezifisches Protokoll vielleicht für Schicht 5
wäre eher PC, aber auch alle anderen Protokolle, die wir gerade besprochen
haben, haben einen Anteil in der Sitzungsschicht. Also HTTP, FTP, SMTP und
so weiter. Dann, darauf setzt auf die Schicht Nummer 6, die Darstellungsschicht,
Präsentation Layer auf Englisch. Da geht es darum, auch unabhängig von der
konkreten Repräsentation der Daten auf den beteiligten Systemen, miteinander
verständlich kommunizieren zu können. Was passiert hier? Es geht um die Syntax
der Daten, also auch um das Encoding, eventuelle Verschlüsselung und
Kompression der Daten. Also wie werden die Daten auf dem Endsystem konkret
repräsentiert? Eventuell muss ich zum Übertragen die Daten in ein
allgemeingültiges Format übertragen und das wäre zum
Beispiel das ASN. Das dient eben dazu, um unabhängig von konkreten Systemen
Datenstrukturen definieren zu können. Wenn wir dann mit der Darstellung durch
sind, also wissen, wie die Sachen kodiert sind und komprimiert sind und so weiter,
dann kann ganz ganz oben aufsetzen die Anwendungsschicht, der Application Layer.
Und da geht es jetzt wirklich um die anwendungsspezifischen Daten und Befehle,
die dort auch ein- und ausgegeben werden können. Und was hier halt dazu
kommt, ist die Semantik dieser Daten, also Syntax der Daten auf
Darstellungsschicht und auf der siebten Ebene kommt die Semantik, also die
Bedeutung dazu. Und hier reden wir jetzt halt von diesen Protokollen HTTP, FTP,
SMTP, IMAP, POP3, SSH und wie sie alle heißen. Die arbeiten letztlich auf all
diesen drei Schichten, aber die Programme, die dann wirklich mit diesen Protokollen
arbeiten, also zum Beispiel dein Outlook, dein Firefox Browser, dein, ich weiß es
nicht, Win oder Filezilla für FTP und so weiter, die setzen auf Schicht 7 auf und
sehen von dem ganzen Rumsch da drunter auch nichts mehr. Denn das ist ja genau
der Sinn dieses ISO-OSI Modells. Ich muss nicht mehr wissen, was da drunter
passiert. Ich kann einfach mit der direkt unter mir liegenden Schicht
kommunizieren und alles andere wird vor mir verborgen.
So, dann gehen wir jetzt zum Abschluss noch mal einmal die kompletten Schichten
von oben nach unten durch, was jetzt passiert, wenn ich mit irgendwem
kommunizieren möchte. Stellen wir uns vor, ich schicke jetzt eine Mail ab. Was macht
jetzt mein Thunderbird, wenn es mit dem Mails-Hörer spricht? Es wird erstmal auf
Schicht 7, der Anwendungsschicht, ein paar Befehle hin und her schicken, zum
Beispiel Hello, Mail from, Recipient to und so weiter. Wie genau diese Sachen
jetzt syntaktisch übermittelt werden müssen, regelt die Schicht da drunter, die
Darstellungsschicht. Das heißt, habe ich vielleicht eine verschlüsselte Verbindung
zu meinem Mails-Hörer oder brauche ich ein bestimmtes Encoding oder oder oder?
Das macht die Präsentationsschicht. Wenn es nötig ist, sorgt die dafür, die Daten
in ein allgemeines Format zu übertragen, damit die Gegenseite sie versteht.
Sollten mehrere Anfragen nötig sein, die miteinander in Bezug gesetzt werden
müssen, dann regelt das die Sitzungsschicht, die da drunter liegt.
Wenn ich dann hinbekommen habe, dass meine logischen Daten quasi zusammenhängend
übermittelt wurden, sorgt die Transportschicht darunter dafür, dass
wirklich auch auf Netzwerkebene die Daten von A nach B kommen. Zum Beispiel mit dem
TCP-Protokoll wird sichergestellt, dass alle meine Segmente in der richtigen
Reihenfolge beim Gegenüber ankommen, da wieder zusammengesetzt werden können und
dann eben die Logik aus den Daten extrahiert werden kann.
Wie macht die Transportschicht das? Die nutzt dafür die Ports. Das heißt, es wird
eine sogenannte Socket-Verbindung hergestellt zu meinem Gegenüber auf
einer IP-Adresse auf einem bestimmten Port. Dieser Port ist Teil der
Transportschicht. Die IP-Adresse gehört zur Schicht 3 der Vermittlungsschicht.
Die ist eine logische Adresse, die
unabhängig von meiner konkreten physikalischen Netzwerkausgestaltung
irgendwo auf dem Erdball quasi sich befinden kann. Wie kommt sie
dahin? Auf dieser Vermittlungsschicht findet ein Routing statt. Das heißt,
mehrere Router, die miteinander verbunden sind, können dieses Datenpaket dann bis
zu seinem Ziel durchwinken im Prinzip. Wenn es dann da angekommen ist, wird auf
Schicht Nummer 2 der Sicherungsschicht sichergestellt, dass dieses
Datenpaket, was es jetzt hier auf der Ebene nicht mehr gibt, denn hier reden
wir jetzt von sogenannten Frames, dass die bei dem konkreten Hardware-
Bestandteil auch richtig ankommen. Das heißt, die sogenannte MAC-Adresse wird
herangezogen, um zu schauen, ob der konkrete Netzwerkpartner hier der
richtige ist, dem dieses Paket zugestellt werden soll. Zum Beispiel der
letzte Switch in der Reihe vor dem Server bei Google meinetwegen entscheidet,
der Google-Server, der jetzt antworten soll, hängt an meinem Port 5 und
sendet da dann die Daten hin. Letztlich geht es aber immer darum,
irgendwelche Bits zu übertragen. Das kann dann zum Beispiel physikalisch
über WLAN oder Kabel oder wie auch immer erfolgen. Das passiert dann auf
der Schicht Nummer 1, der Bitübertragungsschicht. Das ist die
allerunterste Schicht. Das war jetzt einmal unsere Reise durch das ISO-OSI-
Modell. Ich hoffe, ich konnte einigermaßen verständlich vermitteln, was die
einzelnen Schichten machen, wofür die da sind und warum du das vor allem auch
wissen musst. Das ist natürlich das Allerwichtigste. Also insbesondere musst
du es wissen, weil es halt prüfungsrelevant ist, aber auch in der
Praxis finde ich es immer ganz ganz wichtig, mal zu verstehen, was da
eigentlich genau passiert. Wenn ich irgendwo einen Ping hinschicke, was
heißt das jetzt eigentlich? Was bringt mir das? Wer ist da beteiligt? Und wieso
funktioniert das zum Beispiel nicht? Wieso kriege ich keine Antwort? Wenn ich
dann auf die Fehlersuche gehe, dann sollte ich vielleicht mal verstanden
haben, was da eigentlich im Detail im Hintergrund abläuft. Deswegen ist dieses
ISO-OSI-Modell schon seit Jahren ein ganz wichtiger Standard, der
halt auch in der Praxis und in der Prüfung immer wieder gerne abgefragt
wird. Gut, damit sind wir jetzt aber durch mit dem ISO-OSI-Modell. Vier
Episoden habe ich drauf verwendet, also knapp zwei Stunden Inhalt zu diesem
zentralen Thema. Aber wir haben auch ganz ganz viele Sachen angesprochen, ganz
viele Protokolle und so weiter, die direkt mit dem Modell eigentlich nichts
zu tun haben, die dort aber arbeiten. Und genau darum ging es mir hier eigentlich.
Ich wollte das ISO-OSI-Modell auch ein bisschen mit der Praxis in Berührung
bringen, wo man sich dann halt auch die Sachen besser merken kann. So die
Protokolle DNS und HTTP und so, die kennen wir eigentlich alle aus dem Alltag.
Und am besten kann man sich dann eigentlich so ein neues Modell vielleicht
merken, wenn man diese Sachen, die man aus dem Alltag kennt, dort zuordnen kann.
Deswegen habe ich auch immer diese ganzen Informationen hier untergebracht.
Gut, ich hoffe, es war ein bisschen was für dich dabei. Wenn ich noch was
Wichtiges vergessen habe, wie immer, schick mir eine Mail, schreibt mir einen
Kommentar zur Episode, wie auch immer, damit wir davon irgendwie profitieren
können oder mit anderen Prüflingen auch davon profitieren können, wenn ich hier
noch was vergessen habe oder falsch erklärt habe. Könnte ja auch sein. Dann
schreibt mir auf jeden Fall gerne, was ich hier für einen Quatsch erzählt habe.
Gut, damit wäre ich jetzt durch. Wie gesagt, 2016 beende ich jetzt mit dieser
Episode. Ich wünsche dir schon mal ganz fröhliche Weihnachten und einen riesen
Haufen Geschenke. Vielleicht liegt ja das eine oder andere IT-Handbuch darunter.
Das könntest du auf jeden Fall benutzen, um dir diese ganzen Geschichten von heute
und von den letzten Wochen noch mal anzugucken.
Ansonsten guck dir die Wikipedia-Artikel wieder an, die ich hier verlinkt habe. Zu
den Shownotes kommst du, wie immer, unter anwendungs-und-entwickler-podcast.de
slash 86 für die 86. Episode. Und ich würde mich natürlich freuen, wenn du
auch nächstes Jahr dann wieder einschaltest, wenn es mit dem Podcast
hier weitergeht. Am 9.1. wird halt die nächste Episode veröffentlicht. Bis
dahin kannst du fleißig mein Newsletter abonnieren, wenn du möchtest. Ich
vermute, dass ich den zwischendurch auch mal weiter schicken werde, denn das ist
immer nicht ganz so viel Aufwand, wie hier eine ganze Podcast-Episode immer
aufzunehmen. Also das kann man auch mal zwischen den Feiertagen mal eben schnell
machen. Die Newsletter findest du unter anwendungs-und-entwickler-podcast.de
slash Newsletter. Du kannst dich da einfach eintragen und kriegst dann einmal die Woche
von mir alle neuen Infos von der Website. Spannende Links, die ich auch über die
Woche so gefunden habe. Natürlich auch alles mit Bezug zur Ausbildung,
selbstverständlich. Und wenn du irgendwann keine Lust mehr darauf hast,
auf den ganzen Kram, dann melde ich einfach wieder ab. Kostet nix, bin ich
auch nicht böse drum. Okay, in diesem Sinne wünsche ich dir frohe Weihnachten, guten
Rutsch ins neue Jahr und wir hören uns dann hoffentlich Anfang 2017 wieder. Bis
dann, tschüss.









Deine Ordnung auf der Homepage macht mich fertig.
Bisschen mehr Struktur und Ordnung wäre super.
Was meinst du denn damit genau?
Danke für die wundervolle Podcast-Reihe! Ich finde es super, dass du das Modell so ausführlich mit den verschiedenen Protokollen und Hardware-Komponenten erklärt hast. Auf anderen Seiten habe ich das Modell nur kurz zusammengefasst gefunden, was mir allerdings nicht reicht, um es in der Tiefe verstehen zu können.
Hier noch eine Eselsbrücke, um sich die englischen Begriffe von Schicht 1 beginnend bis 7 merken zu können: “Please Do Not Throw Salami Pizza Away.”
Hallo!
Ich finde es Super, was du machst, besonders für die dual Stundenten die keine Berufsschule haben!
Vielen Dank
Hallo Sihem, freut mich, dass ich helfen kann! 🙂