Чому розмір MTU для кадрів Ethernet обчислювався як 1500 байт?


38

Чи є якийсь конкретний розрахунок, що було зроблено для досягнення цієї кількості, і які фактори були враховані для цього розрахунку.


2
Люди IEEE чинять опір додати 9k до стандарту, оскільки математичні гарантії, що FCS приносить сьогодні в 1,5k, не були б істинними вже в 9k.
ytti

5
@ytti, це лише один з аргументів проти схвалення> 1500 кадрів. Повний текст листа Джеффа Томсона (що містить заперечення IEEE щодо стандартизації кадрів jumbo) міститься у Додатку 1 до проекту "ietf-isis-ext-eth-01" . Заперечення починаються зі слова "Розгляд"
Майк Пеннінгтон,

Чи допомогла вам якась відповідь? якщо так, то слід прийняти відповідь, щоб питання не з’являлося вічно, шукаючи відповідь. Крім того, ви можете надати та прийняти власну відповідь.
Рон Моупін

Відповіді:


27

Відповідь у проекті-ietf-isis-ext-eth-01 , розділи 3-5. Ethernet використовує ті самі два байти різних способів в інкапсуляції Ethernet II (DIX) та 802.3:

  • Ethernet II використовує перші два байти після мак-адреси джерела Ethernet для типу
  • 802.3 використовує ті самі два байти для поля « Довжина» .

Я включаю анотаційну діаграму нижче кожного типу кадру, яка точно показує, де розташовані суперечливі байти в заголовку Ethernet:

  • RFC 894 (загальновідомий як кадри Ethernet II) використовують ці байти для Type

       +----+----+------+------+-----+
       | DA | SA | Type | Data | FCS |
       +----+----+------+------+-----+
                 ^^^^^^^^
    
       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Type    Protocol Type           (2 bytes: >= 0x0600 or 1536 decimal)  <---
       Data    Protocol Data           (46 - 1500 bytes)
       FCS     Frame Checksum          (4 bytes)
    
  • IEEE 802.3 з 802.2 LLC / SNAP (використовується Spanning-Tree, ISIS) використовують ці байти для Length

       +----+----+------+------+-----+
       | DA | SA | Len  | Data | FCS |
       +----+----+------+------+-----+
                 ^^^^^^^^
    
       DA      Destination MAC Address (6 bytes)
       SA      Source MAC Address      (6 bytes)
       Len     Length of Data field    (2 bytes: <= 0x05DC or 1500 decimal)  <---
       Data    Protocol Data           (46 - 1500 bytes)
       FCS     Frame Checksum          (4 bytes)
    

І інкапсуляції Ethernet II, і 802.3 повинні мати можливість існувати на одному посиланні. Якщо IEEE дозволив корисному навантаженню Ethernet перевищувати 1536 байт (0x600 hex), то неможливо було б відрізнити великі кадри 802.3 LLC або SNAP від ​​кадрів Ethernet II; Значення типу ethernet починаються з шестнадцяти пікселів.

Редагувати:

Я включаю посилання на PDF-копії специфікації Ethernet версії 1 та специфікації Ethernet версії 2 , на випадок, коли хтось зацікавлений ...



2
Ну, кадри Ethernet II мають поле типу починатися від 0x0600 (від специфікації IEEE 802.3x-1997), оскільки максимальна довжина 802.3 була трохи нижче цього. Тож це лише ефект, а не причина.
нос

1
@nos, стверджувати, що це ефект замість причини, передбачає, що ви можете довести причину ... чи можете ви надати авторитетні докази запропонованої вами причини? У оригінальній специфікації Ethernet версії 1, опублікованій у 1980 році, вже використовується поле Type, а в 1984 році протокол IP був визначений за допомогою Ethertype 0x0800
Mike Pennington,

2
Дійсно, специфікації Ethernet I і II вже мали поле типу (яке на той час не мало обмежень) і вже вказали максимальну довжину даних 1500 - на той момент не було 802,3 кадру. Тому не можна зробити висновок, що ліміт 1500 був доданий у наступній специфікації через поле типу.
нос

2
@nos Я не згоден, Ethernet II повинен був співіснувати з існуючим стандартом. А також було визначено використання одного і того ж поля для дії як поля типу в попередньому стандарті, так і поля довжини в новому стандарті. Зважаючи на те, що ОБОВ'ЯЗКОВО НЕ МОЖЕ бути НЕ МОЖЛИВОСТІ плутанини між двома стандартами, які повинні співіснувати в одній мережі, будь-яка довжина, яка могла б виглядати як існуючий тип, не буде дозволена. Оскільки існуючий список типів починався 0x600з числа, меншого від того, що потрібно було вибрати. Щоб не допускати подальшого розширення до стандарту, у разі необхідності повинен бути доступний деякий діапазон.

14

На іншому кінці діапазону - 1500 байт, було два фактори, які призводять до введення цієї межі. По-перше, якщо пакети занадто довгі, вони вносять додаткові затримки до іншого трафіку за допомогою кабелю Ethernet. Іншим фактором був захисний пристрій, вбудований в ранні спільні кабельні приймачі. Цей запобіжний пристрій був системою проти бамбука.Якщо пристрій, підключений до приймача, розробив несправність і почав безперервно передавати, то це ефективно заблокує будь-який інший трафік від використання цього сегменту кабельної мережі Ethernet. Щоб захиститись від цього, ранні приймачі були розроблені для автоматичного відключення, якщо передача перевищувала приблизно 1,25 мілісекунди. Це прирівнюється до вмісту даних трохи більше 1500 байт. Однак, оскільки приймач використовував простий аналоговий таймер для відключення передачі, якщо було виявлено бабування, то межа 1500 був обраний як безпечне наближення до максимального розміру даних, який не запустить пристрій безпеки.

