Punkt-zu-Punkt-Protokoll - Point-to-Point Protocol

In Computernetzwerken , Punkt-zu-Punkt - Protokoll ( PPP ist) eine Datenverbindungsschicht (Schicht 2) Kommunikationsprotokoll zwischen zwei Routern direkt ohne Host oder ein anderes Netzwerk dazwischen. Es kann Verbindung bereitstellen Authentifizierung , Übertragung Verschlüsselung und Datenkompression .

PPP wird über viele Arten von physischen Netzwerken verwendet, einschließlich serieller Kabel , Telefonleitungen , Amtsleitungen , Mobiltelefone , spezialisierte Funkverbindungen, ISDN und Glasfaserverbindungen wie SONET . Da IP - Pakete nicht über einen übertragen werden können Modem ohne irgendeine Datenverbindungsprotokoll Linie auf ihre eigenen , die in dem die übertragenen Rahmen beginnt identifizieren kann und wo es endet, Internet Service Provider (ISPs) haben PPP für Kunden verwendet DFÜ-Zugriff auf das Internet .

Zwei Derivate von PPP, Point-to-Point Protocol over Ethernet (PPPoE) und Point-to-Point Protocol over ATM (PPPoA), werden am häufigsten von Internetdienstanbietern verwendet, um eine Internetdienstverbindung über eine digitale Teilnehmerleitung (DSL) mit Kunden aufzubauen .

Beschreibung

PPP wird allgemein als verwendete Datenverbindungsschicht - Protokoll für die Verbindung über synchrone und asynchrone Schaltungen , wo sie weitgehend die ältere ersetzt hat Serial Line Internet Protocol (SLIP) und Telefongesellschaft Standards beauftragt (wie Link Access Protocol, Balanced (LAPB) in der X.25- Protokollsuite). Die einzige Voraussetzung für PPP ist, dass die bereitgestellte Schaltung Duplex ist . PPP wurde entwickelt, um mit zahlreichen Protokollen der Netzwerkschicht zu arbeiten , darunter Internet Protocol (IP), TRILL , Novells Internetwork Packet Exchange (IPX), NBF , DECnet und AppleTalk . Wie bei SLIP handelt es sich hierbei um eine vollständige Internetverbindung über Telefonleitungen per Modem. Es ist zuverlässiger als SLIP, da es doppelt überprüft, ob Internetpakete intakt ankommen. Es sendet alle beschädigten Pakete erneut.

PPP wurde etwas nach den ursprünglichen HDLC- Spezifikationen entwickelt. Die Entwickler von PPP haben viele zusätzliche Funktionen eingebaut, die bis dahin nur in proprietären Data-Link-Protokollen zu sehen waren. PPP ist in RFC 1661 spezifiziert.

RFC 2516 beschreibt Point-to-Point Protocol over Ethernet (PPPoE) als eine Methode zur Übertragung von PPP über Ethernet , die manchmal mit DSL verwendet wird . RFC 2364 beschreibt Point-to-Point Protocol over ATM (PPPoA) als ein Verfahren zur Übertragung von PPP über ATM Adaptation Layer 5 ( AAL5 ), das auch eine gängige Alternative zu PPPoE bei DSL ist.

PPP, PPPoE und PPPoA werden häufig in WAN- Leitungen verwendet.

PPP ist ein mehrschichtiges Protokoll, das aus drei Komponenten besteht:

  1. Eine Kapselungskomponente, die verwendet wird, um Datagramme über die angegebene physikalische Schicht zu übertragen .
  2. Ein Link Control Protocol (LCP) zum Herstellen, Konfigurieren und Testen der Verbindung sowie zum Aushandeln von Einstellungen, Optionen und der Verwendung von Funktionen.
  3. Ein oder mehrere Network Control Protocols (NCP), die verwendet werden, um optionale Konfigurationsparameter und -einrichtungen für die Netzwerkschicht auszuhandeln. Für jedes von PPP unterstützte Protokoll einer höheren Schicht gibt es einen NCP.

Automatische Selbstkonfiguration

