Почему один(?) TCP-пакет здесь разделяется на несколько блоков PDU?

Почему один(?) TCP-пакет здесь разделяется на несколько блоков PDU?

Связанные изображения:альтернативный текст

Почему эти сегменты отмечены как отдельные пакеты (все Ack, Seq=509)? Почему пакет разделился?

решение1

Я предполагаю, что вы имеете в виду видимые кадры в диапазоне 56-78.
Давайте рассмотрим вещи в таком порядке,

  1. О: " TCP segment of a reassembled PDU"
    Это подразумевает, что wireshark (ethereal?) собрал TCP-сегменты вместе для вашего представления.
    Так что вы можете игнорировать эту строку, она не несет никакого вреда.
    Я подробно описал, что это за кадры, в пункте 4 ниже.
  2. О: Разные кадры с одинаковым seqномером ' '.
    Кадры 58, 60,62,64 и т.д. показывают одинаковый порядковый номер.
    Однако, обратите внимание, что этонетодин пакет, «отмеченный как отдельные пакеты» — без разделения.
    Эти пакеты имели только ACKустановленный флаг ' ', и вы увидите, что номер ACK увеличивается.
    Это ACK, отправленные на HTTP-сервер с вашего компьютера, когда его достигли различные TCP-сегменты.
  3. Последовательность ' ACK' начинается 1в кадре 52и заканчивается 9646в кадре FIN 78.
    В это время все кадры от вашего браузера к HTTP-серверу повторяют последний отправленный порядковый номер (который равен 609) — это нормальное поведение протокола TCP.
    Браузер не отправляет никаких дополнительных данных после своего первого HTTP-запроса (кадр 52).
    HTTP-сервер подтвердил это в кадре 54.
  4. Я предполагаю, что кадр 54— это (wireshark) повторно собранный ответ сервера, который был сформирован с кадрами, помеченными как «TCP-сегмент повторно собранного PDU».
    Таким образом, все эти последующие кадры, помеченные таким образом, идут от HTTP-сервера к клиенту
    (эта деталь не видна на вашем рисунке, поскольку вы очистили столбцы Источник и Назначение).

Если вы перепроверите исходный файл захвата, вы должны обнаружить, что кадры 54–67 с исходным портом TCP 80 (для HTTP) в сумме составят 9646 байт данных ответа от HTTP-сервера.

Здесь вы видите ответ размером 9 КБ от HTTP-сервера, поступивший в ваш браузер в виде нескольких сегментов TCP с ограничением MTU, каждый из которых был распознан стеком TCP вашей ОС.

Это высокоуровневая последовательность коммуникации.

  1. Ваш браузер начал подключение к HTTP-серверу с помощью трехстороннего TCP-рукопожатия.
  2. Он отправил один HTTP-запрос на сервер по этому соединению.
  3. Сервер ответил на это ответом размером 9 КБ, который был разбит на несколько пакетов TCP/IP следующим образом (TCP-сегменты)
  4. Стек TCP/IP на вашем браузере распознал каждый пакет TCP, полученный от сервера.
  5. Наконец, он закрыл соединение, начав с FINпакета.
    Я предполагаю, что было еще несколько FINпакетов ACKпосле кадра 78 (или один RSTпакет).

Дополнительную информацию об обработке повторной сборки TCP Wireshark можно найти на сайтеWireshark Вики.

решение2

Я не вижу изображения, но протокол более низкого уровня (например, Ethernet) может разбить протокол более высокого уровня (например, пакет TCP) на фрагменты в зависимости от размера его MTU (максимального блока передачи).

решение3

Википедия определяетБлок протокольных данныхследующее :

В телекоммуникациях термин «протокольный блок данных» (PDU) имеет следующие значения:

  1. Информация, которая передается как единое целое между равноправными субъектами сети и может содержать управляющую информацию, адресную информацию или данные.
  2. В многоуровневой системе — единица данных, указанная в протоколе данного уровня и состоящая из информации управления протоколом и, возможно, пользовательских данных этого уровня. Например: Bridge PDU или iSCSI PDU1

PDU актуальны по отношению к каждому из первых 4 уровнеймодель OSI(Уровень 5 и выше называются данными).

Таким образом, по сути PDU — это просто единица данных, определенная в своем собственном контексте.

ОтПонимание WireShark:

Иногда пакет не приходит целиком. Вместо этого пакет приходит в виде нескольких Protocol Data Units (PDU). WireShark попытается собрать эти блоки обратно в один пакет. Такой пакет называется повторно собранным PDU.

При работе с пересобранным PDU отображение будет не таким приятным, как у обычного пакета. Заголовки ответа находятся в нижней панели рисунка 2.11.

Это означает, что это сегменты сообщения TCP/IP, и что обычно только последний сегмент содержит значимую и полную информацию о сообщении TCP/IP.

ОтСегмент Wireshark TCP повторно собранного PDU:

Вы можете отключить повторную сборку сегментов TCP, сняв флажок «Разрешить субдиссектору десегментировать потоки TCP» в настройках протокола TCP. Таким образом, все части PDU приложения будут отображаться сами по себе.

Это способ гарантировать, что все сегменты будут содержать всю информацию, необходимую для осмысленного отображения сегмента TCP/IP, а не только последний пакет.

Связанный контент