Джерело: http://answers.yahoo.com/question/index?qid=20120729102755AAn89M1


5
Привіт @ user1171: Переважним стилем StackExchange є включення сюди матеріалів для відповідей і посилання в якості посилання. Таким чином, коли з часом посилання загниє, відповідь все-таки корисна.
Крейг Костянтин

Функція jabber вимагала відключення MAU через 20 до 150 мс протягом 10 Мбіт / с (п. 8.2.1.5 IEEE 802.3), 40 - 75 кбіт для швидкої Ethernet (п. 27.3.2.1.4) і вдвічі більше, ніж для гігабітного Ethernet, значно перевищує довжину рами. Повідомлення Yahoo невірно.
Zac67

10

Коли Ethernet спочатку був розроблений як спільний носій або шина з 10Base5 та 10Base2, зіткнення кадрів були частими і очікувались як частина дизайну. Порівнюйте це з сьогоднішнім часом, коли більшість усе перемикається з окремими доменами зіткнення та працює повнодуплексним, коли ніхто не очікує зіткнення.

Механізм для спільного використання "ефіру", що використовується CMSA / CD (Детектор множинного доступу / зіткнення з носієм)

Sense Carrier означав, що станція, яка хоче передавати, повинна прослуховувати провід - сенс сигналу несучої - щоб переконатися, що ніхто більше не розмовляв, оскільки це був багаторазовий доступ на цьому носії. Allowing 1500 bytes (though an arbitrary number as far as I can tell) was a compromise that meant a station could not capitalize the wire too long by talking too much at one time. Чим більше байтів передається в кадрі, тим довше всі інші станції повинні чекати, поки ця передача завершиться. Іншими словами, коротший вибух або менший MTU означав, що інші станції отримують більше можливостей для передачі та справедливішу частку. Чим повільніше швидкість передачі середовища (10 Мбіт / с), станції матимуть довші затримки для передачі в міру збільшення MTU (якщо дозволяється перевищувати 1500).

Цікавим наслідком питання було б, чому мінімальний розмір кадру - 64 байти? Кадри передавались у "прорізи", що є 512 бітами, і вони займали 51,2us для поширення сигналу в зворотному напрямку. Станція повинна не тільки слухати, коли почати розмову, зондуючи IFG (міжфрагментний розрив у 96 біт), але й слухати зіткнення з іншими кадрами. Визначення зіткнення передбачає максимальну затримку розповсюдження і збільшується вдвічі, що (щоб бути безпечним), тому воно не пропускає передачу, починаючи приблизно з того самого часу від іншого кінця дроту або сигналу відбиття власної передачі, коли хтось забув кінцевий резистор на кінці кабелю. Станція не повинна завершувати надсилання своїх даних перед відчуттям зіткнення, тому очікування 512 біт або 64 байти гарантує це.


2

Спочатку макс. корисне навантаження було визначено як 1500 байт у 802,3. Ethernet v2 підтримує довжину кадру> = 1536, і для цього використовуються реалізації IP. Більшість постачальників класів операторів підтримують близько 9000 байт ("джамбо-кадри") в наші дні. Оскільки 1500 байт є стандартом, який повинні підтримувати всі реалізації Ethernet, це зазвичай встановлюється за замовчуванням у всіх інтерфейсах.


Ви повинні google maxValidFrame, це було визначено IEEE; отже, поширені реалізовані на сьогоднішній день реалізовані джомбові кадри в 9 КБ офіційно не відповідають Ethernet, але вони працюють досить добре для корисних навантажень Ethernet II
Майк Пеннінгтон,

Строго кажучи, не відповідає сумі 802.3. Хоча IP використовує Ethernet v2, тому я схильний навіть не думати про 802.3 ...

5
Jumbos не відповідають стандартам Ethernet II або 802.3 після ратифікації 802.3x. Пункт 4.2.7.1 802.3x визначає maxValidFrame на корисних навантаженнях 1500B. Таким чином, після 1997 року будь-яке корисне навантаження, що перевищує 1500 байт, не відповідає. Дивіться лист, який голова IEEE 802.3 надіслав IETF щодо цього питання . Коротше кажучи, 802.3 - це набагато більше, ніж стандарт фрейму ... він визначає як обрамлення, так і вимоги до обладнання. Це означає, що реалізація обладнання залежить від відповідності формату кадру. Половина дуплексу з CSMA-CD потребує <= 1500B корисних навантажень.
Майк Пеннінгтон

-1

Мінімальний кадр Ethernet базується на Ethernet Slot Time, який становить 512 біт (64 байт) для 10M Ethernet. Віднявши 18 байт для заголовка Ethernet і CRC, ви отримаєте 46 байт корисного навантаження.

Час слота Ethernet був заданий, щоб CSMA / CD правильно функціонував. Потрібно бути впевненим, що мінімальний розмір кадру не перевищує найбільшу можливу довжину кабелю; якби це детерміновано виявлення зіткнення було б неможливим. Після виявлення зіткнення на максимальній довжині кабелю вам потрібен сигнал виявлення зіткнення, щоб повернутися до відправника.


3
У мене виникають проблеми з розумінням того, як механізм визначення мінімального розміру кадру Ethernet має відношення до поточного максимального стандарту дефакто 1500 байтів. Будь ласка, докладно!
Stuggi

2
@Stuggi Це не так.
Кен Шарп
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.