Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Ethernet è ovunque e decine di migliaia di produttori producono apparecchiature che la supportano. Tuttavia, quasi tutti questi dispositivi hanno una cosa in comune: MTU:

$ ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP 
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff

MTU (Maximum Transmission Unit) definisce la dimensione massima di un singolo pacchetto di dati. In generale, quando si scambiano messaggi con i dispositivi sulla propria LAN, la MTU sarà dell'ordine di 1500 byte e quasi tutta Internet funziona a 1500 byte. Tuttavia, ciò non significa che queste tecnologie di comunicazione non possano trasmettere pacchetti di dimensioni maggiori .

Ad esempio, 802.11 (comunemente noto come WiFi) ha una MTU di 2304 byte e se la tua rete utilizza FDDI, la tua MTU è di 4352 byte. La stessa Ethernet utilizza il concetto di "frame giganti", in cui alla MTU può essere assegnata una dimensione fino a 9000 byte (con supporto per questa modalità da parte di NIC, switch e router).

Tuttavia, su Internet ciò non è particolarmente necessario. Poiché le principali dorsali di Internet sono costituite principalmente da connessioni Ethernet, la dimensione massima non ufficiale dei pacchetti è di fatto impostata su 1500B per evitare la frammentazione dei pacchetti su altri dispositivi.

Il numero 1500 in sé è strano: nel mondo dei computer ci si aspetterebbe che le costanti siano basate su potenze di due, ad esempio. Allora da dove viene il 1500B e perché lo usiamo ancora?

numero magico

La prima grande svolta di Ethernet nel mondo è arrivata sotto forma di standard. 10BASE-2 (sottile) e 10BASE-5 (spesso), i numeri in cui indicano quante centinaia di metri può coprire un determinato segmento di rete.

Poiché all'epoca esistevano molti protocolli concorrenti e l'hardware aveva i suoi limiti, il creatore del formato ammette che i requisiti di memoria del buffer dei pacchetti hanno avuto un ruolo nella nascita del numero magico 1500:

Col senno di poi, è chiaro che un limite massimo più elevato avrebbe potuto essere una soluzione migliore, ma se avessimo aumentato sin dall'inizio il costo delle schede NIC, ciò avrebbe impedito a Ethernet di diffondersi altrettanto.

Tuttavia, questa non è tutta la storia. IN lavoro “Ethernet: Distributed Packet Switching in Local Computer Networks”, 1980, fornisce una delle prime analisi sull’efficacia dell’utilizzo di pacchetti di grandi dimensioni nelle reti. A quel tempo, questo era particolarmente importante per le reti Ethernet, poiché potevano connettere tutti i sistemi con un unico cavo coassiale, oppure erano costituite da hub in grado di inviare un pacchetto a tutti i nodi sullo stesso segmento contemporaneamente.

Era necessario scegliere un numero che non provocasse ritardi troppo elevati nella trasmissione dei messaggi in segmenti (a volte piuttosto occupati), e allo stesso tempo non aumentasse troppo il numero di pacchetti.

Apparentemente gli ingegneri dell'epoca scelsero il numero 1500 B (circa 12000 bit) come l'opzione più “sicura”.

Da allora, vari altri sistemi di messaggistica si sono avvicendati, ma tra questi, Ethernet ha avuto il valore MTU più basso con i suoi byte 1500. Superare il valore MTU minimo in una rete significa causare la frammentazione dei pacchetti o impegnarsi in PMTUD [trovare la dimensione massima del pacchetto per il percorso selezionato]. Entrambe le opzioni avevano i loro problemi particolari. Anche se a volte i grandi produttori di sistemi operativi hanno abbassato ulteriormente il valore MTU.

Fattore di efficienza

Ora sappiamo che la MTU di Internet è limitata a 1500 B, in gran parte a causa dei parametri di latenza legacy e delle limitazioni hardware. Quanto incide tutto ciò sull’efficienza di Internet?

Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Se osserviamo i dati provenienti da un grande punto di scambio di traffico Internet AMS-IX, vediamo che almeno il 20% dei pacchetti trasmessi ha una dimensione massima. Puoi anche vedere il traffico LAN totale:

Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Se combini entrambi i grafici, otterrai qualcosa di simile al seguente (stime del traffico per ciascun intervallo di dimensioni del pacchetto):

Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Oppure, se osserviamo il traffico di tutte queste intestazioni e altre informazioni sul servizio, otteniamo lo stesso grafico con una scala diversa:

Come l'unità massima di trasferimento delle informazioni su Internet è diventata 1500 byte

Gran parte della larghezza di banda viene spesa per le intestazioni dei pacchetti nella classe di dimensioni più grandi. Dato che il sovraccarico massimo nei picchi di traffico è di 246 GB/s, si può supporre che se tutti fossimo passati ai "jumboframe" quando esisteva ancora tale opzione, questo sovraccarico sarebbe solo di circa 41 GB/s.

Ma penso che oggi per la maggior parte di Internet quel treno sia già partito. E sebbene alcuni provider lavorino con una MTU di 9000, la maggior parte non la supporta e provare a cambiare qualcosa a livello globale su Internet si è rivelato estremamente difficile ancora e ancora.

Fonte: habr.com

Aggiungi un commento