Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

Ethernet er overalt, og titusenvis av produsenter produserer utstyr som støtter det. Imidlertid har nesten alle disse enhetene én ting til felles - 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) definerer maksimal størrelse på en enkelt datapakke. Generelt, når du utveksler meldinger med enheter på LAN, vil MTU være i størrelsesorden 1500 byte, og nesten hele Internett opererer på 1500 byte. Dette betyr imidlertid ikke at disse kommunikasjonsteknologiene ikke kan overføre større pakkestørrelser.

For eksempel har 802.11 (ofte kjent som WiFi) en MTU på 2304 byte, og hvis nettverket ditt bruker FDDI, er MTUen din 4352 byte. Ethernet i seg selv har konseptet "gigantiske rammer", der MTU kan tildeles en størrelse på opptil 9000 byte (med støtte for denne modusen av NIC-er, svitsjer og rutere).

Men på Internett er dette ikke spesielt nødvendig. Siden Internetts hovednettverk primært består av Ethernet-tilkoblinger, er den de facto uoffisielle maksimale pakkestørrelsen satt til 1500B for å unngå pakkefragmentering på andre enheter.

Selve tallet 1500 er merkelig - man kan forvente at konstanter i dataverdenen for eksempel er basert på to potenser. Så hvor kom 1500B fra og hvorfor bruker vi det fortsatt?

magisk tall

Ethernets første store gjennombrudd i verden kom i form av standarder. 10BASE-2 (tynn) og 10BASE-5 (tykk), tallene som indikerer hvor mange hundre meter et bestemt nettverkssegment kan dekke.

Siden det var mange konkurrerende protokoller på den tiden, og maskinvaren hadde sine begrensninger, innrømmer skaperen av formatet at minnekravene til pakkebufferen spilte en rolle i fremveksten av det magiske tallet 1500:

I ettertid er det klart at et større maksimum kan ha vært en bedre løsning, men hvis vi hadde økt kostnadene for NIC-er tidlig, ville det hindret Ethernet fra å bli like utbredt.

Dette er imidlertid ikke hele historien. I arbeid "Ethernet: Distributed Packet Switching in Local Computer Networks," 1980, gir en av de tidligste analysene av effektiviteten av å bruke store pakker i nettverk. På den tiden var dette spesielt viktig for Ethernet-nettverk, siden de enten kunne koble alle systemer med en enkelt koaksialkabel, eller bestå av huber som var i stand til å sende en pakke til alle noder på samme segment samtidig.

Det var nødvendig å velge et tall som ikke ville resultere i for store forsinkelser ved sending av meldinger i segmenter (noen ganger ganske opptatt), og samtidig ikke ville øke antallet pakker for mye.

Tilsynelatende valgte ingeniører på den tiden tallet 1500 B (omtrent 12000 biter) som det mest "sikre" alternativet.

Siden den gang har forskjellige andre meldingssystemer kommet og gått, men blant dem hadde Ethernet den laveste MTU-verdien med sine 1500 byte. Å overskride minimums-MTU-verdien i et nettverk betyr enten å forårsake pakkefragmentering eller engasjere seg i PMTUD [å finne maksimal pakkestørrelse for valgt bane]. Begge alternativene hadde sine egne spesielle problemer. Selv om noen ganger store OS-produsenter senket MTU-verdien enda lavere.

Effektivitetsfaktor

Vi vet nå at Internett-MTU er begrenset til 1500B, hovedsakelig på grunn av eldre ventetid og maskinvarebegrensninger. Hvor mye påvirker dette effektiviteten til Internett?

Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

Hvis vi ser på data fra et stort Internett-utvekslingspunkt AMS-IX, ser vi at minst 20 % av overførte pakker har en maksimal størrelse. Du kan også se på den totale LAN-trafikken:

Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

Hvis du kombinerer begge grafene, får du noe sånt som følgende (trafikkanslag for hvert pakkestørrelsesområde):

Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

Eller, hvis vi ser på trafikken til alle disse overskriftene og annen tjenesteinformasjon, får vi den samme grafen med en annen skala:

Hvordan den maksimale enheten for informasjonsoverføring på Internett ble 1500 byte

En ganske stor del av båndbredden brukes på overskrifter for pakker i den største størrelsesklassen. Siden den høyeste overheaden ved topptrafikk er 246 GB/s, kan det antas at dersom vi alle hadde gått over til «jumbo frames» når et slikt alternativ fortsatt eksisterte, ville denne overheaden kun vært på ca 41 GB/s.

Men jeg tror i dag for størstedelen av Internett at toget allerede har gått. Og selv om noen leverandører jobber med en MTU på 9000, støtter de fleste det ikke, og å prøve å endre noe globalt på Internett har vist seg å være ekstremt vanskelig om og om igjen.

Kilde: www.habr.com

Legg til en kommentar