Фрагментация IP в Linux
У меня есть система Linux, которая находится между 2 маршрутизаторами (как сниффер). оба маршрутизатора поддерживают Jumbo-фреймы, а моя система ограничена MTU 1500.
Насколько я понимаю, отправляющий маршрутизатор будет фрагментировать Jumbo Frame в IP-датаграмму на основе MTU 1500, и linux соберет их в соответствии с RFC 815.
Несколько вопросов относительно этого процесса:
В Linux, какой уровень заботится о процессе сборки? какой файл?
Относится ли этот процесс (фрагментация и повторная сборка) ко всем протоколам уровня 3 (например, IPv4 \ IPv6)?
Предполагая, что мой анализатор создает большой пакет и отправляет его, происходит ли фрагментация автоматически в стеке Linux?
Спасибо, Ран
0 ответов
Я могу ответить на некоторые ваши вопросы:
В Linux, какой уровень заботится о процессе сборки? какой файл?
Это уровень 3. Вы можете проверить файлы reassembly.c
а также inet_fragment.c
, Вы можете искать функцию fq_find
и проследить дальше оттуда.
Относится ли этот процесс (фрагментация и повторная сборка) ко всем протоколам уровня 3 ( IPv4 \ IPv6 для ex)?
Код аналогичен для v4 и v6 и должен применяться ко всем протоколам уровня 3.
Предполагая, что мой анализатор создает большой пакет и отправляет его, происходит ли фрагментация автоматически в стеке Linux?
Я читал о концепции разгрузки фрагментации, при которой фрагментация происходит на сетевой плате, поэтому может не потребоваться, чтобы стек n/w выполнял фрагментацию.