Was ist PPPoE? | Erklärung, Aufbau und Ablauf des Internetprotokolls


PPPoE ist Teil des TCP/IP-Protokollstapels – und befindet sich dort auf der untersten Schicht, dem Netzzugang. Das Protokoll agiert in zwei verschiedenen Phasen, die wiederum Auswirkungen auf den Aufbau haben. Zunächst beginnt man mit dem PPPoE-Discovery. In diesem Schritt ermittelt das Protokoll die MAC-Adresse des Knotenpunktes, um über diesen dann das Internet nutzen zu können. Diese Suche funktioniert über einen Broadcast: Die Datenpakete werden also ohne spezielles Ziel in das Netz hinausgeschickt. Der Knotenpunkt, auch Point of Presence (PoP) genannt, antwortet dann und stellt so eine Kommunikationsebene zwischen den beiden Netzteilnehmern her.

Anschließend startet die zweite Phase, die PPPoE-Session. In dieser werden zunächst Details ausgehandelt. Beispielsweise überprüft der Knotenpunkt die Zugangsberechtigung des Clients. Dann folgt die eigentliche Nutzung des Internets, was immer noch zur Phase der PPPoE-Session gehört.

Um welches Phase es sich gerade handelt, erkennt man im Typenfeld des Ethernet-Frames. Hier steht entweder 0x8863 für die Discovery oder 0x8864 für die Session. Nach dem Typenfeld folgt der PPPoE-Frame, eingebettet im Datenfeld des Ethernet-Frames. Der PPPoE-Anteil lässt sich wiederum in unterschiedliche Abschnitte einteilen. Zunächst wird die Version von PPPoE übertragen. Da es aber nur eine Version des Protokolls gibt, ist hier immer nur der Wert 1 zu finden. Anschließend folgt der PPPoE-Typ, welcher aber auch immer auf 1 steht.

Während die ersten beiden Teile jeweils nur 4 Bit eingenommen haben, folgt nun ein 1 Byte (also 8 Bit) großes Code-Feld. Dieses ist vor allem für die PPPoE-Discovery-Phase von Bedeutung und zeigt an, in welchem Schritt die beiden Kommunikationsteilnehmer gerade befinden. Ist man bereits in der Session angekommen, hat das Feld einfach den Wert 0x00. In der Discovery-Phase sind allerdings 5 verschiedene Werte möglich:

  • 0x09: PPPoE Active Discovery Initiation (PADI)
  • 0x07: PPPoE Active Discovery Offer (PADO)
  • 0x19: PPPoE Active Discovery Request (PADR)
  • 0x65: PPPoE Active Discovery Session-confirmation (PADS)
  • 0xa7: PPPoE Active Discovery Termination (PADT)

Die Discovery-Phase beginnt also mit dem Broadcast (PADI). In diesem Schritt übermittelt der Client auch seine eigene MAC-Adresse, um anschließend eine Antwort erhalten zu können. In dem darauffolgenden Datenpaket des PoP gibt dieser seine eigene MAC-Adresse sowie seinen Namen bekannt (PADO). Es ist gut möglich, dass sich mehrere Knotenpunkte auf den Broadcast des Clients hin melden. Der heimische Computer bzw. Router muss dann anhand des Namens entscheiden, zu welchem PoP er Kontakt aufnehmen möchte. Dies teilt er dem Knotenpunkt durch eine weitere Sendung mit (PADR). Anschließend nimmt der PoP erneut Kontakt zum Netzteilnehmer auf, bestätigt damit die Verbindung und weist dem Gerät eine Session-ID zu (PADS). Die Internetverbindung ist somit hergestellt. Möchte einer der Teilnehmer die Verbindung beenden, teilt er das dem anderen Gerät mit einem abschließenden Datenpaket mit (PADT).

Nachdem die Verbindung hergestellt wurde und der Point of Presence eine Session-ID vergeben hat, spielen die weiteren Felder innerhalb des Frames eine Rolle. Zunächst ist hier die Session-ID eingetragen. Damit können alle folgenden Datenpakete identifiziert werden. Als nächstes wird die Länge des abschließenden Payload-Feldes benannt. Durch die Angabe kann sichergestellt werden, dass keine Informationen während der Übertragung verlorengegangen sind. Das folgende Protokoll-Feld informiert darüber, welches Protokoll für den Payload verwendet wird, also beispielsweise IPv4 oder IPv6. Diese drei Felder haben jeweils eine Länge von 2 Byte. Im Payload-Feld sind schließlich die eigentlichen für die Übertragung vorgesehenen Daten enthalten. Dieser Abschnitt kann eine variable Länge einnehmen (über die zuvor informiert wurde) und schließt den PPPoE-Frame ab.



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.