Zum Hauptinhalt springen

Schulung

Webserver

5. Webserver

Die Entwicklung des HTTP-Servers ist eng mit dem britischen Physiker und Informatiker Tim Berners-Lee verknüpft. 1989 regte dieser an, den Informationsaustausch des CERN (der Europäischen Organisation für Kernforschung) über ein Hypertext-System einfacher und schneller zu gestalten. Zusammen mit Robert Cailliau legte er 1990 einen Projektplan vor, aus dem im Laufe der Zeit neben dem ersten Webserver namens «CERN httpd» auch der erste Webbrowser und einige weitere Grundlagen des Webs (wie HTML und HTTP) hervorgingen. Berners-Lee gilt daher heute als Begründer des World Wide Web.

5.1 Webserver-Operation

Sobald ein Webserver eingerichtet ist und die Inhalte darauf übertragen wurden, kann er den Betrieb aufnehmen. Exemplarischer Vorgang: Wenn du die BirdGraphics-Website besuchen möchtest und dazu im Browser www.birdgraphics.ch eingibst, wird folgender Ablauf ausgelöst:

  • Der Browser übermittelt die URL zuerst an einen Nameserver (DNS-Server). Der alphanumerische Domain-Name (www.birdgraphics.ch) wird dabei in eine numerische IP-Adresse (80.74.141.34) umgewandelt und zum Browser zurückgeschickt.

  • Der Browser kontaktiert den Webserver unter der erhaltenen IP-Adresse und stellt eine Anfrage bezüglich der Webseiteninhalte.

  • Der Webserver beantwortet die Anfrage und sendet die aufgerufene Webseite zurück an den Browser. Diese Antwort, beispielsweise eine HTML-Seite, kann ein statisches Dokument auf dem Server sein oder dynamisch erzeugt werden (PHP, Javascript). Der Browser interpretiert die Antwort, was oftmals weitere Anfragen an den Server nach sich zieht, zum Beispiel nach verknüpften CSS-Dateien oder eingebundenen Bildern, welche Teil der angeforderten Webpage sind. Dieser Vorgang wiederholt sich so lange, bis alle Einzelteile der Seite übertragen wurden.

5.2 Webserver-Technik

Die Software eines HTTP-Servers stellt Daten für die Darstellung von Webinhalten bereit und übermittelt diese via HTTP bzw. HTTPS. Diese Übertragungsprotokolle beruhen auf den Netzwerkprotokollen IP und TCP (selten UDP). Ein Webserver kann die Inhalte gleichzeitig an verschiedene Clients ausliefern, wobei die Geschwindigkeit und die Anzahl der gleichzeitig verarbeitbaren Nutzeranfragen (requests) u. A. von der Hardware sowie der Auslastung des Hosts abhängen. Zudem spielt die Komplexität der Webinhalte eine Rolle: die Auslieferung statischer Seiten benötigt weniger Ressourcen als die Auslieferung dynamischer Inhalte.

Zusätzlich zur Bereitstellung der Webinhalte bieten moderne Webserver-Programme zahlreiche weitere Funktionen:

Sicherheit

Verschlüsselung der Kommunikation zwischen Server und Client via HTTPS, Verwaltung von SSL-Zertifikaten

FTP

Bereitstellen der Funktionalität für die Übertragung von Dateien (File Transfer Protocol = FTP)

Caching

Funktionalität für das Zwischenspeichern von dynamischen Dokumenten, um Anfragen schneller verarbeiten zu können → verhindert Überlastung

Skriptsprachen

Bereitstellung/modulare Einbindung serverseitiger Skriptsprachen, z. B. PHP, JavaScript, .NET, um Webseiten dynamisch zu erzeugen

Authentifizierung

Methoden zur Benutzer-Authentifizierung (LDAP, HTTP, Textdateien), um bestimmte Bereiche einer Website/Anwendung zugänglich zu machen

Umleitung

Weiterleitung an andere Server, Umschreiben und Weiterleitung von Anfragen

Dateitypen

Bereitstellen von Informationen über verschiedene Dateitypen

5.3 Webserver-Software

Die am weitesten verbreiteten Webserver-Programme sind Apache HTTP Server, nginx sowie Microsoft Internet Information Services (IIS) und Google Web Server. Apache und nginx sind freie Software, während es sich bei IIS und Google Web Server um proprietäre Produkte handelt.


Links

Apache HTTP Server Apache HTTP Server
nginx HTTP Server nginx
Microsoft IIS MS IIS

Weiterlesen … Webserver

  • Aufrufe: 1398

DNS

4. Domain Name System (DNS)

Das Domain Name System (DNS) ist einer der wichtigsten Dienste in vielen IP-basierten Netzwerken. Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.

Das DNS funktioniert ähnlich wie ein Telefonbuch: Der Benutzer kennt den Namen der Domäne – zum Beispiel www.birdgraphics.ch. Diesen sendet er als Anfrage ins Internet. Die Domäne wird dann vom DNS in die zugehörige IP-Adresse (die «Anschlussnummer») umgewandelt – zum Beispiel in die IPv4-Adresse 80.74.141.34 – und führt so zum Server, der die Website unter diesem Domainnamen enthält.

Da Menschen sich Namen weitaus besser merken können als Zahlenketten, bietet das DNS einerseits eine Vereinfachung, andererseits können, da Änderungen auf der IP-Ebene weitgehend verborgen bleiben, IP-Adressen (beispielsweise von Web-Servern) relativ risikolos geändert werden.

Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (reverse lookup) möglich. In Analogie zum Telefonbuch entspricht dies einer Suche nach dem Namen eines Teilnehmers zu einer bekannten Rufnummer (in der Telekommunikationsbranche als Inverssuche bekannt).

4.1 Nameserver

Nameserver liefern die Server-IP-Adresse zurück und lösen diese auf, damit der Computer eine direkte Verbindung zum Server aufbauen kann.

Nameserver sind ähnlich wie Webserver. Sie sind so konfiguriert, dass sie die DNS-Einträge speichern und keine Websites, Dienste oder Anwendungen zur Verfügung stellen.

