Вопрос: MTU составляет 1500, почему первая длина фрагмента равна 1496 в IPv6?


ping6 ipv6Address -s 1500

Эта команда приведет к фрагменту. Соблюдается wirehark, длина 1-го фрагмента пакета составляет 1496 (из уровня 3). Поскольку MTU составляет 1500, я смущен этой длиной 1496. От куда это?


4
2017-10-05 05:49


Источник


Вы подключаетесь через туннель? - grawity
Нет. Если я использую -s 1452, фрагмента нет, а общая длина - 1500. - deepsky
Я не знаю IP6, но с IP4 мне нужно настроить MTU MT75 на 1480, потому что мой коммутатор, это похоже на 15-футовый грузовик, который не будет подходить под мостом * / clunk *, но пролетает 14 '11 ". он по-прежнему идет в 99 милях в час. top 1% в тестах скорости для моего подключения. Поэтому я не беспокоюсь о незначительной разнице - Psycogeek


Ответы:


Это только для моей справки о MTU IPv6. мне было нужно некоторые вопрос, чтобы добавить его к - и я чо-чо-выбрать вас.

Сначала наш Ethernet-пакет, который мы обычно игнорируем:

+-------------------------+
| Ethernet - 16 bytes     |
|  6 byte destination MAC |
|  6 byte source MAC      |
|  4 byte type            |
+-------------------------+
|                         |
/  1,500 byte payload     /
|                         |
+-------------------------+

Теперь мы добавляем заголовок IPv4 или IPv6:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,480 payload           /    / 1,460 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Затем мы добавляем свою реальность в соединение PPPoE, которое берет 8 байтов из пакета для тега PPPoE PADS:

+-------------------------+
| Ethernet - 12 bytes     |
|  6 byte destination MAC |
|  6 byte source MAC      |
|  4 byte type            |
+-------------------------+
| PPPoE PADS - 8 bytes    |
+-------------------------+
|                         |
/ 1,492 payload           /
|                         |
+-------------------------+

Что уменьшает MTU для нашего трафика IPv4 и IPv6:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,472 payload           /    / 1,452 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

И тогда, в моем случае, я использую Ураганный электрический«s Туннелирование 6in4, так как мой интернет-провайдер не предлагает родную связь IPv6. Это означает, что мой трафик IPv6 завернут в пакет IPv4:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv4 - 20 bytes         |
|  10  byte control flags |    |  10  byte control flags |
|  2 byte total length    |    |  2 byte total length    |
|  4 byte source addr     |    |  4 byte source addr     |
|  4 byte dest addr       |    |  4 byte dest addr       |
+-------------------------+    +-------------------------+
|                         |    | IPv6 - 40 bytes         |
|                         |    |  6 byte control flags   |
|                         |    |  2 byte payload length  |
|                         |    |  16 byte source addr    |
|                         |    |                         |
|                         |    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,472 payload           /    / 1,432 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Но важным является МТУ, размер которого IPv4 или IPv6 доступен для себя (включая его заголовки):

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
|                         |    | IPv4 - 20 bytes         |
/ MTU = 1492              /    |  10  byte control flags |
|                         |    |  2 byte total length    |
+-------------------------+    |  4 byte source addr     |
                               |  4 byte dest addr       |
                               +-------------------------+
                               |                         |
                               / MTU = 1472              |
                               |                         |
                               +-------------------------+

Далее следует путаница в отношении полезная нагрузка размер, используемый при пинге не фрагментировать флаг. ICMP работает поверх IP и добавляет собственные накладные расходы:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
| ICMP - 8 bytes          |    |                         |
+-------------------------+    +-------------------------|    
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,472 ping payload      /    / 1,452 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

Заметка: Вот почему вы может пинговать с помощью 1,452 байт, прежде чем нужно фрагментировать.

В моем случае, с накладными расходами тега PPPoE PADS:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
| ICMP - 8 bytes          |    |                         |
+-------------------------+    +-------------------------|    
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,464 ping payload      /    / 1,444 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

