
L'Ethernet è ovunque, e decine di migliaia di produttori offrono apparecchiature con il suo supporto. Tuttavia, quasi tutti questi dispositivi condividono un numero comune – :
$ ip l
1: lo: mtu 65536 stato UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: mtu 1500 stato UP
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff L'MTU (Massima Unità di Trasmissione) definisce la dimensione massima di un singolo pacchetto di dati. In generale, quando comunichi con i dispositivi della tua LAN, l'MTU avrà una dimensione di circa 1500 byte, e tutto l'internet opera quasi interamente con una dimensione di 1500 B. Tuttavia, ciò non significa che queste tecnologie di comunicazione non possano trasferire pacchetti di dimensioni maggiori.
Ad esempio, l'802.11 (conosciuto più comunemente come WiFi) ha un MTU di 2304 B, mentre se la tua rete utilizza FDDI, allora il tuo MTU è di 4352 B. L'Ethernet ha anche il concetto di "jumbo frame", dove l'MTU può essere impostato fino a 9000 B (se supportato da NIC, switch e router).
Tuttavia, su Internet ciò non è particolarmente necessario. Poiché le principali dorsali di Internet sono prevalentemente costituite da connessioni Ethernet, la dimensione massima del pacchetto è fissata de facto a 1500 B, per evitare la frammentazione dei pacchetti su altri dispositivi.
Il numero 1500 di per sé è curioso – ci si potrebbe aspettare che le costanti nel mondo dei computer siano basate sulle potenze di due, ad esempio. Quindi, da dove proviene 1500 B e perché lo usiamo ancora oggi?
Numero magico
La prima grande svolta dell'Ethernet nel mondo avvenne sotto forma di standard (sottile) e (spesso), i numeri dei quali indicano quanti centinaia di metri può coprire un singolo segmento di rete.
Poiché all'epoca c'erano molti protocolli concorrenti e l'hardware aveva le sue limitazioni, il creatore del formato riconosce che i requisiti per la memoria del buffer dei pacchetti hanno giocato un ruolo nell'emergere del numero magico 1500:
Guardando indietro, è chiaro che un massimo di dimensioni maggiori sarebbe stata forse la scelta migliore, ma se avessimo aumentato il costo dei NIC (controller di rete) nelle fasi iniziali, questo non avrebbe permesso all'Ethernet di diffondersi così ampiamente.
Tuttavia, questa non è tutta la storia. Nel «Ethernet: commutazione dei pacchetti distribuiti nelle reti di computer locali» del 1980 viene presentata una delle prime analisi sull'efficacia dell'uso di pacchetti di grandi dimensioni nelle reti. All'epoca, questo era particolarmente importante per le reti Ethernet, poiché queste potevano connettere tutti i sistemi tramite un unico cavo coassiale oppure essere costituite da hub in grado di inviare un singolo pacchetto a tutti i nodi di un segmento in un dato momento.
Era necessario scegliere un numero che garantisse ritardi non troppo elevati nella trasmissione dei messaggi nei segmenti (alcuni dei quali piuttosto congestionati), e che allo stesso tempo non incrementasse eccessivamente il numero di pacchetti.
A quanto pare, gli ingegneri di quel tempo scelsero il numero 1500 B (circa 12000 bit) come opzione più 'sicura'.
Negli anni sono emersi e scomparsi vari sistemi di trasmissione dei messaggi, ma tra essi il valore MTU più basso era quello di Ethernet, fissato a 1500 B. Superare il valore minimo di MTU in una rete significa causare frammentazione dei pacchetti o occuparsi di PMTUD [ricerca della massima dimensione del pacchetto per il percorso scelto]. Entrambe le opzioni presentano le loro peculiari problematiche. Anche se a volte i grandi produttori di sistemi operativi abbassavano il valore di MTU ulteriormente.
Fattore di efficienza
Ora sappiamo che l'MTU su Internet è limitato a 1500 B principalmente a causa dei vecchi parametri di latenza e delle limitazioni hardware. Quanto influisce questo sull'efficienza di Internet?

Esaminando i dati da un grande punto di scambio del traffico internet, AMS-IX, vediamo che almeno il 20% dei pacchetti trasmessi ha dimensioni massime. Possiamo anche guardare il traffico totale della LAN:

Se combiniamo entrambi i grafici, otteniamo qualcosa di simile al seguente (stima del traffico per ogni intervallo di dimensioni dei pacchetti):

Oppure, se esaminiamo il traffico di tutti questi header e altre informazioni di servizio, otterremo lo stesso grafico con una scala diversa:

Una parte considerevole della larghezza di banda viene spesa per le intestazioni dei pacchetti della classe di dimensioni più grande. Poiché durante i picchi di traffico le spese generali raggiungono i 246 Gb/s, si potrebbe supporre che se fossimo passati a "frame giganti" quando tale possibilità esisteva, queste spese generali sarebbero state solo di circa 41 Gb/s.
Ma penso che oggi questo treno sia già partito per la maggior parte di Internet. E anche se alcuni provider operano con un MTU di 9000, la maggior parte non lo supporta, e i tentativi di apportare modifiche globali a Internet si sono dimostrati estremamente difficili.
Fonte: habr.com