Man unterscheidet zwischen autoritativen und nicht-autoritativen Nameservern.

Ein autoritativer Nameserver ist verantwortlich für eine Zone. Seine Informationen über diese Zone werden deshalb als gesichert angesehen. Für jede Zone existiert mindestens ein autoritativer Server, der primäre Nameserver. Dieser wird im SOA Resource Record einer Zonendatei aufgeführt. Aus Redundanz- und Lastverteilungsgründen werden autoritative Nameserver fast immer als Server-Cluster realisiert, wobei die Zonendaten identisch auf einem oder mehreren sekundären Name-Servern liegen. Die Synchronisation zwischen primären und sekundären Nameservern erfolgt per Zonentransfer.

Ein nicht-autoritativer Nameserver bezieht seine Informationen über eine Zone von anderen Nameservern, sozusagen aus zweiter oder dritter Hand. Seine Informationen werden als nicht gesichert angesehen. Da sich DNS-Daten normalerweise nur sehr selten ändern, speichern nicht-autoritative Name-Server die einmal angefragten Informationen im lokalen RAM ab, damit diese bei einer erneuten Anfrage schneller vorliegen. Diese Technik wird als Caching bezeichnet. Jeder dieser Einträge besitzt ein eigenes Verfallsdatum (TTL time to live), nach dessen Ablauf der Eintrag aus dem Cache gelöscht wird. Die TTL wird dabei durch einen autoritativen Nameserver für diesen Eintrag festgelegt und wird nach der Änderungswahrscheinlichkeit des Eintrages bestimmt (sich häufig ändernde DNS-Daten erhalten eine niedrige TTL). Das kann unter Umständen bedeuten, dass der Nameserver, wenn Daten geändert wurden, zwischenzeitlich «falsche» Informationen liefert.

4.2 DNS-Einträge

Für jeden Domain-Namen existieren mindestens zwei Domain-Nameserver-Einträge. Es können auch mehrere Einträge verwendet werden. Diese sehen beispielsweise folgendermassen aus:

ns105.kreativmedia.ch
ns106.kreativmedia.ch

Die Domain-Nameserver-Einträge werden in der Regel beim Dienstanbieter, bei welchem der Domain-Name registriert/gekauft wurde (dem Registrar), angegeben.

Es gibt viele Webdienste, die über DNS-Einträge mit einer Domain verknüpft sind: E-Mail, SFTP, Hosting-Kontrollpanels, Webmail-Anwendungen und phpMyAdmin.

Arten von DNS-Einträgen

A-Eintrag

Wird verwendet, um eine Domäne oder Subdomäne mit der IPv4-Adresse des Servers zu verknüpfen, auf dem sich die Website befindet.

AAAA-Eintrag

Verknüpft eine Domäne oder Subdomäne mit der IPv6-Adresse des Servers, auf dem sich die Website befindet.

CNAME

Wird verwendet, um eine Subdomain der primären oder kanonischen Domain zuzuordnen. In der Praxis häufig gebraucht, um der Primärdomain eine WWW-Subdomain zuzuweisen, z. B. www.birdgraphics.ch und birdgraphics.ch.

MX-Eintrag

Ordnet einer Domain einen E-Mail-Dienst zu.

TXT-Einträge

Werden verwendet, um einer Domain beliebigen Text zuzuordnen. Beispielsweise kann ein SPF-Eintrag für die verbesserte Zustellbarkeit von E-Mails verankert werden, welcher vor missbräuchlicher Verwendung des Domainnamens beim Versand von E-Mails schützt.

DNS-Propagation

Wenn Änderungen an den DNS-Einträgen einer bestimmten Domain vorgenommen werden, dauert es eine gewisse Zeit, bis die Modifikationen wirksam werden und überall bekannt sind. Diese Dauer wird als DNS-Propagation bezeichnet.

DNS-Einträge verfügen über eine time to live (TTL). Dieser Wert bestimmt die «Lebenszeit» der Einträge bzw. definiert, wie schnell Änderungen wirksam werden. Oftmals ist die TTL standardmässig auf 1 Stunde oder auf 4 Stunden konfiguriert. Bis Änderungen an bestehenden DNS-Einträgen vollständig übernommen werden, kann es unter Umständen länger (im Extremfall bis zu einer Woche) dauern.

Bei Domain-Namserver-Einträgen bestimmt der Registrar die TTL, sie kann in der Regel nicht geändert werden. Bei Nameserver-Änderungen kann es daher bis zu einem Tag oder länger dauern, bis die Anpassungen wirksam werden.

Bevor Änderungen an bestehenden DNS-Einträgen vorgenommen werden, empfiehlt es sich daher, allenfalls die TTL-Werte zu reduzieren, damit die Änderungen so rasch wie möglich übernommen werden.


Tools

DNS-Propagation DNS-Propagation Check
Google DNS-Lookup DNS-Lookup
MX Toolbox MX Toolbox

Weiterlesen … DNS

  • Aufrufe: 1858

Grundlagen

  • Aufrufe: 148

Server

3. Server

In der Informatik ist ein Server (englisch server, wörtlich Diener oder Bediensteter, im weiteren Sinn auch Dienst) ein Computerprogramm oder ein Gerät, welches Funktionalitäten, Dienstprogramme, Daten oder andere Ressourcen bereitstellt, damit andere Computer oder Programme («Clients») darauf zugreifen können, meist über ein Netzwerk. Diese Architektur wird als Client-Server-Modell bezeichnet.

Dabei hat Server zwei verwandte, aber unterschiedliche Grundbedeutungen:

  • Ein Server als Software ist ein Programm, das im Client-Server-Modell mit einem anderen Programm, dem Client (englisch für Kunde), kommuniziert. Der Client kann dadurch bestimmte, von der Server-Software bereitgestellte Funktionalitäten nutzen, zum Beispiel Dienstprogramme, Netzwerkdienste, den Zugang zu einem Dateisystem oder einer Datenbank.

  • Ein Hardware-Server (auch Hostrechner) ist ein Computer, auf dem ein oder mehrere Server (Software) laufen.

Diese Doppeldeutigkeit des Begriffs Server führt in einigen Fällen zu Verwirrung, da die Bezeichnung häufig in einer Form verwendet wird, in der schwer erkennbar ist, ob der Hardware- oder der Software-Aspekt gemeint ist.

In der ursprünglichen Bedeutung des Wortes in der Informatik ist ein Server ein Computerprogramm, das einen Dienst (engl. Service) anbietet. Im Rahmen des Client-Server-Modells kann ein anderes Programm, der Client («Kunde»), diesen Dienst nutzen. Client und Server laufen als Programme typischerweise auf verschiedenen Rechnern, seltener auch auf demselben Rechner. Ein Webbrowser wie Google Chrome oder Microsoft Edge ist beispielsweise ein Client mit dem eine Anfrage an einen Webserver gestellt wird, der ihm eine Antwort zurückgibt.

Der Server ist in Bereitschaft, um jederzeit auf die Kontaktaufnahme eines Clients reagieren zu können. Die Regeln der Kommunikation (Format, Aufruf des Servers und die Bedeutung der zwischen Server und Client ausgetauschten Daten), nennt man Protokoll; diese Regeln sind jeweils für einen Dienst festgelegt.

Allgemein kann das Konzept ausgebaut werden zu einer Gruppe von Servern, die eine Gruppe von Diensten anbieten, Beispiele: Mail-Server, (erweiterter) Web-Server, Applikations-Server, Datenbank-Server.

Da in der Praxis Server meist gesammelt auf bestimmten Rechnern laufen, hat es sich eingebürgert, diese Rechner selbst als Server zu bezeichnen. Beispiele: Mailserver, Webserver oder Applikationsserver.

Server

Im Sprachgebrauch für Software-Server und -Clients hat es sich eingebürgert, diesen die Fähigkeiten zuzuschreiben, die eigentlich von der Hardware bereitgestellt werden. So nimmt in diesem Sprachgebrauch bspw. die Client-Software mit der Server-Software Kontakt auf, obwohl sie dazu nur durch die Hardware befähigt wird. Man abstrahiert also vollkommen von der Art und Weise, wie die Verbindung technisch realisiert wird, und davon, welche und wie viele Rechner an diesem Ergebnis beteiligt sind. So können sich bspw. beide (Client und Server) auf demselben Rechner befinden, über ein Kabel oder auch über das Internet verbunden sein.

3.1 Arten von Servern

Art Beschreibung
Application-Server Ein Application-Server stellt Anwendungen zentral bereit. Ein Client startet somit das gewünschte Programm nicht von der lokalen Festplatte, sondern von diesem Server aus. Ein Vorteil eines solchen Servers ergibt sich z. B. beim Einspielen von Programm-Updates: diese Aktualisierungen müssen nur einmalig auf dem Server eingespielt werden, und können dann von diesem an die Clients verteilt werden. Häufig ist noch ein kleiner lokaler Installationsteil notwendig, bevor ein Programm zum Einsatz am Client kommen kann. Werden Programme direkt auf dem Server ausgeführt, spricht man von einem Terminalserver.
CD-ROM-Server Ein Rechner, der mit optischen Laufwerken (wie beispielsweise CD-ROM-Laufwerken) ausgestattet ist; dieser Rechner stellt dann die Inhalte der optischen Datenspeicher allen am Netz angeschlossenen Rechnern und Benutzern zur Verfügung.
Datenbank-Server Dieser Server arbeitet mit einem geeigneten Datenbankmanagementsystem (kurz DBMS), mit dem er grosse Datenbestände zentral zur Verfügung stellen kann, sodass mehrere Clients gleichzeitig mit diesen Daten arbeiten können.
File-Server Ein Server zum Speichern aller Daten, die von Benutzern erstellt wurden. Der Rechner, auf dem der File-Server läuft, ist meistens mit einer oder mehreren Festplatten mit großer Kapazität und hoher Zugriffsgeschwindigkeit ausgestattet.
Mail-Server Ein Server, auf dem für jeden Benutzer ein Postfach angelegt wird, sodass mit Hilfe dieses Servers über E-Mails kommuniziert werden kann.
Print-Server Dieser Server stellt zentral Drucker zur Verfügung und koordiniert eingehende Druckaufträge. Der Rechner, auf dem dieser Server läuft, ist meistens mit mehreren Anschlussstellen für mehrere Drucker ausgerüstet.
Proxy-Server Dieser Server bietet für alle Benutzer einen zentralen Zugang zum Internet an und verwaltet diesen.
Nameserver Ein Nameserver ist ein Server, der Namensauflösung anbietet. Namensauflösung ist das Verfahren, das es ermöglicht, Namen von Rechnern bzw. Diensten in eine vom Computer interpretierbare Adresse aufzulösen (z. B. www.matsh.ch in 80.74.141.34).
Die meisten Nameserver sind Teil des Domain Name Systems (DNS), das im Internet benutzt wird.

3.2 Betriebssysteme

Im Internet sind UNIX-ähnliche Open-Source Distributionen wie Linux oder FreeBSD die dominierenden Betriebssysteme unter den Servern, wobei Windows Server ebenfalls einen gewissen Anteil haben. Proprietäre Systeme wie beispielsweise macOS Server werden in sehr geringer Anzahl eingesetzt.

Weiterlesen … Server

  • Aufrufe: 785

Das OSI-Modell

2. Das OSI-Modell

Das ISO/OSI-Referenzmodell (englisch Open Systems Interconnection model) ist ein Referenzmodell für Netzwerkprotokolle als Schichtenarchitektur. Es wird seit 1983 von der International Telecommunication Union (ITU) und seit 1984 auch von der International Organization for Standardization (ISO) als Standard veröffentlicht. Seine Entwicklung begann im Jahr 1977.

