Differenze tra PPPoE e PPPoA

Oggi andiamo a vedere le principali differenze tra PPPoA e PPPoE, i due protocolli utilizzati per connessioni internet ad alta velocità.

Un protocollo di rete permette il trasferimento dell’informazione, trasmessa in bit, tra due nodi. Tale informazione può essere di diversa natura, come una foto o un video. La tecnologia PPP, ossia il trasferimento punto-punto, fa parte del modello OSI, ovvero il modello ormai standard per la connessione tra diversi dispositivi. Tale modello è composto da diversi livelli, ognuno dei quali svolge compiti ben diversi, come il controllo di errore tra i bit d’informazione oppure la multiplazione di varie informazioni in un singolo pacchetto e viceversa.

Il metodo di connessione PPP fa parte del cosiddetto livello di collegamento, che comunica in maniera diretta con il livello fisico, che rappresenta il dispositivo utilizzato per la connessione. Il livello di collegamento riceve dal livello di rete (superiore) i pacchetti da inviare tramite il canale di connessione. Tali pacchetti vengono convertiti in  frame, che poi verranno passati al livello fisico che si occuperà del trasferimento. Ovviamente non andremo a spiegare nel dettaglio i vari strati del modello OSI (di cui potremmo dedicare un articolo a parte), ma vi basti sapere che il flusso di dati, prima della trasmissione vera e propria, si sottopone a vari controlli di errore e congestione. Tutto ciò per evitare perdita di informazioni o invio di dati in eccesso.

Tornando al trasferimento PPP, ne esistono due tipologie: PPPoA e PPPoE. Analizziamole separatamente.

PPPoA

Il termine PPPoA, acronimo di Point-to-Point Protocol over ATM, è un protocollo che permette il trasferimento dei dati su celle ATM AAL5. L’acronimo ATM (Asynchronous Transfer Mode) vuol dire che i pacchetti vengono suddivisi in informazioni di dimensione fissa di 53 byte. Ognuna di queste celle di informazioni possiede 48 byte utili e il resto di overhead. Il vantaggio di questo tipo di trasferimento è che le informazioni vengono suddivise in pacchetti molto piccoli e di lunghezza fissa, permettendo un ritardo di elaborazione limitato e costante, migliorando di conseguenza la velocità di trasferimento.

Il protocollo PPPoA è indicato infatti per le connessioni internet ad alta velocità, proprio per la sua struttura a celle. Inizialmente si invia un pacchetto di configurazione della connessione. In questo modo si potrà trovare l’instradamento più efficiente e corretto per quella specifica connessione. A questo punto si trasferiscono le varie celle di 53 byte che costituiscono le informazioni, seguendo lo stesso instradamento dato dal pacchetto di configurazione.

VCI e VPI

Ad ogni cella verrà attribuita un’etichetta, così da poter essere riconosciuta non appena arriva ad uno switch di connessione. Tale etichetta è costituita dai valori di VCI e VPI, di cui molti di voi avranno già sentito parlare. Il primo rappresenta il canale virtuale nel quale il circuito di rete è attivo mentre il secondo indica il percorso virtuale. Per chi ha un minimo di dimestichezza con la configurazione di rete avrà notato che a seconda del provider utilizzato si assegna uno specifico valore di VCI e VPI. Ciò significa che ogni collegamento associato ad un dato provider sarà inserito nel circuito virtuale equivalente, dove ogni connessione verrà poi instradata secondo un protocollo.

Traffico VBR e CBR

Non immaginate quindi di avere una singola rete di pacchetti ma più reti che devono inviare informazioni tramite protocollo PPPoA. E’ chiaro che determinare l’instradamento per ognuna non è così semplice. Però tramite questo sistema è possibile creare una rete efficiente e veloce. Una rete ATM permette di trasferire informazioni di qualunque tipo, che siano CBR, ovvero a bit-rate costante come nel caso della telefonia, o VBR, quindi a bitrate variabile come nel caso di un flusso video. L’esempio più classico sono i servizi di streaming come Netflix o Amazon Prime Video, dove l’informazione in bit è chiaramente variabile poiché si tratta di flussi video che cambiano a seconda della velocità della connessione e della qualità alla quale si trasmettono.

PPPoE

PPPoE, abbreviazione di Point-to-Point Protocol over Ethernet, è un protocollo utilizzato specialmente per il trasferimento di informazione tramite IP dinamici. Nell’ambito delle reti LAN, ovvero reti in locale, può essere necessario interfacciarsi ad Internet tramite IP dinamici pubblici. Dunque è obbligatorio l’utilizzo di una connessione tramite PPPoE. In questo modo l’IP pubblico sarà attestato in linea retta sull’interfaccia del dispositivo, permettendo di aggirare il servizio NAT di traduzione negli indirizzi di rete. 

Il compito del protocollo PPPoE è quello di fare da tunnel tra due dispositivi connessi tramite Ethernet. Anche in questo caso si segue un modello OSI, dove il livello di rete è costituito da un indirizzo IP e quello di collegamento dal protocollo PPPoE. Si mantengono le caratteristiche principali di una connessione punto-punto, come la cifratura, la compressione e la compressione. Ciò che cambia è il fatto che non siamo più su una rete WAN, che sfrutta il protocollo PPPoA, ma su una rete LAN in cui gli host sono collegati tra loro.

In generale il protocollo PPPoE viene utilizzato quando il dispositivo si collega direttamente al router o modem tramite cavo Ethernet. Invece che usare la classica connessione tramite la combinazione login/password, si sfrutta il PPPoE per identificare i pacchetti e assegnare così un indirizzo IP in uscita non appena la connessione sarà aperta.

Non vogliamo addentrarci nelle caratteristiche tecniche dei due protocolli, anche perché non è lo scopo di questo articolo. Abbiamo cercato di dare un quadro generale delle principali differenze tra PPPoA e PPPoE, senza usare tecnicismo che potrebbero confondere.

MTU

L’MTU (Maximum Transmission Unit) è la dimensione massima che può avere il pacchetto durante il trasferimento. Tra i due protocolli di cui abbiamo appena parlato c’è una differenza anche in questo caso. Per quanto riguarda il PPPoA abbiamo un limite massimo di 1500 mentre scende a 1492 per il PPPoE. Ovviamente se noi impostiamo un valore MTU di 1500 ma siamo collegati ad internet tramite Ethernet, il valore massimo del pacchetto sarà comunque di 1492 per via del limite strutturale. Andiamo a vedere però quale può essere il valore MTU più efficiente da impostare in entrambi i casi. Come abbiamo già detto precedentemente, ogni cella del pacchetto contiene un valore fisso di 48 byte, escludendo quelli di overhead. Quindi a seconda del valore MTU avremo un numero di celle differenti e, di conseguenza, un overhead totale diverso, che comporta un cambio dell’efficienza.

Cominciamo col definire i protocolli utilizzati in entrambi i casi:

PPPoA

  • TCP/IP: 40 bytes header
  • PPP: 2 bytes header
  • AAL5: Padding + 8 bytes Trailer
  • ATM: 5 bytes header per ogni cella

PPPoE

  • TCP/IP: 40 bytes header
  • PPP: 2 bytes header
  • PPPoE: 6 Bytes Header
  • MAC: 14 Bytes Header
  • LLC: 10 Bytes Header
  • AAL5: Padding + 8 bytes Trailer
  • ATM: 5 bytes header per ogni cella

Come si può notare, c’è un numero maggiore di protocolli impiegati nel PPPoE. Quindi si potrebbe pensare che abbia innegabilmente un’efficienza minore. In realtà vedremo come per particolari valori MTU è preferibile scegliere il PPPoE. Facciamo ora qualche calcolo matematico.

PPPoA (MTU 1500)

  • Overhead fisso: 40 + 2 + 8 = 50 bytes
  • Numero di celle necessarie: (1500 + 2 + 8)/48 = 32
  • Padding: 32 * 48 – (1500 + 2 + 8) = 26
  • Overhead totale: 50 + 26 + 5*32 (header totale delle celle) = 236
  • Efficienza: 1460/(1460 + 236) = 86.08%

Il valore ottenuto può sembrare decisamente buono, ma se eseguiamo lo stesso calcolo con un MTU di 1478 otterremo un’efficienza dell’87.52%. Dunque nel caso del PPPoA è utile settare quest’ultimo valore per avere padding nullo e quindi una velocità di connessione migliore.

PPPoE (MTU 1492)

  • Overhead fisso: 40 + 2 + 8 + 6 + 14 + 10 = 80 bytes
  • Numero di celle necessarie: (1492 + 6 + 14 + 10 + 2 + 8)/48 = 32
  • Padding: 32 * 48 – (1492 + 6 + 14 + 10 + 2 + 8) = 4
  • Overhead totale: 80 + 4 + 5*32 (header totale delle celle) = 236
  • Efficienza: 1460/(1460 + 236) = 86.02%

Purtroppo il PPPoE è possibile settarlo solamente con MTU di 1492. Quindi il confronto si può fare solamente cambiando il valore per il PPPoA. Come si può vedere dal risultato, nonostante per il PPPoA abbiamo scelto un MTU più alto, l’efficienza è praticamente identica in entrambi i casi. Ciò è dovuto ad un valore molto più basso del padding nel caso del PPPoE. Inoltre se eseguissimo i calcoli per un valore MTU di 1492 nel PPPoA, otterremmo un’efficienza minore. Per cui non sempre un valore MTU più alto corrisponde a maggiore efficienza.

In conclusione possiamo dire che per il PPPoA il valore consigliato è di 1478 mentre per il PPPoE è 1492. E’ possibile modificare questo valore direttamente dal pannello di controllo del router. Vi consigliamo di controllare attentamente il valore assegnato dall’ISP poiché non sempre viene dato il valore più efficiente.

In conclusione verrebbe da consigliare l’uso del PPPoA, con un guadagno dell’1.5% rispetto al PPPoE, però se siete connessi tramite cavo Ethernet conviene usare il PPPoE per una questione puramente tecnica.