Фрагментация IP в Linux

У меня есть система Linux, которая находится между 2 маршрутизаторами (как сниффер). оба маршрутизатора поддерживают Jumbo-фреймы, а моя система ограничена MTU 1500.

Насколько я понимаю, отправляющий маршрутизатор будет фрагментировать Jumbo Frame в IP-датаграмму на основе MTU 1500, и linux соберет их в соответствии с RFC 815.

Несколько вопросов относительно этого процесса:

  1. В Linux, какой уровень заботится о процессе сборки? какой файл?

  2. Относится ли этот процесс (фрагментация и повторная сборка) ко всем протоколам уровня 3 (например, IPv4 \ IPv6)?

  3. Предполагая, что мой анализатор создает большой пакет и отправляет его, происходит ли фрагментация автоматически в стеке Linux?

Спасибо, Ран

0 ответов

Я могу ответить на некоторые ваши вопросы:

В Linux, какой уровень заботится о процессе сборки? какой файл?

Это уровень 3. Вы можете проверить файлы reassembly.c а также inet_fragment.c, Вы можете искать функцию fq_find и проследить дальше оттуда.

Относится ли этот процесс (фрагментация и повторная сборка) ко всем протоколам уровня 3 ( IPv4 \ IPv6 для ex)?

Код аналогичен для v4 и v6 и должен применяться ко всем протоколам уровня 3.

Предполагая, что мой анализатор создает большой пакет и отправляет его, происходит ли фрагментация автоматически в стеке Linux?

Я читал о концепции разгрузки фрагментации, при которой фрагментация происходит на сетевой плате, поэтому может не потребоваться, чтобы стек n/w выполнял фрагментацию.

Другие вопросы по тегам