Zweck des OSI-Modells ist es, Kommunikation über unterschiedlichste technische Systeme hinweg zu beschreiben und die Weiterentwicklung zu begünstigen. Dazu definiert dieses Modell sieben aufeinanderfolgende Schichten (engl. layers) mit jeweils eng begrenzten Aufgaben. In der gleichen Schicht mit klaren Schnittstellen definierte Netzwerkprotokolle sind einfach untereinander austauschbar, selbst wenn sie wie das Internet Protocol eine zentrale Funktion haben.

OSI Schichtmodell

2.1 Protokoll-Schema

Protokoll-Karte

2.2 Die 7 Schichten

OSI-Schicht Einordnung TCP/IP-Modell Einordnung Protokollbeispiele Einheiten Kopplungselemente
7 Anwendungen (Application) anwendungs-
orientiert
Anwendung Ende zu Ende (Multihop) DHCP
DNS
FTP
HTTP
HTTPS
LDAP
MQTT
NCP
RTP
SMTP
XMPP
Daten Gateway, Content-Switch, Proxy, Layer-4-7-Switch
6 Darstellung (Presentation)
5 Sitzung (Session)
4 Transport (Transport) transport-
orientiert
Transport TCP
UDP
SCTP
SPX

TCP = Segmente
UDP = Datagramme

3 Vermittlung-/Paket (Network) Internet ICMP
IGMP
IP
IPsec
IPX
Pakete Router, Layer-3-Switch
2 Sicherung (Data Link) Netzzugriff Punkt zu Punkt IEEE 802.3 Ethernet
IEEE 802.11 WLAN
TLAP
FDDI
MAC
Token Ring
ARCNET
Rahmen (Frames) Bridge, Layer-2-Switch, Wireless Access Point
1 Bitübertragung (Physical) 1000BASE-T
Token Ring
ARCNET
Bits, Symbole Netzwerkkabel, Repeater, Hub
Schicht 1 – Bitübertragungsschicht (Physical Layer)

Die Bitübertragungsschicht definiert die elektrische, mechanische und funktionale Schnittstelle zum Übertragungsmedium. Die Protokolle dieser Schicht unterscheiden sich nur nach dem eingesetzten Übertragungsmedium und -verfahren.

Die Bitübertragungsschicht (engl. Physical Layer) ist die unterste Schicht. Diese Schicht stellt mechanische, elektrische und weitere funktionale Hilfsmittel zur Verfügung, um physische Verbindungen zu aktivieren bzw. zu deaktivieren, sie aufrechtzuerhalten und Bits darüber zu übertragen. Das können zum Beispiel elektrische Signale, optische Signale (Lichtleiter, Laser), elektromagnetische Wellen (drahtlose Netze) oder Schall sein. Die dabei verwendeten Verfahren bezeichnet man als übertragungstechnische Verfahren. Geräte und Netzkomponenten, die der Bitübertragungsschicht zugeordnet werden, sind zum Beispiel die Antenne und der Verstärker, Stecker und Buchse für das Netzwerkkabel, der Repeater, der Hub, das T-Stück und der Abschlusswiderstand (Terminator).

Auf der Bitübertragungsschicht wird die digitale Bitübertragung auf einer leitungsgebundenen oder leitungslosen Übertragungsstrecke bewerkstelligt. Die gemeinsame Nutzung eines Übertragungsmediums kann auf dieser Schicht durch statisches Multiplexen oder dynamisches Multiplexen erfolgen. Dies erfordert neben den Spezifikationen bestimmter Übertragungsmedien (zum Beispiel Kupferkabel, Lichtwellenleiter, Stromnetz) und der Definition von Steckverbindungen noch weitere Elemente.

Darüber hinaus muss auf dieser Ebene gelöst werden, auf welche Art und Weise ein einzelnes Bit übertragen werden soll: In Rechnernetzen werden Informationen in Form von Bit- oder Symbolfolgen übertragen. In Kupferkabeln und bei Funkübertragung sind modulierte, hochfrequente, elektromagnetische Wellen die Informationsträger, in Lichtwellenleitern Lichtwellen einer oder mehrerer bestimmter Wellenlängen. Die Informationsträger können abhängig von der Modulation nicht nur zwei Zustände für null und eins annehmen, sondern gegebenenfalls weitaus mehr. Für jede Übertragungsart muss daher eine Codierung festgelegt werden. Das geschieht mit Hilfe der Spezifikation der Bitübertragungsschicht eines Netzes.

Hardware auf dieser Schicht: Repeater, Hubs, Leitungen, Stecker etc.

Protokolle und Normen: V.24, V.28, X.21, RS 232, RS 422, RS 423, RS 499


Schicht 2 – Sicherungsschicht (Data Link Layer)

Die Sicherungsschicht sorgt für eine zuverlässige und funktionierende Verbindung zwischen Endgerät und Übertragungsmedium. Zur Vermeidung von Übertragungsfehlern und Datenverlust enthält diese Schicht Funktionen zur Fehlererkennung, Fehlerbehebung und Datenflusskontrolle. Auf dieser Schicht findet auch die physikalische Adressierung von Datenpaketen statt.

Aufgabe der Sicherungsschicht (engl. Data Link Layer; auch Abschnittssicherungsschicht, Datensicherungsschicht, Verbindungssicherungsschicht, Verbindungsebene, Prozedurebene) ist es, eine zuverlässige, das heisst weitgehend fehlerfreie Übertragung zu gewährleisten und den Zugriff auf das Übertragungsmedium zu regeln. Dazu dient das Aufteilen des Bitdatenstromes in Blöcke – auch als Frames oder Rahmen bezeichnet – und das Hinzufügen von Prüfsummen im Rahmen der Kanalkodierung. So können fehlerhafte Blöcke vom Empfänger erkannt und entweder verworfen oder sogar korrigiert werden; ein erneutes Anfordern verworfener Blöcke sieht diese Schicht aber nicht vor.

Eine «Datenflusskontrolle» ermöglicht es, dass ein Empfänger dynamisch steuert, mit welcher Geschwindigkeit die Gegenseite Blöcke senden darf. Die internationale Ingenieursorganisation IEEE sah die Notwendigkeit, für lokale Netze auch den konkurrierenden Zugriff auf ein Übertragungsmedium zu regeln, was im OSI-Modell nicht vorgesehen ist.

