5 – Netzwerke

Kommunikation zwischen Maschinen

Lessons Learned

In diesem Kapitel geht es darum folgende Dinge zu verstehen und zu können

  • Allgemeines Konzept der Netzwerktechnologien
  • Konzepte der Netzwerktechnik
    • Kommunikation, Client-Server
    • Schichtenmodelle
    • Protokolle
    • IP-Adresse
    • URL, DNS

Welt ohne Netzwerk

Quelle: https://www.youtube.com/watch?v=JPr3pkIkPyo

Datenkommunikation

Verarbeitung und Transport digitaler Daten über Verbindungen zwischen Computern und/oder anderen Geräten (i.a. über größere Entfernungen).

Datenkommunikation ermöglicht Informationsaustausch zwischen Endgeräten und gemeinsame Nutzung von Betriebsmitteln.

  • Ressourcen (Drucker etc.) gemeinsam kostengünstiger nutzen

Client/Server-Prinzip

Client Server

Client/Server-Prinzip

Server

  • Meist langlebiger Prozess, der einen Dienst über ein Netzwerk anbietet
  • Nimmt Anforderungen entgegen, führt entsprechende
  • Operationen aus, gibt (falls erwünscht) das Ergebnis an den Anfragenden zurück
  • Angebotene Dienste vom Name- (einfach) bis zum Webserver (komplex)

Client

  • Meist kurzlebiger Prozess, welches einen vom Server angebotenen Dienst beansprucht

Peer-to-Peer-Prinzip

Gleichberechtigte Kommunikationspartner, keine festen Client- und Server-Rollen

  • jedes Rechnerpaar kann Verbindungen eingehen
  • es entsteht ein ganzes Netz an Verbindungen
  • bekannteste Anwendung: Filesharing, z.B. BitTorrent

Transactions

Netze

Client Server

Switch

Ein Switch hat mehrere Anschlüsse, über die Rechner miteinander verbunden werden können. Er merkt sich, welcher Rechner an welchem Anschluss angeschlossen ist (Adresse der Netzwerkkarte) und kann Daten gezielt an einen Anschluss weiterleiten!

Switch Symbol Switch Netzwerkkarten Symbol

Router

Will man Daten an weit entfernte Kommunikationspartner schicken, gibt es meist mehrere mögliche Wege, die man nehmen kann; hier muss also der Weg zu dem entfernten Rechner bestimmt werden. Router verwalten Adresstabellen, mit deren Hilfe möglichst kurze Wege durch das Netz gefunden werden sollen.

Router Symbol Router Netzwerkkarten Symbol

Backbone

Als Backbone (engl. Rückgrat) bezeichnet man eine Menge von Rechnern, die miteinander verbunden sind, um kleinere Netze miteinander zu koppeln und so den Datenaustausch zwischen diesen zu ermöglichen!

Backbone

Schichtmodelle

Nötig für den weltweiten Einsatz: Standardisierung

Im Bereich der Datenkommunikation wurde von der ISO das ISO/OSI-Referenzmodell zur Strukturierung einer Rechnerkommunikation bestimmt (1984).

ISO Logo Internationale Organisation für Normung

ISO/OSI-Referenzmodell

ISO-OSI

7 - Anwendungsschicht

Anwendungsschicht (Application Layer)

  • In dieser Ebene werden (Standard-)Schnittstellen zur Verfügung gestellt, die bestimmten Anwendungstypen ganze Kommunikationsdienste bereitstellen
  • Beispiel WWW – es wird ein allgemeingültiges Protokoll (HTTP) zur Übertragung von Webseiten samt fest definierter Schnittstelle (GET, POST, DELETE, …) bereitgestellt. Wer einen Webbrowser oder einen Webserver implementieren will, kann diese Schnittstelle zur Kommunikation mit den Produkten anderer verwenden.

6 - Darstellungsschicht

Darstellungsschicht (Presentation Layer)

  • Übertragende Daten werden so dargestellt, dass sie von unterschiedlichen Systemen gehandhabt werden können
  • Beispiel String-Darstellung via ASCII oder UTF-8, oder Integer mit 1- oder 2-Komplement
  • Allgemeingültige Lösung anstelle eigener Übertragungssyntax und -semantik
  • Spezifische Daten eines Rechners werden dazu in eine abstrakte und von allen anerkannte Syntax übersetzt

