View Single Post
Old 04-12-2017, 00:18   #314
virtualj
Senior Member
 
L'Avatar di virtualj
 
Iscritto dal: Jan 2004
Città: Montesilvano (PE)
Messaggi: 910
Quote:
Originariamente inviato da astaris Guarda i messaggi
Lo scopo di questo post è dimostrare, con formule alla mano, quale sia l'MTU ottimale per connessioni ADSL con protocolli PPPoA e PPPoE.
A chi se ne frega delle spiegazioni e delle formule consiglio di andare alle conclusioni
Prima di iniziare, è necessario introdurre il concetto di cella ATM.
I dati che viaggiono su ADSL vengono sempre impacchettati, indipendentemente dal tipo di incapsulamento scelto, in celle (o pacchetti) ATM. Ogni cella ATM contiente un payload (i dati che il modem invia o riceve) fisso, di dimensione pari a 48 byte. Il payload è sempre accompagnato da un Header (intestazione) di dimensione pari a 5 byte. Quindi di per sè l'efficienza del protocollo ATM è pari a:
eff_ATM=48/(48+5)=90.57%
Questo significa che i dati che inviamo o riceviamo possono viaggare a una velocità massima idelae pari al 90.57% della velocità "agganciata" dal modem.
Tuttavia la velocità massima è in realtà minore a causa dell'overhead introdotto dai protocolli incapsulanti che agiscono a monte dell'ATM.
E' importante osservare che l'ATM si aspetta sempre dal protocollo incapsulante superiore un pacchetto dati multiplo di 48 byte, perchè, come abbiamo detto, le celle ATM portano in ogni caso 48 bytes di dati.
Se questo non avviene, il protocollo incapsulante superiore aggiunge un padding (riempimento) in maniera tale da soddisfare questa condizione. Questo padding ovviamente non contiene dati e quindi diminuisce l'efficienza dell'adsl, in altre parole diminuisce la velocità con la quale scarichiamo
In generale è possibile annullare il padding agendo sull'MTU. Ma ora procediamo separatamente per PPPoA e PPPoE.

PPPoA
In questo caso i protocolli utilizzati sono, nell'ordine di incapsulamento:
TCP/IP - 40 bytes header
PPP - 2 bytes header
AAL5 - Padding + 8 bytes Trailer
ATM - 5 bytes header per ogni cella
Accanto ad ogni protocollo ho indicato il numero di bytes che non fanno parte dei dati utili. Come si vede il protocollo responsabile del padding per avere un numero intero di celle ATM è l'AAL5. Da notare che il pacchetto AAL5 viene scomposto in tante celle ATM fino ad esaurimento del pacchetto stesso. Il numero di celle ATM dipenderà dall'MTU, ovverro dalle dimensioni del pacchetto TCP/IP. Vediamo ora di scoprire qual'e' l'MTU che garantisce la maggiore efficienza per il PPPoA.

MTU = 1500
Questo è il valore di MTU generalmente consigliato per il PPPoA. Verifichiamo che sia effettivamente il valore di MTU che garantisce l'efficienza massima del protocollo:
Overhead fisso
40 (TCP/IP) + 2 (PPP) + 8 (AAL5) = 50 bytes
Numero di celle ATM necessarie
Ceil (1500 (MTU) + 2 (PPP) + 8 (AAL5) / 48) = 32
Padding necessario
32*48-(1500 (MTU) + 2 (PPP) + 8 (AAL5)) = 26
OverHead finale = 50 (Overhead fisso)+ 26 (PAdding) + 5*32 (Header celle)= 236
Efficienza
1460/(1460+236)=86.08 %

MTU = 1492
Questo MTU viene impostato da negoziazione automatica con il modem da alcuni provider anche su PPPoA
Ripetendo i calcoli:
Efficienza
1452/(1452+244)=85.61 %
Quindi l'efficienza, come c'era da aspettarsi, è scesa.

MTU = 1478
Questo MTU è il più grande MTU trasportabile (ricordiamo che il massimo MTU trasportabile è 1500, il collo di bottiglia è il PPP e generalmente le schede Ethernet se colleghiamo il pc al router via ethernet) che garantisce padding nullo. In questo caso si ha:
Efficienza
1438/(1438+205) = 87.52 %
Quindi 1478 è l'MTU che garantisce la massima efficienza su ADSL con PPPoA.
La TCP Window Size dovrebbe essere quindi impostata ad un valore multiplo di 1438.

PPPoE
In questo caso i protocolli utilizzati sono, nell'ordine di incapsulamento:
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 vediamo, ci sono tre protocolli in più. Questo comporta che l'overhead è maggiore. Ci aspettiamo quindi un'efficienza minora. Ma come vedremo ci possono essere casi in cui il PPPoE è più efficiente del PPPoA...

MTU = 1492
Questo è il massimo MTU impostabile con il PPPoE; la limitazione è indotta dal protocollo MAC, che può trasportare un payload massimo di 1500 bytes. A questi 1500 bytes vanno sottratti i 2 bytes del PPP e i 6 bytes del PPPoE, arrivando così ai 1492 bytes lasciati disponibili per il TCP/IP, l'MTU appunto.
Andiamo avanti con i calcoli:
Overhead fisso
40 (TCP/IP) + 2 (PPP) + 6 (PPPoE) + 14 (MAC) + 10 (LLC) + 8 (AAL5) = 80 bytes
Numero di celle ATM necessarie
Ceil (1492 (MTU) + 2 (PPP) + 6 (PPPoE) + 14 (MAC) + 10 (LLC) + 8 (AAL5) / 48) = 32
Padding necessario
32*48-(1492 (MTU) + 2 (PPP) + 6 (PPPoE) + 14 (MAC) + 10 (LLC) + 8 (AAL5) ) = 4
OverHead finale = 80 (Overhead fisso)+ 4 (PAdding) + 5*32 (Header celle)= 236
Efficienza
1452/(1452+236)=86.02 %
Si vede subito che questa è la massima efficienza raggiungibile con il PPPoE.
Da notare che con MTU 1492 il PPPoE è più efficiente del PPPoA, 86.02 % contro 85,61%; la cosa triste è che in PPPoA alcuni provider settano l'MTU su questo valore...

Conclusione:
PPPoA
Valore consigliato per MTU: 1478
Efficienza con valore consigliato: 87.52 %
Valore consigliato per TCP Window Size: multiplo di 1438
PPPoE
Valore consigliato per MTU: 1492
Efficienza con valore consigliato: 86.02 %
Valore consigliato per TCP Window Size: multiplo di 1452

Guadagno PPPoA vs PPPoE: 1.5 %
Scusate se riesumo questo thread dall'oltretomba.. Ma tutti i discorsi fatti valgono allo stesso modo per vdsl2 o vanno riconteggiate le celle atm?
Grazie!

Inviato dal mio SM-G920F utilizzando Tapatalk
__________________
TITANIUM64: CoolerMaster HAF 922 - I7 920 @3.20 GHz cooled by Zalman 9500AT on Asus P6T Delux v2 - Antec TruePower Trio 550W - OCZ 6 Gb DDR3 PC3-12800 1600 MHz TripleChannel - HD 2x Western Digital 250gb 7200rpm SATA-II RAID 0 ICH10R + SSD 128GB - Sapphire Radeon HD7730 512 - Pioner DVR-111D - Windows 8.1 Pro 64
virtualj è offline   Rispondi citando il messaggio o parte di esso