LCP initiiert und beendet Verbindungen ordnungsgemäß, sodass Hosts Verbindungsoptionen aushandeln können. Es ist integraler Bestandteil von PPP und in derselben Standardspezifikation definiert. LCP bietet eine automatische Konfiguration der Schnittstellen an jedem Ende (z. B. Einstellen der Datagrammgröße , Escape-Zeichen und magischen Zahlen) und zur Auswahl der optionalen Authentifizierung. Das LCP-Protokoll läuft auf PPP (mit der PPP-Protokollnummer 0xC021) und daher muss eine grundlegende PPP-Verbindung aufgebaut werden, bevor LCP es konfigurieren kann.

RFC 1994 beschreibt das Challenge-Handshake Authentication Protocol (CHAP), das für den Aufbau von DFÜ-Verbindungen mit ISPs bevorzugt wird. Obwohl veraltet, wird das Password Authentication Protocol (PAP) manchmal immer noch verwendet.

Eine weitere Option für die Authentifizierung über PPP ist das in RFC 2284 beschriebene Extensible Authentication Protocol (EAP).

Nachdem die Verbindung hergestellt wurde, kann eine zusätzliche Netzwerkkonfiguration ( Schicht 3 ) stattfinden. Am häufigsten wird das Internet Protocol Control Protocol (IPCP) verwendet, obwohl das Internetwork Packet Exchange Control Protocol (IPXCP) und das AppleTalk Control Protocol (ATCP) früher populär waren. Internet Protocol Version 6 Control Protocol (IPV6CP) wird den erweiterten Einsatz in die Zukunft sehen, wenn IPv6 ersetzt IPv4 als die dominierende Schicht-3 - Protokoll.

Mehrere Protokolle der Netzwerkschicht

PPP-Architektur
IP
LCP CHAP PAP EAP IPCP
PPP-Kapselung
HDLC- ähnliches Framing PPPoE PPPoA
RS-232 POS Ethernet Geldautomat
SONET/SDH

PPP ermöglicht den Betrieb mehrerer Protokolle der Netzwerkschicht auf derselben Kommunikationsverbindung. Für jedes verwendete Netzwerkschichtprotokoll wird ein separates Netzwerksteuerungsprotokoll (NCP) bereitgestellt, um Optionen für die mehreren Netzwerkschichtprotokolle zu kapseln und auszuhandeln. Es handelt Informationen der Netzwerkschicht aus, zB Netzwerkadresse oder Komprimierungsoptionen, nachdem die Verbindung hergestellt wurde.

IP verwendet beispielsweise IPCP und Internetwork Packet Exchange (IPX) verwendet das Novell IPX Control Protocol ( IPX/SPX ). NCPs enthalten Felder, die standardisierte Codes enthalten, um den Protokolltyp der Vermittlungsschicht anzugeben, den die PPP-Verbindung kapselt.

Die folgenden NCPs können mit PPP verwendet werden:

Looped-Link-Erkennung

PPP erkennt geloopte Links mithilfe einer Funktion mit magischen Zahlen . Wenn der Knoten PPP-LCP-Nachrichten sendet, können diese Nachrichten eine magische Zahl enthalten. Wenn eine Leitung geloopt wird, erhält der Knoten eine LCP-Nachricht mit seiner eigenen magischen Nummer, anstatt eine Nachricht mit der magischen Nummer des Peers zu erhalten.

Einstellmöglichkeiten

Im vorherigen Abschnitt wurde die Verwendung von LCP-Optionen vorgestellt, um bestimmte WAN-Verbindungsanforderungen zu erfüllen. PPP kann die folgenden LCP-Optionen umfassen:

  • Authentifizierung – Peer-Router tauschen Authentifizierungsnachrichten aus. Zwei Authentifizierungsmöglichkeiten sind Password Authentication Protocol (PAP) und Challenge Handshake Authentication Protocol (CHAP). Die Authentifizierung wird im nächsten Abschnitt erklärt.
  • Komprimierung – Erhöht den effektiven Durchsatz bei PPP-Verbindungen, indem die Datenmenge im Frame reduziert wird, die über die Verbindung übertragen werden muss. Das Protokoll dekomprimiert den Frame an seinem Ziel. Siehe RFC 1962 für weitere Details.
  • Fehlererkennung - Identifiziert Fehlerbedingungen. Die Optionen Qualität und Magic Number tragen dazu bei, eine zuverlässige, schleifenfreie Datenverbindung sicherzustellen. Das Feld Magic Number hilft bei der Erkennung von Links, die sich in einem Loop-Back-Zustand befinden. Bis die Magic-Number Configuration Option erfolgreich ausgehandelt wurde, muss die Magic-Number als Null übertragen werden. Magische Zahlen werden zufällig an jedem Ende der Verbindung generiert.
  • Multilink - Bietet einen Lastausgleich für mehrere von PPP verwendete Schnittstellen über Multilink PPP (siehe unten).

