4
ping6 ipv6Address -s 1500

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

4 ответа4

5

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

Во-первых, это наш 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 байтов из пакета для тега PADS PPPoE:

+-------------------------+
| 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           /
|                         |    |                         |
+-------------------------+    +-------------------------+

И затем, в моем случае, я использую туннелирование 6in4 от Hurricane Electric, так как мой провайдер не предлагает собственного подключения 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           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Но важным номером является 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         |
/ 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      /
|                         |    |                         |
+-------------------------+    +-------------------------+

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

4

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

1

Максимальный блок передачи (MTU) протокола связи уровня - это размер в байтах самого большого блока протокольных данных, который уровень может передавать дальше. Для примера соединений IP через DSL с использованием PPPoA/VC-MUX, снова выбирая заполнение 31 ячеек АТМ, как и раньше, мы получаем желаемое оптимальное уменьшенное значение 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 при стоимости сокращения длины IP-пакетов на 22 байта.

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .