Ethernet паўсюль, і дзясяткі тысяч вытворцаў выпускаюць абсталяванне з яго падтрымкай. Аднак амаль ва ўсіх гэтых прылад ёсць адна агульная колькасць –
$ 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) [максімальная адзінка перадачы] вызначае максімальны памер асобнага пакета дадзеных. У агульным выпадку, калі вы абменьваецеся паведамленнямі з прыладамі вашай LAN, MTU будзе мець памер каля 1500 байт, а ўвесь інтэрнэт амаль цалкам таксама працуе з памерам 1500 Б. Аднак гэта не азначае, што гэтыя тэхналогіі сувязі не могуць перадаваць пакетаў большага памеру.
Да прыкладу, у 802.11 (шырэй вядомага як WiFi) MTU роўны 2304 бы, а калі ваша сетка выкарыстае FDDI, тады ваш MTU роўны 4352 бы. У самога Ethernet ёсць канцэпцыя "гіганцкіх кадраў", калі MTU можна прызначыць памер да 9000 б (пры падтрымцы такога рэжыму NIC, камутатарамі і роўтэрамі).
Аднак у інтэрнэце гэта не асабліва патрэбна. Паколькі асноўныя магістралі інтэрнэту ў асноўным складаюцца са злучэнняў Ethernet, дэ-факта неафіцыйны максімальны памер пакета выстаўлены ў 1500 Б, каб пазбегнуць фрагментацыі пакетаў на іншых прыладах.
Сама па сабе колькасць 1500 дзіўная - можна было б чакаць, што канстанты ў свеце кампутараў будуць заснаваныя на ступенях двойкі, напрыклад. Дык адкуль узяліся 1500 Б і чаму мы іх да гэтага часу выкарыстоўваем?
Чароўны лік
Першы вялікі прарыў Ethernet у свет адбыўся ў форме стандартаў
Паколькі ў той час канкуруючых пратаколаў было мноства, а ў жалеза меліся свае абмежаванні, стваральнік фармату прызнае, што патрабаванні да памяці буфера пакетаў згулялі сваю ролю ў з'яўленні чарадзейнага ліку 1500:
Азіраючыся назад, становіцца зразумела, што максімум большага памеру, магчыма, быў бы лепшым рашэннем, аднак калі б мы павялічылі кошт NIC (сеткавых кантролераў) на ранніх этапах, гэта не дало б Ethernet так шырока распаўсюдзіцца.
Аднак гэта не ўся гісторыя. У
Трэба было абраць лік, якое давала б не занадта высокія затрымкі пры перадачы паведамленняў у сегментах (часам даволі загружаных), і пры гэтым не занадта б павялічвала лік пакетаў.
Мяркуючы па ўсім, інжынеры ў той час абралі лік 1500 Б (каля 12000 біт) як найболей "бяспечны" варыянт.
З тых часоў з'яўляліся і знікалі розныя іншыя сістэмы перадачы паведамленняў, аднак сярод іх самае нізкае значэнне MTU было ў Ethernet з яго 1500 Б. Перавышаць мінімальнае значэнне MTU у сетцы - значыць, або выклікаць фрагментацыю пакетаў, або займацца PMTUD [Пошук максімальнага памеру пакета для абранага шляху]. У абодвух варыянтаў былі свае асаблівыя праблемы. Нават калі часам буйныя вытворцы АС апускалі значэнне MTU яшчэ ніжэй.
Фактар эфектыўнасці
Цяпер нам вядома, што MTU у інтэрнэце абмежаваны памерам у 1500 Б па большай частцы з-за старых паказчыкаў затрымак і абмежаванняў абсталявання. Наколькі моцна гэта адбіваецца на эфэктыўнасьці інтэрнэту?
Калі паглядзець на дадзеныя з буйной кропкі абмену інтэрнэт-трафікам AMS-IX, мы ўбачым, што не менш за 20% перадаюцца пакетаў маюць максімальны памер. Можна таксама паглядзець на агульны трафік LAN:
Калі скамбінаваць абодва графікі, атрымаецца нешта накшталт наступнага (адзнака трафіку для кожнага дыяпазону памераў пакетаў):
Або, калі паглядзець на трафік усіх гэтых загалоўкаў і іншай службовай інфармацыі, мы атрымаем той жа графік з іншым маштабам:
Даволі большая частка прапускной здольнасці марнуецца на загалоўкі для пакетаў з самага буйнога класа памераў. Паколькі на піку трафіку найбольшыя накладныя выдаткі складаюць 246 Гб/с, можна выказаць здагадку, што калі б мы ўсё перайшлі на "гіганцкія кадры", калі такая магчымасць яшчэ існавала, гэтыя накладныя выдаткі складалі б усяго каля 41 Гб/с.
Але, думаю, сёння для найбуйнай часткі інтэрнэту гэты цягнік ужо сышоў. І хоць некаторыя правайдэры працуюць з MTU роўным 9000, большая частка яго не падтрымлівае, а спробы змяніць нешта глабальна ў інтэрнэце раз-пораз аказваліся надзвычай цяжкай справай.
Крыніца: habr.com