PPP-Rahmen

Struktur

PPP-Frames sind Varianten von HDLC- Frames:

Name Anzahl Bytes Beschreibung
Flagge 1 0x7E, der Anfang eines PPP-Frames
Die Anschrift 1 0xFF, Standard-Broadcast-Adresse
Steuerung 1 0x03, unnummerierte Daten
Protokoll 2 PPP-ID der eingebetteten Daten
Information variabel (0 oder mehr) Datagramm
Polsterung variabel (0 oder mehr) optionale Polsterung
Frame-Check-Sequenz 2 Rahmenprüfsumme
Flagge 1 0x7E, weggelassen für aufeinanderfolgende PPP-Pakete

Wenn beide Peers der Adressfeld- und Steuerfeldkomprimierung während des LCP zustimmen, werden diese Felder ausgelassen. Wenn beide Peers der Protokollfeldkomprimierung zustimmen, kann das 0x00-Byte ebenfalls weggelassen werden.

Das Protokoll - Feld gibt die Art der Nutzlastpaket: 0xC021 für LCP , 0x80xy für verschiedene NCPs , 0x0021 für IP, Appletalk 0x0029, 0x002B für IPX , 0x003D für Multi, 0x003F für NetBIOS , 0x00FD für MPPC und MPPE usw. PPP beschränkt ist, und kann im Gegensatz zu EtherType keine allgemeinen Layer-3- Daten enthalten .

Das Informationsfeld enthält die PPP-Nutzlast; es hat eine variable Länge mit einem ausgehandelten Maximum, das als Maximum Transmission Unit bezeichnet wird . Standardmäßig beträgt das Maximum 1500 Oktette . Es könnte bei der Übertragung aufgefüllt werden; wenn die Informationen für ein bestimmtes Protokoll aufgefüllt werden können, muss dieses Protokoll eine Unterscheidung zwischen Informationen und Auffüllen ermöglichen.

Verkapselung

PPP-Frames sind in einem Protokoll der unteren Schicht gekapselt, das Framing bereitstellt und andere Funktionen bereitstellen kann, wie beispielsweise eine Prüfsumme , um Übertragungsfehler zu erkennen. PPP auf seriellen Verbindungen ist normalerweise in einem ähnlichen Rahmen wie HDLC gekapselt , der von IETF RFC 1662 beschrieben wird.

Name Anzahl Bytes Beschreibung
Flagge 1 zeigt den Anfang oder das Ende des Frames an
Die Anschrift 1 Broadcastadresse
Steuerung 1 Kontrollbyte
Protokoll 1 oder 2 oder 3 l im Informationsfeld
Information variabel (0 oder mehr) Datagramm
Polsterung variabel (0 oder mehr) optionale Polsterung
FCS 2 (oder 4) Fehlerprüfung

Das Flag-Feld ist vorhanden, wenn PPP mit HDLC-ähnlichem Framing verwendet wird.

Die Felder Adresse und Steuerung haben immer den Wert hex FF (für "alle Stationen") und hex 03 (für "unnummerierte Informationen") und können weggelassen werden, wenn PPP LCP Address-and-Control-Field-Compression (ACFC) ausgehandelt wird .

Das Frame Check Sequence (FCS)-Feld wird verwendet, um zu bestimmen, ob ein einzelner Frame einen Fehler aufweist. Es enthält eine über den Rahmen berechnete Prüfsumme, um einen grundlegenden Schutz gegen Übertragungsfehler zu bieten. Dies ist ein CRC- Code, der dem ähnlich ist, der für andere Protokoll-Fehlerschutzschemata der zweiten Schicht verwendet wird, wie zum Beispiel dem, der in Ethernet verwendet wird. Gemäß RFC 1662 kann es entweder 16 Bit (2 Byte) oder 32 Bit (4 Byte) groß sein (Standard ist 16 Bit - Polynom x 16 + x 12 + x 5 + 1).