5 - Sitzungsschicht

Sitzungsschicht (Session Layer)

  • Dialogkontrolle - Festlegung wann welcher (Kommunikations-)Partner übertragen darf
  • Token-Management – es können Token (Marken) ausgetauscht werden; nur der Partner mit Token darf Operation ausführen
  • Wiederaufsetzpunkt – mehrstündige Dateiübertragung muss dadurch bei einer Unterbrechung NICHT von Beginn an wiederholt werden!

4 - Transportschicht

Transportschicht (Transport Layer)

  • Stellt Ende-zu-Ende-Verbindungen zwischen Anwendungsprozessen in Endsystemen her
    • Datenstromsegmentierung zur Datenübertragung in einzelnen Paketen
    • Charakteristika des physikalischen Netzes vor den darüber liegenden Schichten verbergen
  • Dienstmerkmale werden ausgehandelt:
    • Adressierung von Anwendungsprozessen
    • Evtl. Fehlerbehandlung
    • Evtl. Fluss-/Staukontrolle

3 - Vermittlungsschicht

Vermittlungsschicht (Network Layer)

  • Daten werden durch sie über größere Entfernungen und zwischen heterogenen Netzen übertragen
  • Hauptaufgabe: Routing (geeignete Weg-Wahl)
  • Voraussetzung dazu: gemeinsamer Adressraum für Rechner und Einigung auf maximale PDU-Größe
  • Zwischenknoten speichern ankommende Nachrichten, schauen in Tabellen den aktuell günstigsten Weg nach und leiten Nachrichten entsprechend weiter
  • Multiplexing mehrerer logischer Verbindungen über eine physikalische Verbindung

2 - Sicherungsschicht

Sicherungsschicht (Data Link Layer)

  • Logical Link Control (LLC):
    • Liefert der Vermittlungsschicht eine fehlerfreie Übertragung der Daten, indem sie in Rahmen unterteilt und einzeln übertragen werden. Der Empfang wird per Prüfsumme verifiziert und mittels Flusskontrolle werden evtl. auftretende Staus vermieden
  • Medium Access Control:
    • Bei lokalen Netzen wird außerdem der konfliktfreie Zugriff auf das Netz geregelt.

1 - Bitübertragungsschicht (Physical Layer)

Bitübertragungsschicht (Physical Layer)

  • Transportiert die einzelnen Bits über eine bestimmte physikalische Leitung (Medium):
  • Festlegung des Leitungstyps und wie eine „1“ bzw. eine „0“ auf der Leitung kodiert werden!
  • Beispiel Kupferkabel: Bits werden als Spannungspulse übertragen (z.B. „Übertrage für eine Millisekunde +1 Volt, um eine 1 zu transportieren“)
  • Ebenfalls definiert:
    • Stecker (Pinbelegungen),
    • Übertragungsrichtung (uni-/bidirektional),

Interaktion der Schichten

Wechselspiel zwischen den Schichten

  • Eine Schicht (n-1) bietet der über ihr liegenden Schicht n Dienste an
  • Schicht n versieht ihre Nachricht mit Kontrollinformationen (Header) und versendet alles zusammen als Protocol Data Units (PDU)!
  • Zwei Kommunikationspartner auf Schicht n tauschen PDUs aus und nutzen dazu die Dienste der nächsttieferen Schicht (n-1)

TCP/IP-Referenzmodell

Orientierung am OSI-Referenzmodell, aber Reduktion der Schichten

TCP-IP Definition

Das TCP/IP-Referenzmodell

ISO/OSI zu TCP/IP

Host-to-Network-Schicht

Host-to-Network-Schicht entspricht ISO/OSI 1-2

  • Host ist über ein Protokoll so verbunden, dass IP-Datagramme versendet und empfangen werden können
  • Protokoll kann dabei an Bedürfnisse angepasst werden!
  • Beispielsweise
    • Ethernet in kabelgebundenen lokalen Netzen
    • WLAN in drahtlosen lokalen Netzen
    • PPP über Punkt-zu-Punkt-Verbindungen über DSL

Internet-Schicht