Nach IEEE ist Schicht 2 in zwei Unter-Schichten (sub layers) unterteilt: LLC (Logical Link Control, Schicht 2b) und MAC (Media Access Control, Schicht 2a).

Hardware auf dieser Schicht: Bridge, Switch (Multiport-Bridge)

Das Ethernet-Protokoll beschreibt sowohl Schicht 1 als auch Schicht 2, wobei auf dieser als Zugriffskontrolle CSMA/CD zum Einsatz kommt.

Protokolle und Normen, die auf anderen Schicht-2-Protokollen und -Normen aufsetzen: HDLC, SDLC, DDCMP, IEEE 802.2 (LLC), RLC, PDCP, ARP, RARP, STP, Shortest Path Bridging

Protokolle und Normen, die direkt auf Schicht 1 aufsetzen: IEEE 802.11 (WLAN), IEEE 802.4 (Token Bus), IEEE 802.5 (Token Ring), FDDI


Schicht 3 – Vermittlungsschicht (Network Layer)

Die Vermittlungsschicht steuert die zeitliche und logische getrennte Kommunikation zwischen den Endgeräten, unabhängig vom Übertragungsmedium und der Topologie. Auf dieser Schicht erfolgt erstmals die logische Adressierung der Endgeräte. Die Adressierung ist eng mit dem Routing (Wegfindung vom Sender zum Empfänger) verbunden.

Die Vermittlungsschicht (engl. Network Layer; auch Paketebene oder Netzwerkschicht) sorgt bei leitungsorientierten Diensten für das Schalten von Verbindungen und bei paketorientierten Diensten für die Weitervermittlung von Datenpaketen sowie die Stauvermeidung (engl. congestion avoidance). Die Datenübertragung geht in beiden Fällen jeweils über das gesamte Kommunikationsnetz hinweg und schliesst die Wegsuche (Routing) zwischen den Netzwerkknoten ein. Da nicht immer eine direkte Kommunikation zwischen Absender und Ziel möglich ist, müssen Pakete von Knoten, die auf dem Weg liegen, weitergeleitet werden. Weitervermittelte Pakete gelangen nicht in die höheren Schichten, sondern werden mit einem neuen Zwischenziel versehen und an den nächsten Knoten gesendet.

Zu den wichtigsten Aufgaben der Vermittlungsschicht zählt das Bereitstellen netzwerkübergreifender Adressen, das Routing bzw. der Aufbau und die Aktualisierung von Routingtabellen und die Fragmentierung von Datenpaketen. Aber auch die Aushandlung und Sicherstellung einer gewissen Dienstgüte fällt in den Aufgabenbereich der Vermittlungsschicht.

Neben dem Internet Protocol zählen auch die NSAP-Adressen zu dieser Schicht. Da ein Kommunikationsnetz aus mehreren Teilnetzen unterschiedlicher Übertragungsmedien und -protokolle bestehen kann, sind in dieser Schicht auch die Umsetzungsfunktionen angesiedelt, die für eine Weiterleitung zwischen den Teilnetzen notwendig sind.

Hardware auf dieser Schicht: Router, Layer-3-Switch (BRouter)

Protokolle und Normen: X.25, ISO 8208, ISO 8473 (CLNP), ISO 9542 (ESIS), IP, IPsec, ICMP


Schicht 4 – Transportschicht (Transport Layer)

Die Transportschicht ist das Bindeglied zwischen den transportorientierten und anwendungsorientierten Schichten. Hier werden die Datenpakete einer Anwendung zugeordnet.

Zu den Aufgaben der Transportschicht (engl. Transport Layer; auch Ende-zu-Ende-Kontrolle, Transport-Kontrolle) zählt die Segmentierung des Datenstroms, die Stauvermeidung (engl. congestion avoidance) und die Sicherstellung einer fehlerfreien Übertragung.

Ein Datensegment ist dabei eine Service Data Unit, die zur Datenkapselung auf der vierten Schicht (Transportschicht) verwendet wird. Es besteht aus Protokollelementen, die Schicht-4-Steuerungsinformationen enthalten. Als Adressierung wird dem Datensegment eine Schicht-4-Adresse vergeben, also ein Port. Das Datensegment wird in der Schicht 3 in ein Datenpaket gekapselt.

Die Transportschicht bietet den anwendungsorientierten Schichten 5 bis 7 einen einheitlichen Zugriff, so dass diese die Eigenschaften des Kommunikationsnetzes nicht zu berücksichtigen brauchen.

Fünf verschiedene Dienstklassen unterschiedlicher Güte sind in Schicht 4 definiert und können von den oberen Schichten benutzt werden, vom einfachsten bis zum komfortabelsten Dienst mit Multiplexmechanismen, Fehlersicherungs- und Fehlerbehebungsverfahren.

Protokolle und Normen: ISO 8073/X.224, ISO 8602, TCP, UDP, SCTP, DCCP


Schicht 5 – Sitzungsschicht (Session Layer)

Die Kommunikationsschicht organisiert die Verbindungen zwischen den Endsystemen. Dazu sind Steuerungs- und Kontrollmechanismen für die Verbindung und den Datenaustausch implementiert.

Die Schicht 5 (Steuerung logischer Verbindungen; engl. Session Layer; auch Sitzungs­schicht, Kommunikations­schicht, Kommunikations­steuerungs­schicht) sorgt für die Prozess­kommunikation zwischen zwei Systemen. Hier findet sich unter anderem das Protokoll RPC (Remote Procedure Call). Um Zusammen­brüche der Sitzung und ähnliche Probleme zu beheben, stellt die Sitzungs­schicht Dienste für einen organisierten und synchronisierten Daten­austausch zur Verfügung. Zu diesem Zweck werden Wieder­aufsetz­punkte, so genannte Fixpunkte (Check Points) eingeführt, an denen die Sitzung nach einem Ausfall einer Transport­verbindung wieder synchronisiert werden kann, ohne dass die Übertragung wieder von vorne beginnen muss.

