Netzwerktechnik I

Grundlagen der Netzwerktechnik

Was ist ein Netzwerk?

Ein Netzwerk ist ein Zusammenschluss von Rechnern und Geräten, das zur Kommuniktation untereinander dient und einen Datenaustausch ermöglicht. Die Beteiligten innerhalb eines Netzwerks können dabei unterschiedliche Rollen und Aufgaben haben, zum Beispiel der Versand oder Empfang von Daten (oder beides). Um diese Kommunikation zu ermöglichen, werden verschiedene Regeln und Richtlinien benötigt, damit ein Austausch untereinander geregelt und erfolgreich ablaufen kann.

Arten von Netzwerken

Es gibt mehrere Arten von Netzwerken. Die kleinste solche Einheit ist das Personal Area Network (PAN). Dies ist beispielsweise ein Heimnetzwerk, bestehend aus Router, Computer und Drucker. Die größere, namentlich eher bekannte Einheit ist das Local Area Network (LAN). Ein Büronetzwerk ist üblicherweise als LAN aufgebaut, denn es vernetzt eine kleine bis größere Anzahl von Rechnern, Netzwerkdruckern oder -Scannern bis hin zur Verbindung nach "draußen". Die größte Einheit ist das Wide Area Network (WAN), das Rechner miteinander vernetzt, die auch geographisch weit auseinander sind. Das am weitesten reichende solche WAN ist das Internet.

Das Internet und seine Vorläufer

Erste Ideen und Umsetzungen hinsichtlich eines weitreichenden Netzwerks gab es in den 1960er Jahren. Damals entstand das ARPANET in den USA, welches im gesamten nordamerikanischen Raum Rechner über Knotenpunkte miteinander verband, um Nachrichten auszutauschen. Daraus entstand später das Internet (das ARPANET selbst wurde in den 1990er Jahren sukzessive abgeschaltet).

Über das Internet können mittlerweile beliebige Daten über die gesamte Erde hinweg ausgetauscht werden. Ermöglicht wird das durch verschiedene Knotenpunkte (Router), die die Datenpakete vom Beginn bis zum Empfangspunkt leiten.

Möglich wird das durch Modelle aus unterschiedlichen Netzwerkschichten, die die Kommunikation sicherstellen können: Die Übertragung findet auf verschiedenen Ebenen über die Schichten statt, und jede der Schichten erfüllt bestimmte Aufgaben.

Die Referenzmodelle hierzu sind:

Das Client-Server-Modell

Jedes teilnehmende Gerät im Netzwerk hat unterschiedliche Rollen, die es einnehmen kann. Im Client-Server-Modell gibt es hierbei zwei davon: Der Client, welcher eine Anfrage an den Server stellt, und der Server, der die Antwort an den Client sendet.

Das Peer-to-Peer-Netzwerk

Im Peer-to-Peer-Netzwerk können die Teilnehmenden beides, Anfragen senden und empfangen und Antworten senden und empfangen. Dies ist beispielsweise bei Filesharing-Diensten das genutzte Kommunikationsmodell.

Was ist ein Server?

Dies ist ein Gerät, welches mittels eines Programms/einer Software eine bestimmte Funktionalität erhält, die man "Service"/"Dienst" nennt. Ein solcher Dienst kann Anfragen empfangen, verarbeiten und Antworten senden. Dies bedeutet also: Auch ein kleiner Rechner kann zum Server werden, wenn auf ihm die entsprechende Software installiert ist! Server sind also nicht ausschließlich große Kisten in Rechenzentren!

Im Internet gibt es verschiedene Dienste mit unterschiedlichen Funktionalitäten.

Welche Arten von Servern gibt es beispielsweise? Webserver, Mailserver, DNS-Server, Fileserver, Zeitserver...

Bildquelle: https://www.reddit.com/r/techsupportgore/comments/aenq1f/what_could_possibly_go_wrong/

Internetprotokolle – Kommunikationsrichtlinien, damit man sich versteht

Es gibt Regeln, die die Syntax festlegen, damit unterschiedliche Geräte miteinander kommunizieren können. Diese werden Protokolle genannt. Einige, im Video erklärte Standardprotokolle sind:

  • TCP – Transmission Control Protocol
  • UDP – User Datagram Protocol
  • IP – Internet Protocol
  • SSH – Secure Shell Protocol
  • telnet – Telnet Protocol – Terminal Emulation (dazu später mehr)
  • HTTP – Hypertext Transfer Protocol
  • DNS – Domain Name Service
  • POP (dazu in späteren Videos mehr)
  • IMAP (dazu in späteren Videos mehr)
  • SMTP (dazu in späteren Videos mehr)