Internet-Schicht entspricht ISO/OSI 3

  • Rechnerkommunikation über eigene lokale Netzwerkgrenzen dank paketvermittelndem Verfahren möglich. Datagramme werden unabhängig voneinander mit Adressinformation versendet
  • An den Netzwerkgrenzen sorgen Router für die Datenweiterleitung. Verlorene und vertauschte Pakete werden von der Transportebene behoben!
  • Ein einziges Protokoll koppelt alle Netze im Internet: das Internet Protocol (IP)

Transportschicht

Transportschicht entspricht ISO/OSI 4

Kommunikation zwischen Anwendungen durch Definition zweier Ende-zu-Ende-Protokolle:

  1. TCP: Transmission Control Protocol
  2. UDP: User Datagram Protocol

Transportschicht (TCP)

TCP (Transmission Control Protocol)

  • Zuverlässiges und verbindungsorientiertes Protokoll
  • Segmentierung des Byte-Stroms
  • Verkapselung in IP-Paketen
  • Gegenseite setzt ankommende Pakete in richtiger
  • Reihenfolge zusammen (dadurch entsteht ursprünglicher Datenstrom)
  • sorgt auch für Flusskontrolle (Sender überlastet langsameren Empfänger dadurch nicht)

Transportschicht (UDP)

UDP (User Datagram Protocol)

  • unzuverlässiges (“best effort”) und verbindungsloses Protokoll
  • wird benutzt, um Nachrichten zu übermitteln, bei denen schnelle Daten-Lieferung wichtiger ist als zuverlässige (Sprache, Video).

Anwendungsschicht

Anwendungsschicht entspricht ISO/OSI 7. Schicht 5 und 6 fallen weg, da sie oft zu sehr mit der Anwendungslogik verknüpft sind und nicht unabhänig implementiert werden. In der Realität daher oft in die Anwendung integriert

  • Wie bei ISO/OSI werden hier die Schnittstellen für Anwendungen implementiert
  • Festgelegt werden auch Dialoge (Anfrage – Antwort) und Nachrichtenformate (Syntax und Semantik)
  • Dazu gehören (Anwendungs-)Protokolle wie
    • TELNET/SSH/RDP (einloggen und arbeiten auf einem entfernten Rechner)
    • FTP/SFTP/HTTP (Dateitransfer)
    • IMAP, POP3, SMTP (für E-Mails)
    • DNS (Abbildung von Rechnernamen auf IP-Adressen)
    • HTTP/HTTPS (Übertragung von Webseiten)

IP – Internet Protocol

IP Netzwerk Quelle: superuser.com

Klasseneinteilung in IP

  • Class A
    • max. 16 Mio. Netzwerkonten möglich
    • beginnt mit 0-127
    • Aufbau: 0 | Netz-ID 7bit | Knoten-ID 24bit
  • Class B
    • max. 65.536 Netzwerkonten möglich
    • beginnt mit 128-191
    • Aufbau: 10 | Netz-ID 14bit | Knoten-ID 16bit
  • Class C
    • max. 256 Netzwerkonten möglich
    • beginnt mit 192-223
    • Aufbau: 110 | Netz-ID 21bit | Knoten-ID 8bit
  • Class D (Für Multicast Kommunikation)
    • Aufbau: 1110 | Multicast-Adresse 28bit
  • Class E (Reserviert, keine standardisierte Verwendung)

Aufbau einer IP

IP-Aufbau

Aufbau einer IP

Bei der Klassenlosen Aufteilung werden Subnetzmasken benötigt. Die Einsen der Subnetzmaske markieren die Bits die zur Netz-ID gehören. Nullen Markieren die Bits der Knoten-ID

  • Subnetzmaske teilt IP in Netz-ID und Host-ID
  • Netz-ID wird verglichen
    • Netz-ID identisch: direkte Kommunikation
    • Netz-ID verschieden: Kommunikation über Gateway
  • Gateway übernimmt weiteres Routing der Daten

IPv6 - Internetprotokoll Version 6

IPv6 soll IPv4 ablösen Wesentliche Merkmale:

  • Vergrößerung des Adressraums durch 128 Bit Adresse
    • Beispiel: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344
  • Vereinfachung des Protokollrahmens (Protocol Header)
    • Feste Länge
    • Alignment
  • Automatische Konfiguration von Host-Systemen
    • Zustandslose Verfahren (Autokonfiguration)
    • Zustandsbehaftete Verfahren (z.B. DHCPv6)
    • Internet Protocol Security (IPsec)
    • Mobile IPv6

