MTU

Discussion in 'Windows' started by byte1986, 13 Aug 2018.

  1. byte1986

    byte1986 New Member

    Joined:
    17 Jul 2018
    Messages:
    83
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток! В Википедии написано.
    В компьютерных сетях термин maximum transmissionunit (MTU) означает максимальный размер полезного блока данных одного пакета (англ. payload), который может быть передан протоколом без фрагментации.

    Что значит слово полезного это какие данные?
    То есть это рассматривается на сетевом уровне?
    Что значит без фрагментации?
     
  2. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    На ethernet устройствах MTU - 1500 байт. Это Значит, что за один раз ты сможешь передавать кадр не более 1500 байт. В этот размер входят заголовки IP, TCP и полезные данные.

    [​IMG]

    Если нужно будет передать большой объем данных, то ядро поделит их на пакеты и засунет в кадры по 1500 байт в каждый.
    Если у тебя на роутере подключение к провайдеру, скажем PPPoE или PPTP. То на выходном интерфейсе MTU будет уже не 1500, а меньше, тк там к заголовкам Ethernet прибавятся еще заголовки PPP.
    Твой роутер не сможет запихнуть 1500 байт в 1492, и поэтому, тихо ненавидя тебя, будет фрагментировать IP пакет, на то что будет влезать в кадры.

    [​IMG]

    В IP пакете есть флаг, о том что пакет фрагментирован, и смещение для последующих пакетов (Fragment Offset) от первого фрагмента.
    Если роутер решит, что пакет нужно фрагментировать, он разобьет пакет на более мелкие, поставит на них флаг о фрагментации и поместит смещение фрагмента от родительского пакета, потом пересчитает чек сумму, и перешлет. Роутер на другой стороне будет терпеливо ждать все фрагменты, после собирать и восстанавливать исходный пакет обратно. Это ресурсоёмкая операция.

    Поэтому есть такая штука как Path MTU Discovery

    https://habr.com/post/226807/
    http://www.opennet.ru/base/net/pppoe_mtu.txt.html
     
    Turanchocks_ likes this.
  3. devton

    devton Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    3,364
    Likes Received:
    5,122
    Reputations:
    48
    бля, @byte1986 , ты спрашиваешь:
    -в разделе "windows"
    -вопросы по сетевым протоколам
    -а на аватарке у тебя пингвин
    прям мозг разрывается ))))))))

    не сношай нам мозги, купи или скачай ОДНУ книгу, в которой есть вопросы на ВСЕ вопросы что ты тут позадавал...там есть еще в пару сотен раз больше инфы по сетям
    У.Ричард Стивенс - Протоколы TCP/IP.
    [​IMG]
     
  4. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Code:
    https://rutracker.org/forum/viewtopic.php?t=5104575
    https://rutracker.org/forum/viewtopic.php?t=4441669
    https://rutracker.org/forum/viewtopic.php?t=5309709
    Code:
    https://www.atraining.ru/cisco-icnd1/
     
  5. byte1986

    byte1986 New Member

    Joined:
    17 Jul 2018
    Messages:
    83
    Likes Received:
    1
    Reputations:
    0
    taha получается что фреймы не одинакового размера все?
     
  6. taha

    taha Elder - Старейшина

    Joined:
    20 Aug 2006
    Messages:
    399
    Likes Received:
    330
    Reputations:
    251
    Размер Ethernet II (DIX) фрейма:
    64 байта < Фрейм < 1518 байт

    Минус заголовок, получаем 1500 байт MTU.

    У тебя на ehternet интерфейсе MTU выставлен в 1500.

    Очень грубо говоря, сферический пример в вакууме:

    Если у тебя маршрутизатор, у него два интерфейса.. С одной стороны он подключен в локалку, а с другой к провайдеру, и инет например по pptp,

    Со строны локалки у тебя:
    Code:
    ethernet header + [ IP header + tcp header + payload ]
    Если изначально бралось в расчет, что
    Code:
    [ IP header + tcp header + payload ] = 1500
    То с другой стороны, у тебя этот пакет в кадр не влезет, потому что нужно еще заголовки pptp добавить.
    Code:
    ethernet header + [ pptp + [ IP header + tcp header + payload ] ]
    Поэтому на виртуальных интерфейсах разного рода тунелей mtu меньше 1500.
    Но тут всё неоднозначно и зависит от многих от.

    Всё, что вы хотели знать о Ethernet фреймах, но боялись спросить, и не зря:
    https://habr.com/post/227729/
    Maximum Transmission Unit (MTU). Мифы и рифы:
    https://habr.com/post/226807/
    Вот мужик норм объясняет:
     
    user100 likes this.