|
|
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> |