Der FCS wird über die Felder Adresse, Steuerung, Protokoll, Information und Auffüllung berechnet, nachdem die Nachricht eingekapselt wurde.

Leitungsaktivierung und Phasen

Link tot
Diese Phase tritt auf, wenn die Verbindung fehlschlägt oder eine Seite angewiesen wurde, die Verbindung zu trennen (z. B. ein Benutzer hat seine DFÜ-Verbindung beendet).
Linkaufbauphase
In dieser Phase wird versucht, das Link Control Protocol auszuhandeln. Bei Erfolg geht die Kontrolle entweder in die Authentifizierungsphase oder in die Network-Layer Protocol-Phase, je nachdem, ob eine Authentifizierung gewünscht wird.
Authentifizierungsphase
Diese Phase ist optional. Es ermöglicht den Seiten, sich gegenseitig zu authentifizieren, bevor eine Verbindung hergestellt wird. Bei Erfolg geht die Kontrolle in die Protokollphase der Netzwerkschicht über.
Protokollphase der Netzwerkschicht
In dieser Phase werden die Netzwerksteuerungsprotokolle jedes gewünschten Protokolls aufgerufen. Zum Beispiel wird IPCP beim Einrichten eines IP-Dienstes über die Leitung verwendet. In dieser Phase erfolgt auch der Datentransport für alle Protokolle, die mit ihren Netzwerkkontrollprotokollen erfolgreich gestartet wurden. Das Schließen von Netzwerkprotokollen erfolgt ebenfalls in dieser Phase.
Link-Beendigungsphase
Diese Phase schließt diese Verbindung. Dies kann passieren, wenn eine Authentifizierung fehlschlägt, wenn so viele Prüfsummenfehler vorliegen, dass die beiden Parteien beschließen, den Link automatisch abzubauen, wenn der Link plötzlich fehlschlägt oder der Benutzer beschließt, eine Verbindung zu beenden.

Über mehrere Links

Multilink-PPP

Multilink PPP (auch als MLPPP , MP , MPPP , MLP oder Multilink bezeichnet) bietet ein Verfahren zum Verteilen von Verkehr über mehrere verschiedene PPP-Verbindungen. Es ist in RFC 1990 definiert. Es kann beispielsweise verwendet werden, um einen Heimcomputer über zwei herkömmliche 56k-Modems mit einem Internetdienstanbieter zu verbinden, oder um eine Firma über zwei Standleitungen zu verbinden.

Auf einer einzelnen PPP-Leitung können Frames nicht ungeordnet ankommen, dies ist jedoch möglich, wenn die Frames auf mehrere PPP-Verbindungen aufgeteilt werden. Daher muss Multilink PPP die Fragmente nummerieren, damit sie beim Eintreffen wieder in die richtige Reihenfolge gebracht werden können.

Multilink PPP ist ein Beispiel für eine Link-Aggregation- Technologie. Cisco IOS Version 11.1 und höher unterstützt Multilink PPP.

Mehrklassen-PPP

Mit PPP kann man nicht mehrere verschiedene PPP-Verbindungen gleichzeitig über einen einzigen Link aufbauen.

Auch das ist mit Multilink PPP nicht möglich. Multilink PPP verwendet fortlaufende Nummern für alle Fragmente eines Pakets, und folglich ist es nicht möglich, das Senden einer Folge von Fragmenten eines Pakets zu unterbrechen, um ein anderes Paket zu senden. Dadurch wird verhindert, dass Multilink PPP mehrmals auf denselben Links ausgeführt wird.

Multiclass PPP ist eine Art Multilink PPP, bei dem jede "Klasse" des Verkehrs einen separaten Sequenznummernraum und einen Reassemblierungspuffer verwendet. Mehrklassen-PPP ist in RFC 2686 definiert

Tunnel