Beispiel: Internet Protocol (IP)

Eine IP-Adresse gibt quasi die Telefonnummer eines Geräts im Netzwerk an. Somit können Anfragen von einer IP an eine andere IP gestellt und beantwortet werden. Ohne IP-Adressen wäre eine Zuordnung eines Geräts im Netzwerk schwierig.

IPv4 ist die "alte" Form der Adressenvergabe. Hier werden die Adressen weltweit aber langsam knapp. Die neue Version ist IPv6, das sehr viel mehr Teilnehmende in einem Netzwerk ermöglicht. Soviele Geräte kann es momentan auf der Erde gar nicht geben, dass die IPv6-Adressen ausgehen. :-) Allerdings unterstützen leider noch nicht alle Server weltweit dieses neue Netzwerkadressenmodell, was manchmal zu Problemen in der Kommunikation führen kann (wenn ein Server einen anderen mit IPv6 anredet, dieser aber nur IPv4 verstehen kann...).

Beispiel: HTTP-Statuscodes

Bei der Übertragung von Webseiten wird das Hypertext Transfer Protocol (HTTP) dazu benötigt, um per Kopfzeile (Header) entsprechende Informationen über die Webseite und deren (hoffentlich ordnungsgemäßen) Weg vom Server in den Browser der jeweiligen User anzuzeigen. Dazu gibt es sogenannte Statuscodes, die anzeigen, ob eine Seite komplett und ordnungsgemäß übertragen wurde (HTTP-Status 200 OK) oder ob es Probleme gibt, wie beispielsweise die Meldung, dass die Seite nicht gefunden werden konnte (HTTP-Status 404) oder es Probleme auf dem Server gibt (beispielsweise HTTP-Status 503 Bad Gateway). Eine Liste von Statuscodes findet man aufgeschlüsselt übrigens hier: https://de.wikipedia.org/wiki/HTTP-Statuscode

Wie ist ein solches Protokoll aufgebaut?

Statuscodes für verschiedene Protokolle, Übertragungsmöglichkeiten und den Aufbau von bestimmten Protokollen kann man hier nachlesen - und gegebenenfalls für Programmieraufgaben verwenden, sofern man beispielsweise einen Webdienst mit bestimmten Aufgaben entwickeln will: https://de.wikipedia.org/wiki/Request_for_Comments

Webserver

Ein Webserver ist ein Rechner, auf dem bestimmte Dienste laufen, die zur Auslieferung von Webseiten zuständig sind. Sie umfassen mindestens einen Speicher für HTML-Dateien (statische Webseiten), einen PHP-Prozessor und einen Datenbankdienst.

Es gibt statische Webseiten und dynamische Inhalte. Während statische Inhalte vom Client angefragt und ausgeliefert werden - und alle dieselbe Seite beim Abruf erhalten, werden dynamische Inhalte erst nach der Anfrage auf dem Server prozessiert und an den Client ausgeliefert. Dadurch ist es möglich, dynamische Inhalte wie Datum, Uhrzeit, aktuelle Wetterdaten oder Usernamen auf eine Seite zu schreiben, oder Produktvorschläge ("Andere kauften auch...") in einer Seite anzuzeigen, etc. Durch dynamische Seiten können Inhalte von Datenbanken verarbeitet werden, so dass die Inhalte dadurch variabel und ständig veränderbar werden. Dies ist die Voraussetzung für sogenannte Content-Management-Systeme, die die Verwaltung der Webseiten übernehmen und die Inhalte entsprechend einpflegen, ohne dass man als Seitenbetreibende*r irgendwelche HTML- oder Programmierkenntnisse braucht. Ein Content-Management-System wird dazu auf einem Webserver installiert wie eine Software.

XAMPP: Webserver zum Testen auf dem eigenen Rechner

Der XAMPP ist eine Webserversoftware, die auf dem eigenen Rechner lokal installiert und genutzt werden kann. XAMPP umfasst alle benötigten Programme, die das Verarbeiten einer Webanfrage ermöglicht, um dynamische Inhalte selbst zu erstellen und erstmal auf dem eigenen Gerät zu testen, bevor man sie irgendwo hochlädt:

  • X steht für das Betriebssystem (früher gab es MAMPP für Mac, LAMPP für Linux und WAMPP für Windows, was jetzt zusammengefasst ist zu "X", da die Software jetzt gleichermaßen auf allen Geräten lauffähig ist)
  • A für Apache Webserver
  • M für MySQL/MariaDB Datenbanksysteme
  • P für PHP (Skriptsprache für dynamische Inhalte und beispielsweise für den Aufruf von Datenbank-Inhalten)
  • P für Perl (weitere Skriptsprache)