URLs

Um eine Kommunikation mit einem Rechner zu starten wird oft eine URL benötigt.

  • URL: Unified Ressource Locator

Aufbau einer URL: <scheme>:<scheme-specific-part>

URL- Schemas

HTML

       |------------------ Schema-spezifischer Teil ------------------|
 https://max:muster@www.example.com:8080/index.html?p1=A&p2=B#ressource
 \___/   \_/ \____/ \_____________/ \__/\_________/ \_______/ \_______/
   |      |    |           |         |       |          |         |
Schema⁺   |[Kennwort]     Host    [Port]  [Pfad]     [Query]   [Fragment]
      [Benutzer]

⁺ (hier gleich Netzwerkprotokoll)
[] - Optionale Bestandteile

Lokale Dateien:

 file://C:\Users\Klaus\Bachelorarbeit.tex
 \__/ \___________________________________/
   |                    |
Schema                  |
       Pfad zu einer lokalen Datei im Dateisystem des Rechners, der den URL interpretiert

URL- Schemas

Mails

mailto:max@example.org
\____/ \______________/
   |          |
Schema⁺       |
        E-Mail-Adresse gemäß RFC 5322

⁺ (hier kein Netzwerkprotokoll)

WhatsApp

whatsapp://send?abid=1224&text=message
\______/        \_______/ \___________/
   |                |           |
Schema         [Kontakt-ID]     |
                Text der Verschickt werden soll

Domain-Namen

DNS: From Host to IP

Computername (Host oder Dienst) Second-Level-Domain (SLD) Top-Level-Domain (TLD)
www. fh-aachen. de
ftp. fh-aachen. de

Unterbereiche werden mit “.” getrennt

Computername (Host oder Dienst) Sub-Level-Domain (Subdomain) Second-Level-Domain (SLD) Top-Level-Domain (TLD)
www. ili. fh-aachen. de

Domain Namen

Domain (gTLD) Organisationsform
.biz Business, für große und kleinere Unternehmen
.com Kommerzielle Domain
.edu Schulen, Universitäten, Bildungseinrichtungen
.info Informationsdienste
.net Netzspezifische Dienste und Angebote
.org Nichtkommerzielle Unternehmungen und Projekte
Domain (ccTLD) Land
.cc Kokos-Inseln
.ch Schweiz
.de Deutschland
.fr Frankreich
.gb Großbritannien
.nl Niederlande
.ru Russland
.uk Vereinigtes Königreich

DNS Anfragen

DNS Baum

Ablauf einer DNS Abfrage (vereinfacht)

  1. DNS Root Server nach IP für TLD-Server fragen
  2. TLD-Server nach IP für SLD-Server fragen
  3. SLD-DNS-Server nach IP für Host fragen

Schritt 3 Muss eventuell wiederholt werden, wenn es mehrere SLDs gibt. Um den Prozess zu beschleunigen werden die Antworten zwischengespeichert (gecached)

Ports

  • Dienen zur Zuordnung zwischen Prozessen und Datenpaketen
  • sind ein Merkmal zur Unterscheidung mehrerer Verbindungen zwischen demselben Paar von Endpunkten (Hosts)
  • Sind für gänige Protokolle standardisiert. z.B.:
    • Port 80 – Hyper Text Transfer Protocol (HTTP-Server)
    • Port 25 – Simple Mail Transfer Protocol (SMTP-Server)
  • Eine Datenpaket kann durch 4 Angaben einem Prozess eindeutig zugeordnet werden:
    • Server-Addresse (IP)
    • Server Port (TCP oder UDP)
    • Client-Addresse (IP)
    • Client-Port (TCP oder UDP)

Ports

Grob werden die möglichen Ports in 3 Bereiche geteilt:

  • System Ports von 0-1023
    • werden auch well-known Ports genannt
    • Erfordern Administrative Rechte
    • Viele der Ports sind für häufig verwendete Dienste reserviert
  • User Ports von 1024-49151
    • Können Entwickler für eigene Server bzw. Protokolle benutzen
  • Dynamic Ports von 49152-65535
    • Sind für Client-Verbindungen