Фрагментация Ip и заголовки пакетов

Я где-то читал, что фрагментированный IP-пакет может быть фрагментирован в зависимости от изменений в сети.

Теперь, как пакет повторно собран на маршрутизаторе. Поскольку бит идентификации может использоваться для одного набора пакетов. Может ли кто-нибудь привести пример

Во-вторых, это случайный выбор идентификационного номера или у него есть определенный алгоритм.

И, наконец, каково значение зарезервированного бита, используемого в флагове IP

3 голоса | спросил john 13 MaramMon, 13 Mar 2017 10:33:22 +03002017-03-13T10:33:22+03:0010 2017, 10:33:22

2 ответа


4

фрагментация и повторная сборка в разделе IPv4 Статья в Википедии объясняет это довольно хорошо:

  

Фрагментация и повторная сборка Основная статья: фрагментация IP

     

Интернет-протокол позволяет сетям общаться с одним   другой. Конструкция вмещает сети различной физической природы;   он не зависит от базовой технологии передачи, используемой в   Уровень связи. Сети с различным оборудованием обычно меняются не только   в скорости передачи, но также и в блоке максимальной передачи   (MTU). Когда одна сеть хочет передавать дейтаграммы в сеть с помощью   меньший MTU, он может фрагментировать свои дейтаграммы. В IPv4 эта функция   был размещен на интернет-слое и выполняется в маршрутизаторах IPv4,   которые, таким образом, требуют, чтобы этот слой был самым высоким, реализованным в   их дизайн.

     

Напротив, IPv6, следующее поколение интернет-протокола,   не разрешать маршрутизаторам выполнять фрагментацию; хосты должны определить   путь MTU перед отправкой датаграмм.

     

Дробление

     

Когда маршрутизатор получает пакет, он проверяет адрес получателя   и определяет используемый исходящий интерфейс и MTU этого интерфейса.   Если размер пакета больше MTU, а не фрагмент   (DF) в заголовке пакета устанавливается в 0, тогда маршрутизатор может   фрагмент пакета.

     

Маршрутизатор делит пакет на фрагменты. Максимальный размер каждого   фрагмент - MTU минус размер заголовка IP (минимум 20 байтов, 60   байтов). Маршрутизатор помещает каждый фрагмент в свой собственный пакет,   каждый пакет фрагментов, имеющий следующие изменения:

     
  • Полное поле длины - это размер фрагмента.
  •   
  • Флаг большего количества фрагментов (MF) устанавливается для всех фрагментов, кроме последнего, для которого установлено значение 0.
  •   
  • Поле смещения фрагмента устанавливается на основе смещения фрагмента в исходной полезной нагрузке. Это измеряется в единицах   восьмибайтовые блоки.
  •   
  • Поле контрольной суммы заголовка пересчитывается.
  •   

Например, для MTU размером 1500 байт и размером заголовка 20 байтов,   смещения фрагментов будут кратными (1500-20) /8 = 185. Эти   кратными являются 0, 185, 370, 555, 740, ...

     

Возможно, что пакет будет фрагментирован на одном маршрутизаторе, а для   фрагменты для фрагментации на другом маршрутизаторе. Например,   рассмотрите сегмент транспортного уровня размером 4500 байт, нет   параметры и размер IP-заголовка в 20 байт. Таким образом, размер IP-пакета   4,520 байт. Предположим, что пакет перемещается по ссылке с MTU   2,500 байт. Затем он станет двумя фрагментами:

     

 введите описание изображения здесь>> </a> </p>
  
  <p> Обратите внимание, что фрагменты сохраняют размер данных: 2480 + 2020 = 4500. </p>
  
  <p> Обратите внимание, как мы получаем смещения от размеров данных: </p>

<pre><code>---- +: = 0 = + ----</code></pre>
  
  <p> Предположим, что эти фрагменты достигают связи с MTU 1500 байтов.
  Каждый фрагмент станет двумя фрагментами: </p>
  
  <p> <a href= введите описание изображения здесь>> </a> </p>
  
  <p> Обратите внимание, что фрагменты сохраняют размер данных: 1480 + 1000 = 2480,
  и 1480 + 540 = 2020. </p>
  
  <p> Также в этом случае бит More Fragments остается равным 1 для ВСЕХ
  фрагменты, которые пришли с 1 в них и для последнего фрагмента, который
  приходит, он работает как обычно, то есть бит MF устанавливается в 0 только в
  последний. И, конечно, поле Идентификация продолжает
  то же значение во всех фрагментах, фрагментированных фрагментами. Таким образом, даже если
  фрагменты повторно фрагментированы, приемник знает, что они изначальновсе началось с того же пакета. </p>
  
  <p> Обратите внимание, как мы получаем смещения от размеров данных: </p>

<pre><code>---- +: = 1 = + ----</code></pre>
  
  <p> Мы можем использовать последний смещение и последний размер данных для вычисления общего
  размер данных: 495 * 8 + 540 = 3960 + 540 = 4500. </p>
  
  <p> <strong> Reassembly </STRONG> </p>
  
  <p> Приемник знает, что пакет является фрагментом, если хотя бы один из
  выполняются следующие условия: </p>
  
  <ul>
<li> Установлен флаг «Дополнительные фрагменты». (Это верно для всех фрагментов, кроме последнего.) </li>
  <li> Поле «Смещение фрагмента» отличное от нуля. (Это верно для всех фрагментов, кроме первого.) </li>
  </ul>
<p> Получатель идентифицирует соответствующие фрагменты, используя внешний и локальный
  интернет-адрес, идентификатор протокола и поле идентификации.
  приемник будет собирать данные из фрагментов с тем же идентификатором
  используя как смещение фрагмента, так и флаг большего количества фрагментов. Когда
  приемник получает последний фрагмент (который имеет «больше фрагментов»,
  флаг установлен на 0), он может рассчитать длину исходных данных
  полезную нагрузку, умножив смещение последнего фрагмента на восемь и
  добавляя размер данных последнего фрагмента. В приведенном выше примере это
  расчет составил 495 * 8 + 540 = 4500 байт. </p>
  
  <p> Когда у получателя есть все фрагменты, он может помещать их в
  правильный порядок, используя их смещения. Затем он может передавать свои данные
  стек для дальнейшей обработки. </p>
</blockquote>

<p> Что касается зарезервированного бита, он зарезервирован и должен быть равен нулю и не имеет особого значения. </p></body></html>

ответил JFL 13 MarpmMon, 13 Mar 2017 13:52:12 +03002017-03-13T13:52:12+03:0001 2017, 13:52:12
0

Маловероятно, что MRU отличается от MTU. Если фрагментация необходима для уже фрагментированного пакета, маршрутизатор рассматривает его так же, как любой другой IP-пакет, который нуждается в фрагментации. Роутеры в середине не собирают пакет. Повторная сборка выполняется в пункте назначения. Маршрутизаторы просто фрагментируют пакет и просто корректируют значение смещения. И для IPID я не думаю, что маршрутизаторы меняют его (это моя догадка), поскольку конечный хост является тем, кто обрабатывает повторную сборку.

ответил youser 13 MarpmMon, 13 Mar 2017 12:05:34 +03002017-03-13T12:05:34+03:0012 2017, 12:05:34

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

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

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