Зміна mtu. Що таке MTU? Як знайти оптимальний розмір MTU для домашньої мережі

У комп'ютерних мережах термін maximum transmission unit (MTU) означає максимальний розмір корисного блоку даних одного пакета (payload), який може бути переданий протоколом без фрагментації. Зазвичай заголовки протоколу не входять до MTU, але деякі системи в деяких протоколах заголовки можуть враховуватися. Коли говорять про MTU, зазвичай мають на увазі протокол канального рівня мережевої моделі OSI.

Однак цей термін може застосовуватися і для інших рівнів:

L1 - media mtu (повний L2 кадр);

L2 - mtu, hw mtu, system mtu;

L3 - ip mtu (ip заголовок враховується), mtu routing;

L4 - tcp mss Позасистемні: tunnel mtu, vlan mtu, mpls mtu.

Обмеження на максимальний розмір кадру накладається з кількох причин:

Для зменшення часу на повторну передачу у разі втрати або непоправного спотворення пакета. Імовірність втрат зростає із збільшенням довжини пакета.

Щоб при напівдуплексний режим роботи хост не займав довгий час канал (також для цієї мети використовується міжкадровий інтервал (Interframe gap)).

Чим більший пакет, тим більше очікування відправлення інших пакетів, особливо в послідовних інтерфейсах. Тому маленький MTU був актуальним у часи повільних комутованих з'єднань.

Малий розмір та швидкодія мережевих буферів вхідних та вихідних пакетів. Проте надто великі буфери теж погіршують продуктивність.

Значення MTU визначається стандартом відповідного протоколу, але може бути автоматично перевизначено для певного потоку (протоколом PMTUD) або вручну для потрібного інтерфейсу. На деяких інтерфейсах MTU за замовчуванням можна встановити нижче максимально можливого. Значення MTU обмежено знизу зазвичай мінімально допустимою довжиною кадру.

Для високопродуктивної мережі причини, що спричинили початкові обмеження MTU, застаріли. У зв'язку з цим для Ethernet було розроблено стандарт Jumbo-кадрів зі збільшеним MTU.

Хост знає значення MTU для власного (можливо й своїх сусідів) інтерфейсу, але мінімальне значення MTU всім вузлів мережі зазвичай невідомо. Інша потенційна проблема полягає в тому, що протоколи вищого рівня можуть створювати пакети більшого розміру, які не підтримуються іншими вузлами мережі.

Проходження великих пакетів по мережі із фрагментацією. Для усунення цих проблем IP підтримує фрагментацію, що дозволяє розбивати дейтаграму на менші шматочки, кожен з яких буде достатньо малий, щоб безперешкодно пройти через вузол, через який відбувається фрагментація. Фрагменти пакетів маркуються таким чином, щоб IP цільового хоста міг зробити складання фрагментів в оригінальну дейтаграму. Недоліки фрагментації пакетів, що полягають у швидкості.

