Le PPPoE est l’un des éléments de la pile de protocoles du modèle TCP/IP. Il figure sur la couche la plus basse, celle de l’accès au réseau. Le protocole se déroule en deux phases distinctes qui ont également un impact sur la structure. La première phase est la phase de découverte. À ce stade, le protocole détermine l'adresse MAC du nœud afin de pouvoir accéder à Internet. Cette requête se fait par l’intermédiaire d’une diffusion : les paquets de données sont envoyés sans but précis sur le réseau. Le nœud, appelé également point de présence (PoP), émet une réponse et établit un niveau de communication entre les deux parties connectées au réseau.
Vient ensuite l’étape de la session PPPoE qui va dans un premier temps traiter les détails. Le nœud vérifie notamment les droits d’accès du client. Vient ensuite l’utilisation proprement dite d'Internet qui correspond toujours à l’étape de la session PPPoE.
Afin de pouvoir identifier les différentes phases, il suffit de se reporter aux champs de la trame Ethernet. Le champ « type Ethernet » affiche 0x8863 pour la phase découverte ou 0x8864 pour la phase session. Vient ensuite la trame PPPoE, encapsulée dans le champ de données de la trame Ethernet. Le PPPoE est à nouveau réparti en plusieurs sections. C’est la version du PPPoE qui est transmise en premier lieu. Cependant, comme il n'existe qu'une seule version du protocole, on ne trouve ici que la valeur 1. Vient ensuite le type PPPoE qui correspond toujours à 1.
Alors que les deux premières versions n’étaient codées que sur 4 bits chacune, le code champ qui suit est de 1 octet (c'est-à-dire 8 bits). Ce champ est particulièrement important pour la phase de découverte du PPPoE. En effet, il indique aux deux parties à quel stade de la communication elles se trouvent. Si vous êtes déjà en phase session, le champ affiche simplement la valeur 0x00. La phase de découverte peut cependant comporter 5 valeurs différentes :
- 0x09 Le paquet de découverte « Initialisation » (PADI)
- 0x07 Le paquet de découverte « Offre » (PADO)
- 0x19 Le paquet de découverte « Requête » (PADR)
- 0x65 Le paquet de découverte « Confirmation de session » (PADS)
- 0xa7 Le paquet de découverte « Terminaison » (PADT)
La phase de découverte débute avec la diffusion (PADI). Au cours de cette étape, le client transmet également sa propre adresse MAC afin de pouvoir obtenir une réponse. Dans le paquet de données suivant émis par le PoP, le PoP communique sa propre adresse MAC ainsi que son nom (PADO). Il est tout à fait possible que plusieurs nœuds répondent à la diffusion du client. L'ordinateur ou le routeur local doit alors choisir, en fonction du nom, le PoP qu’il souhaite contacter. Il en informe le nœud par une autre diffusion (PADR). Le point de présence (PoP) contacte alors à nouveau l'abonné du réseau, confirme la connexion et attribue à l'appareil un identifiant de session (PADS). La connexion Internet est désormais établie. Si l’une des parties souhaite mettre fin à la connexion, elle en informe l'autre appareil au moyen d’un paquet de données indiquant que la session est terminée (PADT).
Une fois que la connexion a été établie et que le point de présence a attribué un identifiant de session, c’est au tour des autres champs de la trame d’intervenir. Il faut tout d’abord saisir l’identifiant de la session qui va permettre d'identifier tous les paquets de données qui suivront. On définit ensuite la longueur définitive du champ de la charge utile. Cette information va permettre de s’assurer qu’aucune information ne sera perdue pendant le transfert. Le champ de protocole qui suit indique le type de protocole employé pour la charge utile, par exemple, IPv4 ou IPv6. Ces trois champs ont chacun une longueur de 2 octets. Finalement, le champ charge utile contient les données réelles destinées à être transmises. La durée de cette section peut varier (l’information aura été communiquée au préalable) et finalise la trame du PPPoE.