In den Fortgeschrittenenkursen des IT-Zertifikats werden Sie dieses Programm in jedem Fall benötigen, da dort damit gearbeitet wird. https://sourceforge.net/projects/xampp/files/

Aufbau von Webadressen: der Uniform Resource Locator (URL)

Eine Webadresse dient zur Identifikation und Lokalisation einer Webseite. Ohne URLs müsste man IP-Adressen in die Browserzeile tippen. So macht ein(e) URL einem das Leben etwas leichter.

http://www.uni-koeln.de

http - steht für das verwendete Protokoll

www - Subdomain auf dem Server (Das "www" wird heutzutage immer seltener als Subdomain verwendet...)

uni-koeln - Domain

de - Top-Level-Domain (gibt in meisten Fällen die Herkunft oder die Zugehörigkeit an (org-Adressen gehören meist zu Organisationen, com-Adressen meist zu internationalen Firmen)

Dann gibt es hinter dem ".de" noch weitere Möglichkeiten der Pfadangabe, zum Beispiel uni-koeln.de/coronavirus oder der genauen Dateiangabe ("index.html") – außerdem können hinter dem Dateinamen noch Variablen übergeben werden, wie bei https://www.youtube.com/watch?v=whZ2o8WtS8A - hinter dem Fragezeichen steht die Variable v, die an den Webserver übergeben wird und die er dann verarbeiten kann, in diesem Fall mit dem Namen hinter dem Gleichheitszeichen.

Domain Name System – DNS

Dies ist das "Telefonbuch des Internet", das Zuordnungen von URL zu IP-Adressen ermöglicht. Dies wird als Namensauflösung bezeichnet. Das bedeutet, dass Sie im Browser http://uni-koeln.de eingeben müssen und darüber bei dem Webserver unter der IP-Adresse 135.95.x.y landen, der Ihnen dann die Inhalte sendet. DNS-Server sind dezentral organisiert und arbeiten hierarchisch (URL-Aufbau siehe oben).

Die Ohren des Internets: Ports

Ports dienen der Unterscheidung von Verbindungen. Ein Gerät kommuniziert selten nur über einen Dienst nach außen. Wenn Sie eine Webseite aufbauen und parallel Ihr E-Mail-Programm Daten herunter- oder herauflädt, benutzt Ihr Rechner ja schon mehrere Protokolle gleichzeitig. Bei einem Server ist das ähnlich. Um unterscheiden zu können, welche Kommunikation jetzt wie bei einem Gerät aufgenommen wird, lauscht ein Gerät über Ports nach der entsprechenden Kommunikationsart.

Es gibt Standardports, die nach dem Schema für bestimmte Protokolle vergeben werden:

  • Port 80: HTTP (Webseiten)
  • Port 53: DNS
  • Port 22: SSH (Secure Shell zum Aufbau von Terminalverbindungen und einen Remotezugriff auf Server über die Kommandozeile)
  • Port 23: telnet (Terminalemulation)

Wie sichert man Netzerke?

Durch die Freigabe oder die Sperre von Ports und Protokollen kann der Netzwerkverkehr kontrolliert und gesteuert werden. Dies geschieht auf einer Firewall, wovon es die Art "Personal Firewall" (auf Rechnern) und die "Hardware- oder externe Firewall" (sichert ganze Netzwerke ab) gibt.

Aufgaben

Geben Sie folgenden Befehl in ein Terminal Ihrer Wahl (Linux- oder Mac- oder Windows-Terminal ein:

nslookup uni-koeln.de

Welche Informationen werden Ihnen angezeigt?
Recherchieren Sie: Welche Funktion hat dieser Befehl?

Tipp: Wie man unter Windows solche Befehle eingeben kann, erfahren Sie hier: https://kompendium.infotip.de/netzwerkbefehle-der-windows-kommandozeile.html
Über den Mac geht das über das Programm "Terminal", ähnlich wie unter Linux).

Zweite Aufgabe: Finden Sie heraus, wie Sie über ein Terminal Ihre eigene IP-Adresse ermitteln können! (Wie das geht, unterscheidet sich von Betriebssystem zu Betriebssystem.)