Protokolle und Normen: ISO 8326 / X.215 (Session Service), ISO 8327 / X.225 (Connection-Oriented Session Protocol), ISO 9548 (Connectionless Session Protocol)


Schicht 6 – Darstellungsschicht (Presentation Layer)

Die Darstellungsschicht wandelt die Daten in verschiedene Codecs und Formate. Hier werden die Daten zu oder von der Anwendungsschicht in ein geeignetes Format umgewandelt.

Die Darstellungs­schicht (engl. Presentation Layer; auch Daten­darstellungs­schicht, Daten­bereitstellungs­ebene) setzt die system­abhängige Darstellung der Daten (zum Beispiel ASCII, EBCDIC) in eine unabhängige Form um und ermöglicht somit den syntaktisch korrekten Daten­austausch zwischen unterschiedlichen Systemen. Auch Aufgaben wie die Daten­kompression und die Verschlüsselung gehören zur Schicht 6. Die Darstellungs­schicht gewährleistet, dass Daten, die von der Anwendungs­schicht eines Systems gesendet werden, von der Anwendungs­schicht eines anderen Systems gelesen werden können. Falls erforderlich, agiert die Darstellungs­schicht als Übersetzer zwischen verschiedenen Daten­formaten, indem sie ein für beide Systeme verständliches Datenformat, die ASN.1 (Abstract Syntax Notation One), verwendet.

Protokolle und Normen: ISO 8822 / X.216 (Presentation Service), ISO 8823 / X.226 (Connection-Oriented Presentation Protocol), ISO 9576 (Connectionless Presentation Protocol)


Schicht 7 – Anwendungsschicht (Application Layer)

Dienste, Anwendungen und Netzmanagement. Die Anwendungsschicht stellt Funktionen für die Anwendungen zur Verfügung. Diese Schicht stellt die Verbindung zu den unteren Schichten her. Auf dieser Ebene findet auch die Datenein- und ausgabe statt. Die Anwendungen selbst gehören nicht zur Schicht.

Anwendungen: Webbrowser, E-Mail-Programm, Instant Messaging


2.3 Zusammenfassung

7. Schicht / Anwendung: Funktionen für Anwendungen sowie die Dateneingabe und -ausgabe.
6. Schicht / Darstellung: Umwandlung der systemabhängigen Daten in ein unabhängiges Format.
5. Schicht / Sitzung: Steuerung der Verbindungen und des Datenaustauschs.
4. Schicht / Transport: Zuordnung der Datenpakete zu einer Anwendung.
3. Schicht / Vermittlung: Routing der Datenpakete zum nächsten Knoten.
2. Schicht / Sicherung: Segmentierung der Pakete in Frames und Hinzufügen von Prüfsummen.
1. Schicht / Bitübertragung: Umwandlung der Bits in ein zum Medium passendes Signal und physikalische Übertragung.

Zum Verständnis der Funktionsweise von Protokollen in Schichtenmodelle ist es hilfreich zwischen der Adressierung und der Datenübertragung zu unterscheiden.

Schichten Datenverarbeitung und -übertragung Adressierung und Verbindungsaufbau
Anwendung
OSI-Schicht
5 + 6 + 7
HTTP, FTP,
IMAP, SMTP
Pfeil
SMB (Windows)
Samba (Unix/Linux)
Pfeil
NetBIOS (Windows)
Pfeil
URL:
www.birdgraphics.ch
Pfeil
hosts / DNS
Pfeil
NetBIOS-Name
(Computername)
Pfeil
lmhosts / WINS
Pfeil
Übertragung
OSI-Schicht
3 + 4
Transport: TCP / UDP (Datenpakete)
Pfeil
Adressierung: IP / ICMP (Adresse)
Pfeil
IP-Adresse und TCP/UDP-Port
Pfeil
Netzzugang
(physikalisch)
OSI-Schicht
1 + 2
NDIS
Pfeil
Treiber
Pfeil
Netzwerkkarte (NIC)
ARP
Pfeil
MAC-Adresse
Pfeil
Ethernet

2.4 Einsatz des Modells

Das OSI-Referenzmodell wird oft herangezogen, wenn es um das Design von Netzprotokollen und das Verständnis ihrer Funktionen geht. Auf der Basis dieses Modells sind auch Netzprotokolle entwickelt worden, die fast ausschliesslich von Anbietern der öffentlichen Kommunikationstechnik verwendet wurden. Im privaten und kommerziellen Bereich wird hauptsächlich die TCP/IP-Protokoll-Familie eingesetzt. Das TCP/IP-Referenzmodell ist speziell auf den Zusammenschluss von Netzen (internetworking) zugeschnitten.

Die nach dem OSI-Referenzmodell entwickelten Netzprotokolle haben mit der TCP/IP-Protokollfamilie gemeinsam, dass es sich um hierarchische Modelle handelt. Es gibt aber wesentliche konzeptionelle Unterschiede: OSI legt die Dienste genau fest, die jede Schicht für die nächsthöhere zu erbringen hat. TCP/IP hat kein derart strenges Schichtenkonzept wie OSI. Weder sind die Funktionen der Schichten genau festgelegt noch die Dienste. Es ist erlaubt, dass eine untere Schicht unter Umgehung zwischenliegender Schichten direkt von einer höheren Schicht benutzt wird. TCP/IP ist damit erheblich effizienter als die OSI-Protokolle. Nachteil bei TCP/IP ist, dass es für viele kleine Dienste jeweils ein eigenes Netzprotokoll gibt. OSI hat dagegen für seine Protokolle jeweils einen grossen Leistungsumfang festgelegt, der sehr viele Optionen hat. Nicht jede kommerziell erhältliche OSI-Software hat den vollen Leistungsumfang implementiert. Daher wurden OSI-Profile definiert, die jeweils nur einen bestimmten Satz von Optionen beinhalten. OSI-Software unterschiedlicher Hersteller arbeitet zusammen, wenn dieselben Profile implementiert sind.