Vereinfachter OSI- Protokollstack für einen beispielhaften SSH +PPP-Tunnel
Anwendung FTP SMTP HTTP DNS
Transport TCP UDP
Netzwerk IP
Datenverbindung PPP
Anwendung SSH
Transport TCP
Netzwerk IP
Datenverbindung Ethernet Geldautomat
Physisch Kabel, Hubs und so weiter

Abgeleitete Protokolle

PPTP (Point-to-Point Tunneling Protocol) ist eine Form von PPP zwischen zwei Hosts über GRE unter Verwendung von Verschlüsselung ( MPPE ) und Kompression ( MPPC ).

Als Layer-2-Protokoll zwischen beiden Enden eines Tunnels

Viele Protokolle können zum Tunneln von Daten über IP-Netzwerke verwendet werden. Einige von ihnen, wie SSL , SSH oder L2TP, erstellen virtuelle Netzwerkschnittstellen und erwecken den Eindruck direkter physischer Verbindungen zwischen den Tunnelendpunkten. Auf einem Linux- Host würden diese Schnittstellen beispielsweise tun0 oder ppp0 heißen .

Da es in einem Tunnel nur zwei Endpunkte gibt, ist der Tunnel eine Punkt-zu-Punkt-Verbindung und PPP ist eine natürliche Wahl als Sicherungsschichtprotokoll zwischen den virtuellen Netzwerkschnittstellen. PPP kann diesen virtuellen Schnittstellen IP-Adressen zuweisen, mit denen beispielsweise zwischen den Netzen auf beiden Seiten des Tunnels geroutet werden kann.

IPsec im Tunneling-Modus erstellt am Ende des Tunnels keine virtuellen physischen Schnittstellen, da der Tunnel direkt vom TCP/IP-Stack verarbeitet wird. L2TP kann verwendet werden, um diese Schnittstellen bereitzustellen, diese Technik wird als L2TP/IPsec bezeichnet. Auch in diesem Fall stellt PPP den Enden des Tunnels IP-Adressen zur Verfügung.

IETF-Standards

PPP ist in RFC 1661 (The Point-to-Point Protocol, Juli 1994) definiert. RFC 1547 (Requirements for an Internet Standard Point-to-Point Protocol, Dezember 1993) liefert historische Informationen über die Notwendigkeit von PPP und seine Entwicklung. Eine Reihe verwandter RFCs wurde geschrieben, um zu definieren, wie eine Vielzahl von Netzwerksteuerungsprotokollen – einschließlich TCP/IP , DECnet , AppleTalk , IPX und andere – mit PPP zusammenarbeiten.

  • RFC  1332 , das PPP Internet Protocol Control Protocol (IPCP)
  • RFC  1661 , Standard 51, Das Point-to-Point-Protokoll (PPP)
  • RFC  1662 , Standard 51, PPP in HDLC-ähnlichem Rahmen
  • RFC  1962 , PPP-Kompressionskontrollprotokoll (CCP)
  • RFC  1963 , PPP Serial Data Transport Protocol
  • RFC  1877 , PPP Internet Protocol Control Protocol-Erweiterungen für Nameserver-Adressen
  • RFC  1990 , Das PPP-Multilink-Protokoll (MP)
  • RFC  1994 , PPP Challenge Handshake Authentication Protocol (CHAP)
  • RFC  2153 , Information, PPP-Anbietererweiterungen
  • RFC  2284 , PPP Extensible Authentication Protocol (EAP)
  • RFC  2364 , PPP über ATM
  • RFC  2516 , PPP über Ethernet
  • RFC  2615 , PPP über SONET/SDH
  • RFC  2686 , die Multi-Class-Erweiterung für Multi-Link PPP
  • RFC  2687 , vorgeschlagener Standard, PPP in einem Echtzeit-orientierten HDLC-ähnlichen Rahmen
  • RFC  5072 , IP Version 6 über PPP
  • RFC  5172 , Verhandlung für die IPv6-Datagramm-Komprimierung unter Verwendung des IPv6-Steuerungsprotokolls
  • RFC  6361 , PPP Transparent Interconnection of Lots of Links ( TRILL ) Protocol Control Protocol

Zusätzliche Entwürfe:

Siehe auch

Verweise