Zum Inhalt springen

Netzwerk/Protokoll: Unterschied zwischen den Versionen

Aus Foxwiki
Markierung: Ersetzt
Zeile 18: Zeile 18:
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Netzwerkprotokoll
# https://de.wikipedia.org/wiki/Netzwerkprotokoll
= TMP =
== Beschreibung ==
; '''Netzwerkprotokolle''' sind Festlegungen für den Austausch von [[Daten]] zwischen
* [[Computer]]
* [[Prozess (Informatik)|Prozessen]]
die in einem [[Rechnernetz]] miteinander verbunden sind
=== Vereinbarung ===
; Syntax
* Regeln und Formate
; Semantik
* Verhalten der kommunizierenden Instanzen
=== Schichtenmodelle ===
; Der Austausch von Nachrichten erfordert häufig ein Zusammenspiel verschiedener Protokolle, die unterschiedliche Aufgaben übernehmen
; Um die damit verbundene Komplexität beherrschen zu können, werden die einzelnen Protokolle in [[Schichtenarchitektur|Schichten]] organisiert.
* Im Rahmen einer solchen Architektur gehört jedes Protokoll einer bestimmten Schicht an und ist für die Erledigung der speziellen Aufgaben zuständig (etwa Übermitteln an einen bestimmten Knoten – Schicht 2).
* Protokolle höherer Schichten verwenden Dienste von Protokollen tieferer Schichten (Schicht 3 bildet ein logisches Netzwerk und verwendet Schicht 2 für die physische Zustellung).
; Zusammen bilden die so strukturierten Protokolle einen [[Protokollstapel]] – in Anlehnung an das [[OSI-Modell|ISO-OSI-Referenzmodell]] (siehe auch [[DoD-Schichtenmodell]]).
* Nachrichten einer bestimmten Schicht werden auch als ''Protokolldateneinheiten'' (protocol data units) bezeichnet.
== Aufbau eines Datenpaketes ==
; Der in einem Protokoll beschriebene Aufbau eines [[Datenpaket]]es
* enthält für den Datenaustausch wichtige Informationen über das Paket wie beispielsweise:
* dessen [[Absender]] und Empfänger, damit Nicht-Empfänger das Paket ignorieren
* den Typ des Pakets (beispielsweise [[Datenübertragung|Verbindungsaufbau]], Verbindungsabbau oder reine Nutzdaten)
* die Paketgröße, die der [[Empfänger (Information)|Empfänger]] zu erwarten hat
* bei mehrteiligen [[Datenübertragung|Übertragung]]en die laufende Nummer und Gesamtzahl der Pakete
* eine [[Prüfsumme]] zum Nachvollziehen einer fehlerfreien Übertragung
; Diese Informationen werden den [[Nutzdaten]] als ''Header'' vorangestellt oder als ''Trailer'' angehängt
; Außerdem werden in manchen Protokollen feste Paketsequenzen für den Verbindungsaufbau und -abbau beschrieben
* Diese Maßnahmen verursachen weiteren [[Datenverkehr]] (Traffic) auf den Datenleitungen – den sogenannten ''Overhead''
* Dieser Overhead ist unerwünscht, weil er die Kapazität belastet, wird aber aufgrund der wichtigen Aufgaben, die Protokolle leisten, in der Regel in Kauf genommen
; In der [[Internetprotokollfamilie]] steht mit dem [[User Datagram Protocol]] (UDP) in der Transportschicht auch ein Protokoll mit nur geringem Overhead zur Verfügung
* Das keine Ende-zu-Ende-Kontrolle der Übertragung gewährleistet, sodass Datagramme eventuell verloren gehen können oder die Reihenfolge beim Empfang nicht der beim Versand entspricht.
; Im Gegensatz dazu wird beim [[Transmission Control Protocol]] (TCP) die vollständige Zustellung der Datenpakete überwacht und diese außerdem in die richtige Reihenfolge gebracht, so dass der Anwendung ein zusammenhängender Datenstrom übergeben wird.
== Unterscheidungsmerkmale ==
{| class="wikitable sortable options"
|-
! Option !! Beschreibung
|-
| Richtung || Findet die Kommunikation nur in eine ''Richtung'' statt, spricht man von [[Duplex (Nachrichtentechnik)|Simplex]], fließen die Daten wechselweise in beide Richtungen, von [[Duplex (Nachrichtentechnik)|Halbduplex]] oder gleichzeitig in beide Richtungen, von [[Vollduplex]].
|-
| Taktsignal || Wird die Kommunikation über ein [[Taktsignal]] ''synchronisiert'', spricht man von [[Synchrone Datenübertragung|synchroner Datenübertragung]], ansonsten von asynchroner Datenübertragung.
|-
| Anzahl von Parteien || Die ''Anzahl von Parteien'', die an der [[Kommunikation]] teilnehmen: Gibt es für eine Übermittlung immer nur einen Empfänger, spricht man von [[Unicast]], bei Übertragungen an mehrere Teilnehmer von [[Multicast]].
* Wird das Paket an alle gesandt, so ist es ein [[Broadcast]].
|-
| Stellung || ''Stellung'' der Kommunikationsteilnehmer: Sind diese untereinander gleichberechtigt, spricht man von [[Peer-to-Peer]] oder symmetrischer, anderenfalls von asymmetrischer Kommunikation.
* Das am weitesten verbreitete asymmetrische Modell ist das [[Client-Server-System]], bei dem ein Dienstanbieter (der [[Server]]) Anfragen von verschiedenen [[Client]]s bearbeitet (wobei es immer die Clients sind, die die Kommunikation initiieren, d. h. einen [[Kanal (Informationstheorie)|Kanal]] öffnen).
|-
| Synchrone Kommunikation || Wird nach einer Anfrage auf ''Antwort'' gewartet, spricht man von [[Synchrone Kommunikation|synchroner Kommunikation]], andernfalls von [[Asynchrone Kommunikation|asynchroner Kommunikation]].
|-
| Paketorientierte Kommunikation || Während einer ''paketorientierten Kommunikation'' werden [[Nachricht]]en bzw. [[Datenpaket]]e übertragen, beim ''Streaming'' wird mit einem kontinuierlichen [[Datenstrom]] einzelner Zeichen gearbeitet.
|-
| Verbindungsoriente Kommunikation || Bei ''verbindungsorientierten (connection oriented) Protokollen'' wird durch spezielle Paketsequenzen der Anfang und das Ende einer Verbindung definiert.
|}
Innerhalb einer solchen Verbindung wird durch das Protokoll meistens gewährleistet, dass Pakete in einer bestimmten Reihenfolge ankommen und/oder sichergestellt, dass die Pakete nochmals gesendet werden, falls sie nicht angekommen sind (zum Beispiel TCP). ''Verbindungslose (connectionless) Protokolle'' bieten diesen Komfort nicht, haben aber einen geringeren Overhead (zum Beispiel [[User Datagram Protocol|UDP]], [[Real-Time Transport Protocol|RTP]]).
== Aufgaben ==
; Aufgaben eines Netzwerkprotokolls
* Ob sie in einem bestimmten Protokoll abgebildet sind, wird durch dessen Einsatzzweck bestimmt.
* Ein sicherer und zuverlässiger Verbindungsaufbau zwischen den an der Kommunikation beteiligten Computern ([[Handshake]])
* Das verlässliche Zustellen von Paketen
* Wiederholtes Senden nicht angekommener Pakete
* Zustellen der Datenpakete an den/die gewünschten Empfänger
* Das Sicherstellen einer fehlerfreien Übertragung ([[Prüfsumme]])
* Das Zusammenfügen ankommender Datenpakete in der richtigen Reihenfolge
* Das Verhindern des Auslesens durch unbefugte Dritte (durch [[Kryptografie]])
* Das Verhindern der Manipulation durch unbefugte Dritte (durch [[Message Authentication Code|MACs]] oder [[elektronische Signatur]]en)
== Beispiel ==
Anhand des Verbindungsaufbau-Prozederes des TCP-Protokolls soll ein einfaches praktisches Beispiel gezeigt werden ([[Handshake]]-Verfahren).
# Zunächst schickt Computer 1 ein [[Datenpaket]], in dem steht, dass er eine Verbindung zu Computer 2 aufbauen möchte.
# Darauf antwortet Computer 2, dass er dazu bereit ist.
# Computer 1 bestätigt anschließend Computer 2, dass er verstanden hat, dass Computer 2 bereit ist.
Die Verbindung ist damit hergestellt, und der eigentliche Datenaustausch kann beginnen, im Beispiel eine Dateiübertragung auf Anwendungsebene.
# Computer 1 schickt ein Datenpaket, in dem angefragt wird, welche Dateien verfügbar sind.
# Darauf antwortet Computer 2 mit einer Liste der verfügbaren Dateien.
# Computer 1 schickt ein Datenpaket, in dem eine bestimmte Datei angefordert wird.
# Darauf antwortet Computer 2, dass die Datei existiert, beschreibt die Datei und beginnt mit der Übertragung.
== Protokolle zur Datenübermittlung ==
; Es gibt eine Reihe von grundsätzlichen Protokollen, die den Datenverkehr in einem Netzwerk regeln
* Sie werden vom Netzwerkstack – einem speziellen Systemprogramm – allen weiteren Programmen auf diesem Rechner zur Verfügung gestellt.
* Diese Protokolle dienen als Standard für die Datenübermittlung zwischen unterschiedlichen Systemen, dienen aber keiner Anwendung durch den Benutzer.
* Dabei legt man sich in der Regel auf eines dieser Protokolle für ein Netzwerk fest.
* Für das Internet wird die [[Internetprotokollfamilie]] verwendet, vor allem TCP/IP und UDP.
{| class="wikitable"
|-
! Netzwerkprotokoll !! Vorteile !! Nachteile
|-
!colspan="3"| [[OSI-Modell|Schicht-3&4]]-Protokolle
|-
| [[Transmission Control Protocol/Internet Protocol|TCP/IP]] und [[User Datagram Protocol|UDP]]
||
* routingfähig
* IP sorgt dafür, dass das Datenpaket sein Ziel erreicht; TCP oder UDP kontrollieren die Datenübertragung
* an keinen Hersteller gebunden, aber von allen akzeptiert
* ist sowohl in LANs als auch in WANs nutzbar
* für komplizierte (TCP) und einfache (UDP) Übertragungen geeignet
||
* verhältnismäßig großer Stack, ungünstig für sehr einfache oder kleine ([[Eingebettetes System|eingebettete]]) Systeme
* UDP eher für kleine Datenpakete, deren Zustellung nicht kritisch ist
* TCP eher für große Übertragungen oder Datenströme mit garantierter Fehlerfreiheit
|-
| [[Internetwork Packet Exchange|IPX]]/[[Sequenced Packet Exchange|SPX]]
||
* routingfähig
* wird von vielen Betriebssystemen unterstützt
||
* nicht für große Netzwerke geeignet, da Routen nicht zusammengefasst werden können
* SPX: schlechte [[Wide Area Network|WAN]]-Leistung, da nur jeweils ein Paket angefordert wird (vgl. [[TCP Receive Window]])
* bei Nicht-Novellnetzwerken nicht zu empfehlen
* Unterstützung nach [[Microsoft Windows XP]]/[[Microsoft Windows Server 2003]] eingestellt
|-
| [[NetBEUI]]
||
* wenig [[Overhead (EDV)|Overhead]]
* entsprechend einfach zu konfigurieren und einzurichten
||
* nur für sehr kleine Netzwerke geeignet
* nicht routingfähig
* nicht im Internet einsetzbar
* Unterstützung nach [[Microsoft Windows 2000]] eingestellt
|-
| [[AppleTalk]]
||
* komfortabel
* große Bedienerfreundlichkeit
* einfache Fehleranalyse
* leichte Erweiterbarkeit
* leicht einzurichten
||
* nur für kleine Netzwerke geeignet
* geringer [[Datendurchsatz]] bei schnelleren Verbindungen (>10 Mbit/s)
* nur von Apple-Betriebssystemen genutzt, inzwischen durch TCP/IP ersetzt
|-
| [[BACnet]]
||
* speziell für [[Gebäudeleittechnik]]
* schnelle Kommunikation
||
* nur für elementare Daten
* fast keine Verwendung in anderen Bereichen
|}
== Protokolle für bestimmte Anwendungen ==
; Die Funktionen der Protokolle bauen aufeinander auf
* Transportprotokolle bereiten den Übertragungsweg für von ihnen prinzipiell unabhängige Anwendungsprotokolle
* Das stellt sicher, dass Anwendungsprogramme auf unterschiedlichen Systemen untereinander kommunizieren können, sobald diese Systeme in der Lage sind, auf irgendeine Art eine Verbindung herzustellen.
* So regelt etwa das [[Internet Protocol]] die weltweit eindeutige Adressierung von Rechnern
* Diese Adressierung nutzen dann beispielsweise das [[Transmission Control Protocol]] zur Datenübertragung und das [[Simple Mail Transfer Protocol]] zum Übermitteln von E-Mails
; Dieser schichtweise Aufbau der Protokolle wird mithilfe des [[OSI-Modell]]s dargestellt
; Auch dienen Anwendungsprotokolle als Standard für die Übertragung zwischen unterschiedlichen Programmen gleichen Typs.
; Bekannte Beispiele
* Laden von [[Webseite]]n – [[Hypertext Transfer Protocol|HTTP]]
* Abholen von [[E-Mail]]s – [[Post Office Protocol|POP]] oder [[Internet Message Access Protocol|IMAP]]
* Übertragung von Dateien – [[File Transfer Protocol|FTP]], [[BitTorrent]] oder viele andere
== Geschichte ==
; In der Anfangszeit der Vernetzung von Computern gestaltete sich die Datenübertragung schwierig, denn damit ein Computer einen anderen versteht, werden Regelwerke benötigt.
* Zunächst wurden sie in den Anwendungsprogrammen nur für den jeweiligen Nutzungszweck [[Implementierung|implementiert]] – mit dem Nachteil, dass dieses Programm an die vorhandene Netzwerktechnik und das Anwendungsprogramm auf der bzw. 
* den Gegenseiten angepasst werden musste.
* Daraus folgte, dass oft nur gleiche Systeme untereinander kompatibel waren, was nicht zuletzt von Herstellern auch genutzt wurde, um die Kunden auch zu weiteren Anschaffungen ihrer Produkte zu animieren.
* Mit stetigen Neuentwicklungen und der Größe der Netzwerke stieg jedoch auch ihre [[Heterogenität]], so dass sich die Forderung nach universell einsetzbarer Technik und Programmauswahl immer weiter durchsetzte.
* Dadurch wurden in den späten 1970er- und in den 1980er-Jahren von Computerherstellern modularisierte Protokolle entwickelt, die von nun an in abgeschlossenen Rechnernetzen als Übertragungsstandards galten.
; Im Jahr 1968 wurden auf Veranlassung des amerikanischen Verteidigungsministeriums (DoD) von der staatlichen Forschungseinrichtung [[Advanced Research Project Agency|ARPA]] Versuche durchgeführt, mit denen grundlegende Erkenntnisse über die Funktionsweise von Rechnernetzen gewonnen werden sollten.
* Als praktisches Ergebnis wurde 1969 das [[ARPANET]]-Projekt aufgelegt, das die transparente Übertragung von Daten zwischen unterschiedlichen Teilnehmersystemen ermöglichen sollte – unabhängig von der Strecke, dem Medium oder dem Umstand der Übertragung.
* Ab 1983 hatte sich im ARPANET die [[Internetprotokollfamilie]] als Sammlung zusammenhängender Standards zuverlässiger und leistungsfähiger Datenübertragung durchgesetzt.
* Sie wird auch verwendet, nachdem das ARPANET als [[Internet]] der Öffentlichkeit zugänglich wurde, und gilt dadurch, dass viele Computer spätestens seit den 2000er Jahren mit dem Internet in Verbindung stehen, als Quasistandard für viele Netzwerkanwendungen.


[[Kategorie:Netzwerk/Protokoll]]
[[Kategorie:Netzwerk/Protokoll]]
</noinclude>
</noinclude>

Version vom 25. Juni 2023, 13:52 Uhr

Netzwerkprotokoll - Beschreibung, wie Informationen in Computernetzwerken ausgetauscht werden topic - Kurzbeschreibung

Beschreibung

Anhang

Siehe auch


Dokumentation

Links

Projekt
Weblinks
  1. https://de.wikipedia.org/wiki/Netzwerkprotokoll