Weiterlesen … Das OSI-Modell

  • Aufrufe: 868

Das IP-Paket

1. Das IP-Paket

Das IP-Paket, genauer Internet Protocol Datagram, ist das Grundelement der Internet-Datenkommunikation. Das Internet-Protokoll dient der Übertragung von Datenblöcken von Quellen zu Zielen, wobei Quellen und Ziele Hosts sind, die durch Adressen fester Länge identifiziert werden. Das Internet-Protokoll erbringt die Funktionen, die notwendig sind, um ein Paket von Bits, ein IP-Paket, von einer Quelle zu einem Ziel über ein zusammenhängendes Netzwerk-System zu transferieren. Es ermöglicht ausserdem die Fragmentierung und Neuzusammenstellung langer Datensequenzen für die Übertragung in «kleinen Paketen».

Das IP-Paket besteht immer aus zwei Teilen: den Kopfdaten, welche Informationen über Quelle, Ziel, Status, Fragmentierung etc. enthalten, und den Nutzdaten, dem eigentlichen «Inhalt».

1.1 Kopfdaten (Header)

In der üblichen Version 4 des Protokolls (IPv4) umfasst der Kopfdatenbereich 20 Byte plus bis zu 40 Byte optionale Felder. Die Länge des Headers darf 60 Byte nicht überschreiten.

In der neueren Version 6 (IPv6) des Protokolls ist der Header 40 Byte lang, zusätzliche Optionen werden in Erweiterungsheadern dargestellt.

Version
IP-Version, 4 Bit gross. Momentan sind Version 4 (IPv4) oder Version 6 (IPv6) möglich, wobei Version 4 die meistgenutzte ist.

IHL (Internet Header Length)
4 Bit gross. Die gesamte Länge des IP-Kopfdatenbereiches wird in Vielfachen von 32 Bit angegeben. Steht hier eine 5, so ist der Kopfdatenbereich 5 × 32 Bit = 160 Bit oder 20 Byte lang, was die Minimallänge für den IP-Kopfdatenbereich ist (Options-Feld ist optional). Dadurch wird anzeigt, wo die Nutzdaten beginnen.

TOS (Type of Service)
8 Bit gross. Das Feld kann für die Priorisierung von IP-Datenpaketen gesetzt und ausgewertet werden (Quality of Service). Die Service-Qualität ist zum Beispiel bei der IP-Telefonie wichtig: der Datenstrom von VoIP-Paketen (Voice over IP) wird in der Regel priorisiert, da ein Auftreten von Latenzen oder das Abreissen des Datenstroms eine Beeinträchtigung der Verbindungs-/Gesprächsqualität nach sich ziehen würde.

Total Länge (Total Lenght)
16 Bit gross, gibt die Länge des gesamten Pakets (inkl. Kopfdaten) in Byte an. Daraus ergibt sich eine maximale Paketlänge von 65535 Byte (64KiB – 1B). Alle Hosts müssen Datagramme mit einer Länge von mindestens 576 Byte verarbeiten können.

Identifikation (Identification)
16 Bit gross. Dieses und die beiden folgenden Felder Flags und Fragment Offset steuern das Zusammensetzen von zuvor fragmentierten IP-Datenpaketen. Eindeutige Kennung eines Datagramms: Anhand dieses Feldes und der ‹Quell-Adresse› kann der Empfänger die Zusammengehörigkeit von Fragmenten feststellen und sie mit Hilfe des ‹Fragment Offset› wieder reassemblieren.

Flags
3 Bit gross. Die Bits haben folgende Bedeutung:

Bit 0 reserviert, muss 0 sein
Bit 1 – DF
(Don’t Fragment)
Wenn auf 1, zeigt es an, dass das Paket nicht in Fragmente zerlegt (fragmentiert) werden darf.
Bit 2 – MF
(More Fragments)
Wenn auf 1, zeigt es an, dass weitere Fragmente folgen.
Wenn auf 0, ist dieses Paket das letzte (bzw. einzige) Fragment.

Da die Nutzdaten in der Regel nicht in ein IP-Paket hineinpassen, werden die Daten zerlegt und in mehrere IP-Pakete verpackt und verschickt. Man spricht dann von Fragmentierung. Die Flags gehen näher darauf ein. Das erste Flag ist immer 0. Das zweite Flag (DF) verbietet die Fragmentierung des Datenpakets, wenn es gesetzt ist. Das dritte Flag (MF) gibt weitere Datenpaket-Fragmente an, wenn es gesetzt ist.

Fragment Offset
13 Bit gross. Eine Nummer, die bei fragmentierten Paketen besagt, ab welcher Position innerhalb des Paketes das Fragment anfängt. Die Nummerierung bezieht sich auf Daten-Blöcke von 64 Bit bzw. 8 Byte Grösse und ist unabhängig von der Fragmentierung. Ein Paket kann daher falls notwendig mehrmals hintereinander in immer kleinere Fragmente zerteilt werden. Dabei muss nur die Nummer des ersten enthaltenen Datenblocks (Offset) und das Total-Length-Feld an die Länge des Fragments angepasst werden. Das erste Fragment, oder ein nicht fragmentiertes Paket, enthält als Offset den Wert Null. Ist ein Paket mit 800 Byte Nutzdaten (Offset-Nummerierung von 0 bis 99) in zwei Fragmente zerteilt, ist der Offset des zweiten Fragments die Nummer 50. Da der Offset keinerlei Hinweis enthält, wie gross das ursprüngliche Paket ist, muss das allerletzte Fragment das MF-Flag auf Null setzen.

Time to Live (Lebenszeit)
8 Bit gross. Ein Wert, der die Lebensdauer des Pakets angibt. Hat dieses Feld den Wert null, so wird das Paket verworfen. Jede Station (Router) auf dem Weg des Pakets verringert diesen Wert um eins. Dies soll verhindern, dass Pakete ewig weitergeleitet werden (beispielsweise wenn das Paket fälschlicherweise im Kreis geleitet wird und somit das Netz überlasten würde).

