Почему размер MTU для фреймов Ethernet рассчитан как 1500 байтов?

Есть ли какие-то конкретные расчеты, которые были сделаны для достижения этого числа, и каковы были факторы, которые были приняты во внимание для этого расчета.

34 голоса | спросил Padmaraj 24 PM00000080000003231 2013, 20:14:32

5 ответов


26

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

  • Ethernet II использует первые два байта после MAC-адреса источника Ethernet для Тип
  • 802.3 использует те же два байта для поля Длина .

Я включаю аннотированную диаграмму ниже каждого типа кадра, которая точно показывает, где конфликтующие байты находятся в заголовке ethernet:

  • RFC 894 (широко известный как кадры Ethernet II) используют эти байты для Тип

       +----+----+------+------+-----+
       | 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) использует эти байты для Длина

       +----+----+------+------+-----+
       | 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 начинаются с нуля 0x600.

EDIT:

Я включаю ссылку на pdf-копии спецификации Ethernet версии 1 и Спецификация Ethernet Version 2 , если кто-то заинтересован ...

ответил Mike Pennington 24 PM00000090000004231 2013, 21:35:42
13
  

На другом конце диапазона - 1500 байт были два фактора, которые привели к введению этого предела. Во-первых, если пакеты слишком длинны, они вводят дополнительные задержки для другого трафика с использованием кабеля Ethernet. Другим фактором было устройство безопасности, встроенное в ранние общие кабельные приемопередатчики. Это защитное устройство было системой защиты от взлома. . Если устройство, подключенное к приемопередатчику, разработало неисправность и непрерывно переходило на передачу, то оно эффективно блокирует любой другой трафик от использования этого сегмента кабеля Ethernet. Чтобы защитить от этого, ранние трансиверы были разработаны для автоматического отключения, если передача превысила около 1,25 миллисекунды. Это соответствует содержанию данных чуть более 1500 байт. Тем не менее, поскольку приемопередатчик использовал простой аналоговый таймер для отключения передачи, если лепесток был обнаружен, тогда предел 1500 был выбран в качестве безопасного приближения к максимальному размеру данных, который не вызывал бы предохранительное устройство.

Источник: http://answers.yahoo.com/question/index?qid=20120729102755AAn89M1

ответил user1171 25 AM00000080000003631 2013, 08:19:36
8

Когда Ethernet был первоначально разработан как общий носитель или шина с 10Base5 и 10Base2, столкновение кадров было частым и ожидаемым как часть дизайна. Сравните это с сегодняшним днем, когда большинство переключается с отдельными доменов коллизий и запуск полнодуплексного режима, где никто не ожидает столкновения.

Механизм использования используемого «эфира» CMSA /CD (Carrier Sense Множественный доступ /обнаружение конфликтов)

Carrier Sense означало, что станция, желающая передать, должна прослушивать провод - воспринимать сигнал несущей - чтобы никто не разговаривал, поскольку это был множественный доступ на этом носителе. 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 байта гарантируют это.

ответил generalnetworkerror 27 AM00000040000002331 2013, 04:26:23
1

Первоначально макс. полезная нагрузка была определена как 1500 байтов в 802.3. Ethernet v2 поддерживает длину кадра> = 1536, и это то, что использует IP-реализация. В настоящее время большинство поставщиков операторского класса поддерживают около 9000 байт («jumbo frames»). Поскольку 1500 байт является стандартом, который должны поддерживать все реализации Ethernet, это то, что обычно устанавливается как значение по умолчанию для всех интерфейсов.

ответил 24 PM00000090000001631 2013, 21:22:16
-1

Минимальный кадр ethernet основан на времени слота Ethernet, который имеет длину 512 бит (64 байта) для 10M ethernet. После вычитания 18 байтов для заголовка ethernet и CRC вы получите 46 байт полезной нагрузки.

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

ответил Pooja Khatri 17 +03002016-10-17T08:01:10+03:00312016bEurope/MoscowMon, 17 Oct 2016 08:01:10 +0300 2016, 08:01:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132