5

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

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

3 ответа3

7

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

4

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

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

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

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

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

Из понимания WireShark :

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

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

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

Из сегмента Wireshark TCP пересобранного PDU :

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

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

3

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

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

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

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

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

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

Вы можете прочитать больше об обработке сборки Wireshark TCP в Wireshark Wiki.

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