Связанные изображения:
Почему эти сегменты отмечены как отдельные пакеты (все Ack, Seq=509)? Почему пакет разделился?
решение1
Я предполагаю, что вы имеете в виду видимые кадры в диапазоне 56-78.
Давайте рассмотрим вещи в таком порядке,
- О: "
TCP segment of a reassembled PDU
"
Это подразумевает, что wireshark (ethereal?) собрал TCP-сегменты вместе для вашего представления.
Так что вы можете игнорировать эту строку, она не несет никакого вреда.
Я подробно описал, что это за кадры, в пункте 4 ниже. - О: Разные кадры с одинаковым
seq
номером ' '.
Кадры 58, 60,62,64 и т.д. показывают одинаковый порядковый номер.
Однако, обратите внимание, что этонетодин пакет, «отмеченный как отдельные пакеты» — без разделения.
Эти пакеты имели толькоACK
установленный флаг ' ', и вы увидите, что номер ACK увеличивается.
Это ACK, отправленные на HTTP-сервер с вашего компьютера, когда его достигли различные TCP-сегменты. - Последовательность '
ACK
' начинается1
в кадре52
и заканчивается9646
в кадре FIN78
.
В это время все кадры от вашего браузера к HTTP-серверу повторяют последний отправленный порядковый номер (который равен609
) — это нормальное поведение протокола TCP.
Браузер не отправляет никаких дополнительных данных после своего первого HTTP-запроса (кадр52
).
HTTP-сервер подтвердил это в кадре54
. - Я предполагаю, что кадр
54
— это (wireshark) повторно собранный ответ сервера, который был сформирован с кадрами, помеченными как «TCP-сегмент повторно собранного PDU».
Таким образом, все эти последующие кадры, помеченные таким образом, идут от HTTP-сервера к клиенту
(эта деталь не видна на вашем рисунке, поскольку вы очистили столбцы Источник и Назначение).
Если вы перепроверите исходный файл захвата, вы должны обнаружить, что кадры 54–67 с исходным портом TCP 80 (для HTTP) в сумме составят 9646 байт данных ответа от HTTP-сервера.
Здесь вы видите ответ размером 9 КБ от HTTP-сервера, поступивший в ваш браузер в виде нескольких сегментов TCP с ограничением MTU, каждый из которых был распознан стеком TCP вашей ОС.
Это высокоуровневая последовательность коммуникации.
- Ваш браузер начал подключение к HTTP-серверу с помощью трехстороннего TCP-рукопожатия.
- Он отправил один HTTP-запрос на сервер по этому соединению.
- Сервер ответил на это ответом размером 9 КБ, который был разбит на несколько пакетов TCP/IP следующим образом (TCP-сегменты)
- Стек TCP/IP на вашем браузере распознал каждый пакет TCP, полученный от сервера.
- Наконец, он закрыл соединение, начав с
FIN
пакета.
Я предполагаю, что было еще несколькоFIN
пакетовACK
после кадра 78 (или одинRST
пакет).
Дополнительную информацию об обработке повторной сборки TCP Wireshark можно найти на сайтеWireshark Вики.
решение2
Я не вижу изображения, но протокол более низкого уровня (например, Ethernet) может разбить протокол более высокого уровня (например, пакет TCP) на фрагменты в зависимости от размера его MTU (максимального блока передачи).
решение3
Википедия определяетБлок протокольных данныхследующее :
В телекоммуникациях термин «протокольный блок данных» (PDU) имеет следующие значения:
- Информация, которая передается как единое целое между равноправными субъектами сети и может содержать управляющую информацию, адресную информацию или данные.
- В многоуровневой системе — единица данных, указанная в протоколе данного уровня и состоящая из информации управления протоколом и, возможно, пользовательских данных этого уровня. Например: Bridge PDU или iSCSI PDU1
PDU актуальны по отношению к каждому из первых 4 уровнеймодель OSI(Уровень 5 и выше называются данными).
Таким образом, по сути PDU — это просто единица данных, определенная в своем собственном контексте.
Иногда пакет не приходит целиком. Вместо этого пакет приходит в виде нескольких Protocol Data Units (PDU). WireShark попытается собрать эти блоки обратно в один пакет. Такой пакет называется повторно собранным PDU.
При работе с пересобранным PDU отображение будет не таким приятным, как у обычного пакета. Заголовки ответа находятся в нижней панели рисунка 2.11.
Это означает, что это сегменты сообщения TCP/IP, и что обычно только последний сегмент содержит значимую и полную информацию о сообщении TCP/IP.
ОтСегмент Wireshark TCP повторно собранного PDU:
Вы можете отключить повторную сборку сегментов TCP, сняв флажок «Разрешить субдиссектору десегментировать потоки TCP» в настройках протокола TCP. Таким образом, все части PDU приложения будут отображаться сами по себе.
Это способ гарантировать, что все сегменты будут содержать всю информацию, необходимую для осмысленного отображения сегмента TCP/IP, а не только последний пакет.