Der Standard von 1981 sieht vor, dass jede Station den TTL-Wert um die Anzahl der Sekunden verringert, die das Paket an der Station verweilt, mindestens jedoch um eins. Heute wird dies als Hop-Count implementiert.

Protokoll
8 Bit gross. Dieses Feld bezeichnet das Folgeprotokoll, zu dem die im betreffenden IPv4-Paket transportierten Nutzdaten gehören. Enthält das IP-Paket zum Beispiel ein TCP-Paket, steht hier der Wert 6, für ein UDP-Paket 17. Diese Werte werden seit RFC 3232 von der IANA in einer Online-Datenbank für Protokoll-Nummern definiert.

Im IPv6-Header gibt es dieses Feld ebenfalls, allerdings heisst es dort Next Header. Die zulässigen Werte sind die gleichen wie bei IPv4.

Header Checksum
16 Bit gross. Eine Prüfsumme sichert ausschliesslich den Kopfdatenbereich. IP selbst hat keine Mechanismen zur Prüfung der Nutzlast auf Korrektheit, dies wird im TCP/IP-Referenzmodell durch die Transportschicht sichergestellt. Dieser Wert wird bei jeder Station neu verifiziert und – weil sich die TTL pro Hop verändert – neu berechnet. Dabei werden alle 16-Bit-Halbwörter des Kopfdatenbereichs nach den Regeln des Einerkomplements addiert (Übertrag auf das LSB addieren) und von der Summe das Einerkomplement gebildet. Das Ergebnis sollte 1111 1111 1111 1111 (Hex: 0xFFFF) sein, denn sonst ist ein Fehler im Header. Vorteil dabei ist, dass sich die Prüfsumme pro Hop nur um eins erhöht. Die Berechnung kann daher schnell in der Hardware ausgeführt werden. Bei einem zuverlässigeren Prüfverfahren wie CRC müsste dagegen die Prüfsumme bei jedem Hop neu berechnet werden. Trotzdem kostet das Prüfen der Prüfsumme verhältnismässig viel Zeit. Moderne Router überprüfen die Prüfsumme aus Gründen der Verarbeitungsgeschwindigkeit nicht und inkrementieren sie nur. Diese Umstände haben dazu geführt, dass dieses Feld bei IPv6 nicht mehr existiert.

Adresse Quelle
32 Bit gross. Enthält die Quelladresse des IP-Pakets in network byte order (Byte Order, erstes Byte ist das most significant Byte).

Adresse Ziel
Enthält die Zieladresse im gleichen Format wie die Quelladresse.

Optionen und Padding
Zusatzinformationen für das konkrete Paket. Die Optionen sind nur im Header optional, sie müssen aber von allen IP-Modulen unterstützt werden. Das Format der Optionen ist im RFC 791 beschrieben. Die maximale Anzahl der mit Optionen belegbaren Byte im konkreten Paket ergibt sich aus (IHL×4)-20. Da mit den 4 Bits in IHL ein Wertebereich von 0 bis 15 kodiert wird, können somit bis zu 40 Byte durch Optionen belegt werden. Die einzelnen Optionen selbst können unterschiedliche Länge haben, es gibt sowohl Optionen fester Länge als auch Optionen mit variabler Länge. Da die Gesamtlänge des IP-Headers durch das Feld IHL nur in Vielfachen von 4 Byte festgelegt wird, werden unbenutzte Byte mit Nullen aufgefüllt (Padding).

Strict Routing
Option gibt den gesamten Pfad an, welchen das Paket durchlaufen muss.

Free Routing
Option gibt eine Liste von Routern an, die vom Paket nicht verfehlt werden dürfen.

Record Route
Lässt die gesamte Route aufzeichnen; heute reicht die Grösse des Option-Feldes meist nicht mehr dafür aus.

Time Stamp
Zeitstempel

Security
Bezeichnet, wie «geheim» das Paket ist.

1.2 Nutzdaten

Ein IP-Paket muss mindestens 20 Byte Header und 8 Byte Nutzdaten bzw. Nutz- und Fülldaten enthalten. Die Gesamtlänge eines IP-Pakets darf 65'535 Byte nicht überschreiten.

IP hat die Aufgabe, Datenpakete für das darunterliegende System des Netzzugangs (Bitübertragung) auf die richtige Grösse zu teilen. Im Prinzip geht es darum zu grosse Datenpakete zu kürzen.
Jedes Übertragungssystem auf der Bitübertragungsschicht hat dabei seine eigene maximale Paketgrösse, die man als Maximum Transmission Unit, kurz MTU, bezeichnet. Zum Beispiel Ethernet mit 1500 Byte und DSL mit 1492 Byte. Wenn ein Datenpaket, das ursprünglich in einem lokalen Netzwerk per Ethernet übertragen wurde und somit 1500 Byte gross ist, per DSL mit 1492 Byte ins Internet soll, dann muss der DSL-Router auf IP-Ebene das ursprünglich 1500 Byte grosse Paket teilen und mit neuen IP-Headern versehen. Diesen Vorgang nennt man Fragmentierung. Die Fragmentierung setzt sich fort, wenn sich unterwegs Übertragungs­systeme befinden, die noch kleinere MTUs haben.

Weiterlesen … Das IP-Paket

  • Aufrufe: 973

Home

Grundlagen für Webpublisher

Diese Website vermittelt Basiswissen für Webpublisher und Webmaster. Sie soll als Referenz zum Nachschlagen dienen und wird laufend ergänzt.
Einzelne Textteile stammen aus Wikipedia, der freien Enzyklopädie, sie wurden neu aufbereitet und ergänzt.

Der Grossteil der Dokumente und Inhalte wurde von CreativeGraphics im Zuge einer Schulung erstellt.

Weiterlesen … Home

  • Aufrufe: 2306
Wir benutzen Cookies
Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern. Du kannst selbst enscheiden, ob du Cookies zulassen möchtest. Bitte beachte, dass bei Ablehnung womöglich nicht mehr alle Funktionalitäten zur Verfügung stehen.