Хоча фрагментація вирішує проблему невідповідності розмірів пакетів і значення MTU, вона значно знижує продуктивність мережних пристроїв. У зв'язку з цим, у 1988 році було запропоновано альтернативну технологію, названу Path MTU discovery (RFC 1191). Суть технології полягає в тому, що при з'єднанні двох хостів встановлюється параметр DF (don't fragment — не фрагментувати), який забороняє фрагментацію пакетів. Це призводить до того, що вузол, значення MTU якого менший за розмір пакета, відхиляє передачу пакета і відправляє повідомлення ICMP «необхідна фрагментація, але встановлено прапор її заборони (DF)». Відправник зменшує розмір пакета і відсилає його заново. Така операція відбувається доти, доки пакет не буде достатньо малий, щоб дійти до хоста-отримувача без фрагментації.

Однак і ця технологія має потенційні проблеми. Деякі маршрутизатори налаштовуються адміністраторами на повне блокування пакетів ICMP (це не дуже грамотно, але може бути найпростішим вирішенням кількох проблем безпеки). В результаті, якщо розмір пакета не відповідає значенню MTU на певній ділянці, пакет відкидається, а хост-відправник не може отримати інформацію про значення MTU та не надсилає пакет заново. Тому з'єднання між хостами не встановлюється. Проблема отримала назву MTU Discovery Black Hole (RFC 2923) і протокол був модифікований для детектування таких маршрутизаторів.

Оскільки Windows (XP,7,8) автоматично вибирає найкраще MTU (PMTU), у нашому випадку необхідно просто переконатися, що для цього з'єднання не встановлено якесь відмінне від оптимального фіксоване значення. До речі, це оптимальне значення з'ясувати досить легко, провівши нескладний експеримент. Відкрийте консоль cmd.exe та введіть у ній команду:

PING -f -l 1472 xxx.xxx.xxx.xxx

де xxx.xxx.xxx.xxx — IP-адреса шлюзу вашого провайдера,

F забороняє фрагментацію пакета,

L встановлює розмір пакета.

Якщо ви отримаєте у відповідь щось типу “Reply from xxx.xxx.xxx.xxx: bytes=1472 time=144ms TTL=10”, це означатиме що MTU=1500 (28 байт заголовка не враховуються). Якщо відповідь буде “Packet needs to be fragmented but DF set”, то зменшуйте значення 1472 до того часу, поки отримаєте проходження пакета — це значення плюс 28 байт заголовка і дорівнюватиме шуканому MTU.

Отримане значення (+28 байт заголовка) необхідно порівняти зі значенням MTU, яке використовується системою, яке можна визначити за допомогою команди, в тому ж командному рядку:

netsh interface ipv4 show subinterfaces

(В результаті буде виведено значення MTU для інтерфейсів ipv4).

Змінити значення MTU в Windows (XP,7,8) можна за допомогою команди

(Дію зі зміни параметрів налаштування бажано виконувати тільки досвідченому користувачеві, оскільки неправильне значення вплине на роботу мережі в гірший бік!):

netsh interface ipv4 set subinterface "ХХХХХХХХ" mtu=1500 store=persistent

Де ХХХХХХХХ - Назва мережного інтерфейсу (За замовчуванням - "Підключення по локальній мережі", для зручності можна перейменувати, наприклад, у Lan1 в папці "Мережеві підключення" в "Панелі управління").

На відміну від Windows більшість роутерів (Wi-Fi Домашніх маршрутизаторів) використовують статичне налаштування MTU, вказане в налаштуваннях роутера. За промовчанням значення MTU 1500.

Провайдер "Тріолан" забезпечує передачу пакетів Ethernet максимального корисного розміру, якому відповідає налаштування MTU 1500.

Є провайдери, налаштування мережі яких обмежує розмір MTU до значень менше 1500. Найчастіше це пов'язано з використанням протоколів додаткової інкапсуляції (PPPoE, L2P та ін.). У такому випадку Windows налаштовує необхідне значення MTU за протоколом PMTU, але у разі виникнення проблем можуть знадобитися налаштування, описані вище. Найчастіше проблеми з MTU пов'язані саме з роутерами, в яких неправильно налаштовано значення MTU. Для мереж "Тріолан" це значення становить 1500, для інших мереж - може бути визначено за допомогою командного рядка, як описано вище.

Для точного визначення MTU потрібно вказати значення за промовчанням - 1500.

Існує безліч утиліт, які дозволяють це зробити та й не тільки це. Найбільш поширені – Internet Tweak 2001 http://www.magellass.com/ , NetBoost 99 http://www.download.ru/ , iSpeed http://www.hms.com/ , MTUSpeed http://www.mjs.u-net.com/ , BlazeNET http://www.indeavour.com/html_about_blazenet.htm.Якщо ж у вас нема. можливості запустити одну з перерахованих вище програм, зробіть це вручну - за допомогою реєстру Windows.

В розділі

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\OOOx.

Якщо є параметр MaxMTU - видаліть його. Далі, у Панелі управління запустіть утиліту Мережа,на вкладці Конфігураціявиберіть пункт списку Контролер віддаленого доступута натисніть кнопку Властивості.Відкриється діалогове вікно Властивості: Контролер віддаленого доступу.На вкладці Додатковоу групі параметрів Властивістьвиберіть пункт списку Розмір пакета IP,а в групі параметрів Значення - велике(Рис. 8.1).

Мал. 8.1.Діалогове вікно Властивості: Контролер віддаленого доступу

Тим самим MTU стає рівним 1500. Для того, щоб зміни набули чинності, перезавантажте комп'ютер.

Щоб перевірити, чи будуть фрагментуватися пакети, потрібно встановити з'єднання з Інтернетом. Для цього можна використовувати програму Ping, що входить до складу будь-якої операційної системи Windows.

У ній. потрібно задати такі параметри:

ping -f -1 1500 ххх.ххх.ххх.ххх

де ххх. ххх. ххх. ххх - IP-адреса тестованого сервера.

Для тестування MTU набагато зручніше використати сучасні програми з графічним інтерфейсом. Існує безліч таких програм. Наприклад, IP Tools. Для початку потрібно визначити IP-адресу сервера, що тестується, щоб уникнути втрати часу, що відводиться на запит DNS.

Для цього скористайтесь командою Traceroute. Натисніть кнопку Пуску лівому нижньому куті екрана, виберіть команду Виконатиі у вікні наберіть та URL веб-сайту. З'явиться вікно MS DOS. Наприклад, ввівши будь-яку адресу, через деякий час з'явиться його IP у квадратних дужках. Тепер скористайтесь програмою Ping. Запустіть її з такими параметрами

ping -f -I 1500 ххх.ххх.ххх.ххх

де ххх.ххх.ххх.ххх - IP-адреса сервера, що тестується. Найбільш сприятливий час для перевірки MTU для комутованого з'єднання – ніч. Тоді навантаження на лінії зв'язку найменше.

Якщо жодної відповіді не отримано - пакет втрачено. Причому тому, що фрагментувати його заборонили, а розмір занадто великий для обладнання провайдера. Починайте поступово зменшувати розмір пакета. Наприклад, замість значення MTU 1500 встановіть 1480 і т. д., доки відповідь не буде отримана.

Можливо, ваш інтернет-провайдер використовує менше значення. Наприклад, 1524, 1152, 1024, 1006, 576, 568, 560, 552, 548, 536, 528, 520, 512.

Цей експеримент підтвердив нашу здогад - інтернет-провайдер може використовувати будь-який розмір пакета, аж до 1500. Якщо вам ще не набридло експериментувати - спробуйте завантажити файл розміром 500 Кбайт з одного і того ж сервера при різних значеннях MTU.

Швидше за все, ви зрозумієте, що швидкість більша за використання великих

пакетів. Повторюся, що це тільки якщо ваш провайдер може приймати їх, не фрагментуючи. Також, якщо "пінгувати" багато ваших улюблених сайтів нефрагментованим пакетом, ви побачите, що майже всі нормально приймають пакети розміром 1500.

І що? Ви можете запитати: "Де ж той рекомендований MTU, рівний 576?" А його, як виявляється, майже ніде і немає. Тому найкращою порадою може стати - не слідувати чужим рекомендаціям, проводити власні дослідження, які можуть дати реальні результати.

Справді, на якість та швидкість роботи в Мережі сильний вплив надає фрагментація пакетів, яка відбувається, якщо великий пакет проходить через мережу, що має MTU менше, ніж довжина пакета.

Можна, звичайно, перестрахуватися і вибрати мінімальний розмір MTU, при якому пакети напевно не будуть фрагментуватися, але це може позначитися на швидкодії вашої системи ще згубніше, ніж використання великих пакетів. Насправді, головне - щоб ваш MTU не перевершував MTU провайдера, при включеній функції

PMTU система сама знайде для ваших пакетів такий шлях у Мережі, коли вони не будуть фрагментуватися.

До речі, якщо ви виявите, що у провайдера встановлено MTU=512 і менше, тобто сенс подумати про його зміну – надто багато шлаку буде передаватись разом із вашими даними.

Багато користувачів Інтернету, для підключення до якої використовуються захищені з'єднання з боку провайдерів, можуть відчувати дискомфорт у роботі, пов'язаний з неможливістю відкриття деяких інтернет-ресурсів. Усунення проблеми часом вирішується радикально - змінюється роутер або провайдер, проте існує висока ймовірність виправити ситуацію самостійно, здійснивши налаштування всього одного параметра під назвою MTU в роутері. Що це таке, як знайти та правильно налаштувати – питання, які розглянуті в даній статті.

Внесення ясності

Для підвищення швидкості інтернету використовується пакетна передача даних. Адже немає сенсу надсилати та отримувати інформацію по кожному біту, завантажуючи канал. Тому було створено технологію, що дозволяє збирати потік даних у спеціальний пакет, що передається на відстані. При отриманні пакета кінцевий комп'ютер його просто розпаковує та отримує вихідні дані. У процесі користування такою системою було виявлено обмеження, які вели до втрати швидкості зі збільшенням розміру пакета. Завдяки чому ввели відповідний стандарт - пакет, що максимально передається, для обладнання (Maximum Transmission Unit), а скорочено MTU, в роутері. Що це, зрозуміло, залишилося виявити причини, через які цей стандарт працює некоректно.

Параноя чи безпека

Природно, будь-який стандарт передбачає вирішення проблем для MTU була розроблена спеціальна фрагментація, яка дозволяла на низькому рівні змінювати розмір пакета на прохання кінцевого комп'ютера в мережі. Саме прохання виконувалося на транспортному рівні TCP за допомогою протоколу ICMP, завданням якого є передача службових повідомлень. Протоколи канального рівня при неможливості прийняти пакет надсилають повідомлення про неможливість цього. Відправник зменшує розмір посилки та відправляє заново. Проте чи завжди це працює. Адже дуже часто інтернет-ресурсами керують дуже ліниві адміністратори, які замість того, щоб робити тонке налаштування системи безпеки, йдуть легким шляхом, відключаючи, на їх погляд, непотрібні протоколи. Природно, ICMP входить до їх числа. А немає повідомлення - немає проблеми, кінцевий користувач з чиєїсь вини користується оплаченою послугою не в повному обсязі.

Відмінний ping-показник

І щоб назавжди пішли сумніви, які поселює у свідомості користувача служба технічної підтримки будь-якого провайдера, потрібно знати важливий факт – команда ping – не показник. Оскільки його першочерговим завданням є перевірка доступності ресурсу, але з якості каналу зв'язку. У цьому можна переконатися самостійно, виконавши командний рядок ping ya.ru. Відповідь кінцевого сервера повідомить про те, що пакет розміром 32 байти було прийнято. А якщо відправити пакет, встановлений стандартом 1500 байт? Команда виглядатиме так: ping ya.ru -f -l 1500. Де l - розмір, пакет, а f - заборона фрагментації. Можуть виникнути проблеми, починаючи з неможливості прийняття, закінчуючи втратами каналі. З огляду на те, що вся інформація, що отримується з мережі інтернет, передається великими пакетами, довіряти перевірку каналу недоцільно. У цьому випадку розмір пакету - не що інше, як значення MTU, редагування якого може покращити роботу інтернету.

Можливості провайдера

Насамперед потрібно розуміти, який параметр Maximum Transmission Unit встановлений у провайдера. Якщо послуга мережі Інтернет надається за допомогою подачі кабелю "вита пара", без будь-яких мережних налаштувань, проблем не буде. А ось у випадках використання захищених каналів PPPoE або потрібно бути готовими, що без налаштування роутера та комп'ютера не обійтись. Варіантів визначення правильного розміру пакета, як і усунення проблеми, дуже багато, і увага буде приділена кільком, найефективнішим способам. Звичайно, можна спробувати у провайдера в телефонному режимі з'ясувати параметр MTU і прописати його на роутері, але це занадто просто і, швидше за все, неможливо через низьку компетенцію оператора.

Може проблема в іншому

Цілком можливо, що недоступність деяких інтернет-сторінок виникає не через неправильне налаштування MTU в роутері, що це виправлення не вирішить проблему. Потрібно достеменно знати, в якому напрямку рухатися. Для цього користувачеві необхідно зайти в налаштування свого роутера та знизити встановлений за умовчанням MTU до 1400 байт. Після збереження та перезавантаження спробувати зайти на потрібний ресурс ще раз. Якщо проблема не усунулася, повернути налаштування у вихідне положення та почати шукати рішення в іншому напрямку. Однак, за відгуками багатьох користувачів, зміна розміру максимального пакета в менший бік дає позитивний результат і всі ресурси, включаючи онлайн-ігри, доступні. Щоправда, виникає інша проблема – падає швидкість відкриття сторінок та закачування файлів. Потрібно відкрити параметри роутера та зробити тонке налаштування MTU.

Від слів до справи

Щоб перейти до налаштувань, необхідно в адресному рядку будь-якого браузера ввести адресу роутера і, потрапивши у вікно авторизації, ввести логін та пароль. Природно, якщо налаштування виконував адміністратор з боку провайдера, у його компетенції та усунення проблем у роботі з Інтернетом. А ось інші користувачі знають власне встановлений пароль та логін до точки доступу. У жодному разі без авторизації проблему усунути не вдасться, адже параметри роутера будуть недоступні.

У кінцевому рахунку безвихідних ситуацій немає. Можна з'ясувати у провайдера налаштування мережі, скинути роутер та заводських налаштувань і здійснити підключення самостійно. У засобах масової інформації достатньо інструкцій щодо налаштування потрібного апаратного забезпечення, не кажучи вже про фірмових путівників від виробника, які можна знайти на офіційних сайтах продавця.

Як знайти MTU в роутері

Найпопулярнішим в Росії вважається роутер D-Link, тому всі приклади тонкого налаштування будуть описуватися на базі його функціональних можливостей, які не особливо відрізняються від інших роутерів. Потрапивши у головне меню налаштування пристрою, погляд потрібно звернути на пункт WAN у розділі «Мережа». Даний пункт відповідає за побудову каналу зв'язку між роутером та обладнанням провайдера, його наявність є обов'язковою у будь-якому мережевому пристрої. Потрапивши в потрібне меню, користувач може виявити кілька з'єднань, які мають статус "з'єднано". Перевагу потрібно віддати тому, що має прапор "шлюз за замовчуванням". Встановити курсор на обране з'єднання. Натиснувши кнопку "змінити" (або "додати" - у кожної версії свої назви), користувач потрапить у меню тонкого налаштування. Знайти потрібний пункт із написом MTU. Змінити параметр, натиснувши на зображення олівця у вибраному полі. Встановити необхідний розмір. Зберегти налаштування та перезавантажити роутер.

Правильні завжди приносять плоди

Налаштування MTU у роутері, як показує практика, є ключовим для багатьох каналів, побудованих на віртуальних приватних мережах. Однак мало хто знає, що тонке налаштування якісного з'єднання залежить ще від двох пунктів, які завжди знаходяться поряд з полем MTU. Правильне налаштування всіх параметрів завжди вирішує проблеми у мережах, які мають Роутер D-Link, Zuxel, Cisco, Linksys та деякі інші пристрої автоматично заповнюють важливі параметри. У таких випадках без особливого бажання змінювати параметр не варто.

  1. Keep Alive. Створена віртуальна мережа постійно підтримується роутером з моменту включення до відключення живлення.
  2. LCP інтервал. Параметр вказується в секундах і визначає частоту запитів від роутера до обладнання провайдера для перевірки працездатності каналу.
  3. LCP провали. Параметр, який дозволяє виконати відключення від обладнання провайдера з метою встановлення нового, якіснішого каналу зв'язку у разі неповернення кількох, відправлених раніше пакетів.

Стандарти приватних мереж

Якщо немає бажання проводити експерименти самостійно, визначаючи потрібний розмір MTU, можна використовувати технічні дані, прописані стандартами.

  1. До кожного переданого пакету прикріплює власні дані для безпеки, які прийнято називати заголовком. Цей заголовок забирає у кожного пакета по 8 байт, залишаючи каналу можливість передавати 1492 байти. На даній технології побудована робота ADSL, відповідно для налаштування модемів зміна MTU є обов'язковою.
  2. Приватні мережі VPN та PPP. Тут MTU переважно залежить від устаткування сервера, якого здійснюється підключення. Адже, крім провайдера, з'єднання може бути використане для підключення до робочого місця на підприємстві за допомогою віддаленого підключення. Параметр 1400 байт прийнято вважати оптимальним, але тонке налаштування не заборонено.

Програмне забезпечення на допомогу

Визначити необхідний розмір MTU без експериментів із роутером можна і за допомогою програмного забезпечення. Наприклад, програма TCP Optimizer здійснює самостійні обчислення на каналі зв'язку та видає результат користувачу з повним описом проблеми. Цілком зручно, але ресурсомістко. Адже програму потрібно знайти, закачати, встановити та розібратися у її працездатності. А розібравшись, будь-який користувач виявить, що програма використовує банальний ping якогось ресурсу в Інтернеті. Виходить, що визначити MTU можна із командного рядка? Просто потрібно лише зменшувати розмір пакета на одиницю, поки відповідь сервера не буде позитивною - ping ya.ru -f -l 1499.

Багато програмних продуктів для налаштування мереж пропонують зробити тонке налаштування шляхом редагування реєстру системи, прописуючи спеціальні ключі під мережеве обладнання. Такий функціонал був затребуваний у системах минулого століття, проте сучасні операційні системи вміють самі підлаштовуватися під створений канал зв'язку і часом для ефективності роботи після тонкого налаштування роутера потрібно перезавантажити комп'ютер.

На закінчення

Отримавши інформацію про MTU у роутері, що це таке і як зробити тонке налаштування обладнання, можна переходити до безпосередніх дій, спрямованих на покращення працездатності каналу зв'язку. Однак, перш ніж починати роботу, потрібно знати, що не всі роутери дозволяють змінювати свої характеристики. Наприклад, компанія ZTE, відома своїми 3G-модемами, вирішила, що налаштування MTU порушує якісь внутрішні правила безпеки. Відповідно змінити потрібні параметри вручну не вдасться. Фахівці рекомендують встановлювати обладнання, придбане у провайдера, або перед покупкою хоча б узгоджувати вибір із постачальником інтернету.

Коли постійно відбуваються збої при підключенні до інтернету, багато хто йде на рішучі заходи. Вони змінюють роутер, змінюють провайдера. Одна з причин можливих неполадок – неправильно виставлене значення MTU. Давайте розберемося, що таке і як його правильно виставити.

MTU у роутері що це

Значення MTU (Maximum Transmission Unit) вказує, якого максимального розміру пакети надсилає пристрій. Вимірюється у байтах. Тобто якщо на роутер прийшов блок даних більшого розміру, то він його наріже на кілька пакетів (фрагментує). Ці пакети будуть йти по мережі, і якщо зустрінеться на їхньому шляху маршрутизатор, який вважатиме їх занадто великими, він також їх наріже. Коли вони досягнуть останнього маршрутизатора, він, у свою чергу, перед відправкою на комп'ютер одержувача, з фрагментованих пакетів збиратиме у вихідні.

Всі ці маніпуляції з нарізки та збирання пакетів трудомісткі. Відповідно, бажано виставляти оптимальне значення MTU на роутері.

Так як дані в кожному пакеті обертаються службовими заголовками, то чим більші пакети використовуються, тим менше витрат на заголовки. У зв'язку з цим бажано виставляти максимальний розмір MTU, при якому пакети нарізатися на наступних вузлах мережі.

Який MTU поставити на роутері

Найпростіший спосіб, це звернутися до служби підтримки провайдера(Написати листа, зателефонувати). Швидше за все, вони підкажуть актуальне значення. Але через деякий час провайдер може все переконфігурувати. Хоча це трапляється досить рідко, але якщо почали виникати збої, цілком імовірно, що слід уточнити правильність виставленого MTU.

Другий варіант, це знайти оптимальний розмір за допомогою команди ping, надсилаючи пакети, в яких встановлено, що їх не можна фрагментувати. Пінгувати слід віддалений ресурс, наприклад сайт або сервер провайдера.

Можна також перевірити найбільш відвідувані ресурси в інтернеті: ігрові сервери, сервери з яких дивіться фільми, що використовуються IP телефоном.

Приклад команди «ping-f-l 1472 yandex.ru», тут:

  • 1472 - це кількість байт даних, що відправляються. Слід враховувати, що крім даних буде відправлено ще й заголовок, який становить 28 байт (IP заголовок 20 + ICMP заголовок 8 = 28). Отже, у результаті розмір пакету становитиме 1472+28=1500 (байт), стандартний розмір максимального стандартного пакета Ethernet. Є правда пакети більшого розміру, які називають jumbo-кадрами.
  • yandex.ru – це доменне ім'я сервера, на який відправлятимемо команди, його можна поміняти на IP адресу сервера провайдера. Можна експериментувати з різними IP-адресами.

У результаті, виконавши таку команду, ми визначимо, чи потрібна фрагментація пакета доставки його до одержувачу.

Наприклад, припустимо, що постачальник послуг не пропускає пакети, розмір яких перевищує 1024 байти. Тоді налаштування виглядало б так.

Запускаємо командний рядок (це класична програма Windows, знайти його можна, наприклад, у пошуку набравши «Командний рядок»). І виконуємо команди.

Тут значення даних 997 байт, розмір пакета 997 +28 = 1025 байт, пакет не може бути доставлений без фрагментації.

Тут значення даних 996 байт, розмір пакета 996+28=1024 байт, пакет доходить до одержувача без фрагментації.

Таким чином, змінюючи розмір блоку даних, що відправляється, ми можемо обчислити DMTU – максимальний розмір блоку даних, що доставляється без фрагментації. Наприклад, якщо команда ping проходить без фрагментації зі значенням 996. При спробі відправити команду зі значенням 997 отримуємо відповідь: "Потрібна фрагментація пакета, але встановлено прапор забороняє". Тоді ми розраховуємо параметр DMTU так: 996 байт даних + 28 байт IP заголовка = 1024 байта. Максимальний розмір блоку даних, який не буде фрагментований, становитиме 1024 байти. Це значення слід задати на маршрутизаторі, як розмір MTU.

Як поміняти MTU на роутері

Підключаємось до маршрутизатора через інтернет браузер. Виставляємо новий розмір MTU. Потім зберігаємо налаштування.

Наприклад, під час використання TP-Link, заходимо до пункту «Мережа», там підпункт «WAN». Не забуваймо натиснути після цього кнопку «Зберегти».

Після зміни значень можна перевірити, наскільки змінилася швидкість завантаження файлів великого розміру з інтернету.

Налаштування MTU на комп'ютері

Для збільшення продуктивності, щоб на маршрутизатор не надходили надто великі пакети, можливе налаштування MTU на обладнанні. Зокрема, можна виставити розмір MTU на персональному комп'ютері, потрібно скористатися командним рядком, запущеним від імені адміністратора:


Після цієї установки на комп'ютері, з нього будуть відправлятися пакети, у яких максимальний розмір на рівні IP буде 1024 байта, але на MAC рівні максимальний блок даних буде розміром 1038 байт (14 з них для заголовка MAC).

Більшого розміру пакети не надсилатимуться. Тобто, якщо в налаштуваннях роутера розрахований і правильно виставлений MTU 1024, то такий самий MTU слід задати в налаштуваннях підключеного до нього комп'ютера.

Автоматичне налаштування – PMTU discovery

Існують режими роботи деяких пристроїв, коли розмір MTU уточнюється під час підключення до віддаленого сервера (PMTU discovery). Алгоритм такий, як і той, яким користувалися при налаштуванні MTU на роутері. На початку роботи пристрій відправляє блоки даних різного розміру, намагаючись визначити максимальний розмір пакета, який дійде без фрагментації.

У цьому алгоритмі є одна проблема, яка називається « MTU Discovery Black Hole». Вона виникає у випадку, коли адміністратори мереж, щоб уникнути можливих атак на їхньому сервері, забороняючи маршрутизаторам передачу ICMPзокрема які використовуються при команді ping.

Так, звичайно, не коректно діяти. Пристрій, не отримавши відповіді на запит, не може продовжити працювати.

Добридень. Сьогодні не зовсім звичайна стаття, оскільки вона не є повсякденним і не підійде для будь-якого користувача. Більше того, я вкрай не рекомендую лізти в ці параметри людям, які слабко в технічному плані. Йдеться про MTU, що у вікіпедії описано як "максимальний розмір корисного блоку даних одного пакета (англ. payload), який може бути переданий протоколом без фрагментації." Тобто розмір корисної інформації в пакеті, який комп'ютер формує для відправки в мережу.

Послідовність дій

Так от, якщо ви потрапили на цю статтю, я думаю ви вже вирішили, що потрібно спробувати його підкрутити. Теоретично оптимізація даного параметра може допомогти з вирішенням проблем некоректної роботи деяких сайтів і сервісів, але знову ж таки теоретично. Я спробую пояснити, як це зробити засобами операційної системи.

  1. Отже, для початку відкриваємо командний рядок від імені адміністратора та вводимо наступну команду: ping -f -l 1472 ххх.ххх.ххх.ххх,де, 1472 = 1500 (стандартне значення для Ethernet) - 28 (значення заголовка, яке не враховується) ххх.ххх.ххх.ххх - IP-адреса будь-якого сервера вашого провайдера. Я використовував основний шлюз у мережі провайдера. І дивимося відповідь, якщо відповідь отримана без втрати пакетів, то збільшуємо значення, якщо видасть «Потрібна фрагментація пакета, але встановлений прапор.», значить зменшуємо і так, поки не отримаємо крайнє верхнє значення пакета, яке проходить до нашого сервера. У мене вийшло 1492 (1464+28). Значить далі я і його встановлюватимуть як значення MTU.

  2. Далі вводимо команду: netsh interface ipv4 show subinterfaces.

    Вона покаже значення MTU для всіх підключень до мережі. Нам необхідно дізнатися, як називається інтерфейс основного мережного підключення. У мене це Ethernet, у вас дивіться по обстановці. Але в більшості випадків він називатиметься так само.

  3. Далі вводимо наступну команду (для її виконання потрібно щоб): netsh interface ipv4 set subinterface "Ethernet" mtu=1492 store=persistent.

    Де замість Ethernet пишемо назву свого інтерфейсу, а значення MTU пишемо отримане на першому кроці інструкції.

  4. Ну і насамкінець відключимо автоматичне налаштування значення MTU для мережевих підключень: netsh int tcp set Global autotuninglevel=disabled.
  5. Щоб увімкнути автоматичне налаштування назад, потрібно замінити disabledна normal.