И мои дополнительные накладные расходы 6in4:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv4 - 20 bytes         |
|  10  byte control flags |    |  10  byte control flags |
|  2 byte total length    |    |  2 byte total length    |
|  4 byte source addr     |    |  4 byte source addr     |
|  4 byte dest addr       |    |  4 byte dest addr       |
+-------------------------+    +-------------------------+
| ICMP - 8 bytes          |    | IPv6 - 40 bytes         |
+-------------------------+    |  6 byte control flags   |    
|                         |    |  2 byte payload length  |
|                         |    |  16 byte source addr    |
|                         |    |                         |
|                         |    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,464 ping payload      /    / 1,424 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

И вы видите, почему я могу только ping с полезной нагрузкой в ​​1,424 байта.


5
2018-04-01 03:06





Вы увидите это, если у вас есть теги VLAN на интерфейсе, который не поддерживает его изначально. Теги VLAN 802.1Q занимают дополнительные 4 байта. Если ваш NIC поддерживает их изначально, он поддерживает 1522-байтовые (вместо старых 1518-байтовых) Ethernet-фреймы, так что вы все равно можете иметь 1500-байтовый MTU. Если ваш сетевой адаптер не поддерживает его изначально, вы можете поддерживать его в программном обеспечении, но вам нужно уменьшить MTU до 1496, чтобы все это соответствовало старым 1518-байтным кадрам, поддерживаемым NIC.


4
2017-10-05 06:43



В моей сети нет VLAN. И кадр Ethernet не содержит информации 802.1q. Это 14Bytes наблюдается из wirehark. - deepsky
На самом деле, я думаю, это потому, что любые новые сегменты должны иметь 8-байтовую границу и все равно быть меньше MTU. 1500 - 187 div 8 с остатком 4. Таким образом, 1500-4 = 1496 должны быть новой границей. Более подробная информация о фрагментации в erg.abdn.ac.uk/~gorry/eg3567/inet-pages/ip-fragmentatiion.html, - Paul
Я думаю, это имеет смысл. Недостаточно репутации для голосования .... - deepsky


Максимальный блок передачи (MTU) коммуникационного протокола уровня - это размер в байтах самого большого блока данных протокола, который слой может пройти вперед. Для примера подключения IP через DSL с использованием PPPoA / VC-MUX, снова выбрав для заполнения 31 ATM-ячейки, как и раньше, мы получаем желаемую оптимальную приведенную величину MTU 1478 = 31 * 48-10 с учетом накладных расходов на 10 байт, накладных расходов «точка-точка» 2 байта и служебных расходов AAL5 на 8 байтов. Это дает общую стоимость 31 * 53 = 1643 байт, переданных через ATM из 1478 байтового пакета, переданного PPPoA. В случае IP-адреса, передаваемого по ADSL с использованием PPPoA, цифрой 1478 будет общая длина IP-пакета, включая заголовки IP. Таким образом, в этом примере сохранение самоналоженного уменьшенного MTU 1478 в отличие от отправки IP-пакетов общей длины 1500 сохраняет 53 байта на пакет на уровне ATM за счет сокращения на 22 байта длины IP-пакетов.

RFC 2516 предписывает максимальный MTU для соединений PPPoE / DSL, равный 1492 байтам: максимальная полезная нагрузка в 1500 байт за вычетом 8 байтов заголовков PPPoE (2 байта для служебных данных PPP и 6 байтов для заголовка PPPoE). Это не обязательно заполняет целое число ячеек ATM. Уровень канала передачи данных представляет собой уровень 2 семиуровневой модели компьютерной сети OSI. Он соответствует или является частью ссылочного уровня базовой модели TCP / IP. Вы измеряете уровень 3, так что разница очевидна. Из-за типа сети, которую вы используете 4 байта, используются для целей управления сетью.


1
2018-04-01 15:17





Вы используете DSL? Заголовок PPPoE потребляет 8 байтов.


1
2018-04-01 22:19